From 70bd12a4d64fa5744c04ea5746bfe3f5c01ed568 Mon Sep 17 00:00:00 2001 From: Jonathan Cremin Date: Sat, 18 Jan 2020 10:19:20 +0000 Subject: [PATCH] Use native esm --- .babelrc | 2 +- Dockerfile | 4 +- Dockerfile.dev | 4 +- README.md | 1 - app.js | 21 +- docker-compose.yml | 13 +- lib/lookup.js | 12 +- lib/render.js | 4 +- lib/services.js | 22 +- lib/services/deezer/index.js | 8 +- lib/services/google/index.js | 2 +- lib/services/itunes/index.js | 4 +- lib/services/spotify/index.js | 2 +- lib/services/youtube/index.js | 6 +- lib/share.js | 3 +- models/{album.js => album.cjs} | 2 +- models/{artist.js => artist.cjs} | 2 +- models/{index.js => index.cjs} | 14 +- models/{match.js => match.cjs} | 2 +- models/{track.js => track.cjs} | 2 +- package.json | 22 +- routes/index.js | 6 +- routes/recent.js | 2 +- routes/search.js | 6 +- routes/share.js | 8 +- routes/slack.js | 6 +- test/initdb.js | 5 +- test/lookup.js | 2 +- test/services/deezer.js | 2 +- test/services/google.js | 2 +- test/services/itunes.js | 3 +- test/services/spotify.js | 2 +- test/services/youtube.js | 2 +- webpack.config.js => webpack.config.cjs | 0 ...fig.server.js => webpack.config.server.cjs | 0 worker.js | 6 +- yarn.lock | 294 +++++++++++++++++- 37 files changed, 379 insertions(+), 119 deletions(-) rename models/{album.js => album.cjs} (93%) rename models/{artist.js => artist.cjs} (91%) rename models/{index.js => index.cjs} (75%) rename models/{match.js => match.cjs} (94%) rename models/{track.js => track.cjs} (94%) rename webpack.config.js => webpack.config.cjs (100%) rename webpack.config.server.js => webpack.config.server.cjs (100%) diff --git a/.babelrc b/.babelrc index 7eeaff2..cbad9e9 100644 --- a/.babelrc +++ b/.babelrc @@ -2,7 +2,7 @@ "presets": [ ["@babel/preset-env", { "targets": { - "node": "10.0.0" + "node": "13.0.0" }, "modules": "commonjs" }] diff --git a/Dockerfile b/Dockerfile index b233d65..974115d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ -FROM node:12.14.1-alpine3.11 +FROM node:13.6.0-alpine3.11 WORKDIR /app -RUN apk add --update git +RUN apk add --update git python make g++ COPY package.json package.json COPY yarn.lock yarn.lock diff --git a/Dockerfile.dev b/Dockerfile.dev index 2deb05e..9482675 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,8 +1,8 @@ -FROM node:12.14.1-alpine3.11 +FROM node:13.6.0-alpine3.11 WORKDIR /app -RUN apk add --update git +RUN apk add --update git python make g++ ENV PORT 3000 EXPOSE 3000 diff --git a/README.md b/README.md index e675efb..a974d0b 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,6 @@ Make sharing from music services better. We match links from Rdio, Spotify, Deez * iTunes * Deezer * Google Play Music (requires `GOOGLE_EMAIL` and `GOOGLE_PASSWORD`) -* Xbox Music (requires `XBOX_CLIENT_ID` and `XBOX_CLIENT_SECRET`) * Youtube (requires `YOUTUBE_KEY`) Google doesn't provide a public API for Play Music, hence this `GOOGLE_PASSWORD` awfulness. The account also needs to be a Google Play Music All Access subscriber and to have played at least one track on a mobile device. Yeah. diff --git a/app.js b/app.js index b57ad33..e282844 100644 --- a/app.js +++ b/app.js @@ -10,17 +10,22 @@ import compress from 'koa-compress'; import serve from 'koa-static'; import views from 'koa-views'; import bodyparser from 'koa-bodyparser'; -import * as Sentry from '@sentry/node'; +import Sentry from '@sentry/node'; import debuglog from 'debug'; -import index from './routes/index'; -import recent from './routes/recent'; -import search from './routes/search'; -import share from './routes/share'; -import { slack, oauth } from './routes/slack'; -import errorHandler from './lib/error-handler'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import index from './routes/index.js'; +import recent from './routes/recent.js'; +import search from './routes/search.js'; +import share from './routes/share.js'; +import { slack, oauth } from './routes/slack.js'; +import errorHandler from './lib/error-handler.js'; const debug = debuglog('combine.fm'); +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + process.env.VUE_ENV = 'server'; Sentry.init({ @@ -77,7 +82,7 @@ app.use(route.post('/slack', slack)); app.use(route.get('/slack', slack)); app.use(route.get('/oauth', oauth)); -if (!module.parent) { +if (process.argv[1] === __filename) { app.listen(process.env.PORT || 3000, () => { debug(`Koa HTTP server listening on port ${(process.env.PORT || 3000)}`); }); diff --git a/docker-compose.yml b/docker-compose.yml index 806928f..e357976 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,8 +23,7 @@ services: SLACK_TOKEN: SENTRY_DSN: volumes: - - ./:/app:cached - - node_modules:/app/node_modules + - ./:/app ports: - "3000:3000" command: yarn run watch-server @@ -48,13 +47,12 @@ services: AWS_SECRET_ACCESS_KEY: AWS_TAG: volumes: - - ./:/app:cached - - node_modules:/app/node_modules + - ./:/app command: yarn run watch-worker ports: - "3001:3000" database: - image: "postgres:10-alpine" + image: "postgres:12.1-alpine" ports: - "5432:5432" environment: @@ -62,7 +60,4 @@ services: POSTGRES_USER: "combinefm" POSTGRES_DB: "combinefm" redis: - image: "redis:4.0.2-alpine" - -volumes: - node_modules: + image: "redis:5.0.7-alpine" diff --git a/lib/lookup.js b/lib/lookup.js index 93c41e5..763e17d 100644 --- a/lib/lookup.js +++ b/lib/lookup.js @@ -1,14 +1,4 @@ -import path from 'path'; -import fs from 'fs'; - -var services = []; - -fs.readdirSync(path.join(__dirname, 'services')).forEach(function(file) { - const service = require(path.join(__dirname, 'services', file)); - if (service.search) { - services.push(service); - } -}); +import services from './services.js'; export default async function (url) { let matchedService; diff --git a/lib/render.js b/lib/render.js index 11efe15..37c6902 100644 --- a/lib/render.js +++ b/lib/render.js @@ -1,5 +1,7 @@ import fs from 'fs'; -import { createBundleRenderer } from 'vue-server-renderer'; +import vueServerRenderer from 'vue-server-renderer'; + +const createBundleRenderer = vueServerRenderer.createBundleRenderer; const app = fs.readFileSync('./public/dist/js/main-server.js', 'utf8'); const renderer = createBundleRenderer(app); diff --git a/lib/services.js b/lib/services.js index f48ecb0..8e2a885 100644 --- a/lib/services.js +++ b/lib/services.js @@ -1,13 +1,15 @@ -import path from 'path'; -import fs from 'fs'; +import * as deezer from './services/deezer/index.js'; +import * as google from './services/google/index.js'; +import * as itunes from './services/itunes/index.js'; +import * as spotify from './services/spotify/index.js'; +import * as youtube from './services/youtube/index.js'; -const services = []; - -fs.readdirSync(path.join(__dirname, 'services')).forEach((file) => { - const service = require(path.join(__dirname, 'services', file)); - if (service.search) { - services.push(service); - } -}); +const services = [ + deezer, + google, + itunes, + spotify, + youtube, +] export default services; diff --git a/lib/services/deezer/index.js b/lib/services/deezer/index.js index 69fff3b..6caee49 100644 --- a/lib/services/deezer/index.js +++ b/lib/services/deezer/index.js @@ -1,7 +1,7 @@ import { parse } from 'url'; import request from 'superagent'; import debuglog from 'debug'; -import urlMatch from './url'; +import urlMatch from './url.js'; const debug = debuglog('combine.fm:deezer'); @@ -11,7 +11,7 @@ export function parseUrl(url) { const matches = parse(url).path.match(/\/(album|track)[/]+([^/]+)/); if (matches && matches[2]) { - return module.exports.lookupId(matches[2], matches[1]); + return lookupId(matches[2], matches[1]); } throw new Error(); } @@ -131,7 +131,7 @@ export async function search(data, original = {}) { match = looseMatch(name, response.body.data, data.type, various); } - return await module.exports.lookupId(response.body.data[0].id, type); + return await lookupId(response.body.data[0].id, type); } const matches = album.match(/^[^([]+/); if (matches && matches[0] && matches[0] !== album) { @@ -141,7 +141,7 @@ export async function search(data, original = {}) { } else if (type === 'track') { cleanedData.albumName = matches[0].trim(); } - return await module.exports.search(cleanedData, data); + return await search(cleanedData, data); } return Promise.resolve({ service: 'deezer' }); } diff --git a/lib/services/google/index.js b/lib/services/google/index.js index 755a00c..8ce3372 100644 --- a/lib/services/google/index.js +++ b/lib/services/google/index.js @@ -2,7 +2,7 @@ import { parse } from 'url'; import bluebird from 'bluebird'; import PlayMusic from 'playmusic'; import debuglog from 'debug'; -import urlMatch from './url'; +import urlMatch from './url.js'; const debug = debuglog('combine.fm:google'); diff --git a/lib/services/itunes/index.js b/lib/services/itunes/index.js index 31e06d0..c70a2f7 100644 --- a/lib/services/itunes/index.js +++ b/lib/services/itunes/index.js @@ -1,7 +1,7 @@ import { parse } from 'url'; import querystring from 'querystring'; import request from 'superagent'; -import urlMatch from './url'; +import urlMatch from './url.js'; const apiRoot = 'https://itunes.apple.com'; @@ -22,7 +22,7 @@ export async function parseUrl(url) { } } - return await module.exports.lookupId(itunesId, type, matches[1] || 'us'); + return await lookupId(itunesId, type, matches[1] || 'us'); } throw new Error(); } diff --git a/lib/services/spotify/index.js b/lib/services/spotify/index.js index 13e4958..69822cd 100644 --- a/lib/services/spotify/index.js +++ b/lib/services/spotify/index.js @@ -1,6 +1,6 @@ import { parse } from 'url'; import SpotifyWebApi from 'spotify-web-api-node'; -import urlMatch from './url'; +import urlMatch from './url.js'; const spotify = new SpotifyWebApi({ clientId: process.env.SPOTIFY_CLIENT_ID, diff --git a/lib/services/youtube/index.js b/lib/services/youtube/index.js index 0b4f92a..3bc078f 100644 --- a/lib/services/youtube/index.js +++ b/lib/services/youtube/index.js @@ -2,9 +2,9 @@ import { parse } from 'url'; import querystring from 'querystring'; import request from 'superagent'; import Nodebrainz from 'nodebrainz'; -import { toSeconds, parse as ptParse } from 'iso8601-duration'; +import iso8601 from 'iso8601-duration'; import debuglog from 'debug'; -import urlMatch from './url'; +import urlMatch from './url.js'; const debug = debuglog('combine.fm:youtube'); @@ -32,7 +32,7 @@ export async function lookupId(id) { const result = await request.get(apiRoot + path); const item = result.body.items[0].snippet; - const duration = toSeconds(ptParse(result.body.items[0].contentDetails.duration)); + const duration = iso8601.toSeconds(iso8601.parse(result.body.items[0].contentDetails.duration)); const split = item.title.match(/([^-]+)-(.*)/); diff --git a/lib/share.js b/lib/share.js index 18a4bde..ce46f86 100644 --- a/lib/share.js +++ b/lib/share.js @@ -1,8 +1,7 @@ import co from 'co'; import debuglog from 'debug'; -import models from '../models'; -import services from '../lib/services'; +import models from '../models/index.cjs'; const debug = debuglog('combine.fm:share'); diff --git a/models/album.js b/models/album.cjs similarity index 93% rename from models/album.js rename to models/album.cjs index e369eb9..98e7d77 100644 --- a/models/album.js +++ b/models/album.cjs @@ -1,4 +1,4 @@ -export default function (sequelize, DataTypes) { +module.exports = function (sequelize, DataTypes) { const Album = sequelize.define('album', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, externalId: { type: DataTypes.STRING(50), index: true }, // eslint-disable-line new-cap diff --git a/models/artist.js b/models/artist.cjs similarity index 91% rename from models/artist.js rename to models/artist.cjs index 1cdb2be..5d12043 100644 --- a/models/artist.js +++ b/models/artist.cjs @@ -1,4 +1,4 @@ -export default function (sequelize, DataTypes) { +module.exports = function (sequelize, DataTypes) { const Artist = sequelize.define('artist', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, name: DataTypes.TEXT, diff --git a/models/index.js b/models/index.cjs similarity index 75% rename from models/index.js rename to models/index.cjs index 63f4e5b..3c5aa18 100644 --- a/models/index.js +++ b/models/index.cjs @@ -1,10 +1,6 @@ -import fs from 'fs'; -import path from 'path'; -import Sequelize from 'sequelize'; - -import debugname from 'debug'; - -const debug = debugname('combine.fm:models'); +const fs = require('fs'); +const path = require('path'); +const Sequelize = require('sequelize'); const config = { dialect: 'postgres', @@ -18,7 +14,7 @@ const db = {}; fs .readdirSync(__dirname) - .filter(file => (file.indexOf('.') !== 0) && (file !== 'index.js')) + .filter(file => (file.indexOf('.') !== 0) && (file !== 'index.cjs')) .forEach((file) => { const model = sequelize.import(path.join(__dirname, file)); db[model.name] = model; @@ -33,4 +29,4 @@ Object.keys(db).forEach((modelName) => { db.sequelize = sequelize; db.Sequelize = Sequelize; -export default db; +module.exports = db; diff --git a/models/match.js b/models/match.cjs similarity index 94% rename from models/match.js rename to models/match.cjs index 89f7017..677ad45 100644 --- a/models/match.js +++ b/models/match.cjs @@ -1,4 +1,4 @@ -export default function (sequelize, DataTypes) { +module.exports = function (sequelize, DataTypes) { const Match = sequelize.define('match', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, trackId: DataTypes.INTEGER, diff --git a/models/track.js b/models/track.cjs similarity index 94% rename from models/track.js rename to models/track.cjs index c85536b..c09bf48 100644 --- a/models/track.js +++ b/models/track.cjs @@ -1,4 +1,4 @@ -export default function (sequelize, DataTypes) { +module.exports = function (sequelize, DataTypes) { const Track = sequelize.define('track', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, externalId: { type: DataTypes.STRING(50), index: true }, // eslint-disable-line new-cap diff --git a/package.json b/package.json index 981c7ab..b6304d5 100644 --- a/package.json +++ b/package.json @@ -4,19 +4,19 @@ "repository": "https://github.com/kudos/match.audio", "license": "MIT", "scripts": { - "build": "webpack --mode=production --config webpack.config.js && webpack --config webpack.config.server.js", - "start": "node -r @babel/register app.js", - "worker": "node -r @babel/register worker.js", - "test": "mocha -r '@babel/register' test/**/*.js test/lookup.js --timeout=15000", + "build": "webpack --mode=production --config webpack.config.cjs && webpack --config webpack.config.server.cjs", + "start": "node app.js", + "worker": "node worker.js", + "test": "mocha-esm test/**/*.js test/lookup.js --timeout=15000", "watch": "concurrently -k \"npm:watch-js\" \"npm:watch-server\"", - "watch-js": "concurrently -k -n webpack-frontend,webpack-server \"webpack -w -d --config webpack.config.js\" \"webpack -w --config webpack.config.server.js\"", - "watch-server": "nodemon -x \"node -r @babel/register\" -e js,vue -i node_modules -i chrome/ app.js", - "watch-worker": "nodemon -x \"node -r @babel/register\" -e js,vue -i node_modules -i chrome/ worker.js", - "heroku-postbuild": "npm run build", - "initdb": "node -r @babel/register test/initdb.js" + "watch-js": "concurrently -k -n webpack-frontend,webpack-server \"webpack -w -d --config webpack.config.cjs\" \"webpack -w --config webpack.config.server.cjs\"", + "watch-server": "nodemon -e js,vue -i node_modules -i chrome/ app.js", + "watch-worker": "nodemon -e js,vue -i node_modules -i chrome/ worker.js", + "initdb": "node test/initdb.js" }, + "type": "module", "engines": { - "node": ">=10.0.0" + "node": ">=13.0.0" }, "dependencies": { "@babel/cli": "^7.8.3", @@ -46,12 +46,14 @@ "koa-views": "^6.1.4", "kue": "^0.11.6", "mini-css-extract-plugin": "^0.9.0", + "mocha-esm": "^1.1.1", "node-sass": "^4.13.0", "nodebrainz": "^2.1.1", "pg": "^7.17.1", "playmusic": "^2.3.0", "sass-loader": "^8.0.2", "sequelize": "^5.21.3", + "sequelize-cli-esm": "^5.0.6", "spotify-web-api-node": "^4.0.0", "superagent": "^5.2.1", "vue": "^2.6.11", diff --git a/routes/index.js b/routes/index.js index 10acfd8..782c74f 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,8 +1,8 @@ import debuglog from 'debug'; -import services from '../lib/services'; -import render from '../lib/render'; -import models from '../models'; +import services from '../lib/services.js'; +import render from '../lib/render.js'; +import models from '../models/index.cjs'; const debug = debuglog('combine.fm:share'); diff --git a/routes/recent.js b/routes/recent.js index 44504a5..3acfe04 100644 --- a/routes/recent.js +++ b/routes/recent.js @@ -1,4 +1,4 @@ -import models from '../models'; +import models from '../models/index.cjs'; const recentQuery = { include: [ diff --git a/routes/search.js b/routes/search.js index 392a313..f280983 100644 --- a/routes/search.js +++ b/routes/search.js @@ -3,9 +3,9 @@ import kue from 'kue'; import debuglog from 'debug'; import { inspect } from 'util'; -import lookup from '../lib/lookup'; -import services from '../lib/services'; -import { find, create } from '../lib/share'; +import lookup from '../lib/lookup.js'; +import services from '../lib/services.js'; +import { find, create } from '../lib/share.js'; const debug = debuglog('combine.fm:search'); diff --git a/routes/share.js b/routes/share.js index 4d1a970..a571ea2 100644 --- a/routes/share.js +++ b/routes/share.js @@ -1,10 +1,10 @@ import kue from 'kue'; import debuglog from 'debug'; -import services from '../lib/services'; -import render from '../lib/render'; -import models from '../models'; -import { find, create } from '../lib/share'; +import services from '../lib/services.js'; +import render from '../lib/render.js'; +import models from '../models/index.cjs'; +import { find, create } from '../lib/share.js'; const debug = debuglog('combine.fm:share'); diff --git a/routes/slack.js b/routes/slack.js index f064bd0..7f7c390 100644 --- a/routes/slack.js +++ b/routes/slack.js @@ -3,9 +3,9 @@ import request from 'superagent'; import debuglog from 'debug'; import { inspect } from 'util'; -import lookup from '../lib/lookup'; -import services from '../lib/services'; -import { find, create } from '../lib/share'; +import lookup from '../lib/lookup.js'; +import services from '../lib/services.js'; +import { find, create } from '../lib/share.js'; const debug = debuglog('combine.fm:slack'); diff --git a/test/initdb.js b/test/initdb.js index 7984292..36ec6ac 100644 --- a/test/initdb.js +++ b/test/initdb.js @@ -1,11 +1,12 @@ import co from 'co'; -import models from '../models'; +import models from '../models/index.cjs'; import debugname from 'debug'; -const debug = debugname('match.audio:db'); +const debug = debugname('combine.fm:db'); co(async function sync() { debug('Syncing schema'); await models.sequelize.sync(); debug('Schema synced'); + models.sequelize.close(); }); diff --git a/test/lookup.js b/test/lookup.js index a42f6d0..a13d913 100644 --- a/test/lookup.js +++ b/test/lookup.js @@ -1,5 +1,5 @@ import 'should'; -import lookup from '../lib/lookup'; +import lookup from '../lib/lookup.js'; describe('Search with url', function(){ it('should find album by url', async function (){ diff --git a/test/services/deezer.js b/test/services/deezer.js index e03080f..fec3929 100644 --- a/test/services/deezer.js +++ b/test/services/deezer.js @@ -1,5 +1,5 @@ import 'should'; -import * as deezer from '../../lib/services/deezer'; +import * as deezer from '../../lib/services/deezer/index.js'; describe('Deezer', () => { describe('lookupId', () => { diff --git a/test/services/google.js b/test/services/google.js index f30134b..52d502e 100644 --- a/test/services/google.js +++ b/test/services/google.js @@ -1,5 +1,5 @@ import 'should'; -import * as google from '../../lib/services/google'; +import * as google from '../../lib/services/google/index.js'; describe('Google Play Music', () => { describe('lookupId', () => { diff --git a/test/services/itunes.js b/test/services/itunes.js index 6962107..9a4a6bc 100644 --- a/test/services/itunes.js +++ b/test/services/itunes.js @@ -1,11 +1,10 @@ import 'should'; -import * as itunes from '../../lib/services/itunes'; +import * as itunes from '../../lib/services/itunes/index.js'; describe('iTunes Music', function(){ describe('lookupId', function(){ it('should find album by ID', async function (){ const result = await itunes.lookupId('1445991287', 'album'); - console.log(result.name) result.name.should.equal('Peace Orchestra'); }); diff --git a/test/services/spotify.js b/test/services/spotify.js index 5c4bbc0..e135aef 100644 --- a/test/services/spotify.js +++ b/test/services/spotify.js @@ -1,5 +1,5 @@ import 'should'; -import * as spotify from '../../lib/services/spotify'; +import * as spotify from '../../lib/services/spotify/index.js'; describe('Spotify', function(){ describe('lookupId', function(){ diff --git a/test/services/youtube.js b/test/services/youtube.js index 22a2a0e..42b42fa 100644 --- a/test/services/youtube.js +++ b/test/services/youtube.js @@ -1,5 +1,5 @@ import 'should'; -import * as youtube from '../../lib/services/youtube'; +import * as youtube from '../../lib/services/youtube/index.js'; describe('Youtube', function(){ describe('lookup', function(){ diff --git a/webpack.config.js b/webpack.config.cjs similarity index 100% rename from webpack.config.js rename to webpack.config.cjs diff --git a/webpack.config.server.js b/webpack.config.server.cjs similarity index 100% rename from webpack.config.server.js rename to webpack.config.server.cjs diff --git a/worker.js b/worker.js index 672ed8c..022b0a6 100644 --- a/worker.js +++ b/worker.js @@ -1,11 +1,11 @@ import co from 'co'; import kue from 'kue'; -import * as Sentry from '@sentry/node'; +import Sentry from '@sentry/node'; import debuglog from 'debug'; import { inspect } from 'util'; -import models from './models'; -import services from './lib/services'; +import models from './models/index.cjs'; +import services from './lib/services.js'; const debug = debuglog('combine.fm:worker'); diff --git a/yarn.lock b/yarn.lock index bd65eec..0321afd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1190,7 +1190,7 @@ ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-regex@^2.0.0: +ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= @@ -1426,7 +1426,7 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" -babel-runtime@^6.26.0: +babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -1501,7 +1501,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.1.1, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -1945,6 +1945,18 @@ cli-boxes@^1.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= +cli-color@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f" + integrity sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w== + dependencies: + ansi-regex "^2.1.1" + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + memoizee "^0.4.14" + timers-ext "^0.1.5" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -2067,6 +2079,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2427,6 +2444,14 @@ cyclist@~0.2.2: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -2463,6 +2488,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" +debug@3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + debug@3.2.6, debug@^3.1.0, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -2470,13 +2502,6 @@ debug@3.2.6, debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2800,6 +2825,42 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2927,6 +2988,11 @@ eslint@^5.15.1: table "^5.2.3" text-table "^0.2.0" +esm@^3.0.36: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + espree@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" @@ -2980,6 +3046,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + events@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" @@ -2993,6 +3067,19 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -3075,6 +3162,13 @@ express@^4.12.2: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3352,6 +3446,15 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + integrity sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" @@ -3507,6 +3610,18 @@ glob@7.0.x: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -3725,6 +3840,11 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + he@1.2.0, he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -4194,7 +4314,7 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.0.0, is-promise@^2.1.0: +is-promise@^2.0.0, is-promise@^2.1, is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= @@ -4333,6 +4453,17 @@ js-beautify@^1.6.12: mkdirp "~0.5.1" nopt "~4.0.1" +js-beautify@^1.7.4: + version "1.10.3" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.3.tgz#c73fa10cf69d3dfa52d8ed624f23c64c0a6a94c1" + integrity sha512-wfk/IAWobz1TfApSdivH5PJ0miIHgDoYb1ugSqHcODPmaYu46rYe5FVuIEkhjg8IQiv6rDNPyhsqbsohI/C2vQ== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~0.5.1" + nopt "~4.0.1" + js-stringify@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -4807,7 +4938,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.4, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -4864,6 +4995,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -4943,6 +5081,20 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" +memoizee@^0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57" + integrity sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg== + dependencies: + d "1" + es5-ext "^0.10.45" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.5" + memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -5131,6 +5283,33 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdir dependencies: minimist "0.0.8" +mocha-esm@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/mocha-esm/-/mocha-esm-1.1.1.tgz#d0630102fd6d29106fb153218d239f85459df1ed" + integrity sha512-nDWxjVay4nzgEfMCo9ziFFIoeBWeUCqcX/hl/OuVo6vshWOYKcBc/bYx/gOL/s3IPCi6GLkDLDTnbssXbNM6MQ== + dependencies: + execa "^0.10.0" + minimist "^1.2.0" + mocha "^5.2.0" + promise-map-series "^0.2.3" + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + mocha@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.0.tgz#c60d14bf3de9601f549b3ff5be657eb8381c54bf" @@ -5279,6 +5458,11 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +next-tick@1, next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nib@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/nib/-/nib-1.1.2.tgz#6a69ede4081b95c0def8be024a4c8ae0c2cbb6c7" @@ -6186,6 +6370,13 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-map-series@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" + integrity sha1-wtN3r8kyU/a9A9u3d1XriKsgqEc= + dependencies: + rsvp "^3.0.14" + promise@^7.0.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -6856,6 +7047,11 @@ rsa-pem-from-mod-exp@^0.8.4: resolved "https://registry.yarnpkg.com/rsa-pem-from-mod-exp/-/rsa-pem-from-mod-exp-0.8.4.tgz#362a42c6d304056d493b3f12bceabb2c6576a6d4" integrity sha1-NipCxtMEBW1JOz8SvOq7LGV2ptQ= +rsvp@^3.0.14: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -7001,6 +7197,21 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +sequelize-cli-esm@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/sequelize-cli-esm/-/sequelize-cli-esm-5.0.6.tgz#9e20027c3e8ea493b366e7f75e0ef5758b69566f" + integrity sha512-MwoEfvNBpy30utokyMY3tk0VEOZ/m55+d76/H22zir4LrdOEUlYMr7ZovCpySyUg8BLEF3It9a3C7LUcTpVmlg== + dependencies: + bluebird "^3.5.1" + cli-color "^1.2.0" + esm "^3.0.36" + fs-extra "^5.0.0" + js-beautify "^1.7.4" + lodash "^4.17.5" + resolve "^1.5.0" + umzug "^2.1.0" + yargs "^8.0.2" + sequelize-pool@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-2.3.0.tgz#64f1fe8744228172c474f530604b6133be64993d" @@ -7584,6 +7795,13 @@ superagent@^5.2.1: readable-stream "^3.4.0" semver "^6.3.0" +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" @@ -7734,6 +7952,14 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timers-ext@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7882,6 +8108,16 @@ type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -7910,6 +8146,14 @@ uglify-to-browserify@~1.0.0: resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= +umzug@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/umzug/-/umzug-2.2.0.tgz#6160bdc1817e4a63a625946775063c638623e62e" + integrity sha512-xZLW76ax70pND9bx3wqwb8zqkFGzZIK8dIHD9WdNy/CrNfjWcwQgQkGCuUqcuwEBvUm+g07z+qWvY+pxDmMEEw== + dependencies: + babel-runtime "^6.23.0" + bluebird "^3.5.3" + undefsafe@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz#225f6b9e0337663e0d8e7cfd686fc2836ccace76" @@ -8475,6 +8719,13 @@ yargs-parser@^5.0.0: dependencies: camelcase "^3.0.0" +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + dependencies: + camelcase "^4.1.0" + yargs-parser@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" @@ -8582,6 +8833,25 @@ yargs@^7.0.0: y18n "^3.2.1" yargs-parser "^5.0.0" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"