From ed79c5b7a65a1a076884f532bae363b17c5044ac Mon Sep 17 00:00:00 2001 From: Linus Miller Date: Thu, 3 Sep 2020 21:54:23 +0200 Subject: [PATCH] convert server files to esm - update deps - remove midwest-service-errors --- package.json | 11 +- server/config/dir.js | 7 -- server/config/dir.mjs | 6 ++ server/config/{env.js => env.mjs} | 4 +- server/config/error_handler.js | 56 ---------- server/config/error_handler.mjs | 33 ++++++ server/config/index.js | 11 -- server/config/index.mjs | 17 +++ server/config/{port.js => port.mjs} | 6 +- server/config/{postgres.js => postgres.mjs} | 6 +- server/config/{shim.js => shim.mjs} | 4 +- server/config/{site.js => site.mjs} | 13 ++- server/console.mjs | 34 ++++++ server/db.js | 6 -- server/db.mjs | 4 + server/index.mjs | 11 ++ server/routers/{api.js => api.mjs} | 18 ++-- server/routers/index.js | 19 ---- server/routers/index.mjs | 20 ++++ server/server.js | 113 -------------------- server/server.mjs | 67 ++++++++++++ server/templates/{Error.js => Error.mjs} | 4 +- server/templates/{master.js => master.mjs} | 13 +-- yarn.lock | 52 +++++---- 24 files changed, 253 insertions(+), 282 deletions(-) delete mode 100644 server/config/dir.js create mode 100644 server/config/dir.mjs rename server/config/{env.js => env.mjs} (89%) delete mode 100644 server/config/error_handler.js create mode 100644 server/config/error_handler.mjs delete mode 100644 server/config/index.js create mode 100644 server/config/index.mjs rename server/config/{port.js => port.mjs} (69%) rename server/config/{postgres.js => postgres.mjs} (70%) rename server/config/{shim.js => shim.mjs} (96%) rename server/config/{site.js => site.mjs} (75%) create mode 100644 server/console.mjs delete mode 100644 server/db.js create mode 100644 server/db.mjs create mode 100644 server/index.mjs rename server/routers/{api.js => api.mjs} (84%) delete mode 100644 server/routers/index.js create mode 100644 server/routers/index.mjs delete mode 100644 server/server.js create mode 100644 server/server.mjs rename server/templates/{Error.js => Error.mjs} (61%) rename server/templates/{master.js => master.mjs} (86%) diff --git a/package.json b/package.json index 01ad5d9..42d1bfc 100644 --- a/package.json +++ b/package.json @@ -2,18 +2,19 @@ "name": "journey", "version": "0.0.1", "description": "", - "main": "server/server.js", + "main": "server/index.mjs", "scripts": { "format": "prettier --write .", "lint": "eslint --ext .js --ext .jsx --ext .mjs .", - "start": "node server/server.js", - "start:dev": "nodemon server/server.js", + "start": "node server/index.mjs", + "start:dev": "nodemon server/index.mjs", "test": "echo \"Error: no test specified\" && exit 1", "webpack": "webpack" }, "author": "Linus Miller (https://lohfu.io/)", "license": "MIT", "dependencies": { + "@bmp/console": "^0.1.0", "@bmp/pg": "^0.0.6", "body-parser": "^1.16.1", "chalk": "^4.1.0", @@ -23,10 +24,10 @@ "easy-tz": "^0.1.1", "express": "^4.14.1", "express-session": "^1.15.1", + "highlight-stack": "^0.2.1", "lodash": "^4.17.4", "lowline": "^0.3.0", - "midwest": "^0.4.2", - "midwest-service-errors": "^0.2.0", + "midwest": "^0.5.2", "morgan": "^1.8.1", "pg": "^8.3.3", "preact": "^10.4.8", diff --git a/server/config/dir.js b/server/config/dir.js deleted file mode 100644 index 6326ff8..0000000 --- a/server/config/dir.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict' - -const p = require('path') - -module.exports = { - static: p.join(process.cwd(), 'dist'), -} diff --git a/server/config/dir.mjs b/server/config/dir.mjs new file mode 100644 index 0000000..bc7b394 --- /dev/null +++ b/server/config/dir.mjs @@ -0,0 +1,6 @@ +import p from 'path' + +export default { + dist: p.join(process.cwd(), 'dist'), + static: p.join(process.cwd(), 'dist'), +} diff --git a/server/config/env.js b/server/config/env.mjs similarity index 89% rename from server/config/env.js rename to server/config/env.mjs index 4c7869c..1d1af36 100644 --- a/server/config/env.js +++ b/server/config/env.mjs @@ -1,4 +1,4 @@ -'use strict' +global.PWD = process.env.NODE_PWD || process.cwd() function readFromEnv(columns, defaults) { const missing = [] @@ -25,6 +25,6 @@ const defaults = { POSTGRES_HOST: 'localhost', } -module.exports = { +export default { ...readFromEnv(['NODE_ENV', 'POSTGRES_HOST'], defaults), } diff --git a/server/config/error_handler.js b/server/config/error_handler.js deleted file mode 100644 index 393bdbd..0000000 --- a/server/config/error_handler.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict' - -const _ = require('lodash') - -const errorTemplate = require('../templates/Error') - -const env = require('./env') - -const defaults = { - post: (req, res, next) => { - res.template = errorTemplate - - next() - }, - - mystify: { - properties: ['errors', 'message', 'name', 'status', 'statusText'], - }, - - log: { - // if database = true there has to be a mongoose model name ErrorModel - ignore: [], - }, -} - -const store = require('midwest-service-errors/stores/postgres') - -module.exports = _.merge( - defaults, - { - development: { - log: { - store, - console: true, - }, - }, - testing: { - log: { - store: false, - console: false, - }, - }, - staging: { - log: { - store, - console: false, - }, - }, - production: { - log: { - store, - console: false, - }, - }, - }[env.NODE_ENV], -) diff --git a/server/config/error_handler.mjs b/server/config/error_handler.mjs new file mode 100644 index 0000000..6306fec --- /dev/null +++ b/server/config/error_handler.mjs @@ -0,0 +1,33 @@ +import _ from 'lodash' +import errorTemplate from '../templates/Error.mjs' +import env from './env.mjs' + +const defaults = { + console: true, + + post: (req, res, next) => { + res.template = errorTemplate + + next() + }, + + mystify: { + properties: ['errors', 'message', 'name', 'status', 'statusText'], + }, + + log: { + // if database = true there has to be a mongoose model name ErrorModel + ignore: [], + }, +} + +export default _.merge( + defaults, + { + development: { + log: { + console: true, + }, + }, + }[env.NODE_ENV], +) diff --git a/server/config/index.js b/server/config/index.js deleted file mode 100644 index 59d6ec3..0000000 --- a/server/config/index.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -module.exports = { - dir: require('./dir'), - env: require('./env'), - errorHandler: require('./error_handler'), - port: require('./port'), - postgres: require('./postgres'), - shim: require('./shim'), - site: require('./site'), -} diff --git a/server/config/index.mjs b/server/config/index.mjs new file mode 100644 index 0000000..98ec8dd --- /dev/null +++ b/server/config/index.mjs @@ -0,0 +1,17 @@ +import dir from './dir.mjs' +import env from './env.mjs' +import errorHandler from './error_handler.mjs' +import port from './port.mjs' +import postgres from './postgres.mjs' +import shim from './shim.mjs' +import site from './site.mjs' + +export default { + dir, + env, + errorHandler, + port, + postgres, + shim, + site, +} diff --git a/server/config/port.js b/server/config/port.mjs similarity index 69% rename from server/config/port.js rename to server/config/port.mjs index d4c84bf..f612c73 100644 --- a/server/config/port.js +++ b/server/config/port.mjs @@ -1,10 +1,8 @@ -'use strict' - -const env = require('./env') +import env from './env.mjs' const basePort = 3060 -module.exports = { +export default { development: basePort, testing: basePort + 1, staging: basePort + 2, diff --git a/server/config/postgres.js b/server/config/postgres.mjs similarity index 70% rename from server/config/postgres.js rename to server/config/postgres.mjs index c14505b..f45a97a 100644 --- a/server/config/postgres.js +++ b/server/config/postgres.mjs @@ -1,8 +1,6 @@ -'use strict' +import env from './env.mjs' -const env = require('./env') - -module.exports = { +export default { database: 'journey', user: 'journey', password: 'journey', diff --git a/server/config/shim.js b/server/config/shim.mjs similarity index 96% rename from server/config/shim.js rename to server/config/shim.mjs index cf6e90d..f80c1e5 100644 --- a/server/config/shim.js +++ b/server/config/shim.mjs @@ -1,6 +1,4 @@ -'use strict' - -module.exports = { +export default { 'https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js': [ 'chrome <= 12', 'firefox <= 20', diff --git a/server/config/site.js b/server/config/site.mjs similarity index 75% rename from server/config/site.js rename to server/config/site.mjs index 3ec39a4..db77963 100644 --- a/server/config/site.js +++ b/server/config/site.mjs @@ -1,7 +1,6 @@ -'use strict' - -const _ = require('lodash') -const env = require('./env') +import _ from 'lodash' +import env from './env.mjs' +import port from './port.mjs' const domain = 'journey.bitmill.io' @@ -23,17 +22,17 @@ const defaults = { }, } -module.exports = _.merge( +export default _.merge( defaults, { development: { hostname: 'localhost', - port: process.env.EXTERNAL_PORT || process.env.PORT || require('./port'), + port: process.env.EXTERNAL_PORT || process.env.PORT || port, }, testing: { hostname: 'localhost', - port: process.env.PORT || require('./port'), + port: process.env.PORT || port, }, staging: { diff --git a/server/console.mjs b/server/console.mjs new file mode 100644 index 0000000..2936395 --- /dev/null +++ b/server/console.mjs @@ -0,0 +1,34 @@ +import chalk from 'chalk' +import Console from '@bmp/console' +import hs from 'highlight-stack' + +const highlightStack = hs.default + +// make error output stack pretty +process.on('uncaughtException', (err) => { + console.error(chalk.red('UNCAUGHT EXCEPTION')) + + if (err.stack) { + console.error(highlightStack(err.stack)) + } else { + console.error(err) + } + + process.exit(1) +}) + +process.on('unhandledRejection', (err) => { + console.error(chalk.red('UNHANDLED REJECTION')) + + if (err.stack) { + console.error(highlightStack(err.stack)) + } else { + console.error(err) + } + + process.exit(1) +}) + +if (process.env.NODE_ENV === 'development') { + Console({ log: true, error: true, dir: true }) +} diff --git a/server/db.js b/server/db.js deleted file mode 100644 index 50ee97c..0000000 --- a/server/db.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -const factory = require('@bmp/pg') -const conf = require('./config/postgres') - -module.exports = factory(conf) diff --git a/server/db.mjs b/server/db.mjs new file mode 100644 index 0000000..b6b655d --- /dev/null +++ b/server/db.mjs @@ -0,0 +1,4 @@ +import factory from '@bmp/pg' +import conf from './config/postgres.mjs' + +module.exports = factory(conf) diff --git a/server/index.mjs b/server/index.mjs new file mode 100644 index 0000000..0dcbffa --- /dev/null +++ b/server/index.mjs @@ -0,0 +1,11 @@ +import chalk from 'chalk' +import server from './server.mjs' +import config from './config/index.mjs' + +export default server.listen(config.port, () => { + console.info( + `[${chalk.cyan('INIT')}] HTTP Server listening on port ${chalk.magenta(config.port)} (${chalk.yellow( + config.env.NODE_ENV, + )})`, + ) +}) diff --git a/server/routers/api.js b/server/routers/api.mjs similarity index 84% rename from server/routers/api.js rename to server/routers/api.mjs index 3b40b4a..d8172e9 100644 --- a/server/routers/api.js +++ b/server/routers/api.mjs @@ -1,13 +1,12 @@ -'use strict' +import format from 'easy-tz/cjs/format.js' -const format = require('easy-tz/cjs/format') - -const request = require('superagent') +import request from 'superagent' +import express from 'express' // import get from 'get-value'; -const _ = require('lodash') +import _ from 'lodash' -const xml2json = require('xml2json') +import xml2json from 'xml2json' // const to = 'Lund Mellanvångsvägen'; // const from = 'Malmö Triangeln'; @@ -45,7 +44,7 @@ const types = { STOP_AREA: 0, } -const router = new (require('express').Router)() +const router = new express.Router() function formatStation(json) { return `${encodeURIComponent(json.name)}|${json.id}|${types[json.type]}` @@ -56,7 +55,6 @@ function formatTime(date) { return format(null, 'YYYY-MM-DD HH:mm', date) } -console.log(formatTime()) function formatLink(link) {} @@ -64,8 +62,6 @@ function formatResult(result) { return _.omit(result, 'Prices') } -console.log(new Date('2017-02-24T17:16:00'.split('T').join(' ')).toLocaleString()) - const journeysPath = ['soap:Envelope', 'soap:Body', 'GetJourneyResponse', 'GetJourneyResult', 'Journeys', 'Journey'] // http://www.labs.skanetrafiken.se/v2.2/resultspage.asp?cmdaction=next&selPointFr=malm%F6%20C|80000|0&selPointTo=landskrona|82000|0&LastStart=2017-02-23%2016:38 router.post('/trip', (req, res, next) => { @@ -84,4 +80,4 @@ router.post('/trip', (req, res, next) => { }) }) -module.exports = router +export default router diff --git a/server/routers/index.js b/server/routers/index.js deleted file mode 100644 index 88cfa06..0000000 --- a/server/routers/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict' - -const masterTemplate = require('../templates/master') - -const router = new (require('express').Router)() - -const mw = { - shim: require('midwest/factories/shim')(require('../config/shim')), -} - -router.get('/', mw.shim, (req, res, next) => { - res.preventFlatten = true - - res.template = masterTemplate - - next() -}) - -module.exports = router diff --git a/server/routers/index.mjs b/server/routers/index.mjs new file mode 100644 index 0000000..17221ea --- /dev/null +++ b/server/routers/index.mjs @@ -0,0 +1,20 @@ +import express from 'express' +import Shim from 'midwest/factories/shim.js' +import masterTemplate from '../templates/master.mjs' +import config from '../config/index.mjs' + +const router = new express.Router() + +const mw = { + shim: Shim(config.shim), +} + +router.get('/', mw.shim, (req, res, next) => { + res.preventFlatten = true + + res.template = masterTemplate + + next() +}) + +export default router diff --git a/server/server.js b/server/server.js deleted file mode 100644 index e319396..0000000 --- a/server/server.js +++ /dev/null @@ -1,113 +0,0 @@ -'use strict' - -/* - * The main file that sets up the Express instance and node - * - * @module server/server - * @type {Express instance} - */ - -global.PWD = process.env.NODE_PWD || process.cwd() - -const config = require('./config') - -// modules > native -const p = require('path') - -if (config.env.NODE_ENV === 'development') { - // output filename in console log and colour console.dir - require('midwest/util/console') - // needed so symlinked modules get access to main projects node_modules/ - require('app-module-path').addPath(p.join(process.cwd(), 'node_modules')) -} - -// modules > 3rd party -const _ = require('lodash') -const chalk = require('chalk') -const express = require('express') - -// modules > express middlewares -const bodyParser = require('body-parser') - -// modules > midwest -const colorizeStack = require('midwest/util/colorize-stack') - -// make error output stack pretty -process.on('uncaughtException', (err) => { - console.error(chalk.red('UNCAUGHT EXCEPTION')) - if (err.stack) { - console.error(colorizeStack(err.stack)) - } else { - console.error(err) - } - process.exit(1) -}) - -const prewares = [ - express.static(config.dir.static, config.env.NODE_ENV === 'production' ? { maxAge: '1 year' } : null), - bodyParser.json(), - bodyParser.urlencoded({ extended: true }), -] - -if (config.env.NODE_ENV === 'development') { - // only log requests to console in development mode - prewares.unshift(require('morgan')('dev')) - // prewares.push(require('midwest-module-membership/passport/automatic-login')); -} - -const postwares = [ - require('midwest/middleware/ensure-found'), - // transform and log error - require('midwest/factories/error-handler')(config.errorHandler), - // respond - require('midwest/middleware/responder'), -] - -const server = express() - -// get IP & whatnot from nginx proxy -server.set('trust proxy', true) - -_.extend(server.locals, { - site: require('./config/site'), -}) - -// override default response render method for -// more convenient use with marko -server.response.render = function (template) { - const locals = Object.assign({ query: this.req.query }, this.app.locals, this.locals) - - this.send(template(locals)) -} - -try { - server.locals.js = require(p.join(process.cwd(), 'public/js.json')) -} catch (e) {} - -try { - server.locals.css = require(p.join(process.cwd(), 'public/css.json')) -} catch (e) {} - -// load prewares -server.use(...prewares) - -// mount routers -server.use(require('./routers/index')) -server.use('/api', require('./routers/api')) -// server.use('/auth', require('midwest-module-membership/passport/router')); - -// load postwares -server.use(...postwares) - -// Only start Express server when it is the main module (ie not required by test) -if (require.main === module) { - server.http = server.listen(config.port, () => { - console.info( - `[${chalk.cyan('INIT')}] HTTP Server listening on port ${chalk.magenta(config.port)} (${chalk.yellow( - config.env.NODE_ENV, - )})`, - ) - }) -} - -module.exports = server diff --git a/server/server.mjs b/server/server.mjs new file mode 100644 index 0000000..957cea6 --- /dev/null +++ b/server/server.mjs @@ -0,0 +1,67 @@ +import './console.mjs' +import config from './config/index.mjs' + +// modules > native +import p from 'path' + +// modules > 3rd party +import _ from 'lodash' +import chalk from 'chalk' +import express from 'express' + +// modules > express middlewares +import bodyParser from 'body-parser' + +// modules > midwest +import ensureFound from 'midwest/middleware/ensure-found.js' +import errorHandler from 'midwest/factories/error-handler.js' +import responder from 'midwest/middleware/responder.js' +import Morgan from 'morgan' + +import apiRouter from './routers/api.mjs' +import publicRouter from './routers/index.mjs' + +const server = express() + +// get IP & whatnot from nginx proxy +server.set('trust proxy', true) + +_.extend(server.locals, { + site: config.site, +}) + +// override default response render method for +// more convenient use with marko +server.response.render = function (_master, template) { + const locals = Object.assign({ query: this.req.query }, this.app.locals, this.locals) + + this.send(template(locals)) +} + +if (config.env.NODE_ENV === 'development') { + // only log requests to console in development mode + server.use(Morgan('dev')) +} + +server.use([ + express.static(config.dir.dist, config.env.NODE_ENV === 'production' ? { maxAge: '1 year' } : null), + express.static(config.dir.static, config.env.NODE_ENV === 'production' ? { maxAge: '1 year' } : null), + bodyParser.json(), + bodyParser.urlencoded({ extended: true }), +]) + +// mount routers +server.use(publicRouter) +server.use('/api', apiRouter) + +server.use([ + ensureFound, + // transform and log error + errorHandler(config.errorHandler), + // respond + responder, +]) + +// Only start Express server when it is the main module (ie not required by test) + +export default server diff --git a/server/templates/Error.js b/server/templates/Error.mjs similarity index 61% rename from server/templates/Error.js rename to server/templates/Error.mjs index 90b81ef..6b44524 100644 --- a/server/templates/Error.js +++ b/server/templates/Error.mjs @@ -1,6 +1,4 @@ -'use strict' - -module.exports = ({ error = {}, regions = {} }) => `
+export default ({ error = {}, regions = {} }) => `

Oops!

Ett problem har tyvärr uppstått.

${error.status} ${error.statusText}

diff --git a/server/templates/master.js b/server/templates/master.mjs similarity index 86% rename from server/templates/master.js rename to server/templates/master.mjs index 7eba5cc..9e26f6f 100644 --- a/server/templates/master.js +++ b/server/templates/master.mjs @@ -1,15 +1,4 @@ -'use strict' - -module.exports = ({ - articleUrl, - protocol, - hostname, - websocketsPort, - INITIAL_STATE, - js, - css, - cssFile, -}) => ` +export default ({ articleUrl, protocol, hostname, websocketsPort, INITIAL_STATE, js, css, cssFile }) => ` Journey diff --git a/yarn.lock b/yarn.lock index 11aa49d..84cd3d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -828,6 +828,21 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@bmp/console@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@bmp/console/-/console-0.1.0.tgz#56a47b720e54cd1bde6cfe36d19bc55f2d1ebf9d" + integrity sha512-RMSHV/hC1DoZ7aZzQBYyszibEjCh0pvFwUZMqrUkHLtTCh4hF7EK4h+RkfkgGPzvrEeUcJB597MkaNS8/aRkmA== + dependencies: + "@bmp/highlight-stack" "^0.1.2" + chalk "^2.4.1" + +"@bmp/highlight-stack@^0.1.1", "@bmp/highlight-stack@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@bmp/highlight-stack/-/highlight-stack-0.1.2.tgz#ddc31316f7b08529014878d6e58d583f686d984f" + integrity sha512-NVMtYxthtvJ/WJaVFzGtdU5gBXRReQ6OSeKAdm0U9Hnh4citjuKtUXUVZoCKfAAx8Aq4l6gqnuORL53jZAXnaw== + dependencies: + chalk "^2.4.1" + "@bmp/pg@^0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@bmp/pg/-/pg-0.0.6.tgz#bd99845f0904971699f6621dc04d379f943c928c" @@ -2381,7 +2396,7 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -3117,7 +3132,7 @@ express-session@^1.15.1: safe-buffer "5.2.0" uid-safe "~2.1.5" -express@^4.14.0, express@^4.14.1, express@^4.17.1: +express@^4.14.1, express@^4.16.4, express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -3659,6 +3674,13 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +highlight-stack@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/highlight-stack/-/highlight-stack-0.2.1.tgz#478e5197e6181f738899c4a359ff3af46e7dcae3" + integrity sha512-dL4mQWJQv6Cd6SequySUNJBQat9VMwSVChxw8q8AEgBRh8SbUiXDG27RRPgvWyniGof6wkPQcLrwwyhmF4+ayw== + dependencies: + chalk "^2.4.1" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -4645,24 +4667,16 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -midwest-service-errors@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/midwest-service-errors/-/midwest-service-errors-0.2.0.tgz#83f426b180a5d30934038232de83598d5b0006f5" - integrity sha1-g/QmsYCl0wk0A4Iy3oNZjVsABvU= +midwest@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/midwest/-/midwest-0.5.2.tgz#c4ec3a7a38abd833c8226b96a328fd93066e17c9" + integrity sha512-gJ1wbw5iWhLOBXNvQIeuNHCZ06srGzFPh7oc9XSsvh0xpTSWNnZuQYfQ30WIb+CuFDZjDrR7CmJ79J4BLI2D/g== dependencies: - express "^4.14.0" - lodash "^4.17.4" - midwest "^0.4.0" - -midwest@^0.4.0, midwest@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/midwest/-/midwest-0.4.2.tgz#2666ab1f9b1c94f38fc8d375c4fd5f93550cd6fa" - integrity sha1-JmarH5sclPOPyNN1xP1fk1UM1vo= - dependencies: - chalk "^1.1.3" - debug "^2.6.0" - express "^4.14.0" - lodash "^4.17.4" + "@bmp/highlight-stack" "^0.1.1" + chalk "^2.4.1" + debug "^4.1.0" + express "^4.16.4" + lodash "^4.17.11" miller-rabin@^4.0.0: version "4.0.1"