From 1b57d3a600e369a4ca35136931176e755b82b3db Mon Sep 17 00:00:00 2001 From: Bertrand Marron Date: Thu, 18 Oct 2018 15:36:30 +0200 Subject: [PATCH] Fix lint errors --- kue.js | 5 +- lib/api/controllers/records.js | 24 +- lib/api/controllers/services.js | 62 ++- lib/api/middlewares/auth.js | 4 +- lib/extract/ogr2ogr.js | 2 +- lib/init.js | 6 +- lib/jobs/consolidate-record/links.js | 2 +- lib/metadata/common/contacts.js | 2 +- lib/metadata/common/links.js | 4 +- lib/metadata/common/services.js | 2 +- lib/metadata/iso/categories.js | 4 +- lib/metadata/iso/contacts.js | 4 +- lib/metadata/iso/index.js | 36 +- lib/metadata/iso/licenses.js | 6 +- lib/metadata/iso/statuses.js | 4 +- lib/metadata/iso/themes.js | 2 +- lib/metadata/iso/update-frequencies.js | 4 +- lib/models/Publication.js | 2 +- lib/models/Service.js | 6 +- lib/search/facets.js | 2 +- lib/search/index.js | 9 +- lib/syncJob.js | 14 +- lib/utils/mongo.js | 2 +- package.json | 5 +- plugins/publish-to-udata/app.js | 4 +- plugins/publish-to-udata/auth.js | 18 +- plugins/publish-to-udata/jobs.js | 2 +- plugins/publish-to-udata/mapping.js | 2 +- plugins/publish-to-udata/models/Dataset.js | 2 +- .../publish-to-udata/models/Organization.js | 14 +- plugins/publish-to-udata/routes/datasets.js | 2 +- .../publish-to-udata/routes/organizations.js | 2 +- plugins/publish-to-udata/routes/producers.js | 2 +- plugins/publish-to-udata/udataProxy.js | 2 +- scripts/seed.js | 4 +- yarn.lock | 443 ++++++++++-------- 36 files changed, 392 insertions(+), 318 deletions(-) diff --git a/kue.js b/kue.js index 03d28cc..aea6c67 100644 --- a/kue.js +++ b/kue.js @@ -1,7 +1,4 @@ -'use strict' -/* eslint no-console: off */ - -require('./lib/config/jobs') +require('./lib/config/jobs') // eslint-disable-line import/no-unassigned-import const {getApp} = require('delayed-jobs') diff --git a/lib/api/controllers/records.js b/lib/api/controllers/records.js index cc0f54a..5bf39d2 100644 --- a/lib/api/controllers/records.js +++ b/lib/api/controllers/records.js @@ -3,6 +3,7 @@ const {clone} = require('lodash') const search = require('../../search') +const am = require('../middlewares/async') const proxyThumbnail = require('../middlewares/thumbnail-proxy') const ConsolidatedRecord = mongoose.model('ConsolidatedRecord') @@ -62,26 +63,25 @@ exports.showBestRevision = (req, res, next) => { }) } -exports.showRevision = function (req, res) { +exports.showRevision = (req, res) => { res.send(req.recordRevision) } -exports.search = function (req, res, next) { +exports.search = am(async (req, res) => { const query = clone(req.query) const catalogName = req.service ? req.service.name : undefined - search(query, catalogName) - .then(result => res.send(result)) - .catch(next) -} + const result = await search(query, catalogName) -exports.consolidate = function (req, res, next) { - ConsolidatedRecord.triggerUpdated(req.record.recordId, 'manual') - .then(() => res.send({status: 'ok'})) - .catch(next) -} + res.send(result) +}) + +exports.consolidate = am(async (req, res) => { + await ConsolidatedRecord.triggerUpdated(req.record.recordId, 'manual') + res.send({status: 'ok'}) +}) -exports.thumbnail = function (req, res) { +exports.thumbnail = (req, res) => { const thumbnail = req.record.metadata.thumbnails.find(th => th.originalUrlHash === req.params.originalUrlHash) if (!thumbnail) { diff --git a/lib/api/controllers/services.js b/lib/api/controllers/services.js index 9882b5d..e883745 100644 --- a/lib/api/controllers/services.js +++ b/lib/api/controllers/services.js @@ -43,42 +43,36 @@ exports.sync = function (req, res, next, id) { /* ** Actions */ -exports.list = function (req, res, next) { +exports.list = am(async (req, res) => { const query = Service.find() if (req.params.protocol) { query.where('protocol').equals(req.params.protocol) } - query - .exec((err, services) => { - if (err) { - return next(err) - } - res.json(services) - }) -} -exports.create = function (req, res, next) { + const services = await query.exec() + + res.send(services) +}) + +exports.create = am(async (req, res) => { const service = new Service() service.set(pick(req.body, 'name', 'location', 'protocol')) service.addedBy = req.user - service.save(err => { - if (err) { - return next(err) - } - res.json(service) - }) -} + await service.save() + + res.send(service) +}) -exports.show = function (req, res) { +exports.show = (req, res) => { res.send(req.service) } -exports.handleSync = function (req, res, next) { - req.service.doSync(0) - .then(() => res.send(req.service)) - .catch(next) -} +exports.handleSync = am(async (req, res) => { + await req.service.doSync(0) + + res.send(req.service) +}) exports.listSyncs = am(async (req, res) => { const syncs = await ServiceSync.collection.find({ @@ -102,18 +96,22 @@ exports.listSyncs = am(async (req, res) => { res.send(syncs) }) -exports.showSync = function (req, res) { +exports.showSync = (req, res) => { res.send(req.serviceSync) } -exports.syncAllByProtocol = function (req, res, next) { - Service +exports.syncAllByProtocol = am(async (req, res) => { + const services = await Service .find() .where('protocol').equals(req.params.protocol) .exec() - .then(services => { - return Promise.each(services, service => service.doSync(0)) - .then(() => res.send({status: 'ok', services: services.length})) - }) - .catch(next) -} + + await Promise.all( + services.map(service => service.doSync(0)) + ) + + res.send({ + status: 'ok', + services: services.length + }) +}) diff --git a/lib/api/middlewares/auth.js b/lib/api/middlewares/auth.js index a516260..47b1392 100644 --- a/lib/api/middlewares/auth.js +++ b/lib/api/middlewares/auth.js @@ -13,8 +13,8 @@ const isMaintenance = (req, res, next) => { const authenticateClient = (req, res, next) => { let clients try { - clients = require('../../../clients.json') - } catch (err) { + clients = require('../../../clients.json') // eslint-disable-line import/no-unresolved + } catch (error) { clients = [] } diff --git a/lib/extract/ogr2ogr.js b/lib/extract/ogr2ogr.js index e7e0a4e..80a5b59 100644 --- a/lib/extract/ogr2ogr.js +++ b/lib/extract/ogr2ogr.js @@ -11,7 +11,7 @@ function downloadDataset(req, res) { const ogr2ogrTask = ogr2ogr(req.method === 'HEAD' ? 'fake' : req.ogr2ogr.src) .timeout(60 * 60 * 1000) - // Projection + // Projection if (req.query.projection === 'WGS84') { ogr2ogrTask.project('EPSG:4326') } else if (req.query.projection === 'Lambert93') { diff --git a/lib/init.js b/lib/init.js index 061301d..30c617a 100644 --- a/lib/init.js +++ b/lib/init.js @@ -1,4 +1,2 @@ -'use strict' - -require('./config/mongoose') -require('./config/jobs') +require('./config/mongoose') // eslint-disable-line import/no-unassigned-import +require('./config/jobs') // eslint-disable-line import/no-unassigned-import diff --git a/lib/jobs/consolidate-record/links.js b/lib/jobs/consolidate-record/links.js index 70210b3..693ff69 100644 --- a/lib/jobs/consolidate-record/links.js +++ b/lib/jobs/consolidate-record/links.js @@ -41,7 +41,7 @@ function getResourceType(type) { return 'other' } -async function resolveLinks(rawLinks = [], cachedLinks = []) { +function resolveLinks(rawLinks = [], cachedLinks = []) { return Promise.all( rawLinks.map(async link => { try { diff --git a/lib/metadata/common/contacts.js b/lib/metadata/common/contacts.js index 05856c1..95880a3 100644 --- a/lib/metadata/common/contacts.js +++ b/lib/metadata/common/contacts.js @@ -10,7 +10,7 @@ exports.normalizeContacts = function (contacts) { ...contact, organizationName: normalizeName(contact.organizationName) } - } catch (err) { + } catch (error) { return null } })) diff --git a/lib/metadata/common/links.js b/lib/metadata/common/links.js index 6b48548..db09f7e 100644 --- a/lib/metadata/common/links.js +++ b/lib/metadata/common/links.js @@ -92,10 +92,10 @@ function castLink({name, href, protocol, description}) { throw new Error('WMS layers are not supported yet') } return {name, href, description} - } catch (err) { + } catch (error) { return { valid: false, - reason: err.message + reason: error.message } } } diff --git a/lib/metadata/common/services.js b/lib/metadata/common/services.js index d504d78..198e582 100644 --- a/lib/metadata/common/services.js +++ b/lib/metadata/common/services.js @@ -1,8 +1,8 @@ 'use strict' +const {parse} = require('querystring') const {pick} = require('lodash') const URI = require('urijs') -const {parse} = require('querystring') function getNormalizedWfsServiceLocation(location) { location = new URI(location) diff --git a/lib/metadata/iso/categories.js b/lib/metadata/iso/categories.js index 910c843..282faed 100644 --- a/lib/metadata/iso/categories.js +++ b/lib/metadata/iso/categories.js @@ -26,7 +26,9 @@ const TOPIC_CATEGORIES = [ const TOPIC_CATEGORIES_MAPPING = {} -TOPIC_CATEGORIES.forEach(value => TOPIC_CATEGORIES_MAPPING[value.toLowerCase()] = value) +TOPIC_CATEGORIES.forEach(value => { + TOPIC_CATEGORIES_MAPPING[value.toLowerCase()] = value +}) exports.getTopicCategory = function (record) { const candidateValue = (get(record, 'identificationInfo.topicCategory') || '') diff --git a/lib/metadata/iso/contacts.js b/lib/metadata/iso/contacts.js index 5c65aaa..4d35668 100644 --- a/lib/metadata/iso/contacts.js +++ b/lib/metadata/iso/contacts.js @@ -24,7 +24,7 @@ function validateEmail(email) { if (!email) { return false } - const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ // eslint-disable-line + const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ return re.test(email) } @@ -48,7 +48,7 @@ exports.getAllContacts = function (metadata) { country: get(originalContact, 'contactInfo.address.country'), phoneNumber: get(originalContact, 'contactInfo.phone.voice') } - contacts.push(Object.assign({relatedTo: type}, pickBy(contact))) + contacts.push({relatedTo: type, ...pickBy(contact)}) } if (metadata.contact) { diff --git a/lib/metadata/iso/index.js b/lib/metadata/iso/index.js index fab226c..9c9421a 100644 --- a/lib/metadata/iso/index.js +++ b/lib/metadata/iso/index.js @@ -35,7 +35,24 @@ function convert(originalRecord) { record.contacts = normalizeContacts(getAllContacts(originalRecord)) - if (record.type !== 'service') { + if (record.type === 'service') { + record.serviceType = get(originalRecord, 'identificationInfo.serviceType') + + if (isWFSService(originalRecord)) { + record.serviceProtocol = 'wfs' + record.serviceURL = getWFSServiceLocation(originalRecord) + + const coupledResources = getCoupledResources(originalRecord) + + if (record.serviceURL && coupledResources.length > 0) { + record.featureTypes = coupledResources.map(coupledResource => ({ + relatedTo: hasha(coupledResource.identifier, {algorithm: 'sha1'}), + typeName: coupledResource.scopedName, + serviceURL: record.serviceURL + })) + } + } + } else { record.spatialRepresentationType = get(originalRecord, 'identificationInfo.spatialRepresentationType') record.lineage = get(originalRecord, 'dataQualityInfo.lineage.statement') record.purpose = get(originalRecord, 'identificationInfo.purpose') @@ -69,23 +86,6 @@ function convert(originalRecord) { record.spatialResolution = getSpatialResolution(originalRecord) Object.assign(record, getDates(originalRecord)) - } else { - record.serviceType = get(originalRecord, 'identificationInfo.serviceType') - - if (isWFSService(originalRecord)) { - record.serviceProtocol = 'wfs' - record.serviceURL = getWFSServiceLocation(originalRecord) - - const coupledResources = getCoupledResources(originalRecord) - - if (record.serviceURL && coupledResources.length > 0) { - record.featureTypes = coupledResources.map(coupledResource => ({ - relatedTo: hasha(coupledResource.identifier, {algorithm: 'sha1'}), - typeName: coupledResource.scopedName, - serviceURL: record.serviceURL - })) - } - } } return record diff --git a/lib/metadata/iso/licenses.js b/lib/metadata/iso/licenses.js index 54e47e1..00f37e8 100644 --- a/lib/metadata/iso/licenses.js +++ b/lib/metadata/iso/licenses.js @@ -4,12 +4,16 @@ function getLicenseFromConstraints(constraints) { const candidateLicenses = constraints .map(constraintsPart => { const {useConstraints, useLimitation} = constraintsPart + if (!useConstraints || !useLimitation) { - return + return null } + if (useConstraints.includes('license') && useLimitation.join(' ').toLowerCase().includes('odbl')) { return 'odc-odbl' } + + return null }) .filter(license => Boolean(license)) diff --git a/lib/metadata/iso/statuses.js b/lib/metadata/iso/statuses.js index b1027ac..2947f4e 100644 --- a/lib/metadata/iso/statuses.js +++ b/lib/metadata/iso/statuses.js @@ -14,7 +14,9 @@ const STATUSES = [ const STATUSES_MAPPING = {} -STATUSES.forEach(value => STATUSES_MAPPING[value.toLowerCase()] = value) +STATUSES.forEach(value => { + STATUSES_MAPPING[value.toLowerCase()] = value +}) exports.getStatus = function (record) { const candidateValue = (get(record, 'identificationInfo.status') || '') diff --git a/lib/metadata/iso/themes.js b/lib/metadata/iso/themes.js index d0c945f..775d8fa 100644 --- a/lib/metadata/iso/themes.js +++ b/lib/metadata/iso/themes.js @@ -1,7 +1,7 @@ 'use strict' -const themes = require('./themes.json') const {makeStringComparable} = require('../common/util') +const themes = require('./themes.json') // Prepare themes registry const themesPatterns = {} diff --git a/lib/metadata/iso/update-frequencies.js b/lib/metadata/iso/update-frequencies.js index a65ab28..48357c6 100644 --- a/lib/metadata/iso/update-frequencies.js +++ b/lib/metadata/iso/update-frequencies.js @@ -18,7 +18,9 @@ const UPDATE_FREQUENCIES = [ const UPDATE_FREQUENCIES_MAPPING = {} -UPDATE_FREQUENCIES.forEach(uf => UPDATE_FREQUENCIES_MAPPING[uf.toLowerCase()] = uf) +UPDATE_FREQUENCIES.forEach(uf => { + UPDATE_FREQUENCIES_MAPPING[uf.toLowerCase()] = uf +}) exports.getUpdateFrequency = function (metadata) { const candidateValue = (get(metadata, 'identificationInfo.resourceMaintenance.maintenanceAndUpdateFrequency') || '') diff --git a/lib/models/Publication.js b/lib/models/Publication.js index 5b99ef4..a399f53 100644 --- a/lib/models/Publication.js +++ b/lib/models/Publication.js @@ -2,7 +2,7 @@ const mongoose = require('mongoose') -const Schema = mongoose.Schema +const {Schema} = mongoose const schema = new Schema({ recordId: {type: String, required: true}, diff --git a/lib/models/Service.js b/lib/models/Service.js index a34d83d..4080a5d 100644 --- a/lib/models/Service.js +++ b/lib/models/Service.js @@ -39,10 +39,8 @@ const schema = new Schema({ schema.statics = { setAsPending(uniqueQuery) { - const query = Object.assign({ - 'sync.pending': false, - 'sync.processing': false - }, uniqueQuery) + const query = {'sync.pending': false, + 'sync.processing': false, ...uniqueQuery} const changes = { $set: {'sync.pending': true} diff --git a/lib/search/facets.js b/lib/search/facets.js index 4b2e2be..817f577 100644 --- a/lib/search/facets.js +++ b/lib/search/facets.js @@ -88,7 +88,7 @@ function computeFacets(record, {catalogs, publications}) { .value() .forEach(catalogName => facets.push({name: 'catalog', value: catalogName})) - /* Dataset marked as open */ + /* Dataset marked as open */ const openDataLicense = record.metadata.license === 'fr-lo' || record.metadata.license === 'odc-odbl' facets.push({name: 'opendata', value: openDataLicense ? 'yes' : 'not-determined'}) diff --git a/lib/search/index.js b/lib/search/index.js index a379f3e..b4a0b49 100644 --- a/lib/search/index.js +++ b/lib/search/index.js @@ -27,9 +27,9 @@ module.exports = function (searchQuery, catalogName) { const ConsolidatedRecord = mongoose.model('ConsolidatedRecord') const preparedTextInput = prepareTextInput(searchQuery.q) - let limit = parseInt(searchQuery.limit) + let limit = parseInt(searchQuery.limit, 10) limit = isNumber(limit) && limit > 0 && limit <= 500 ? Math.floor(limit) : 20 - let offset = parseInt(searchQuery.offset) + let offset = parseInt(searchQuery.offset, 10) offset = isNumber(offset) && offset > 0 ? Math.floor(offset) : 0 const query = {} @@ -42,7 +42,8 @@ module.exports = function (searchQuery, catalogName) { // Facets const facetKeys = [ 'organization', - 'type', 'keyword', + 'type', + 'keyword', 'representationType', 'opendata', 'distributionFormat', @@ -124,7 +125,7 @@ module.exports = function (searchQuery, catalogName) { } forEach(outputFacets, (facetList, facetName) => { if (facetName in searchQuery.facets) { - if (parseInt(searchQuery.facets[facetName]) === 0) { + if (parseInt(searchQuery.facets[facetName], 10) === 0) { outputFacets[facetName] = undefined return } diff --git a/lib/syncJob.js b/lib/syncJob.js index fd6f1a2..f452e36 100644 --- a/lib/syncJob.js +++ b/lib/syncJob.js @@ -25,13 +25,13 @@ class ServiceSyncJob { .exec((err, serviceSync) => { if (err) { this.fail(err) - } else if (!serviceSync) { - this.fail(new Error('No related ServiceSync found!')) - } else { + } else if (serviceSync) { this.serviceSync = serviceSync this.id = serviceSync._id this.service = serviceSync.service this._sync() + } else { + this.fail(new Error('No related ServiceSync found!')) } }) }) @@ -65,12 +65,12 @@ class ServiceSyncJob { }) } - log() { + log(...args) { if (process.env.NODE_ENV === 'development') { - console.log.apply(null, arguments) + console.log(...args) } - this.serviceSync.log.push(format.apply(null, arguments)) - this._log.apply(null, arguments) + this.serviceSync.log.push(format(...args)) + this._log(...args) } progress(progression) { diff --git a/lib/utils/mongo.js b/lib/utils/mongo.js index 8d82780..baf75e9 100644 --- a/lib/utils/mongo.js +++ b/lib/utils/mongo.js @@ -8,7 +8,7 @@ class Mongo { this.db = this.client.db(process.env.MONGO_DB || 'geop') } - async disconnect(force) { + disconnect(force) { return this.client.close(force) } } diff --git a/package.json b/package.json index ddad50f..bc8d8a9 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "jest": "^23.6.0", "jest-junit": "^5.1.0", "lerna-changelog": "^0.8.0", - "xo": "^0.20.3" + "xo": "^0.23.0" }, "jest": { "testPathIgnorePatterns": [ @@ -97,7 +97,8 @@ "semicolon": false, "space": 2, "rules": { - "camelcase": "warn" + "camelcase": "warn", + "unicorn/filename-case": "warn" }, "overrides": [ { diff --git a/plugins/publish-to-udata/app.js b/plugins/publish-to-udata/app.js index 8a4c000..60ac67a 100644 --- a/plugins/publish-to-udata/app.js +++ b/plugins/publish-to-udata/app.js @@ -9,8 +9,8 @@ const cors = require('cors') const {omit} = require('lodash') const {ensureLoggedIn} = require('./middlewares') -require('./models') -require('./passport') +require('./models') // eslint-disable-line import/no-unassigned-import +require('./passport') // eslint-disable-line import/no-unassigned-import const MongoStore = sessionMongo(session) diff --git a/plugins/publish-to-udata/auth.js b/plugins/publish-to-udata/auth.js index ccd59be..eb0f100 100644 --- a/plugins/publish-to-udata/auth.js +++ b/plugins/publish-to-udata/auth.js @@ -9,13 +9,15 @@ const strategy = new OAuth2Strategy({ clientID: process.env.DATAGOUV_CLIENT_ID, clientSecret: process.env.DATAGOUV_CLIENT_SECRET, callbackURL: `${process.env.ROOT_URL}/dgv/oauth/callback` -}, ((accessToken, refreshToken, profile, done) => { - dgv.getProfile(accessToken) - .then(profile => { - profile.accessToken = accessToken - done(null, profile) - }) - .catch(done) - })) +}, (async (accessToken, refreshToken, profile, done) => { + try { + const profile = await dgv.getProfile(accessToken) + profile.accessToken = accessToken + + done(null, profile) + } catch (error) { + done(error) + } +})) module.exports = {strategy} diff --git a/plugins/publish-to-udata/jobs.js b/plugins/publish-to-udata/jobs.js index 49e7d64..84ae4cc 100644 --- a/plugins/publish-to-udata/jobs.js +++ b/plugins/publish-to-udata/jobs.js @@ -1,6 +1,6 @@ 'use strict' -require('./models') +require('./models') // eslint-disable-line import/no-unassigned-import exports.synchronizeOne = require('./jobs/synchronizeOne') exports.synchronizeAll = require('./jobs/synchronizeAll') diff --git a/plugins/publish-to-udata/mapping.js b/plugins/publish-to-udata/mapping.js index e3195a3..09a1932 100644 --- a/plugins/publish-to-udata/mapping.js +++ b/plugins/publish-to-udata/mapping.js @@ -149,7 +149,7 @@ exports.map = function (sourceDataset) { }) } - if (!out.resources.length) { + if (out.resources.length === 0) { debug('No publishable resources for %s (%s)', sourceDataset.metadata.title, sourceDataset.recordId) } diff --git a/plugins/publish-to-udata/models/Dataset.js b/plugins/publish-to-udata/models/Dataset.js index 52a5d63..1d79cda 100644 --- a/plugins/publish-to-udata/models/Dataset.js +++ b/plugins/publish-to-udata/models/Dataset.js @@ -187,7 +187,7 @@ schema.method('asyncUpdate', function (additionalSidekickOptions = {}) { if (!this.isPublished()) { return Promise.reject(new Error('Dataset not published')) } - return sidekick('udata:synchronizeOne', Object.assign({}, additionalSidekickOptions, {recordId: this._id, action: 'update'})) + return sidekick('udata:synchronizeOne', {...additionalSidekickOptions, recordId: this._id, action: 'update'}) }) schema.method('notifyPublication', function () { diff --git a/plugins/publish-to-udata/models/Organization.js b/plugins/publish-to-udata/models/Organization.js index 36ff1a2..c90b5b4 100644 --- a/plugins/publish-to-udata/models/Organization.js +++ b/plugins/publish-to-udata/models/Organization.js @@ -2,10 +2,10 @@ const mongoose = require('mongoose') const Promise = require('bluebird') -const { addUserToOrganization, removeUserFromOrganization } = require('../udata') +const {addUserToOrganization, removeUserFromOrganization} = require('../udata') const Schema = mongoose.Schema -const { ObjectId } = Schema.Types +const {ObjectId} = Schema.Types const schema = new Schema({ @@ -17,12 +17,14 @@ const schema = new Schema({ enabled: Boolean, /* Configuration */ - sourceCatalogs: [ObjectId], + sourceCatalogs: [ObjectId] }) schema.method('enable', function (accessToken) { - if (this.enabled) return Promise.resolve(this) + if (this.enabled) { + return Promise.resolve(this) + } const userId = process.env.UDATA_PUBLICATION_USER_ID return addUserToOrganization(userId, this._id, accessToken) @@ -31,7 +33,9 @@ schema.method('enable', function (accessToken) { }) schema.method('disable', function (accessToken) { - if (!this.enabled) return Promise.resolve(this) + if (!this.enabled) { + return Promise.resolve(this) + } const userId = process.env.UDATA_PUBLICATION_USER_ID return removeUserFromOrganization(userId, this._id, accessToken) diff --git a/plugins/publish-to-udata/routes/datasets.js b/plugins/publish-to-udata/routes/datasets.js index 1a05ba5..4046a95 100644 --- a/plugins/publish-to-udata/routes/datasets.js +++ b/plugins/publish-to-udata/routes/datasets.js @@ -27,7 +27,7 @@ function validatePublicationParams(req, res, next) { } module.exports = function () { - const router = express.Router() + const router = new express.Router() router.param('organizationId', organizations.fetch) router.param('datasetId', fetch) diff --git a/plugins/publish-to-udata/routes/organizations.js b/plugins/publish-to-udata/routes/organizations.js index 4060382..e946052 100644 --- a/plugins/publish-to-udata/routes/organizations.js +++ b/plugins/publish-to-udata/routes/organizations.js @@ -5,7 +5,7 @@ const {fetch, list, show, createOrUpdate, showProfile} = require('../controllers const {ensureLoggedIn, isAdminOf} = require('../middlewares') module.exports = function () { - const router = express.Router() + const router = new express.Router() router.param('organizationId', fetch) diff --git a/plugins/publish-to-udata/routes/producers.js b/plugins/publish-to-udata/routes/producers.js index 218cfeb..be09511 100644 --- a/plugins/publish-to-udata/routes/producers.js +++ b/plugins/publish-to-udata/routes/producers.js @@ -6,7 +6,7 @@ const {fetch, list, associate, dissociate, listByOrganization} = require('../con const {ensureLoggedIn, isAdminOf, organizationIsSet} = require('../middlewares') module.exports = function () { - const router = express.Router() + const router = new express.Router() router.param('organizationId', organizations.fetch) router.param('producerId', fetch) diff --git a/plugins/publish-to-udata/udataProxy.js b/plugins/publish-to-udata/udataProxy.js index 8f382a1..d828b1b 100644 --- a/plugins/publish-to-udata/udataProxy.js +++ b/plugins/publish-to-udata/udataProxy.js @@ -8,7 +8,7 @@ const rootUrl = process.env.DATAGOUV_URL + '/api' const ALLOWED_METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE'] module.exports = function () { - const router = express.Router({strict: true}) + const router = new express.Router({strict: true}) router.all('*', (req, res, next) => { if (!ALLOWED_METHODS.includes(req.method)) { diff --git a/scripts/seed.js b/scripts/seed.js index 24778fc..5900440 100755 --- a/scripts/seed.js +++ b/scripts/seed.js @@ -31,7 +31,7 @@ async function main() { await mongo.disconnect() } -main().catch(err => { - console.error(err) +main().catch(error => { + console.error(error) process.exit(1) }) diff --git a/yarn.lock b/yarn.lock index 19ec89c..81b9a05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0-beta.35": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== @@ -1211,19 +1211,19 @@ acorn-globals@^4.1.0: acorn "^6.0.1" acorn-walk "^6.0.1" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= +acorn-jsx@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz#e8e41e48ea2fe0c896740610ab6a4ffd8add225e" + integrity sha512-JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw== dependencies: - acorn "^3.0.4" + acorn "^5.0.3" acorn-walk@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" integrity sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg== -acorn@^3.0.4, acorn@^3.1.0: +acorn@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= @@ -1233,12 +1233,7 @@ acorn@^4.0.4, acorn@~4.0.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= -acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - integrity sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ== - -acorn@^5.5.3: +acorn@^5.0.3, acorn@^5.5.3, acorn@^5.6.0: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== @@ -1262,11 +1257,6 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= - ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" @@ -1275,7 +1265,7 @@ ajv@^4.9.1: co "^4.6.0" json-stable-stringify "^1.0.1" -ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.1.0, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= @@ -1285,6 +1275,16 @@ ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +ajv@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" + integrity sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -1575,7 +1575,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= @@ -2003,7 +2003,7 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= @@ -2175,10 +2175,10 @@ character-parser@^2.1.1: dependencies: is-regex "^1.0.3" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== charenc@~0.0.1: version "0.0.2" @@ -2388,7 +2388,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -2560,7 +2560,7 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= @@ -2569,7 +2569,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2699,7 +2699,7 @@ debug@2, debug@2.6.9, debug@^2.0, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debu dependencies: ms "2.0.0" -debug@^4.1.0: +debug@^4.0.1, debug@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== @@ -3112,17 +3112,17 @@ eslint-ast-utils@^1.0.0: lodash.get "^4.4.2" lodash.zip "^4.2.0" -eslint-config-prettier@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.9.0.tgz#5ecd65174d486c22dff389fe036febf502d468a3" - integrity sha512-ag8YEyBXsm3nmOv1Hz991VtNNDMRa+MNy8cY47Pl4bw6iuzqKbJajXdqUpiw13STdLLrznxgm1hj9NhxeOYq0A== +eslint-config-prettier@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.1.0.tgz#2c26d2cdcfa3a05f0642cd7e6e4ef3316cdabfa2" + integrity sha512-QYGfmzuc4q4J6XIhlp8vRKdI/fI0tQfQPy1dME3UOLprE+v4ssH/3W9LM2Q7h5qBcy5m0ehCrBDU2YF8q6OY8w== dependencies: - get-stdin "^5.0.1" + get-stdin "^6.0.0" -eslint-config-xo@^0.20.0: - version "0.20.1" - resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.20.1.tgz#ad04db35e62bacedcf7b7e8a76388364a78d616d" - integrity sha512-bhDRezvlbYNZn8SHv0WE8aPsdPtH3sq1IU2SznyOtmRwi6e/XQkzs+Kaw1hA9Pz4xmkG796egIsFY2RD6fwUeQ== +eslint-config-xo@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.25.0.tgz#8e8bbdee06e3d75b47aeba03fb28d4a43cc8092f" + integrity sha512-bViV+I3smPWzzhI15U9PIk5CTt1Ym/GqdtRMIK/LePqp0yKLgw+WC51bBZEPgrKcib79uwwOLVPrv+nzoJJj+g== eslint-formatter-pretty@^1.3.0: version "1.3.0" @@ -3143,43 +3143,53 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" - integrity sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw== +eslint-module-utils@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" + integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y= dependencies: debug "^2.6.8" pkg-dir "^1.0.0" -eslint-plugin-ava@^4.5.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-4.5.1.tgz#a51b89a306dfd5b2f91185e283837aeade6f9e5c" - integrity sha512-V0+QZkTYoEXAp8fojaoD85orqNgGfyHWpwQEUqVIRGCRsX9BFnKbG2eX875NgciF3Aouq7smOZcLYqQKgAyH7w== +eslint-plugin-ava@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-ava/-/eslint-plugin-ava-5.1.1.tgz#709a03f6c56f9f316d83ebc739952cc28cea979a" + integrity sha512-3N7geVdXTabpngQOl+ih1ejMbFOXCUYROnTIP66KAQoMcEAkPSXYc/Jwo/qC4zpRR7PXMuf5afMzTEBpyZmWzQ== dependencies: arrify "^1.0.1" deep-strict-equal "^0.2.0" enhance-visitors "^1.0.0" - espree "^3.1.3" - espurify "^1.5.0" + esm "^3.0.82" + espree "^4.0.0" + espurify "^1.8.1" import-modules "^1.1.0" + is-plain-object "^2.0.4" multimatch "^2.1.0" pkg-up "^2.0.0" -eslint-plugin-import@^2.8.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" - integrity sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk= +eslint-plugin-es@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.1.tgz#5acb2565db4434803d1d46a9b4cbc94b345bd028" + integrity sha512-9XcVyZiQRVeFjqHw8qHNDAZcQLqaHlOGGpeYqzYh8S4JYCWTCO3yzyen8yVmA5PratfzTRWDwCOFphtDEG+w/w== + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.0" + +eslint-plugin-import@^2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" + integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== dependencies: - builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.6.8" doctrine "1.5.0" eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" + eslint-module-utils "^2.2.0" has "^1.0.1" lodash "^4.17.4" minimatch "^3.0.3" read-pkg-up "^2.0.0" + resolve "^1.6.0" eslint-plugin-no-use-extend-native@^0.3.12: version "0.3.12" @@ -3191,15 +3201,17 @@ eslint-plugin-no-use-extend-native@^0.3.12: is-obj-prop "^1.0.0" is-proto-prop "^1.0.0" -eslint-plugin-node@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" - integrity sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw== +eslint-plugin-node@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== dependencies: - ignore "^3.3.6" + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" + resolve "^1.8.1" + semver "^5.5.0" eslint-plugin-prettier@^2.6.0: version "2.6.0" @@ -3209,15 +3221,15 @@ eslint-plugin-prettier@^2.6.0: fast-diff "^1.1.1" jest-docblock "^21.0.0" -eslint-plugin-promise@^3.6.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" - integrity sha512-2WO+ZFh7vxUKRfR0cOIMrWgYKdR6S1AlOezw6pC52B6oYpd5WFghN+QHxvrRdZMtbo8h3dfUZ2o1rWb0UPbKtg== +eslint-plugin-promise@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" + integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== -eslint-plugin-unicorn@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-4.0.2.tgz#845de915e7a975f15779466fc92cc01973bbf103" - integrity sha512-oWe43NRm9YhzYQyrRyLIxndQ+NJUNWGodv0PYEd60tTKJiD3EpEnPhtt+xqs4vkWF6uP/M+VgawJaPf/wldleA== +eslint-plugin-unicorn@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-6.0.1.tgz#4a97f0bc9449e20b82848dad12094ee2ba72347e" + integrity sha512-hjy9LhTdtL7pz8WTrzS0CGXRkWK3VAPLDjihofj8JC+uxQLfXm0WwZPPPB7xKmcjRyoH+jruPHOCrHNEINpG/Q== dependencies: clean-regexp "^1.0.0" eslint-ast-utils "^1.0.0" @@ -3228,70 +3240,80 @@ eslint-plugin-unicorn@^4.0.1: lodash.upperfirst "^4.2.0" safe-regex "^1.1.0" -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + 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" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^4.17.0: - version "4.19.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== +eslint@^5.5.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.7.0.tgz#55c326d6fb2ad45fcbd0ce17c3846f025d1d819c" + integrity sha512-zYCeFQahsxffGl87U2aJ7DPyH8CbWgxBC213Y8+TCanhUTf2gEvfq3EKpHmEcozTLyPmGe9LZdMAwC/CpJBM5A== dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" doctrine "^2.1.0" - eslint-scope "^3.7.1" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" + espree "^4.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.0.1" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.6" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + inquirer "^6.1.0" + is-resolvable "^1.1.0" + js-yaml "^3.12.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + 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 "^1.0.1" + regexpp "^2.0.1" require-uncached "^1.0.3" - semver "^5.3.0" + semver "^5.5.1" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^5.0.2" + text-table "^0.2.0" -espree@^3.1.3, espree@^3.5.4: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== +esm@^3.0.82: + version "3.0.84" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63" + integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw== + +espree@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.0.0.tgz#253998f20a0f82db5d866385799d912a83a36634" + integrity sha512-kapdTCt1bjmspxStVKX6huolXVV5ZfyZguY1lcfhVVZstce3bqxH9mcLzNn3/mlgW6wQ732+0fuG9v7h0ZQoKg== dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" + acorn "^5.6.0" + acorn-jsx "^4.1.1" esprima@^3.1.3: version "3.1.3" @@ -3303,17 +3325,17 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" integrity sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw== -espurify@^1.5.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" - integrity sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY= +espurify@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056" + integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg== dependencies: core-js "^2.0.0" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - integrity sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo= +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" @@ -3515,13 +3537,13 @@ extend@~3.0.2: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" - integrity sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA== +external-editor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" + chardet "^0.7.0" + iconv-lite "^0.4.24" tmp "^0.0.33" extglob@^0.3.1: @@ -3560,6 +3582,11 @@ fast-deep-equal@^1.0.0: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + fast-diff@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" @@ -3891,10 +3918,10 @@ get-set-props@^0.1.0: resolved "https://registry.yarnpkg.com/get-set-props/-/get-set-props-0.1.0.tgz#998475c178445686d0b32246da5df8dbcfbe8ea3" integrity sha1-mYR1wXhEVobQsyJG2l3428++jqM= -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^3.0.0: version "3.0.0" @@ -3991,10 +4018,10 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -globals@^11.0.1: - version "11.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc" - integrity sha512-Dyzmifil8n/TmSqYDEXbm+C8yitzJQqQIlJQLNRMwa+BOUJpRC19pyVeN12JAjt61xonvXjtff+hJruTRXn5HA== +globals@^11.7.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" + integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA== globals@^9.18.0: version "9.18.0" @@ -4329,7 +4356,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.19, iconv-lite@^0.4.17: +iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== @@ -4341,7 +4368,7 @@ iconv-lite@0.4.23: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4365,11 +4392,16 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^3.3.3, ignore@^3.3.5, ignore@^3.3.6: +ignore@^3.3.5: version "3.3.7" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" integrity sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA== +ignore@^4.0.2, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" @@ -4416,22 +4448,21 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== +inquirer@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" + integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^3.0.0" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.10" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^6.1.0" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" @@ -4778,7 +4809,7 @@ is-regex@^1.0.3, is-regex@^1.0.4: dependencies: has "^1.0.1" -is-resolvable@^1.0.0: +is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== @@ -5352,6 +5383,11 @@ json-schema-traverse@^0.3.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -5637,12 +5673,12 @@ lodash@^3.6: resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0: +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.8.0: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5, lodash@^4.8.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -5779,20 +5815,20 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" -meow@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.0.tgz#fd5855dd008db5b92c552082db1c307cba20b29d" - integrity sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw== +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" loud-rejection "^1.0.0" - minimist "^1.1.3" minimist-options "^3.0.1" normalize-package-data "^2.3.4" read-pkg-up "^3.0.0" redent "^2.0.0" trim-newlines "^2.0.0" + yargs-parser "^10.0.0" merge-descriptors@1.0.1: version "1.0.1" @@ -6886,10 +6922,10 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@~1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" - integrity sha512-TcdNoQIWFoHblurqqU6d1ysopjq7UX0oRcT/hJ8qvBAELiYWn+Ugf0AXdnzISEJ7vuhNnQ98N8jR8Sh53x4IZg== +prettier@^1.12.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" + integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== pretty-format@^23.6.0: version "23.6.0" @@ -7423,10 +7459,10 @@ regexp-clone@0.0.1: resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" integrity sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk= -regexpp@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.0.1.tgz#d857c3a741dce075c2848dcb019a0a975b190d43" - integrity sha512-8Ph721maXiOYSLtaDGKVmDn5wdsNaF6Px85qFNeMPQq0r8K5Y10tgP6YuR65Ws35n4DvzFcCxEnRNBIXQunzLw== +regexpp@^2.0.0, regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== registry-auth-token@^3.0.1: version "3.3.2" @@ -7626,13 +7662,20 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.3.3, resolve@^1.5.0: +resolve@^1.1.6, resolve@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" integrity sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw== dependencies: path-parse "^1.0.5" +resolve@^1.6.0, resolve@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== + dependencies: + path-parse "^1.0.5" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -7719,17 +7762,12 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= +rxjs@^6.1.0: + version "6.3.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" + integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + tslib "^1.9.0" safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" @@ -7796,6 +7834,11 @@ semver@^4.3.3: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= +semver@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -7902,6 +7945,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" @@ -8254,7 +8302,7 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -8338,15 +8386,13 @@ symbol-tree@^3.2.2: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== +table@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/table/-/table-5.1.0.tgz#69a54644f6f01ad1628f8178715b408dc6bf11f7" + integrity sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg== dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" + ajv "^6.5.3" + lodash "^4.17.10" slice-ansi "1.0.0" string-width "^2.1.1" @@ -8417,7 +8463,7 @@ test-exclude@^4.2.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -8591,6 +8637,11 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -8771,6 +8822,13 @@ update-notifier@^2.3.0: semver-diff "^2.0.0" xdg-basedir "^3.0.0" +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + urijs@^1.16.1: version "1.19.1" resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" @@ -9104,39 +9162,39 @@ xo-init@^0.7.0: the-argv "^1.0.0" write-pkg "^3.1.0" -xo@^0.20.3: - version "0.20.3" - resolved "https://registry.yarnpkg.com/xo/-/xo-0.20.3.tgz#6fb1597b5e361fd561535bbf84cf97eefaac5d80" - integrity sha512-yuWSPxDAWN6EsAx8LrjUN51qqPrvuRVbIpjhoW86FaqCsV5KRHaTPuhE1faECeddSgPyADp3uc7YviBh+nWywQ== +xo@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/xo/-/xo-0.23.0.tgz#dbc709b0e5e38060a497a39d147a173ddd36d355" + integrity sha512-jyNZrGULm1oPgL0AMWWFWr3Q2cLsULrIkBsogIGWEUw/wGu47N3XGNmUwB4AvJcMhveNK2gqndY3+z8m0CJFEA== dependencies: arrify "^1.0.1" debug "^3.1.0" - eslint "^4.17.0" - eslint-config-prettier "^2.9.0" - eslint-config-xo "^0.20.0" + eslint "^5.5.0" + eslint-config-prettier "^3.0.1" + eslint-config-xo "^0.25.0" eslint-formatter-pretty "^1.3.0" - eslint-plugin-ava "^4.5.0" - eslint-plugin-import "^2.8.0" + eslint-plugin-ava "^5.1.0" + eslint-plugin-import "^2.14.0" eslint-plugin-no-use-extend-native "^0.3.12" - eslint-plugin-node "^6.0.0" + eslint-plugin-node "^7.0.0" eslint-plugin-prettier "^2.6.0" - eslint-plugin-promise "^3.6.0" - eslint-plugin-unicorn "^4.0.1" - get-stdin "^5.0.1" + eslint-plugin-promise "^4.0.0" + eslint-plugin-unicorn "^6.0.1" + get-stdin "^6.0.0" globby "^8.0.0" has-flag "^3.0.0" lodash.isequal "^4.5.0" lodash.mergewith "^4.6.1" - meow "^4.0.0" + meow "^5.0.0" multimatch "^2.1.0" open-editor "^1.2.0" path-exists "^3.0.0" pkg-conf "^2.1.0" - prettier "~1.10.2" + prettier "^1.12.1" resolve-cwd "^2.0.0" resolve-from "^4.0.0" semver "^5.5.0" - slash "^1.0.0" + slash "^2.0.0" update-notifier "^2.3.0" xo-init "^0.7.0" @@ -9165,6 +9223,13 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4"