From a7c6250c8ad90f99c03dcb56e5a7a7a254665d4b Mon Sep 17 00:00:00 2001 From: James Newell Date: Tue, 20 Feb 2018 15:54:35 +1100 Subject: [PATCH] de-type body to allow use of ArrayBuffer, Blob or something else --- .prettierrc.js | 4 + packages/xhr-mock-tests/src/native.test.ts | 26 ++ packages/xhr-mock/CHANGELOG.md | 4 + packages/xhr-mock/package.json | 2 +- packages/xhr-mock/src/MockResponse.ts | 8 +- .../xhr-mock/src/MockXMLHttpRequest.test.ts | 27 ++ packages/xhr-mock/src/MockXMLHttpRequest.ts | 3 +- .../src/MockXMLHttpRequestEventTarget.ts | 2 +- packages/xhr-mock/src/types.ts | 2 +- yarn.lock | 311 ++++++++++-------- 10 files changed, 236 insertions(+), 153 deletions(-) create mode 100644 .prettierrc.js create mode 100644 packages/xhr-mock-tests/src/native.test.ts diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..f0b3c3c --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,4 @@ +module.exports = { + printWidth: 120, + singleQuote: true +}; diff --git a/packages/xhr-mock-tests/src/native.test.ts b/packages/xhr-mock-tests/src/native.test.ts new file mode 100644 index 0000000..dd02e90 --- /dev/null +++ b/packages/xhr-mock-tests/src/native.test.ts @@ -0,0 +1,26 @@ +import {expect} from 'chai'; +import mock from 'xhr-mock'; + +describe('native', () => { + beforeEach(() => mock.setup()); + afterEach(() => mock.teardown()); + + it('should get a blob', done => { + mock.get('/myfile.png', { + body: new ArrayBuffer(0) + }); + + // sourced from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data + const req = new XMLHttpRequest(); + req.open('GET', '/myfile.png', true); + req.responseType = 'arraybuffer'; + + req.onload = function(oEvent) { + const arrayBuffer = req.response; // Note: not oReq.responseText + expect(arrayBuffer).to.be.an('ArrayBuffer'); + done(); + }; + + req.send(null); + }); +}); diff --git a/packages/xhr-mock/CHANGELOG.md b/packages/xhr-mock/CHANGELOG.md index 85c1144..08a7f1f 100644 --- a/packages/xhr-mock/CHANGELOG.md +++ b/packages/xhr-mock/CHANGELOG.md @@ -1,5 +1,9 @@ # Change log +# 2.2.0 + +* added "support" for `responseType` of `arraybuffer`, `blob` and `document` by returning whatever object `res.body(body)` is set to + ## 2.1.0 * added support for `responseType="json"` diff --git a/packages/xhr-mock/package.json b/packages/xhr-mock/package.json index 28bdf6a..3b473eb 100644 --- a/packages/xhr-mock/package.json +++ b/packages/xhr-mock/package.json @@ -1,6 +1,6 @@ { "name": "xhr-mock", - "version": "2.1.0", + "version": "2.2.0", "description": "Utility for mocking XMLHttpRequest.", "keywords": [ "mock", diff --git a/packages/xhr-mock/src/MockResponse.ts b/packages/xhr-mock/src/MockResponse.ts index 0df289a..010e909 100644 --- a/packages/xhr-mock/src/MockResponse.ts +++ b/packages/xhr-mock/src/MockResponse.ts @@ -6,7 +6,7 @@ export default class MockResponse { private _status: number = 200; private _reason: string = 'OK'; private _headers: MockHeaders = {}; - private _body: null | string = null; + private _body: any = null; status(): number; status(status: number): MockResponse; @@ -69,9 +69,9 @@ export default class MockResponse { } } - body(): null | string; - body(body: null | string): MockResponse; - body(body?: null | string): null | string | MockResponse { + body(): any; + body(body: any): MockResponse; + body(body?: any): any | MockResponse { if (typeof body !== 'undefined') { this._body = body; return this; diff --git a/packages/xhr-mock/src/MockXMLHttpRequest.test.ts b/packages/xhr-mock/src/MockXMLHttpRequest.test.ts index 978e1cf..b8b1f40 100644 --- a/packages/xhr-mock/src/MockXMLHttpRequest.test.ts +++ b/packages/xhr-mock/src/MockXMLHttpRequest.test.ts @@ -100,6 +100,33 @@ describe('MockXMLHttpRequest', () => { xhr.open('get', '/'); xhr.send(); }); + + it('should return null when the type is other and the request is not done', () => { + const fakeBuffer = {}; + MockXMLHttpRequest.addHandler((req, res) => res.body(fakeBuffer)); + const xhr = new MockXMLHttpRequest(); + xhr.responseType = 'blob'; + xhr.open('get', '/'); + expect(xhr.response).toEqual(null); + }); + + it('should return an object when the type is other and the request is done', done => { + const fakeBuffer = {}; + MockXMLHttpRequest.addHandler((req, res) => res.body(fakeBuffer)); + const xhr = new MockXMLHttpRequest(); + xhr.responseType = 'blob'; + xhr.onload = () => { + try { + expect(xhr.response).toBe(fakeBuffer); + done(); + } catch (error) { + done.fail(error); + } + }; + xhr.onerror = failOnEvent(done); + xhr.open('get', '/'); + xhr.send(); + }); }); describe('.setRequestHeader()', () => { diff --git a/packages/xhr-mock/src/MockXMLHttpRequest.ts b/packages/xhr-mock/src/MockXMLHttpRequest.ts index 8108b86..5a798ee 100644 --- a/packages/xhr-mock/src/MockXMLHttpRequest.ts +++ b/packages/xhr-mock/src/MockXMLHttpRequest.ts @@ -156,7 +156,8 @@ export default class MockXMLHttpRequest extends MockXMLHttpRequestEventTarget } } - throw notImplementedError; + // rely on the mock to do the right thing with an arraybuffer, blob or document + return body; } get responseText(): string { diff --git a/packages/xhr-mock/src/MockXMLHttpRequestEventTarget.ts b/packages/xhr-mock/src/MockXMLHttpRequestEventTarget.ts index d6286aa..d55da67 100644 --- a/packages/xhr-mock/src/MockXMLHttpRequestEventTarget.ts +++ b/packages/xhr-mock/src/MockXMLHttpRequestEventTarget.ts @@ -6,7 +6,7 @@ export default class MockXMLHttpRequestEventTarget extends MockEventTarget implements XMLHttpRequestEventTarget { onabort: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any; // @ts-ignore: https://github.com/jameslnewell/xhr-mock/issues/45 - onerror: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any; + onerror: (this: XMLHttpRequestEventTarget, ev: ErrorEvent) => any; onload: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any; onloadend: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any; onloadstart: (this: XMLHttpRequestEventTarget, ev: ProgressEvent) => any; diff --git a/packages/xhr-mock/src/types.ts b/packages/xhr-mock/src/types.ts index 4bcde4b..90676d9 100644 --- a/packages/xhr-mock/src/types.ts +++ b/packages/xhr-mock/src/types.ts @@ -10,7 +10,7 @@ export type MockObject = { status?: number; reason?: string; headers?: MockHeaders; - body?: string; + body?: any; }; export type MockFunction = ( diff --git a/yarn.lock b/yarn.lock index d4e33fe..11fb548 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,7 +45,7 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.1.0, ansi-styles@^3.2.0: +ansi-styles@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" dependencies: @@ -67,8 +67,8 @@ are-we-there-yet@~1.1.2: readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" @@ -107,8 +107,8 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -161,13 +161,13 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" dependencies: - ansi-styles "^3.1.0" + ansi-styles "^3.2.0" escape-string-regexp "^1.0.5" - supports-color "^4.0.0" + supports-color "^5.2.0" chardet@^0.4.0: version "0.4.2" @@ -256,9 +256,9 @@ command-join@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" -commander@^2.11.0, commander@^2.9.0: - version "2.12.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" +commander@^2.11.0, commander@^2.12.1, commander@^2.9.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" compare-func@^1.3.1: version "1.3.2" @@ -283,46 +283,46 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -conventional-changelog-angular@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz#0a26a071f2c9fcfcf2b86ba0cfbf6e6301b75bfa" +conventional-changelog-angular@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.5.tgz#936249e897501affdffc6043da45cab59d6f0907" dependencies: compare-func "^1.3.1" q "^1.4.1" -conventional-changelog-atom@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz#12595ad5267a6937c34cf900281b1c65198a4c63" +conventional-changelog-atom@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.3.tgz#117d024e5cf9e28dcbd0575981105395be1bca74" dependencies: q "^1.4.1" -conventional-changelog-cli@^1.3.2: - version "1.3.5" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.5.tgz#46c51496216b7406588883defa6fac589e9bb31e" +conventional-changelog-cli@^1.3.13: + version "1.3.14" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.14.tgz#2560f640929baf97bb65457f77a12a57d5322852" dependencies: add-stream "^1.0.0" - conventional-changelog "^1.1.7" + conventional-changelog "^1.1.16" lodash "^4.1.0" meow "^3.7.0" tempfile "^1.1.1" -conventional-changelog-codemirror@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz#299a4f7147baf350e6c8158fc54954a291c5cc09" +conventional-changelog-codemirror@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.3.tgz#e1ec78e77e7fe26a2bd18e32f02523527916a07b" dependencies: q "^1.4.1" -conventional-changelog-core@^1.9.3: - version "1.9.5" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz#5db7566dad7c0cb75daf47fbb2976f7bf9928c1d" +conventional-changelog-core@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.4.tgz#bbc476109c6b28ba6328b0b417f5ab5bfc7ca28a" dependencies: - conventional-changelog-writer "^2.0.3" - conventional-commits-parser "^2.1.0" + conventional-changelog-writer "^3.0.3" + conventional-commits-parser "^2.1.4" dateformat "^1.0.12" get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.0" + git-raw-commits "^1.3.3" git-remote-origin-url "^2.0.0" - git-semver-tags "^1.2.3" + git-semver-tags "^1.3.3" lodash "^4.0.0" normalize-package-data "^2.3.5" q "^1.4.1" @@ -330,21 +330,21 @@ conventional-changelog-core@^1.9.3: read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.10.tgz#dcd6e4cdc2e6c2b58653cf4d2cb1656a60421929" +conventional-changelog-ember@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.5.tgz#db9a23f01103c6a0446ed2077ed5c87656d0571a" dependencies: q "^1.4.1" -conventional-changelog-eslint@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz#2c2a11beb216f80649ba72834180293b687c0662" +conventional-changelog-eslint@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.3.tgz#023002a3f776266c501e4d4def7b0bb24130f29d" dependencies: q "^1.4.1" -conventional-changelog-express@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz#838d9e1e6c9099703b150b9c19aa2d781742bd6c" +conventional-changelog-express@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.3.tgz#25aef42a30b5457f97681a94f2ac9b0ee515484a" dependencies: q "^1.4.1" @@ -360,19 +360,23 @@ conventional-changelog-jscs@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-jshint@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz#86139bb3ac99899f2b177e9617e09b37d99bcf3a" +conventional-changelog-jshint@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.3.tgz#28b6fe4d41fb945f38c6c31cd195fe37594f0007" dependencies: compare-func "^1.3.1" q "^1.4.1" -conventional-changelog-writer@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz#073b0c39f1cc8fc0fd9b1566e93833f51489c81c" +conventional-changelog-preset-loader@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.5.tgz#d5af525d7ad81179d9b54137284d74d665997fa7" + +conventional-changelog-writer@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.3.tgz#2faa65739370769639fff1c0008722162936d46c" dependencies: compare-func "^1.3.1" - conventional-commits-filter "^1.1.1" + conventional-commits-filter "^1.1.4" dateformat "^1.0.11" handlebars "^4.0.2" json-stringify-safe "^5.0.1" @@ -382,31 +386,32 @@ conventional-changelog-writer@^2.0.3: split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.7.tgz#9151a62b1d8edb2d82711dabf5b7cf71041f82b1" - dependencies: - conventional-changelog-angular "^1.5.2" - conventional-changelog-atom "^0.1.2" - conventional-changelog-codemirror "^0.2.1" - conventional-changelog-core "^1.9.3" - conventional-changelog-ember "^0.2.9" - conventional-changelog-eslint "^0.2.1" - conventional-changelog-express "^0.2.1" +conventional-changelog@^1.1.16: + version "1.1.16" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.16.tgz#fa78386c831f5b1ae45f60391ef015c2a4a400b9" + dependencies: + conventional-changelog-angular "^1.6.5" + conventional-changelog-atom "^0.2.3" + conventional-changelog-codemirror "^0.3.3" + conventional-changelog-core "^2.0.4" + conventional-changelog-ember "^0.3.5" + conventional-changelog-eslint "^1.0.3" + conventional-changelog-express "^0.3.3" conventional-changelog-jquery "^0.1.0" conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.2.1" + conventional-changelog-jshint "^0.3.3" + conventional-changelog-preset-loader "^1.1.5" -conventional-commits-filter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz#72172319c0c88328a015b30686b55527b3a5e54a" +conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.4.tgz#8b5be3979c372e4f7440180d5c655a94ac5a134a" dependencies: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz#9b4b7c91124bf2a1a9a2cc1c72760d382cbbb229" +conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.4.tgz#86d2c21029268d99543c4ebda37d76fe5c44d8d1" dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" @@ -416,15 +421,15 @@ conventional-commits-parser@^2.1.0: through2 "^2.0.0" trim-off-newlines "^1.0.0" -conventional-recommended-bump@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.1.0.tgz#964d4fcc70fb5259d41fa9b39d3df6afdb87d253" +conventional-recommended-bump@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" dependencies: concat-stream "^1.4.10" conventional-commits-filter "^1.1.1" - conventional-commits-parser "^2.1.0" + conventional-commits-parser "^2.1.1" git-raw-commits "^1.3.0" - git-semver-tags "^1.2.3" + git-semver-tags "^1.3.0" meow "^3.3.0" object-assign "^4.0.1" @@ -665,9 +670,9 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" -git-raw-commits@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.0.tgz#0bc8596e90d5ffe736f7f5546bd2d12f73abaac6" +git-raw-commits@^1.3.0, git-raw-commits@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.3.tgz#464f9aa14c4e78235e98654f0da467f3702590f9" dependencies: dargs "^4.0.1" lodash.template "^4.0.2" @@ -682,9 +687,9 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.3.tgz#188b453882bf9d7a23afd31baba537dab7388d5d" +git-semver-tags@^1.3.0, git-semver-tags@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.3.tgz#0b0416c43285adfdc93a8038ea25502a09319245" dependencies: meow "^3.3.0" semver "^5.0.1" @@ -759,9 +764,9 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" has-unicode@^2.0.0: version "2.0.1" @@ -954,13 +959,17 @@ js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.4.3: +js-yaml@^3.4.3, js-yaml@^3.7.0: version "3.10.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" dependencies: argparse "^1.0.7" esprima "^4.0.0" +json-parse-better-errors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -992,16 +1001,16 @@ lcid@^1.0.0: invert-kv "^1.0.0" lerna@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.6.0.tgz#865377717ca9e0daa5a2fbb00e364968d533650a" + version "2.9.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.9.0.tgz#303f70bc50b1c4541bdcf54eda13c36fe54401f3" dependencies: async "^1.5.0" chalk "^2.1.0" cmd-shim "^2.0.2" columnify "^1.5.4" command-join "^2.0.0" - conventional-changelog-cli "^1.3.2" - conventional-recommended-bump "^1.0.1" + conventional-changelog-cli "^1.3.13" + conventional-recommended-bump "^1.2.1" dedent "^0.7.0" execa "^0.8.0" find-up "^2.1.0" @@ -1014,7 +1023,7 @@ lerna@^2.6.0: hosted-git-info "^2.5.0" inquirer "^3.2.2" is-ci "^1.0.10" - load-json-file "^3.0.0" + load-json-file "^4.0.0" lodash "^4.17.4" minimatch "^3.0.4" npmlog "^4.1.2" @@ -1022,7 +1031,7 @@ lerna@^2.6.0: package-json "^4.0.1" path-exists "^3.0.0" read-cmd-shim "^1.0.1" - read-pkg "^2.0.0" + read-pkg "^3.0.0" rimraf "^2.6.1" safe-buffer "^5.1.1" semver "^5.4.1" @@ -1125,13 +1134,13 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" -load-json-file@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-3.0.0.tgz#7eb3735d983a7ed2262ade4ff769af5369c5c440" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" dependencies: graceful-fs "^4.1.2" - parse-json "^3.0.0" - pify "^2.0.0" + parse-json "^4.0.0" + pify "^3.0.0" strip-bom "^3.0.0" locate-path@^2.0.0: @@ -1159,8 +1168,8 @@ lodash.templatesettings@^4.0.0: lodash._reinterpolate "~3.0.0" lodash@^4.0.0, lodash@^4.1.0, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" log-symbols@^1.0.2: version "1.0.2" @@ -1169,8 +1178,8 @@ log-symbols@^1.0.2: chalk "^1.0.0" log-symbols@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.1.0.tgz#f35fa60e278832b538dc4dddcbb478a45d3e3be6" + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: chalk "^2.0.1" @@ -1204,8 +1213,8 @@ lru-cache@^4.0.1: yallist "^2.1.2" make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" dependencies: pify "^3.0.0" @@ -1235,8 +1244,8 @@ meow@^3.3.0, meow@^3.7.0: trim-newlines "^1.0.0" mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" minimatch@^3.0.0, minimatch@^3.0.4: version "3.0.4" @@ -1419,11 +1428,12 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse-json@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-3.0.0.tgz#fa6f47b18e23826ead32f263e744d0e1e847fb13" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" dependencies: error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" path-dirname@^1.0.0: version "1.0.2" @@ -1465,6 +1475,12 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -1488,8 +1504,8 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" prettier@^1.9.2: - version "1.10.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.1.tgz#01423fea6957ea23618d37d339ef0e7f7c967fc6" + version "1.10.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" pretty-format@^21.2.1: version "21.2.1" @@ -1498,9 +1514,9 @@ pretty-format@^21.2.1: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" pseudomap@^1.0.2: version "1.0.2" @@ -1511,8 +1527,8 @@ q@^1.4.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" rc@^1.0.1, rc@^1.1.6: - version "1.2.3" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.3.tgz#51575a900f8dd68381c710b4712c2154c3e2035b" + version "1.2.5" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" dependencies: deep-extend "~0.4.0" ini "~1.3.0" @@ -1555,14 +1571,22 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + version "2.3.4" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" safe-buffer "~5.1.1" string_decoder "~1.0.3" util-deprecate "~1.0.1" @@ -1575,8 +1599,8 @@ redent@^1.0.0: strip-indent "^1.0.1" registry-auth-token@^3.0.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" dependencies: rc "^1.1.6" safe-buffer "^5.0.1" @@ -1668,8 +1692,8 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -1773,8 +1797,8 @@ string_decoder@~1.0.3: safe-buffer "~5.1.0" stringify-object@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.1.tgz#2720c2eff940854c819f6ee252aaeb581f30624d" + version "3.2.2" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" dependencies: get-own-enumerable-property-symbols "^2.0.1" is-obj "^1.0.1" @@ -1834,11 +1858,11 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" +supports-color@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" dependencies: - has-flag "^2.0.0" + has-flag "^3.0.0" symbol-observable@1.0.1: version "1.0.1" @@ -1899,39 +1923,36 @@ trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" -tslib@^1.7.1, tslib@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.8.1.tgz#6946af2d1d651a7b1863b531d6e5afa41aa44eac" +tslib@^1.8.0, tslib@^1.8.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" tslint-microsoft-contrib@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.0.1.tgz#328ee9c28d07cdf793293204c96e2ffab9221994" + version "5.0.3" + resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.0.3.tgz#6fc3e238179cd72045c2b422e4d655f4183a8d5c" dependencies: - tsutils "^1.4.0" + tsutils "^2.12.1" tslint@^5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.8.0.tgz#1f49ad5b2e77c76c3af4ddcae552ae4e3612eb13" + version "5.9.1" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" - chalk "^2.1.0" - commander "^2.9.0" + chalk "^2.3.0" + commander "^2.12.1" diff "^3.2.0" glob "^7.1.1" + js-yaml "^3.7.0" minimatch "^3.0.4" resolve "^1.3.2" semver "^5.3.0" - tslib "^1.7.1" + tslib "^1.8.0" tsutils "^2.12.1" -tsutils@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" - tsutils@^2.12.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.16.0.tgz#ad8e83f47bef4f7d24d173cc6cd180990c831105" + version "2.21.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.21.1.tgz#5b23c263233300ed7442b4217855cbc7547c296a" dependencies: tslib "^1.8.1" @@ -1940,8 +1961,8 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typescript@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" + version "2.7.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" uglify-js@^2.6: version "2.8.29" @@ -1979,8 +2000,8 @@ uuid@^2.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" uuid@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" validate-npm-package-license@^3.0.1: version "3.0.1"