From 1acd9723b9db221afc93432c281e7d3c915f7bc9 Mon Sep 17 00:00:00 2001 From: Brent Van Geertruy Date: Thu, 19 Apr 2018 14:26:44 +0200 Subject: [PATCH] Rewritten tests --- README.md | 12 -- package.json | 26 +--- src/lib/express.ts | 18 --- tests/express.test.ts | 43 +++--- yarn.lock | 351 ++++++++++++++++++++++++++++++------------ 5 files changed, 280 insertions(+), 170 deletions(-) diff --git a/README.md b/README.md index b0d23b3..c014b42 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,6 @@ import * as treehouse from 'tree-house' ## Security -### setLocalHeaders(app, route) - -**Only for development purposes!** - -Set headers to allow all options calls responding with a 204. This will prevent web applications from receiving an unauthorised response when trying to send a request from localhost. - -```javascript -const app = express(); - -treehouse.setLocalHeaders(app, '*') -``` - ### setBasicSecurity(app, route, options) Set some basic Express security using `cors` and `helmet`. diff --git a/package.json b/package.json index e3174d1..f5dd1b5 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "helmet": "~3.12.0", "https": "~1.0.0", "js-yaml": "~3.11.0", - "swagger-ui-express": "~2.0.9" + "swagger-ui-express": "~3.0.8" }, "devDependencies": { "@types/cors": "~2.8.3", @@ -37,34 +37,24 @@ "@types/express-brute": "~0.0.36", "@types/express-brute-redis": "~0.0.1", "@types/helmet": "~0.0.37", - "@types/jest": "~22.2.0", + "@types/jest": "~22.2.3", "@types/joi": "~13.0.7", "@types/supertest": "~2.0.4", "coveralls": "^3.0.0", - "jest": "^22.4.2", - "joi": "~13.1.2", + "jest": "^22.4.3", + "joi": "~13.2.0", "np": "^2.20.1", "pre-commit": "^1.2.2", "redis-mock": "0.21.0", "supertest": "^3.0.0", - "ts-jest": "~22.4.1", + "ts-jest": "~22.4.4", "tslint": "^5.9.1", - "tslint-config-airbnb": "^5.7.0", - "typescript": "^2.7.2" + "tslint-config-airbnb": "^5.8.0", + "typescript": "^2.8.1" }, "engines": { "node": ">=4.0.0" }, - "contributors": [ - { - "name": "Willem Horsten", - "email": "willem.horsten@icapps.com" - }, - { - "name": "Brent Van Geertruy", - "email": "brent.vangeertruy@icapps.com" - } - ], "repository": { "type": "git", "url": "git+https://github.com/icapps/tree-house.git" @@ -82,6 +72,6 @@ }, "homepage": "https://github.com/icapps/tree-house#readme", "directories": { - "test": "test" + "test": "tests" } } diff --git a/src/lib/express.ts b/src/lib/express.ts index 8c0b3a6..cb03799 100644 --- a/src/lib/express.ts +++ b/src/lib/express.ts @@ -8,24 +8,6 @@ import * as defaults from '../config/app.config'; const redisStore = require('express-brute-redis'); -/** - * Set headers for local development (Should only be used when environment is DEVELOPMENT) - * Fix for Chrome etc. (headers for local development) - */ -export function setLocalHeaders(app: Application, route: string): void { - // Add headers - app.use(route, (_req, res, next) => { - res.header('Access-Control-Allow-Origin', '*'); // TODO: Not best practice, allow to overwrite... - res.header('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With'); - res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, PATCH'); - return next(); - }); - - // Headers - fix for OPTIONS calls in localhost (Chrome etc.) - app.use(route, (req, res, next) => (req.method.toLowerCase() === 'options' ? res.sendStatus(204) : next())); -} - - /** * Set some basic security measurements */ diff --git a/tests/express.test.ts b/tests/express.test.ts index ed698bd..f1f0b35 100644 --- a/tests/express.test.ts +++ b/tests/express.test.ts @@ -4,30 +4,6 @@ const redisMock = require('redis-mock'); import { setLocalHeaders, setBasicSecurity, setBodyParser, setRateLimiter } from '../src'; describe('Express', () => { - describe('#setLocalHeaders', () => { - let app; - beforeEach(() => { - app = express(); - }); - - test('app should have Access-Control headers', async () => { - setLocalHeaders(app, '*'); - app.use('/', (req, res) => res.status(200).send('Welcome')); - - const { headers } = await request(app).get('/'); - expect(headers).toHaveProperty('access-control-allow-origin'); - expect(headers).toHaveProperty('access-control-allow-headers'); - expect(headers).toHaveProperty('access-control-allow-methods'); - }); - test('app should return 204 on OPTIONS call', async () => { - setLocalHeaders(app, '*'); - app.use('/', (req, res) => res.status(200).send('Welcome')); - - const { status } = await request(app).options('/'); - expect(status).toEqual(204); - }); - }); - describe('#setBasicSecurity', () => { let app; beforeEach(() => { @@ -64,6 +40,7 @@ describe('Express', () => { const { headers } = await request(app).get('/'); expect(headers).toHaveProperty('content-type'); }); + test('app should have content-type header (raw)', async () => { setBodyParser(app, '/', { raw: { limit: 500 } }); app.use('/', (req, res) => res.status(200).send('Welcome')); @@ -71,6 +48,24 @@ describe('Express', () => { const { headers } = await request(app).get('/'); expect(headers).toHaveProperty('content-type'); }); + + test('app should have content-type header (json)', async () => { + setBodyParser(app, '/', { json: { limit: 500 } }); + app.use('/', (req, res) => res.status(200).json({ name: 'Welcome' })); + + const { headers } = await request(app).get('/'); + expect(headers).toHaveProperty('content-type'); + }); + + + test('app should have content-type header (urlEncoded)', async () => { + setBodyParser(app, '/', { json: { limit: 500 } }); + app.use('/', (req, res) => res.status(200).send(encodeURI('Welcome'))); + + const { headers } = await request(app).get('/'); + expect(headers).toHaveProperty('content-type'); + }); + test('app should have content-type header (text)', async () => { setBodyParser(app, '/', { text: { limit: 500 } }); app.use('/', (req, res) => res.status(200).send('Welcome')); diff --git a/yarn.lock b/yarn.lock index 4256e24..b634728 100644 --- a/yarn.lock +++ b/yarn.lock @@ -82,9 +82,9 @@ dependencies: "@types/express" "*" -"@types/jest@~22.2.0": - version "22.2.0" - resolved "https://registry.npmjs.org/@types/jest/-/jest-22.2.0.tgz#55ce83139f7ad1b48b414c3927746614c6963c0f" +"@types/jest@~22.2.3": + version "22.2.3" + resolved "https://registry.npmjs.org/@types/jest/-/jest-22.2.3.tgz#0157c0316dc3722c43a7b71de3fdf3acbccef10d" "@types/joi@~13.0.7": version "13.0.7" @@ -373,7 +373,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^6.0.0, babel-core@^6.24.1, babel-core@^6.26.0: +babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: @@ -417,12 +417,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd" +babel-jest@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a" dependencies: babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.1" + babel-preset-jest "^22.4.3" babel-messages@^6.23.0: version "6.23.0" @@ -442,11 +442,15 @@ babel-plugin-jest-hoist@^22.4.1: version "22.4.1" resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63" +babel-plugin-jest-hoist@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz#7d8bcccadc2667f96a0dcc6afe1891875ee6c14a" + babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-transform-es2015-modules-commonjs@^6.24.1: +babel-plugin-transform-es2015-modules-commonjs@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" dependencies: @@ -462,13 +466,20 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-preset-jest@^22.4.0, babel-preset-jest@^22.4.1: +babel-preset-jest@^22.4.0: version "22.4.1" resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a" dependencies: babel-plugin-jest-hoist "^22.4.1" babel-plugin-syntax-object-rest-spread "^6.13.0" +babel-preset-jest@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156" + dependencies: + babel-plugin-jest-hoist "^22.4.3" + babel-plugin-syntax-object-rest-spread "^6.13.0" + babel-register@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" @@ -1332,6 +1343,17 @@ expect@^22.4.0: jest-message-util "^22.4.0" jest-regex-util "^22.1.0" +expect@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^22.4.3" + jest-get-type "^22.4.3" + jest-matcher-utils "^22.4.3" + jest-message-util "^22.4.3" + jest-regex-util "^22.4.3" + express-brute-redis@~0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/express-brute-redis/-/express-brute-redis-0.0.1.tgz#0f4c833a5c3c2505c0c5c9ba55108e224a247ef8" @@ -2399,15 +2421,15 @@ jackpot@>=0.0.6: dependencies: retry "0.6.0" -jest-changed-files@^22.2.0: - version "22.2.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e" +jest-changed-files@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2" dependencies: throat "^4.0.0" -jest-cli@^22.4.2: - version "22.4.2" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06" +jest-cli@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-22.4.3.tgz#bf16c4a5fb7edc3fa5b9bb7819e34139e88a72c7" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -2420,20 +2442,20 @@ jest-cli@^22.4.2: istanbul-lib-coverage "^1.1.1" istanbul-lib-instrument "^1.8.0" istanbul-lib-source-maps "^1.2.1" - jest-changed-files "^22.2.0" - jest-config "^22.4.2" - jest-environment-jsdom "^22.4.1" - jest-get-type "^22.1.0" - jest-haste-map "^22.4.2" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" - jest-resolve-dependencies "^22.1.0" - jest-runner "^22.4.2" - jest-runtime "^22.4.2" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - jest-validate "^22.4.2" - jest-worker "^22.2.2" + jest-changed-files "^22.4.3" + jest-config "^22.4.3" + jest-environment-jsdom "^22.4.3" + jest-get-type "^22.4.3" + jest-haste-map "^22.4.3" + jest-message-util "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve-dependencies "^22.4.3" + jest-runner "^22.4.3" + jest-runtime "^22.4.3" + jest-snapshot "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" + jest-worker "^22.4.3" micromatch "^2.3.11" node-notifier "^5.2.1" realpath-native "^1.0.0" @@ -2444,7 +2466,7 @@ jest-cli@^22.4.2: which "^1.2.12" yargs "^10.0.3" -jest-config@^22.4.0, jest-config@^22.4.2: +jest-config@^22.4.2: version "22.4.2" resolved "https://registry.npmjs.org/jest-config/-/jest-config-22.4.2.tgz#580ba5819bf81a5e48f4fd470e8b81834f45c855" dependencies: @@ -2460,6 +2482,22 @@ jest-config@^22.4.0, jest-config@^22.4.2: jest-validate "^22.4.2" pretty-format "^22.4.0" +jest-config@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-22.4.3.tgz#0e9d57db267839ea31309119b41dc2fa31b76403" + dependencies: + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^22.4.3" + jest-environment-node "^22.4.3" + jest-get-type "^22.4.3" + jest-jasmine2 "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" + pretty-format "^22.4.3" + jest-diff@^22.4.0: version "22.4.0" resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz#384c2b78519ca44ca126382df53f134289232525" @@ -2469,9 +2507,18 @@ jest-diff@^22.4.0: jest-get-type "^22.1.0" pretty-format "^22.4.0" -jest-docblock@^22.4.0: - version "22.4.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8" +jest-diff@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + +jest-docblock@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19" dependencies: detect-newline "^2.1.0" @@ -2483,6 +2530,14 @@ jest-environment-jsdom@^22.4.1: jest-util "^22.4.1" jsdom "^11.5.1" +jest-environment-jsdom@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + jsdom "^11.5.1" + jest-environment-node@^22.4.1: version "22.4.1" resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.1.tgz#418850eb654596b8d6e36c2021cbedbc23df8e16" @@ -2490,19 +2545,30 @@ jest-environment-node@^22.4.1: jest-mock "^22.2.0" jest-util "^22.4.1" +jest-environment-node@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.3.tgz#54c4eaa374c83dd52a9da8759be14ebe1d0b9129" + dependencies: + jest-mock "^22.4.3" + jest-util "^22.4.3" + jest-get-type@^22.1.0: version "22.1.0" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" -jest-haste-map@^22.4.2: - version "22.4.2" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4" +jest-get-type@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^22.4.0" - jest-serializer "^22.4.0" - jest-worker "^22.2.2" + jest-docblock "^22.4.3" + jest-serializer "^22.4.3" + jest-worker "^22.4.3" micromatch "^2.3.11" sane "^2.0.0" @@ -2522,11 +2588,27 @@ jest-jasmine2@^22.4.2: jest-util "^22.4.1" source-map-support "^0.5.0" -jest-leak-detector@^22.4.0: - version "22.4.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.0.tgz#64da77f05b001c96d2062226e079f89989c4aa2f" +jest-jasmine2@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz#4daf64cd14c793da9db34a7c7b8dcfe52a745965" dependencies: - pretty-format "^22.4.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^22.4.3" + graceful-fs "^4.1.11" + is-generator-fn "^1.0.0" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" + jest-message-util "^22.4.3" + jest-snapshot "^22.4.3" + jest-util "^22.4.3" + source-map-support "^0.5.0" + +jest-leak-detector@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" + dependencies: + pretty-format "^22.4.3" jest-matcher-utils@^22.4.0: version "22.4.0" @@ -2536,6 +2618,14 @@ jest-matcher-utils@^22.4.0: jest-get-type "^22.1.0" pretty-format "^22.4.0" +jest-matcher-utils@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" + dependencies: + chalk "^2.0.1" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" + jest-message-util@^22.4.0: version "22.4.0" resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.0.tgz#e3d861df16d2fee60cb2bc8feac2188a42579642" @@ -2546,19 +2636,37 @@ jest-message-util@^22.4.0: slash "^1.0.0" stack-utils "^1.0.1" +jest-message-util@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.3.tgz#cf3d38aafe4befddbfc455e57d65d5239e399eb7" + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + jest-mock@^22.2.0: version "22.2.0" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7" +jest-mock@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-22.4.3.tgz#f63ba2f07a1511772cdc7979733397df770aabc7" + jest-regex-util@^22.1.0: version "22.1.0" resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53" -jest-resolve-dependencies@^22.1.0: - version "22.1.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31" +jest-regex-util@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af" + +jest-resolve-dependencies@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" dependencies: - jest-regex-util "^22.1.0" + jest-regex-util "^22.4.3" jest-resolve@^22.4.2: version "22.4.2" @@ -2567,39 +2675,46 @@ jest-resolve@^22.4.2: browser-resolve "^1.11.2" chalk "^2.0.1" -jest-runner@^22.4.2: - version "22.4.2" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.2.tgz#19390ea9d99f768973e16f95a1efa351c0017e87" +jest-resolve@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" + dependencies: + browser-resolve "^1.11.2" + chalk "^2.0.1" + +jest-runner@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-22.4.3.tgz#298ddd6a22b992c64401b4667702b325e50610c3" dependencies: exit "^0.1.2" - jest-config "^22.4.2" - jest-docblock "^22.4.0" - jest-haste-map "^22.4.2" - jest-jasmine2 "^22.4.2" - jest-leak-detector "^22.4.0" - jest-message-util "^22.4.0" - jest-runtime "^22.4.2" - jest-util "^22.4.1" - jest-worker "^22.2.2" + jest-config "^22.4.3" + jest-docblock "^22.4.3" + jest-haste-map "^22.4.3" + jest-jasmine2 "^22.4.3" + jest-leak-detector "^22.4.3" + jest-message-util "^22.4.3" + jest-runtime "^22.4.3" + jest-util "^22.4.3" + jest-worker "^22.4.3" throat "^4.0.0" -jest-runtime@^22.4.2: - version "22.4.2" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.2.tgz#0de0444f65ce15ee4f2e0055133fc7c17b9168f3" +jest-runtime@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.4.3.tgz#b69926c34b851b920f666c93e86ba2912087e3d0" dependencies: babel-core "^6.0.0" - babel-jest "^22.4.1" + babel-jest "^22.4.3" babel-plugin-istanbul "^4.1.5" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" graceful-fs "^4.1.11" - jest-config "^22.4.2" - jest-haste-map "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" + jest-config "^22.4.3" + jest-haste-map "^22.4.3" + jest-regex-util "^22.4.3" + jest-resolve "^22.4.3" + jest-util "^22.4.3" + jest-validate "^22.4.3" json-stable-stringify "^1.0.1" micromatch "^2.3.11" realpath-native "^1.0.0" @@ -2608,9 +2723,9 @@ jest-runtime@^22.4.2: write-file-atomic "^2.1.0" yargs "^10.0.3" -jest-serializer@^22.4.0: - version "22.4.0" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.0.tgz#b5d145b98c4b0d2c20ab686609adbb81fe23b566" +jest-serializer@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436" jest-snapshot@^22.4.0: version "22.4.0" @@ -2623,6 +2738,17 @@ jest-snapshot@^22.4.0: natural-compare "^1.4.0" pretty-format "^22.4.0" +jest-snapshot@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" + dependencies: + chalk "^2.0.1" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^22.4.3" + jest-util@^22.4.1: version "22.4.1" resolved "https://registry.npmjs.org/jest-util/-/jest-util-22.4.1.tgz#dd17c3bdb067f8e90591563ec0c42bf847dc249f" @@ -2635,6 +2761,18 @@ jest-util@^22.4.1: mkdirp "^0.5.1" source-map "^0.6.0" +jest-util@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac" + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^22.4.3" + mkdirp "^0.5.1" + source-map "^0.6.0" + jest-validate@^22.4.2: version "22.4.2" resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.2.tgz#e789a4e056173bf97fe797a2df2d52105c57d4f4" @@ -2645,22 +2783,32 @@ jest-validate@^22.4.2: leven "^2.1.0" pretty-format "^22.4.0" -jest-worker@^22.2.2: - version "22.2.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390" +jest-validate@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.3.tgz#0780954a5a7daaeec8d3c10834b9280865976b30" + dependencies: + chalk "^2.0.1" + jest-config "^22.4.3" + jest-get-type "^22.4.3" + leven "^2.1.0" + pretty-format "^22.4.3" + +jest-worker@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b" dependencies: merge-stream "^1.0.1" -jest@^22.4.2: - version "22.4.2" - resolved "https://registry.npmjs.org/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20" +jest@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/jest/-/jest-22.4.3.tgz#2261f4b117dc46d9a4a1a673d2150958dee92f16" dependencies: import-local "^1.0.0" - jest-cli "^22.4.2" + jest-cli "^22.4.3" -joi@~13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/joi/-/joi-13.1.2.tgz#b2db260323cc7f919fafa51e09e2275bd089a97e" +joi@~13.2.0: + version "13.2.0" + resolved "https://registry.npmjs.org/joi/-/joi-13.2.0.tgz#72307f1765bb40b068361f9368a4ba1092b8478e" dependencies: hoek "5.x.x" isemail "3.x.x" @@ -3595,6 +3743,13 @@ pretty-format@^22.4.0: ansi-regex "^3.0.0" ansi-styles "^3.2.0" +pretty-format@^22.4.3: + version "22.4.3" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + private@^0.1.7: version "0.1.8" resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -4385,9 +4540,9 @@ supports-hyperlinks@^1.0.1: has-flag "^2.0.0" supports-color "^5.0.0" -swagger-ui-express@~2.0.9: - version "2.0.15" - resolved "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-2.0.15.tgz#fba85a357b40c0d629e942537199987b8085587d" +swagger-ui-express@~3.0.8: + version "3.0.8" + resolved "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-3.0.8.tgz#75b4a4271f50ec40c774b7e66e08778db267049f" symbol-observable@1.0.1: version "1.0.1" @@ -4512,17 +4667,17 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -ts-jest@~22.4.1: - version "22.4.1" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-22.4.1.tgz#69defb2042d689cff9b4244365ef638ecd35f706" +ts-jest@~22.4.4: + version "22.4.4" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-22.4.4.tgz#7b5c0abb2188fe7170840df9f80e78659aaf8a24" dependencies: - babel-core "^6.24.1" + babel-core "^6.26.0" babel-plugin-istanbul "^4.1.4" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" babel-preset-jest "^22.4.0" cpx "^1.5.0" fs-extra "4.0.3" - jest-config "^22.4.0" + jest-config "^22.4.2" pkg-dir "^2.0.0" yargs "^11.0.0" @@ -4530,9 +4685,9 @@ tslib@^1.0.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1: version "1.9.0" resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" -tslint-config-airbnb@^5.7.0: - version "5.7.0" - resolved "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.7.0.tgz#09ff04b0dd599765f44b4425004458d08fcb2c40" +tslint-config-airbnb@^5.8.0: + version "5.8.0" + resolved "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.8.0.tgz#0398cf4b5a8715b604cb40e9580532c5c0e68716" dependencies: tslint-consistent-codestyle "^1.10.0" tslint-eslint-rules "^4.1.1" @@ -4614,9 +4769,9 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" +typescript@^2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624" uglify-js@^2.6: version "2.8.29"