From 20c80488d46856c027089512d24799950e613e74 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Thu, 13 Dec 2018 22:06:53 +0100 Subject: [PATCH 01/49] Chore/reduce bundle size (#2659) Use our own flowRight-like function instead of using lodash.flowright. In addition to being smaller, this implementation does not require using CommonJS require to import a separate package. --- package-lock.json | 31 ++++++++++--------- package.json | 1 - src/Query.tsx | 2 -- src/browser.ts | 4 +-- src/utils/flowRight.ts | 11 +++++++ .../client/graphql/shared-operations.test.tsx | 3 +- test/client/utils/flowRight.test.tsx | 11 +++++++ 7 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 src/utils/flowRight.ts create mode 100644 test/client/utils/flowRight.test.tsx diff --git a/package-lock.json b/package-lock.json index 906c963dde..0a26d20ac1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2486,7 +2486,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -2981,7 +2981,7 @@ }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { @@ -3403,7 +3403,8 @@ "version": "1.1.0", "resolved": false, "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -3415,7 +3416,8 @@ "version": "1.1.0", "resolved": false, "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3546,7 +3548,8 @@ "version": "2.0.3", "resolved": false, "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3560,6 +3563,7 @@ "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3699,7 +3703,8 @@ "version": "1.0.1", "resolved": false, "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -3850,6 +3855,7 @@ "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -6342,11 +6348,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.flowright": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flowright/-/lodash.flowright-3.5.0.tgz", - "integrity": "sha1-K1//OZcW1+fcVyT+k0n2cGUYTWc=" - }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -7659,7 +7660,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -8707,7 +8708,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } @@ -9723,7 +9724,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -10108,7 +10109,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } diff --git a/package.json b/package.json index add8b84c00..65d3764d64 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,6 @@ "fbjs": "^1.0.0", "hoist-non-react-statics": "^3.0.0", "invariant": "^2.2.2", - "lodash.flowright": "^3.5.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0" } diff --git a/src/Query.tsx b/src/Query.tsx index 97a88c9e3d..185db0883f 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -3,8 +3,6 @@ import * as PropTypes from 'prop-types'; import ApolloClient, { ObservableQuery, ApolloError, - FetchPolicy, - ErrorPolicy, ApolloQueryResult, NetworkStatus, FetchMoreOptions, diff --git a/src/browser.ts b/src/browser.ts index 6099aac2b0..8ca7bb6632 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -28,6 +28,4 @@ export * from './types'; export * from './walkTree'; -// XXX remove in the next breaking semver change (3.0) -const compose = require('lodash.flowright'); -export { compose }; +export { compose } from './utils/flowRight'; diff --git a/src/utils/flowRight.ts b/src/utils/flowRight.ts new file mode 100644 index 0000000000..d3f52a3c9d --- /dev/null +++ b/src/utils/flowRight.ts @@ -0,0 +1,11 @@ +export function compose(...funcs: Function[]) { + const functions = funcs.reverse(); + return function (...args: any[]) { + const [firstFunction, ...restFunctions] = functions + let result = firstFunction.apply(null, args); + restFunctions.forEach((fnc) => { + result = fnc.call(null, result) + }); + return result; + } +} diff --git a/test/client/graphql/shared-operations.test.tsx b/test/client/graphql/shared-operations.test.tsx index 51777c4cc6..d7307b649e 100644 --- a/test/client/graphql/shared-operations.test.tsx +++ b/test/client/graphql/shared-operations.test.tsx @@ -6,10 +6,9 @@ import { InMemoryCache as Cache } from 'apollo-cache-inmemory'; import { ApolloLink } from 'apollo-link'; import * as TestUtils from 'react-dom/test-utils'; import { DocumentNode } from 'graphql'; -const compose = require('lodash.flowright'); import { mockSingleLink } from '../../../src/test-utils'; -import { ApolloProvider, ChildProps, DataValue, graphql, withApollo } from '../../../src'; +import { compose, ApolloProvider, ChildProps, DataValue, graphql, withApollo } from '../../../src'; describe('shared operations', () => { describe('withApollo', () => { diff --git a/test/client/utils/flowRight.test.tsx b/test/client/utils/flowRight.test.tsx new file mode 100644 index 0000000000..4cc311470a --- /dev/null +++ b/test/client/utils/flowRight.test.tsx @@ -0,0 +1,11 @@ +import { compose } from '../../../src'; + +describe('compose', () => { + it('Should reverse execute the array of functions', () => { + const add = (x: number, y: number) => x + y; + const square = (x: number) => x * x; + const flow = compose(square, add); + const result = flow(2, 2); + expect(result).toBe(16); + }); +}) From de2b5fc3a4c0786966d57232ca153ea0983e54fb Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 13 Dec 2018 17:16:34 -0500 Subject: [PATCH 02/49] Import helpers like __extends from tslib. This reduces the minified size of lib/react-apollo.umd.js from 28074B to 22773B (18.9%). The minified+gzip size drops from 6930B to 6451B (6.9%). The gzip percentage is smaller because there was some repetition between the multiple declarations of the __extends function, and gzip is good at compressing long repeated substrings. --- package-lock.json | 113 ++++++++++++++++++++++------------------------ package.json | 3 +- rollup.config.js | 62 ++++++++++--------------- tsconfig.json | 1 + 4 files changed, 79 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0a26d20ac1..4eac295c84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3347,20 +3347,20 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.2.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true @@ -3378,13 +3378,13 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": false, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { @@ -3401,34 +3401,32 @@ }, "code-point-at": { "version": "1.1.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": false, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, @@ -3445,21 +3443,21 @@ }, "delegates": { "version": "1.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": false, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": false, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, @@ -3469,14 +3467,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": false, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -3508,7 +3506,7 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true @@ -3525,7 +3523,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, @@ -3535,7 +3533,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": false, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -3546,38 +3544,36 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", - "resolved": false, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": false, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { @@ -3586,7 +3582,7 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, @@ -3612,7 +3608,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { @@ -3621,7 +3617,7 @@ }, "ms": { "version": "2.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true @@ -3659,7 +3655,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -3688,7 +3684,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -3701,21 +3697,20 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { @@ -3724,21 +3719,21 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": false, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -3749,14 +3744,14 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true @@ -3776,7 +3771,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true @@ -3785,7 +3780,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -3817,14 +3812,14 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": false, + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true @@ -3838,24 +3833,23 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3864,7 +3858,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -3874,7 +3868,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -3883,7 +3877,7 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true @@ -3906,7 +3900,7 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true @@ -3923,7 +3917,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, @@ -9742,8 +9736,7 @@ "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { "version": "5.12.1", diff --git a/package.json b/package.json index 65d3764d64..ea0fbbed09 100644 --- a/package.json +++ b/package.json @@ -153,6 +153,7 @@ "hoist-non-react-statics": "^3.0.0", "invariant": "^2.2.2", "lodash.isequal": "^4.5.0", - "prop-types": "^15.6.0" + "prop-types": "^15.6.0", + "tslib": "^1.9.3" } } diff --git a/rollup.config.js b/rollup.config.js index 8ab8d4b7e5..e72c5ff20b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -11,55 +11,39 @@ function onwarn(message) { } } -export default [ - // for browser - { - input: 'lib/browser.js', +function umd(inputFile, outputFile) { + return { + input: inputFile, output: { - file: 'lib/react-apollo.browser.umd.js', + file: outputFile, format: 'umd', name: 'react-apollo', sourcemap: true, exports: 'named', }, + plugins: [ + node({ + module: true, + only: ['tslib'] + }) + ], onwarn, - }, + }; +} + +export default [ + // for browser + umd("lib/browser.js", + "lib/react-apollo.browser.umd.js"), // for server - { - input: 'lib/index.js', - output: { - file: 'lib/react-apollo.umd.js', - format: 'umd', - name: 'react-apollo', - sourcemap: false, - exports: 'named', - }, - onwarn, - }, + umd("lib/index.js", + "lib/react-apollo.umd.js"), // for test-utils - { - input: 'lib/test-utils.js', - output: { - file: 'lib/test-utils.js', - format: 'umd', - name: 'react-apollo', - sourcemap: false, - exports: 'named', - }, - onwarn, - }, + umd("lib/test-utils.js", + "lib/test-utils.js"), // for test-links - { - input: 'lib/test-links.js', - output: { - file: 'lib/test-links.js', - format: 'umd', - name: 'react-apollo', - sourcemap: false, - exports: 'named', - }, - onwarn, - }, + umd("lib/test-links.js", + "lib/test-links.js"), // for filesize { input: 'lib/react-apollo.browser.umd.js', diff --git a/tsconfig.json b/tsconfig.json index 0adffdd7e9..8717a505b2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,6 +6,7 @@ "lib": ["es2015", "esnext.asynciterable", "dom"], "module": "es2015", "moduleResolution": "node", + "importHelpers": true, "noUnusedParameters": true, "outDir": "lib", "pretty": true, From 2757f63b9da88dd1a3e0a3111db565a3e9cf9a61 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 13 Dec 2018 17:55:06 -0500 Subject: [PATCH 03/49] Move walkTree export to react-apollo/walkTree, to avoid bundling it. --- Changelog.md | 17 +++++++++++++++++ jest.browser.umd.config.js | 1 + jest.server.umd.config.js | 1 + rollup.config.js | 3 +++ src/browser.ts | 2 -- test/client/getDataFromTree.test.tsx | 2 +- 6 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Changelog.md b/Changelog.md index 2a2999be81..f9bd6dc51a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -9,6 +9,23 @@ ### Improvements +- The `walkTree` function has been deprecated, since there's no way to + make its behavior consistent with the latest versions of React. To save + bundle size, `walkTree` is no longer exported from `react-apollo`, + though you can still access it as follows: + ```js + import { walkTree } from "react-apollo/walkTree" + ``` + +## 2.4.0 + +### Bug Fixes + +- Invoke `onCompleted`/`onError` even if `Mutation` unmounts.
+ [PR #2710](https://github.com/apollographql/react-apollo/pull/2710) + +### Improvements + - Update the typescript example app to use the raw Query component directly, with generics, to avoid generating the extra object that's created (in the compiled code) when extending the Query component as a class.
diff --git a/jest.browser.umd.config.js b/jest.browser.umd.config.js index 017bb1412f..4562c2fb60 100644 --- a/jest.browser.umd.config.js +++ b/jest.browser.umd.config.js @@ -3,6 +3,7 @@ const { jest } = require('./package.json'); jest.moduleNameMapper = { '\\.\\./src$': '/lib/react-apollo.browser.umd.js', '\\.\\./src/test-utils': '/lib/test-utils.js', + '\\.\\./src/walkTree': '/lib/walkTree.js', // Force other imports to /src/whatever to fail '\\.\\./src': '/test/fail-no-entry-point.js', }; diff --git a/jest.server.umd.config.js b/jest.server.umd.config.js index 91b61dd8cb..0a503751b5 100644 --- a/jest.server.umd.config.js +++ b/jest.server.umd.config.js @@ -3,6 +3,7 @@ const { jest } = require('./package.json'); jest.moduleNameMapper = { '\\.\\./src$': '/lib/react-apollo.umd.js', '\\.\\./src/test-utils': '/lib/test-utils.js', + '\\.\\./src/walkTree': '/lib/walkTree.js', // Force other imports to /src/whatever to fail '\\.\\./src': '/test/fail-no-entry-point.js', }; diff --git a/rollup.config.js b/rollup.config.js index e72c5ff20b..677f5c8248 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -44,6 +44,9 @@ export default [ // for test-links umd("lib/test-links.js", "lib/test-links.js"), + // Enable `import { walkTree } from "react-apollo/walkTree"` + umd("lib/walkTree.js", + "lib/walkTree.js"), // for filesize { input: 'lib/react-apollo.browser.umd.js', diff --git a/src/browser.ts b/src/browser.ts index 8ca7bb6632..3eb8f1c69d 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -26,6 +26,4 @@ export * from './withApollo'; export * from './types'; -export * from './walkTree'; - export { compose } from './utils/flowRight'; diff --git a/test/client/getDataFromTree.test.tsx b/test/client/getDataFromTree.test.tsx index fe4a6eaf3e..ce7a03aeb2 100644 --- a/test/client/getDataFromTree.test.tsx +++ b/test/client/getDataFromTree.test.tsx @@ -6,12 +6,12 @@ import { graphql, Query, ApolloProvider, - walkTree, getDataFromTree, getMarkupFromTree, DataValue, ChildProps, } from '../../src'; +import { walkTree } from "../../src/walkTree"; import gql from 'graphql-tag'; const times = require('lodash.times'); import { InMemoryCache as Cache } from 'apollo-cache-inmemory'; From 408a7cfb2239a61bf7d0b2f3453af3f472e02e4d Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Tue, 8 Jan 2019 17:49:54 +0100 Subject: [PATCH 04/49] Provide esm bundle (#2677) * chore: optimize build time * fix: remove comments * tests: revert transforms * fix tests * remove babel key from pkg.json * chore: apply pr remarks * chore: undo all and add esm bundle with potential todo * remove unused babel plugins * cjs * some optimizations * add question * chore: follow pr * ignore rpt_cache --- .gitignore | 1 + package-lock.json | 420 +++++++++++++++++++++++++++++++++++++ package.json | 4 +- rollup.config.js | 38 +++- scripts/prepare-package.sh | 5 +- tsconfig.cjs.json | 6 + 6 files changed, 464 insertions(+), 10 deletions(-) create mode 100644 tsconfig.cjs.json diff --git a/.gitignore b/.gitignore index f057e538a4..80b2880593 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea +.rpt2_cache # Logs logs diff --git a/package-lock.json b/package-lock.json index 4eac295c84..7594b9932a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -324,6 +324,49 @@ "json-schema-traverse": "^0.3.0" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz", + "integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0" + } + } + } + }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -1794,6 +1837,96 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, + "boxen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-2.1.0.tgz", + "integrity": "sha512-luq3RQOt2U5sUX+fiu+qnT+wWnHDcATLpEe63jvge6GUZO99AKbVRfp97d2jgLvq1iQa0ORzaAm4lGVG52ZSlw==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.0.0", + "chalk": "^2.4.1", + "cli-boxes": "^1.0.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz", + "integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.0.0" + } + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dev": true, + "requires": { + "ansi-regex": "^4.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2142,6 +2275,12 @@ } } }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, "cliui": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", @@ -2591,6 +2730,15 @@ "mimic-response": "^1.0.0" } }, + "deep-assign": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-2.0.0.tgz", + "integrity": "sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2810,6 +2958,12 @@ "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=", "dev": true }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", @@ -3227,6 +3381,12 @@ "minimatch": "^3.0.3" } }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", @@ -3328,6 +3488,17 @@ "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", "dev": true }, + "fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4678,6 +4849,12 @@ "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", "dev": true }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-odd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", @@ -6179,6 +6356,15 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -6697,6 +6883,12 @@ } } }, + "napi-build-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", + "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==", + "dev": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8280,6 +8472,109 @@ } } }, + "rollup-plugin-filesize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-6.0.0.tgz", + "integrity": "sha512-yU1nNkB2RP1PwLpBFIzH9oIwLL+Si6AEuy0/hAhFW+68hy6x/W/MxhhsUe7bDhG7Gnei7FOGC4Ag4W9+CninMQ==", + "dev": true, + "requires": { + "boxen": "^2.0.0", + "brotli-size": "0.0.3", + "colors": "^1.3.2", + "deep-assign": "^2.0.0", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "terser": "^3.10.0" + }, + "dependencies": { + "brotli-size": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-0.0.3.tgz", + "integrity": "sha512-bBIdd8uUGxKGldAVykxOqPegl+HlIm4FpXJamwWw5x77WCE8jO7AhXFE1YXOhOB28gS+2pTQete0FqRE6U5hQQ==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "iltorb": "^2.0.5" + } + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true + }, + "gzip-size": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz", + "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + } + }, + "iltorb": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-2.4.1.tgz", + "integrity": "sha512-huyAN7dSNe2b7VAl5AyvaeZ8XTcDTSF1b8JVYDggl+SBfHsORq3qMZeesZW7zoEy21s15SiERAITWT5cwxu1Uw==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "npmlog": "^4.1.2", + "prebuild-install": "^5.2.1", + "which-pm-runs": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "prebuild-install": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.2.tgz", + "integrity": "sha512-4e8VJnP3zJdZv/uP0eNWmr2r9urp4NECw7Mt1OSAi3rcLrbBRxGiAkfUFtre2MhQ5wfREAjRV+K1gubvs/GPsA==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.2.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "os-homedir": "^1.0.1", + "pump": "^2.0.1", + "rc": "^1.2.7", + "simple-get": "^2.7.0", + "tar-fs": "^1.13.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + } + } + } + }, "rollup-plugin-node-resolve": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", @@ -8321,6 +8616,39 @@ } } }, + "rollup-plugin-typescript2": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.18.1.tgz", + "integrity": "sha512-aR2m5NCCAUV/KpcKgCWX6Giy8rTko9z92b5t0NX9eZyjOftCvcdDFa1C9Ze/9yp590hnRymr5hG0O9SAXi1oUg==", + "dev": true, + "requires": { + "fs-extra": "7.0.0", + "resolve": "1.8.1", + "rollup-pluginutils": "2.3.3", + "tslib": "1.9.3" + }, + "dependencies": { + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "rollup-pluginutils": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", + "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", + "dev": true, + "requires": { + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" + } + } + } + }, "rollup-plugin-uglify": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.1.tgz", @@ -9261,6 +9589,50 @@ "xtend": "^4.0.0" } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "terser": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.14.1.tgz", + "integrity": "sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.6" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, "test-exclude": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", @@ -9937,6 +10309,12 @@ "os-name": "^3.0.0" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -10186,6 +10564,48 @@ "string-width": "^1.0.2 || 2" } }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "windows-release": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", diff --git a/package.json b/package.json index ea0fbbed09..4f99e6ee84 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "url": "apollographql/react-apollo" }, "scripts": { - "compile": "tsc && rimraf lib/test && mv lib/src/* lib/. && rimraf lib/src", + "compile": "tsc -p ./tsconfig.cjs.json && rimraf lib/test && mv lib/src/* lib/. && rimraf lib/src", "danger": "danger run --verbose", "deploy": "cd lib && npm publish", "filesize": "bundlesize", @@ -139,8 +139,10 @@ "rimraf": "2.6.3", "rollup": "0.68.2", "rollup-plugin-commonjs": "9.2.0", + "rollup-plugin-filesize": "^6.0.0", "rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-replace": "2.1.0", + "rollup-plugin-typescript2": "^0.18.1", "rollup-plugin-uglify": "6.0.1", "ts-jest": "23.10.5", "tslint": "5.12.1", diff --git a/rollup.config.js b/rollup.config.js index 677f5c8248..73d727b7ba 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,6 +2,9 @@ import commonjs from 'rollup-plugin-commonjs'; import node from 'rollup-plugin-node-resolve'; import { uglify } from 'rollup-plugin-uglify'; import replace from 'rollup-plugin-replace'; +import typescript from 'typescript'; +import typescriptPlugin from 'rollup-plugin-typescript2'; +import filesize from 'rollup-plugin-filesize'; function onwarn(message) { const suppressed = ['UNRESOLVED_IMPORT', 'THIS_IS_UNDEFINED']; @@ -11,6 +14,26 @@ function onwarn(message) { } } +function esm(inputFile, outputFile) { + return { + input: inputFile, + output: { + file: outputFile, + format: 'esm', + sourcemap: true, + }, + plugins: [ + node({ + module: true, + only: ['tslib'] + }), + typescriptPlugin({ typescript }), + filesize(), + ], + onwarn, + } +} + function umd(inputFile, outputFile) { return { input: inputFile, @@ -25,7 +48,8 @@ function umd(inputFile, outputFile) { node({ module: true, only: ['tslib'] - }) + }), + typescriptPlugin({ typescript }), ], onwarn, }; @@ -33,20 +57,21 @@ function umd(inputFile, outputFile) { export default [ // for browser - umd("lib/browser.js", + umd("src/browser.ts", "lib/react-apollo.browser.umd.js"), // for server - umd("lib/index.js", + umd("src/index.ts", "lib/react-apollo.umd.js"), // for test-utils - umd("lib/test-utils.js", + umd("src/test-utils.tsx", "lib/test-utils.js"), // for test-links - umd("lib/test-links.js", + umd("src/test-links.ts", "lib/test-links.js"), // Enable `import { walkTree } from "react-apollo/walkTree"` - umd("lib/walkTree.js", + umd("src/walkTree.ts", "lib/walkTree.js"), + esm('src/index.ts', 'lib/react-apollo.esm.js'), // for filesize { input: 'lib/react-apollo.browser.umd.js', @@ -56,6 +81,7 @@ export default [ exports: 'named', }, plugins: [ + // Is there a reason for not adding tslib here? node(), commonjs({ ignore: [ diff --git a/scripts/prepare-package.sh b/scripts/prepare-package.sh index 659382b74d..a6565fbb76 100755 --- a/scripts/prepare-package.sh +++ b/scripts/prepare-package.sh @@ -19,9 +19,8 @@ node -e "var package = require('./package.json'); \ delete package.options; \ delete package.prettier; \ delete package.devDependencies; \ - package.main = 'react-apollo.umd.js'; \ - package.browser = 'react-apollo.browser.umd.js'; \ - package.module = 'index.js'; \ + package.main = 'index.js'; \ + package.module = 'react-apollo.esm.js'; \ package.typings = 'index.d.ts'; \ var origVersion = 'local'; var fs = require('fs'); \ diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 0000000000..bbdaa2a628 --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "module": "commonjs", + }, +} From f0c395b43f41885dc11db4d202296445378c4ca2 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sun, 20 Jan 2019 11:08:27 -0500 Subject: [PATCH 05/49] Bump react-apollo to version 2.5.0-bundle-size.0. @JoviDeCroock @Pajn @rosskevin I'm hoping this prerelease helps with testing the changes in PR #2661. --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7594b9932a..4577af588c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.4.0", + "version": "2.5.0-bundle-size.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4f99e6ee84..70bb6806a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.4.0", + "version": "2.5.0-bundle-size.0", "author": "opensource@apollographql.com", "private": true, "browser": "lib/react-apollo.browser.umd.js", From b72dfd6e02a55d4eb80aa28ab85bab24197b683d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sun, 20 Jan 2019 11:25:56 -0500 Subject: [PATCH 06/49] Stop importing shallowEqual from fbjs/lib/shallowEqual. This shaves a tiny amount of bundle size, but more importantly it implements shallowEqual using TypeScript, and avoids one of the few remaining uses of require. --- package-lock.json | 23 ++--------------------- package.json | 1 - src/Mutation.tsx | 2 +- src/Query.tsx | 2 +- src/Subscriptions.tsx | 2 +- src/queryRecycler.ts | 2 +- src/utils/shallowEqual.ts | 32 ++++++++++++++++++++++++++++++++ 7 files changed, 38 insertions(+), 26 deletions(-) create mode 100644 src/utils/shallowEqual.ts diff --git a/package-lock.json b/package-lock.json index 4577af588c..69db37c7a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2416,7 +2416,8 @@ "core-js": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3345,26 +3346,6 @@ "bser": "^2.0.0" } }, - "fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "requires": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "fbjs-css-vars": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.1.tgz", - "integrity": "sha512-IM+v/C40MNZWqsLErc32e0TyIk/NhkkQZL0QmjBh6zi1eXv0/GeVKmKmueQX7nn9SXQBQbTUcB8zuexIF3/88w==" - }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", diff --git a/package.json b/package.json index 70bb6806a0..121e0ee309 100644 --- a/package.json +++ b/package.json @@ -151,7 +151,6 @@ "zen-observable-ts": "0.8.13" }, "dependencies": { - "fbjs": "^1.0.0", "hoist-non-react-statics": "^3.0.0", "invariant": "^2.2.2", "lodash.isequal": "^4.5.0", diff --git a/src/Mutation.tsx b/src/Mutation.tsx index dd20d9103d..1046ab1b21 100644 --- a/src/Mutation.tsx +++ b/src/Mutation.tsx @@ -4,7 +4,7 @@ import ApolloClient, { PureQueryOptions, ApolloError, FetchPolicy } from 'apollo import { DataProxy } from 'apollo-cache'; const invariant = require('invariant'); import { DocumentNode, GraphQLError } from 'graphql'; -const shallowEqual = require('fbjs/lib/shallowEqual'); +import shallowEqual from './utils/shallowEqual'; import { OperationVariables, RefetchQueriesProviderFn } from './types'; import { parser, DocumentType } from './parser'; diff --git a/src/Query.tsx b/src/Query.tsx index 185db0883f..d110fd2b0f 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -15,7 +15,7 @@ import { parser, DocumentType, IDocumentDefinition } from './parser'; import { getClient } from './component-utils'; import { RenderPromises } from './getDataFromTree'; -const shallowEqual = require('fbjs/lib/shallowEqual'); +import shallowEqual from './utils/shallowEqual'; const invariant = require('invariant'); export type ObservableQueryFields = Pick< diff --git a/src/Subscriptions.tsx b/src/Subscriptions.tsx index 3da5c684f1..39c702aa94 100644 --- a/src/Subscriptions.tsx +++ b/src/Subscriptions.tsx @@ -8,7 +8,7 @@ import { ZenObservable } from 'zen-observable-ts'; import { OperationVariables } from './types'; import { getClient } from './component-utils'; -const shallowEqual = require('fbjs/lib/shallowEqual'); +import shallowEqual from './utils/shallowEqual'; const invariant = require('invariant'); export interface SubscriptionResult { diff --git a/src/queryRecycler.ts b/src/queryRecycler.ts index 4c2d50424a..fee49ed04e 100644 --- a/src/queryRecycler.ts +++ b/src/queryRecycler.ts @@ -2,7 +2,7 @@ import { ObservableQuery } from 'apollo-client'; import { ZenObservable } from 'zen-observable-ts'; import { QueryOpts } from './types'; -const shallowEqual = require('fbjs/lib/shallowEqual'); +import shallowEqual from './utils/shallowEqual'; // XXX move this logic to ObservableQuery / QueryManager in apollo-client diff --git a/src/utils/shallowEqual.ts b/src/utils/shallowEqual.ts new file mode 100644 index 0000000000..b35dd0fb5a --- /dev/null +++ b/src/utils/shallowEqual.ts @@ -0,0 +1,32 @@ +const { hasOwnProperty } = Object.prototype; + +function is(x: any, y: any) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } + return x !== x && y !== y; +} + +function isObject(obj: any): obj is { [key: string]: any } { + return obj !== null && typeof obj === "object"; +} + +export default function shallowEqual(objA: any, objB: any) { + if (is(objA, objB)) { + return true; + } + + if (!isObject(objA) || !isObject(objB)) { + return false; + } + + const keys = Object.keys(objA); + + if (keys.length !== Object.keys(objB).length) { + return false; + } + + return keys.every( + key => hasOwnProperty.call(objB, key) && is(objA[key], objB[key]), + ); +} From 2f6bacfe27bb875cfca2b5efcc215fa6d7683fc2 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 16:55:25 -0500 Subject: [PATCH 07/49] Remove unnecessary typings/ directory. The shallowEqual typings became unnecessary with commit b72dfd6e02a55d4eb80aa28ab85bab24197b683d. --- tsconfig.json | 2 +- typings/fbjs_lib_shallow-equal.d.ts | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 typings/fbjs_lib_shallow-equal.d.ts diff --git a/tsconfig.json b/tsconfig.json index 8717a505b2..3b72fe0bad 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,6 +16,6 @@ "target": "es5", "esModuleInterop": true }, - "include": ["./typings/**/*", "./src/**/*", "./test/**/*"], + "include": ["./src/**/*", "./test/**/*"], "exclude": ["./node_modules", "./dist", "./lib"] } diff --git a/typings/fbjs_lib_shallow-equal.d.ts b/typings/fbjs_lib_shallow-equal.d.ts deleted file mode 100644 index 6a711e0cd0..0000000000 --- a/typings/fbjs_lib_shallow-equal.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module 'fbjs/lib/shallowEqual' { - function shallowEqual(a: any, b: any): boolean; - - export default shallowEqual; -} From 66b09459c6e948d7a662ffa980ea9a7554994cae Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 17:03:28 -0500 Subject: [PATCH 08/49] Consolidate src/{browser,index}.ts. There will no longer be a "browser" field in package.json, since the "main" field (lib/index.js) is perfectly usable CommonJS. --- jest.browser.umd.config.js | 17 ----------------- package.json | 8 +++----- rollup.config.js | 5 +---- src/browser.ts | 29 ----------------------------- src/index.ts | 30 +++++++++++++++++++++++++++++- 5 files changed, 33 insertions(+), 56 deletions(-) delete mode 100644 jest.browser.umd.config.js delete mode 100644 src/browser.ts diff --git a/jest.browser.umd.config.js b/jest.browser.umd.config.js deleted file mode 100644 index 4562c2fb60..0000000000 --- a/jest.browser.umd.config.js +++ /dev/null @@ -1,17 +0,0 @@ -const { jest } = require('./package.json'); - -jest.moduleNameMapper = { - '\\.\\./src$': '/lib/react-apollo.browser.umd.js', - '\\.\\./src/test-utils': '/lib/test-utils.js', - '\\.\\./src/walkTree': '/lib/walkTree.js', - // Force other imports to /src/whatever to fail - '\\.\\./src': '/test/fail-no-entry-point.js', -}; - -// Ignore server tests for browser bundle -jest.modulePathIgnorePatterns.push('/test/server'); - -// Ignore tests that don't go against the public API -jest.modulePathIgnorePatterns.push('/test/internal-api'); - -module.exports = jest; diff --git a/package.json b/package.json index 7136e989ce..94adc0e42e 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,6 @@ "version": "2.5.0-bundle-size.0", "author": "opensource@apollographql.com", "private": true, - "browser": "lib/react-apollo.browser.umd.js", "description": "React data container for Apollo Client", "keywords": [ "apollo", @@ -11,11 +10,11 @@ "react" ], "license": "MIT", - "main": "lib/react-apollo.umd.js", + "main": "lib/index.js", + "module": "lib/react-apollo.esm.js", "react-native": { "react-dom/server": false }, - "module": "src/index.ts", "typings": "lib/index.d.ts", "repository": { "type": "git", @@ -39,8 +38,7 @@ "test-examples": ". ./test-examples.sh", "test-preact": "jest --config ./jest.preact.config.json --runInBand", "test-watch": "jest --watch", - "test:compiled": "npm run test:compiled:browser:umd && npm run test:compiled:server:umd && npm run test:compiled:cjs", - "test:compiled:browser:umd": "jest --config jest.browser.umd.config.js --runInBand", + "test:compiled": "npm run test:compiled:server:umd && npm run test:compiled:cjs", "test:compiled:cjs": "jest --config jest.cjs.config.js --runInBand", "test:compiled:server:umd": "jest --config jest.server.umd.config.js --runInBand", "type-check": "tsc --project tsconfig.json --noEmit ", diff --git a/rollup.config.js b/rollup.config.js index 73d727b7ba..df3c164f86 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -56,9 +56,6 @@ function umd(inputFile, outputFile) { } export default [ - // for browser - umd("src/browser.ts", - "lib/react-apollo.browser.umd.js"), // for server umd("src/index.ts", "lib/react-apollo.umd.js"), @@ -74,7 +71,7 @@ export default [ esm('src/index.ts', 'lib/react-apollo.esm.js'), // for filesize { - input: 'lib/react-apollo.browser.umd.js', + input: 'lib/react-apollo.umd.js', output: { file: 'dist/bundlesize.js', format: 'cjs', diff --git a/src/browser.ts b/src/browser.ts deleted file mode 100644 index 3eb8f1c69d..0000000000 --- a/src/browser.ts +++ /dev/null @@ -1,29 +0,0 @@ -export { default as getDataFromTree } from './getDataFromTree'; -export * from './getDataFromTree'; - -export { default as ApolloConsumer } from './ApolloConsumer'; -export * from './ApolloConsumer'; - -export { default as ApolloProvider } from './ApolloProvider'; -export * from './ApolloProvider'; - -export { default as Query } from './Query'; -export * from './Query'; - -export { default as Mutation } from './Mutation'; -export * from './Mutation'; - -export { default as Subscription } from './Subscriptions'; -export * from './Subscriptions'; - -export { graphql } from './graphql'; -export { withQuery } from './query-hoc'; -export { withMutation } from './mutation-hoc'; -export { withSubscription } from './subscription-hoc'; - -export { default as withApollo } from './withApollo'; -export * from './withApollo'; - -export * from './types'; - -export { compose } from './utils/flowRight'; diff --git a/src/index.ts b/src/index.ts index e3a56bb6fa..feebc688d7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,30 @@ -export * from './browser'; +export { default as ApolloConsumer } from './ApolloConsumer'; +export * from './ApolloConsumer'; + +export { default as ApolloProvider } from './ApolloProvider'; +export * from './ApolloProvider'; + +export { default as Query } from './Query'; +export * from './Query'; + +export { default as Mutation } from './Mutation'; +export * from './Mutation'; + +export { default as Subscription } from './Subscriptions'; +export * from './Subscriptions'; + +export { graphql } from './graphql'; +export { withQuery } from './query-hoc'; +export { withMutation } from './mutation-hoc'; +export { withSubscription } from './subscription-hoc'; + +export { default as withApollo } from './withApollo'; +export * from './withApollo'; + +export * from './getDataFromTree'; +export { default as getDataFromTree } from './getDataFromTree'; export { renderToStringWithData } from './renderToStringWithData'; + +export * from './types'; + +export { compose } from './utils/flowRight'; From ab382b2f9f17f4694c46f3354c0c4ecc52a8620f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 17:10:58 -0500 Subject: [PATCH 09/49] Remove individual UMD module builds. Now that src/walkTree.ts is compiled to lib/walkTree.js, which is plain CommonJS, there's no need to convert lib/walkTree.js to a UMD module. The same goes for test-links.tsx and test-util.ts. --- rollup.config.js | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index df3c164f86..16e7e3df84 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -57,17 +57,7 @@ function umd(inputFile, outputFile) { export default [ // for server - umd("src/index.ts", - "lib/react-apollo.umd.js"), - // for test-utils - umd("src/test-utils.tsx", - "lib/test-utils.js"), - // for test-links - umd("src/test-links.ts", - "lib/test-links.js"), - // Enable `import { walkTree } from "react-apollo/walkTree"` - umd("src/walkTree.ts", - "lib/walkTree.js"), + umd("src/index.ts", 'lib/react-apollo.umd.js'), esm('src/index.ts', 'lib/react-apollo.esm.js'), // for filesize { From 1fdae867f31db0f697c5a13764eaddde31b191cd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 17:48:13 -0500 Subject: [PATCH 10/49] Compile only ./src via tsc to simplify `npm run compile`. --- package.json | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 94adc0e42e..10563ef369 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "apollographql/react-apollo" }, "scripts": { - "compile": "tsc -p ./tsconfig.cjs.json && rimraf lib/test && mv lib/src/* lib/. && rimraf lib/src", + "compile": "tsc -p ./tsconfig.cjs.json", "danger": "danger run --verbose", "deploy": "cd lib && npm publish", "filesize": "bundlesize", diff --git a/tsconfig.json b/tsconfig.json index 3b72fe0bad..a56a721d72 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,6 +16,6 @@ "target": "es5", "esModuleInterop": true }, - "include": ["./src/**/*", "./test/**/*"], + "include": ["./src/**/*"], "exclude": ["./node_modules", "./dist", "./lib"] } From f1d98ceffe39da1e05aaf98221bc16bed28642dc Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 18:01:04 -0500 Subject: [PATCH 11/49] Compile dist/bundlesize.js from lib/react-apollo.esm.js. --- rollup.config.js | 53 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 16e7e3df84..7a66fdd70c 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,4 +1,3 @@ -import commonjs from 'rollup-plugin-commonjs'; import node from 'rollup-plugin-node-resolve'; import { uglify } from 'rollup-plugin-uglify'; import replace from 'rollup-plugin-replace'; @@ -14,11 +13,11 @@ function onwarn(message) { } } -function esm(inputFile, outputFile) { - return { - input: inputFile, +export default [ + { + input: 'src/index.ts', output: { - file: outputFile, + file: 'lib/react-apollo.esm.js', format: 'esm', sourcemap: true, }, @@ -31,54 +30,14 @@ function esm(inputFile, outputFile) { filesize(), ], onwarn, - } -} - -function umd(inputFile, outputFile) { - return { - input: inputFile, - output: { - file: outputFile, - format: 'umd', - name: 'react-apollo', - sourcemap: true, - exports: 'named', - }, - plugins: [ - node({ - module: true, - only: ['tslib'] - }), - typescriptPlugin({ typescript }), - ], - onwarn, - }; -} - -export default [ - // for server - umd("src/index.ts", 'lib/react-apollo.umd.js'), - esm('src/index.ts', 'lib/react-apollo.esm.js'), - // for filesize + }, { - input: 'lib/react-apollo.umd.js', + input: 'lib/react-apollo.esm.js', output: { file: 'dist/bundlesize.js', format: 'cjs', - exports: 'named', }, plugins: [ - // Is there a reason for not adding tslib here? - node(), - commonjs({ - ignore: [ - 'react', - 'react-dom/server', - 'apollo-client', - 'graphql', - 'graphql-tag', - ], - }), replace({ 'process.env.NODE_ENV': JSON.stringify('production'), }), From b024bf65de00e32a900cf48ae2fd74b3dc3209cb Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 18:20:23 -0500 Subject: [PATCH 12/49] Remove non-existent test:compiled:browser:umd from Circle CI. --- .circleci/config.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3b104de3d5..47840f0170 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,22 +61,6 @@ jobs: - store_artifacts: path: reports/junit - Browser: - docker: [{ image: 'circleci/node:8' }] - steps: - - checkout - - run: npm i - - run: npm run compile - - run: - name: Jest suite - command: npm run test:compiled:browser:umd -- --ci --testResultsProcessor="jest-junit" - environment: - JEST_JUNIT_OUTPUT: 'reports/junit/js-test-results.xml' - - store_test_results: - path: reports/junit - - store_artifacts: - path: reports/junit - Server: docker: [{ image: 'circleci/node:8' }] steps: @@ -126,7 +110,6 @@ workflows: - Linting - Typecheck - Preact - - Browser - Server - Commonjs - Filesize From 8c7ce5b3fc094c0855334e55a3878c9919372420 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 18:33:11 -0500 Subject: [PATCH 13/49] Compile lib/react-apollo.umd.js from lib/react-apollo.esm.js. Since the test:compiled:server:umd script uses lib/react-apollo.umd.js, compiling that file from the ESM bundle is a good way to test that the ESM bundle works. --- rollup.config.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rollup.config.js b/rollup.config.js index 7a66fdd70c..849a53d18d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -31,6 +31,15 @@ export default [ ], onwarn, }, + { + input: 'lib/react-apollo.esm.js', + output: { + file: 'lib/react-apollo.umd.js', + format: 'umd', + name: 'react-apollo' + }, + onwarn, + }, { input: 'lib/react-apollo.esm.js', output: { From 771ac71bb9e7d35f476a0fb5703736fd1bfe5c8e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 18:38:27 -0500 Subject: [PATCH 14/49] Reduce bundle size limit to reflect recent improvements. Now that dist/bundlesize.js is compiled (as CommonJS) from the ESM bundle (lib/react-apollo.esm.js), the minified+gzip size is considerably smaller! --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 10563ef369..5a84453369 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "bundlesize": [ { "path": "./dist/bundlesize.js", - "maxSize": "10 KB" + "maxSize": "6.4 KB" } ], "jest": { From 72fb8fdd11b4aa91e6ebd7b84f59a0d9f9a7f4a0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 18:43:31 -0500 Subject: [PATCH 15/49] Bump react-apollo to version 2.5.0-beta.0. --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c9410c7d2..11680f6c07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-bundle-size.0", + "version": "2.5.0-beta.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 5a84453369..9f29bd65ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-bundle-size.0", + "version": "2.5.0-beta.0", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", From 6c302566ff0cea6554fbc8501d836ff84207a774 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 19:02:38 -0500 Subject: [PATCH 16/49] Update examples/ssr to latest Meteor and react-apollo@beta. --- examples/ssr/.meteor/packages | 4 ++-- examples/ssr/.meteor/release | 2 +- examples/ssr/.meteor/versions | 20 ++++++++++---------- examples/ssr/package.json | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/examples/ssr/.meteor/packages b/examples/ssr/.meteor/packages index 6822743386..ffd9ef129b 100644 --- a/examples/ssr/.meteor/packages +++ b/examples/ssr/.meteor/packages @@ -11,10 +11,10 @@ static-html # Define static page content in .html files reactive-var@1.0.11 # Reactive variable for tracker tracker@1.2.0 # Meteor's client-side reactive programming library -standard-minifier-css@1.5.0 # CSS minifier run for production mode +standard-minifier-css@1.5.2 # CSS minifier run for production mode standard-minifier-js@2.4.0 # JS minifier run for production mode es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers -ecmascript@0.12.0 # Enable ECMAScript2015+ syntax in app code +ecmascript@0.12.4 # Enable ECMAScript2015+ syntax in app code shell-server@0.4.0 # Server-side component of the `meteor shell` command server-render@0.3.1 underscore@1.0.10 diff --git a/examples/ssr/.meteor/release b/examples/ssr/.meteor/release index e76dedee10..91e05fc15b 100644 --- a/examples/ssr/.meteor/release +++ b/examples/ssr/.meteor/release @@ -1 +1 @@ -METEOR@1.8 +METEOR@1.8.0.2 diff --git a/examples/ssr/.meteor/versions b/examples/ssr/.meteor/versions index 6b7992c8c4..78c4d79e07 100644 --- a/examples/ssr/.meteor/versions +++ b/examples/ssr/.meteor/versions @@ -1,12 +1,12 @@ allow-deny@1.1.0 autoupdate@1.5.0 -babel-compiler@7.2.1 +babel-compiler@7.2.4 babel-runtime@1.3.0 base64@1.0.11 binary-heap@1.0.11 blaze-tools@1.0.10 boilerplate-generator@1.6.0 -caching-compiler@1.2.0 +caching-compiler@1.2.1 caching-html-compiler@1.1.3 callback-hook@1.1.0 check@1.3.1 @@ -15,9 +15,9 @@ ddp-client@2.3.3 ddp-common@1.4.0 ddp-server@2.2.0 deps@1.0.12 -diff-sequence@1.1.0 -dynamic-import@0.5.0 -ecmascript@0.12.1 +diff-sequence@1.1.1 +dynamic-import@0.5.1 +ecmascript@0.12.4 ecmascript-runtime@0.7.0 ecmascript-runtime-client@0.8.0 ecmascript-runtime-server@0.7.1 @@ -35,12 +35,12 @@ livedata@1.0.18 logging@1.1.20 meteor@1.9.2 meteor-base@1.4.0 -minifier-css@1.4.0 +minifier-css@1.4.1 minifier-js@2.4.0 minimongo@1.4.5 mobile-experience@1.0.5 mobile-status-bar@1.0.14 -modern-browsers@0.1.2 +modern-browsers@0.1.3 modules@0.13.0 modules-runtime@0.10.3 mongo@1.6.0 @@ -49,7 +49,7 @@ mongo-dev-server@1.1.0 mongo-id@1.0.7 npm-mongo@3.1.1 ordered-dict@1.1.0 -promise@0.11.1 +promise@0.11.2 random@1.1.0 reactive-var@1.0.11 reload@1.2.0 @@ -59,11 +59,11 @@ server-render@0.3.1 shell-server@0.4.0 socket-stream-client@0.2.2 spacebars-compiler@1.1.3 -standard-minifier-css@1.5.1 +standard-minifier-css@1.5.2 standard-minifier-js@2.4.0 static-html@1.2.2 templating-tools@1.1.2 tracker@1.2.0 underscore@1.0.10 -webapp@1.7.0 +webapp@1.7.2 webapp-hashing@1.0.9 diff --git a/examples/ssr/package.json b/examples/ssr/package.json index aacdca34ae..a0dd9aa587 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -21,7 +21,7 @@ "meteor-node-stubs": "^0.4.1", "node-fetch": "^2.2.0", "react": "^16.5.2", - "react-apollo": "^2.3.1", + "react-apollo": "^2.5.0-beta.0", "react-dom": "^16.5.2" }, "devDependencies": { From f9f9a67b9d0edf26628daac23f2bb6055cbd1259 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 28 Jan 2019 19:26:11 -0500 Subject: [PATCH 17/49] Improve test-examples.sh and move it into scripts/. We don't run this script regularly, so it's no surprise that the example tests are currently broken. The script definitely doesn't belong in the root of the repository, though. --- scripts/test-examples.sh | 11 +++++++++++ test-examples.sh | 17 ----------------- 2 files changed, 11 insertions(+), 17 deletions(-) create mode 100755 scripts/test-examples.sh delete mode 100644 test-examples.sh diff --git a/scripts/test-examples.sh b/scripts/test-examples.sh new file mode 100755 index 0000000000..9519882e73 --- /dev/null +++ b/scripts/test-examples.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +EXAMPLES_DIR=$(dirname $0)/../examples + +cd $EXAMPLES_DIR/base +npm install +npm test + +cd $EXAMPLES_DIR/components +npm install +npm test diff --git a/test-examples.sh b/test-examples.sh deleted file mode 100644 index 916a4a512e..0000000000 --- a/test-examples.sh +++ /dev/null @@ -1,17 +0,0 @@ -cd examples - -cd base - -npm install - -npm t - -cd ../ - -cd components - -npm install - -npm t - -cd ../../ \ No newline at end of file From 9d5e080f9c3ea2e3d0c8a8d5c9d3ced596fa0526 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sun, 20 Jan 2019 12:07:25 -0500 Subject: [PATCH 18/49] Reimplement invariant(condition, message) using TypeScript. The official Facebook invariant implementation supports several features that we do not need in react-apollo, such as message string formatting, and runtime verification that a message string was provided. Using this TypeScript implementation of the invariant function will enforce that we do not use these extra features, while also allowing a simpler implementation. In the future, when we provide a production bundle, we will want to strip the error strings from invariant calls, like React does. The new InvariantError class can be thrown after manually checking a condition in cases where it's important for TypeScript to understand the condition (and use it for type narrowing later in the code). We can strip the message strings from new InvariantError("...") expressions, too. --- package-lock.json | 1 + package.json | 1 - src/ApolloConsumer.tsx | 2 +- src/ApolloProvider.tsx | 2 +- src/Mutation.tsx | 2 +- src/Query.tsx | 2 +- src/Subscriptions.tsx | 2 +- src/component-utils.tsx | 2 +- src/hoc-utils.tsx | 2 +- src/parser.ts | 2 +- src/utils/invariant.ts | 15 +++++++++++++++ src/withApollo.tsx | 2 +- 12 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 src/utils/invariant.ts diff --git a/package-lock.json b/package-lock.json index 11680f6c07..67d19b80fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4750,6 +4750,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "dev": true, "requires": { "loose-envify": "^1.0.0" } diff --git a/package.json b/package.json index 9f29bd65ba..bdeba406d8 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,6 @@ }, "dependencies": { "hoist-non-react-statics": "^3.0.0", - "invariant": "^2.2.2", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", "tslib": "^1.9.3" diff --git a/src/ApolloConsumer.tsx b/src/ApolloConsumer.tsx index 437706decb..d9e569cda0 100644 --- a/src/ApolloConsumer.tsx +++ b/src/ApolloConsumer.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as PropTypes from 'prop-types'; import ApolloClient from 'apollo-client'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export interface ApolloConsumerProps { children: (client: ApolloClient) => React.ReactElement | null; diff --git a/src/ApolloProvider.tsx b/src/ApolloProvider.tsx index bdeea2165a..fbe7ec14d2 100644 --- a/src/ApolloProvider.tsx +++ b/src/ApolloProvider.tsx @@ -4,7 +4,7 @@ import { Component } from 'react'; import ApolloClient from 'apollo-client'; import { DocumentNode } from 'graphql'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export interface ApolloProviderProps { client: ApolloClient; diff --git a/src/Mutation.tsx b/src/Mutation.tsx index 1046ab1b21..8b135fe77f 100644 --- a/src/Mutation.tsx +++ b/src/Mutation.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as PropTypes from 'prop-types'; import ApolloClient, { PureQueryOptions, ApolloError, FetchPolicy } from 'apollo-client'; import { DataProxy } from 'apollo-cache'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; import { DocumentNode, GraphQLError } from 'graphql'; import shallowEqual from './utils/shallowEqual'; diff --git a/src/Query.tsx b/src/Query.tsx index 947e842075..b83d2d2aa9 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -16,7 +16,7 @@ import { getClient } from './component-utils'; import { RenderPromises } from './getDataFromTree'; import shallowEqual from './utils/shallowEqual'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export type ObservableQueryFields = Pick< ObservableQuery, diff --git a/src/Subscriptions.tsx b/src/Subscriptions.tsx index b23c4c2306..76f08dc3da 100644 --- a/src/Subscriptions.tsx +++ b/src/Subscriptions.tsx @@ -9,7 +9,7 @@ import { OperationVariables } from './types'; import { getClient } from './component-utils'; import shallowEqual from './utils/shallowEqual'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export interface SubscriptionResult { loading: boolean; diff --git a/src/component-utils.tsx b/src/component-utils.tsx index 414343e9fa..bf485dbde3 100644 --- a/src/component-utils.tsx +++ b/src/component-utils.tsx @@ -1,5 +1,5 @@ import ApolloClient from 'apollo-client'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export interface CommonComponentProps { client?: ApolloClient; diff --git a/src/hoc-utils.tsx b/src/hoc-utils.tsx index a16727f6d8..8933a82905 100644 --- a/src/hoc-utils.tsx +++ b/src/hoc-utils.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; import { OperationVariables } from './types'; import { DocumentType, IDocumentDefinition } from './parser'; diff --git a/src/parser.ts b/src/parser.ts index 2279cc1ed4..f921c034d8 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -5,7 +5,7 @@ import { OperationDefinitionNode, } from 'graphql'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; export enum DocumentType { Query, diff --git a/src/utils/invariant.ts b/src/utils/invariant.ts new file mode 100644 index 0000000000..eaa7d80f39 --- /dev/null +++ b/src/utils/invariant.ts @@ -0,0 +1,15 @@ +const genericMessage = "Invariant Violation"; + +export class InvariantError extends Error { + framesToPop = 1; + name = genericMessage; + constructor(message: string = genericMessage) { + super(message); + } +} + +export default function invariant(condition: any, message: string) { + if (!condition) { + throw new InvariantError(message); + } +} diff --git a/src/withApollo.tsx b/src/withApollo.tsx index 362fb639c7..6545b407b3 100644 --- a/src/withApollo.tsx +++ b/src/withApollo.tsx @@ -4,7 +4,7 @@ import ApolloConsumer from './ApolloConsumer'; import { ApolloClient } from 'apollo-client'; import hoistNonReactStatics from 'hoist-non-react-statics'; -const invariant = require('invariant'); +import invariant from './utils/invariant'; function getDisplayName

(WrappedComponent: React.ComponentType

) { return WrappedComponent.displayName || WrappedComponent.name || 'Component'; From 0dd5db1f9eed87d535faf120d2895a8a42d79b19 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 30 Jan 2019 16:10:54 -0500 Subject: [PATCH 19/49] Enable minification of invariant(condition, message) strings. By replacing invariant(condition, message) with process.env.NODE_ENV === "production" ? invariant(condition) : invariant(condition, message) during the Rollup ESM bundling step, we can empower minifiers to replace process.env.NODE_ENV with a string literal to eliminate the unreachable branch of the conditional expression, which effectively removes error message string literals in production, without having to build or choose between separate development and production bundles. This optimization removes almost 1KB of minified+gzip size from the react-apollo package. I am somewhat worried about process.env.NODE_ENV not being defined in browsers in non-production builds. However, I think we can supply (or recommend) a polyfill for those cases. As a counterpoint, React relies on the existence of process.env.NODE_ENV and does not provide a polyfill: https://github.com/facebook/react/blob/master/packages/react/npm/index.js --- package-lock.json | 64 +++++++++++++++---------------- package.json | 3 +- rollup.config.js | 16 ++++++-- rollup/plugin-invariant.js | 77 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 39 deletions(-) create mode 100644 rollup/plugin-invariant.js diff --git a/package-lock.json b/package-lock.json index 67d19b80fa..ec99dae282 100644 --- a/package-lock.json +++ b/package-lock.json @@ -931,6 +931,12 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "ast-types": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.1.tgz", + "integrity": "sha512-H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==", + "dev": true + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -8181,6 +8187,26 @@ "util.promisify": "^1.0.0" } }, + "recast": { + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.2.tgz", + "integrity": "sha512-YHFvn4rBXl8eIjALjUiOV/AP3xFpyGNGNHDw9mAncAWuIdgnBKjbZQ9+P3VlsKcNaNapRVFlTEX1dvDRlYwyxg==", + "dev": true, + "requires": { + "ast-types": "0.12.1", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "recompose": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", @@ -8743,28 +8769,6 @@ } } }, - "rollup-plugin-replace": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.1.0.tgz", - "integrity": "sha512-SxrAIgpH/B5/W4SeULgreOemxcpEgKs2gcD42zXw50bhqGWmcnlXneVInQpAqzA/cIly4bJrOpeelmB9p4YXSQ==", - "dev": true, - "requires": { - "magic-string": "^0.25.1", - "minimatch": "^3.0.2", - "rollup-pluginutils": "^2.0.1" - }, - "dependencies": { - "magic-string": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", - "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.1" - } - } - } - }, "rollup-plugin-typescript2": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.18.1.tgz", @@ -8811,21 +8815,13 @@ } }, "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", + "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", "dev": true, "requires": { - "estree-walker": "^0.3.0", + "estree-walker": "^0.5.2", "micromatch": "^2.3.11" - }, - "dependencies": { - "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", - "dev": true - } } }, "rst-selector-parser": { diff --git a/package.json b/package.json index bdeba406d8..7421bdad02 100644 --- a/package.json +++ b/package.json @@ -132,6 +132,7 @@ "react": "16.5.2", "react-dom": "16.7.0", "react-test-renderer": "16.7.0", + "recast": "^0.17.2", "recompose": "0.30.0", "recursive-rename": "2.0.0", "rimraf": "2.6.3", @@ -139,9 +140,9 @@ "rollup-plugin-commonjs": "9.2.0", "rollup-plugin-filesize": "^6.0.0", "rollup-plugin-node-resolve": "3.4.0", - "rollup-plugin-replace": "2.1.0", "rollup-plugin-typescript2": "^0.18.1", "rollup-plugin-uglify": "6.0.1", + "rollup-pluginutils": "^2.3.3", "ts-jest": "23.10.5", "tslint": "5.12.1", "typescript": "3.1.6", diff --git a/rollup.config.js b/rollup.config.js index 849a53d18d..f5bbe8cf33 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,9 +1,9 @@ import node from 'rollup-plugin-node-resolve'; import { uglify } from 'rollup-plugin-uglify'; -import replace from 'rollup-plugin-replace'; import typescript from 'typescript'; import typescriptPlugin from 'rollup-plugin-typescript2'; import filesize from 'rollup-plugin-filesize'; +import invariantPlugin from './rollup/plugin-invariant'; function onwarn(message) { const suppressed = ['UNRESOLVED_IMPORT', 'THIS_IS_UNDEFINED']; @@ -27,6 +27,7 @@ export default [ only: ['tslib'] }), typescriptPlugin({ typescript }), + invariantPlugin(), filesize(), ], onwarn, @@ -45,12 +46,19 @@ export default [ output: { file: 'dist/bundlesize.js', format: 'cjs', + name: 'react-apollo' }, plugins: [ - replace({ - 'process.env.NODE_ENV': JSON.stringify('production'), + uglify({ + mangle: { + toplevel: true, + }, + compress: { + global_defs: { + "@process.env.NODE_ENV": JSON.stringify("production"), + }, + } }), - uglify(), ], onwarn, }, diff --git a/rollup/plugin-invariant.js b/rollup/plugin-invariant.js new file mode 100644 index 0000000000..76c5c028cd --- /dev/null +++ b/rollup/plugin-invariant.js @@ -0,0 +1,77 @@ +import { createFilter } from "rollup-pluginutils"; +import recast from "recast"; + +const b = recast.types.builders; + +export default function invariantPlugin(options = {}) { + const filter = createFilter(options.include, options.exclude); + + return { + transform(code, id) { + if (!filter(id)) { + return; + } + + const ast = recast.parse(code, { parser: this }); + + recast.visit(ast, { + visitCallExpression(path) { + this.traverse(path); + const node = path.value; + if (isCallWithLength(node, "invariant", 1)) { + return b.conditionalExpression( + makeNodeEnvTest(), + b.callExpression.from({ + ...node, + arguments: node.arguments.slice(0, 1), + }), + node, + ); + } + }, + + visitNewExpression(path) { + this.traverse(path); + const node = path.value; + if (isCallWithLength(node, "InvariantError", 0)) { + return b.conditionalExpression( + makeNodeEnvTest(), + b.newExpression.from({ + ...node, + arguments: [], + }), + node, + ); + } + } + }); + + return { + code: recast.print(ast).code, + map: null, + }; + } + }; +} + +function isCallWithLength(node, name, length) { + return ( + node.callee.type === "Identifier" && + node.callee.name === name && + node.arguments.length > length + ); +} + +function makeNodeEnvTest() { + return b.binaryExpression( + "===", + b.memberExpression( + b.memberExpression( + b.identifier("process"), + b.identifier("env") + ), + b.identifier("NODE_ENV"), + ), + b.stringLiteral("production"), + ); +} From 049a43354f18966eeaab2238839b701eb244ee70 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 13:49:20 -0500 Subject: [PATCH 20/49] Use lib/react-apollo.cjs.js as "main" entry point in package.json. https://github.com/apollographql/react-apollo/pull/2771#pullrequestreview-198727840 --- .circleci/config.yml | 17 ----------------- jest.cjs.config.js | 10 ++++++++-- jest.server.umd.config.js | 14 -------------- package.json | 4 +--- rollup.config.js | 4 ++-- scripts/prepare-package.sh | 2 +- 6 files changed, 12 insertions(+), 39 deletions(-) delete mode 100644 jest.server.umd.config.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 47840f0170..128e244287 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,22 +61,6 @@ jobs: - store_artifacts: path: reports/junit - Server: - docker: [{ image: 'circleci/node:8' }] - steps: - - checkout - - run: npm i - - run: npm run compile - - run: - name: Jest suite - command: npm run test:compiled:server:umd -- --ci --testResultsProcessor="jest-junit" - environment: - JEST_JUNIT_OUTPUT: 'reports/junit/js-test-results.xml' - - store_test_results: - path: reports/junit - - store_artifacts: - path: reports/junit - Commonjs: docker: [{ image: 'circleci/node:8' }] steps: @@ -110,6 +94,5 @@ workflows: - Linting - Typecheck - Preact - - Server - Commonjs - Filesize diff --git a/jest.cjs.config.js b/jest.cjs.config.js index 0772b2fee0..0ca648de81 100644 --- a/jest.cjs.config.js +++ b/jest.cjs.config.js @@ -1,8 +1,14 @@ const { jest } = require('./package.json'); jest.moduleNameMapper = { - '\\.\\./src$': '/lib/index.js', - '\\.\\./src/(.*)': '/lib/$1.js', + '\\.\\./src$': '/lib/react-apollo.cjs.js', + '\\.\\./src/test-utils': '/lib/test-utils.js', + '\\.\\./src/walkTree': '/lib/walkTree.js', + // Force other imports to /src/whatever to fail + '\\.\\./src': '/test/fail-no-entry-point.js', }; +// Ignore tests that don't go against the public API +jest.modulePathIgnorePatterns.push('/test/internal-api'); + module.exports = jest; diff --git a/jest.server.umd.config.js b/jest.server.umd.config.js deleted file mode 100644 index 0a503751b5..0000000000 --- a/jest.server.umd.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const { jest } = require('./package.json'); - -jest.moduleNameMapper = { - '\\.\\./src$': '/lib/react-apollo.umd.js', - '\\.\\./src/test-utils': '/lib/test-utils.js', - '\\.\\./src/walkTree': '/lib/walkTree.js', - // Force other imports to /src/whatever to fail - '\\.\\./src': '/test/fail-no-entry-point.js', -}; - -// Ignore tests that don't go against the public API -jest.modulePathIgnorePatterns.push('/test/internal-api'); - -module.exports = jest; diff --git a/package.json b/package.json index 7421bdad02..21ebf69da3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "react" ], "license": "MIT", - "main": "lib/index.js", + "main": "lib/react-apollo.cjs.js", "module": "lib/react-apollo.esm.js", "react-native": { "react-dom/server": false @@ -38,9 +38,7 @@ "test-examples": ". ./test-examples.sh", "test-preact": "jest --config ./jest.preact.config.json --runInBand", "test-watch": "jest --watch", - "test:compiled": "npm run test:compiled:server:umd && npm run test:compiled:cjs", "test:compiled:cjs": "jest --config jest.cjs.config.js --runInBand", - "test:compiled:server:umd": "jest --config jest.server.umd.config.js --runInBand", "type-check": "tsc --project tsconfig.json --noEmit ", "watch": "tsc -w" }, diff --git a/rollup.config.js b/rollup.config.js index f5bbe8cf33..878ab2fa8d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -35,8 +35,8 @@ export default [ { input: 'lib/react-apollo.esm.js', output: { - file: 'lib/react-apollo.umd.js', - format: 'umd', + file: 'lib/react-apollo.cjs.js', + format: 'cjs', name: 'react-apollo' }, onwarn, diff --git a/scripts/prepare-package.sh b/scripts/prepare-package.sh index a6565fbb76..506344db52 100755 --- a/scripts/prepare-package.sh +++ b/scripts/prepare-package.sh @@ -19,7 +19,7 @@ node -e "var package = require('./package.json'); \ delete package.options; \ delete package.prettier; \ delete package.devDependencies; \ - package.main = 'index.js'; \ + package.main = 'react-apollo.cjs.js'; \ package.module = 'react-apollo.esm.js'; \ package.typings = 'index.d.ts'; \ var origVersion = 'local'; From 898d52032f1f11f200d4e94f8fe9b1d43b6ac42b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 14:15:47 -0500 Subject: [PATCH 21/49] Bring back react-apollo/react-apollo.umd.js. --- .circleci/config.yml | 17 +++++++++++++++++ jest.umd.config.js | 14 ++++++++++++++ package.json | 2 ++ rollup.config.js | 9 +++++++++ 4 files changed, 42 insertions(+) create mode 100644 jest.umd.config.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 128e244287..0c9d9f4a06 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,6 +77,22 @@ jobs: - store_artifacts: path: reports/junit + UMD: + docker: [{ image: 'circleci/node:8' }] + steps: + - checkout + - run: npm i + - run: npm run compile + - run: + name: Jest suite + command: npm run test:compiled:umd -- --ci --testResultsProcessor="jest-junit" + environment: + JEST_JUNIT_OUTPUT: 'reports/junit/js-test-results.xml' + - store_test_results: + path: reports/junit + - store_artifacts: + path: reports/junit + Filesize: docker: [{ image: 'circleci/node:8' }] steps: @@ -94,5 +110,6 @@ workflows: - Linting - Typecheck - Preact + - UMD - Commonjs - Filesize diff --git a/jest.umd.config.js b/jest.umd.config.js new file mode 100644 index 0000000000..0a503751b5 --- /dev/null +++ b/jest.umd.config.js @@ -0,0 +1,14 @@ +const { jest } = require('./package.json'); + +jest.moduleNameMapper = { + '\\.\\./src$': '/lib/react-apollo.umd.js', + '\\.\\./src/test-utils': '/lib/test-utils.js', + '\\.\\./src/walkTree': '/lib/walkTree.js', + // Force other imports to /src/whatever to fail + '\\.\\./src': '/test/fail-no-entry-point.js', +}; + +// Ignore tests that don't go against the public API +jest.modulePathIgnorePatterns.push('/test/internal-api'); + +module.exports = jest; diff --git a/package.json b/package.json index 21ebf69da3..e9e87d6fad 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,9 @@ "test-examples": ". ./test-examples.sh", "test-preact": "jest --config ./jest.preact.config.json --runInBand", "test-watch": "jest --watch", + "test:compiled": "npm run test:compiled:cjs && npm run test:compiled:umd", "test:compiled:cjs": "jest --config jest.cjs.config.js --runInBand", + "test:compiled:umd": "jest --config jest.umd.config.js --runInBand", "type-check": "tsc --project tsconfig.json --noEmit ", "watch": "tsc -w" }, diff --git a/rollup.config.js b/rollup.config.js index 878ab2fa8d..49a15f4bc2 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -41,6 +41,15 @@ export default [ }, onwarn, }, + { + input: 'lib/react-apollo.esm.js', + output: { + file: 'lib/react-apollo.umd.js', + format: 'umd', + name: 'react-apollo' + }, + onwarn, + }, { input: 'lib/react-apollo.esm.js', output: { From e9f6aee99507c3b9993f3a73910185c15458c277 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 16:32:17 -0500 Subject: [PATCH 22/49] Make rollup/plugin-invariant.js an external npm package. @rosskevin I hope this addresses your main concerns from this comment: https://github.com/apollographql/react-apollo/pull/2771#pullrequestreview-198669081 --- package-lock.json | 11 ++++++ package.json | 3 +- rollup.config.js | 2 +- rollup/plugin-invariant.js | 77 -------------------------------------- 4 files changed, 13 insertions(+), 80 deletions(-) delete mode 100644 rollup/plugin-invariant.js diff --git a/package-lock.json b/package-lock.json index ec99dae282..081c557c17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8750,6 +8750,17 @@ } } }, + "rollup-plugin-invariant": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-invariant/-/rollup-plugin-invariant-0.1.2.tgz", + "integrity": "sha512-+srhuBuMp87THWK3hYRdkT+swDPqcM/Xb5y/MnDkI+nM6EpeRD+j0/5lEIo2nKtfRXeUtz/Q8AzcYZg7Ifa5Pw==", + "dev": true, + "requires": { + "recast": "^0.17.2", + "rollup-pluginutils": "^2.3.3", + "tslib": "^1.9.3" + } + }, "rollup-plugin-node-resolve": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz", diff --git a/package.json b/package.json index e9e87d6fad..b1b6c028e5 100644 --- a/package.json +++ b/package.json @@ -132,17 +132,16 @@ "react": "16.5.2", "react-dom": "16.7.0", "react-test-renderer": "16.7.0", - "recast": "^0.17.2", "recompose": "0.30.0", "recursive-rename": "2.0.0", "rimraf": "2.6.3", "rollup": "0.68.2", "rollup-plugin-commonjs": "9.2.0", "rollup-plugin-filesize": "^6.0.0", + "rollup-plugin-invariant": "^0.1.2", "rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-typescript2": "^0.18.1", "rollup-plugin-uglify": "6.0.1", - "rollup-pluginutils": "^2.3.3", "ts-jest": "23.10.5", "tslint": "5.12.1", "typescript": "3.1.6", diff --git a/rollup.config.js b/rollup.config.js index 49a15f4bc2..23a1084524 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -3,7 +3,7 @@ import { uglify } from 'rollup-plugin-uglify'; import typescript from 'typescript'; import typescriptPlugin from 'rollup-plugin-typescript2'; import filesize from 'rollup-plugin-filesize'; -import invariantPlugin from './rollup/plugin-invariant'; +import invariantPlugin from 'rollup-plugin-invariant'; function onwarn(message) { const suppressed = ['UNRESOLVED_IMPORT', 'THIS_IS_UNDEFINED']; diff --git a/rollup/plugin-invariant.js b/rollup/plugin-invariant.js deleted file mode 100644 index 76c5c028cd..0000000000 --- a/rollup/plugin-invariant.js +++ /dev/null @@ -1,77 +0,0 @@ -import { createFilter } from "rollup-pluginutils"; -import recast from "recast"; - -const b = recast.types.builders; - -export default function invariantPlugin(options = {}) { - const filter = createFilter(options.include, options.exclude); - - return { - transform(code, id) { - if (!filter(id)) { - return; - } - - const ast = recast.parse(code, { parser: this }); - - recast.visit(ast, { - visitCallExpression(path) { - this.traverse(path); - const node = path.value; - if (isCallWithLength(node, "invariant", 1)) { - return b.conditionalExpression( - makeNodeEnvTest(), - b.callExpression.from({ - ...node, - arguments: node.arguments.slice(0, 1), - }), - node, - ); - } - }, - - visitNewExpression(path) { - this.traverse(path); - const node = path.value; - if (isCallWithLength(node, "InvariantError", 0)) { - return b.conditionalExpression( - makeNodeEnvTest(), - b.newExpression.from({ - ...node, - arguments: [], - }), - node, - ); - } - } - }); - - return { - code: recast.print(ast).code, - map: null, - }; - } - }; -} - -function isCallWithLength(node, name, length) { - return ( - node.callee.type === "Identifier" && - node.callee.name === name && - node.arguments.length > length - ); -} - -function makeNodeEnvTest() { - return b.binaryExpression( - "===", - b.memberExpression( - b.memberExpression( - b.identifier("process"), - b.identifier("env") - ), - b.identifier("NODE_ENV"), - ), - b.stringLiteral("production"), - ); -} From d6792eb0ba2dc883643e91fa5c31bdb7c1d466dc Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 17:18:51 -0500 Subject: [PATCH 23/49] Add **Building for production** section to README.md. https://github.com/apollographql/react-apollo/pull/2771#discussion_r252791217 --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index add5b3d371..1b5c536c67 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,14 @@ React Apollo makes use of `Object.assign`, which is not supported in certain bro import 'core-js/fn/object/assign'; ``` +## Building for production + +The `react-apollo` package is designed to be effectively consumed by bundlers that understand either CommonJS `require` syntax or ECMASCript `import` and `export` syntax, such as [Rollup](https://rollupjs.org), [Webpack](https://webpack.js.org), or [Parcel](https://parceljs.org). If your bundler supports tree-shaking, it should be able to eliminate unused code from the `react-apollo` package, regardless of which module syntax you're using. + +You should (almost) never need to reach into the `react-apollo/...` internals to import specific modules. The only supported exceptions are `react-apollo/test-links`, `react-apollo/test-utils`, and `react-apollo/walkTree` (deprecated). + +When minifying your application, you can make the `react-apollo` package noticeably smaller by configuring your minifier to replace the expression `process.env.NODE_ENV` with a string literal (typically `"production"`). Other packages such as [React](https://reactjs.org) use the same convention, so there's a good chance you already have your minifier configured in this way. + ## Documentation For a complete React Apollo API reference visit the documentation website at: [https://www.apollographql.com/docs/react/api/react-apollo.html](https://www.apollographql.com/docs/react/api/react-apollo.html) From b81e58427b1888b6ec4286cbd910d0a529095126 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 17:28:14 -0500 Subject: [PATCH 24/49] Increase timeout for flaky Mutation test. --- test/client/Mutation.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/client/Mutation.test.tsx b/test/client/Mutation.test.tsx index 23c72fb203..2ed26d26a3 100644 --- a/test/client/Mutation.test.tsx +++ b/test/client/Mutation.test.tsx @@ -1521,7 +1521,7 @@ describe('after it has been unmounted', () => { setTimeout(() => { if (!success) done.fail('timeout passed'); - }, 200); + }, 500); }); it('calls the onError prop if the mutation encounters an error', done => { From 84e616460b2c57ae82200ab53b4b5f5c7c47b51e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 17:34:23 -0500 Subject: [PATCH 25/49] Bump react-apollo to version 2.5.0-beta.1. --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index e451fa72ad..9b7e907a5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3f894269f6..40d798bd0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-beta.0", + "version": "2.5.0-beta.1", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", From 417546e71d2165aa92a420e3d97e1c96984dd7a2 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Mon, 4 Feb 2019 12:59:48 -0500 Subject: [PATCH 26/49] Switch `apollo-*` deps to use `beta` --- package-lock.json | 167 +++++++++++++--------------------------------- package.json | 10 +-- 2 files changed, 53 insertions(+), 124 deletions(-) diff --git a/package-lock.json b/package-lock.json index c15843d1b6..207b97db49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -693,133 +693,81 @@ } }, "apollo-cache": { - "version": "1.1.25", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.25.tgz", - "integrity": "sha512-9HhI/tVEHAeGaJJvi1Vpf6PzXUCA0PqNbigi2G3uOc180JjxbcaBvEbKXMEDb/UyTXkFWzI4PiPDuDQFqmIMSA==", + "version": "1.2.0-beta.0", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-beta.0.tgz", + "integrity": "sha512-MIkqjZcej+GhCWJjHCU/qR8cHB+gS36+ZIollp76tfOva0xTxEE1hxdJUQLEKkKI/V522jozexIEW6DjORJn+Q==", "dev": true, "requires": { - "apollo-utilities": "^1.1.2", + "apollo-utilities": "^1.2.0-beta.0", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.2.tgz", - "integrity": "sha512-EjDx8vToK+zkWIxc76ZQY/irRX52puNg04xf/w8R0kVTDAgHuVfnFVC01O5vE25kFnIaa5em0pFI0p9b6YMkhQ==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "tslib": "^1.9.3" - } - } } }, "apollo-cache-inmemory": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.4.2.tgz", - "integrity": "sha512-fDVmj5j1e3W+inyuSwjIcMgbQ4edcFgmiKTBMFAEKAq0jg33X7FrbDX8JT2t5Vuf75Mva50JDlt5wXdu7C6WuA==", + "version": "1.5.0-beta.0", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-beta.0.tgz", + "integrity": "sha512-fUhM4l1rBI/4ITMIniaUNL1Ktirf0iH6nKzvnQV7W0noPSOI1zSOibgQ1fpS/vr194QkU+bD3DbrCd7OeRXcag==", "dev": true, "requires": { - "apollo-cache": "^1.1.25", - "apollo-utilities": "^1.1.2", + "apollo-cache": "^1.2.0-beta.0", + "apollo-utilities": "^1.2.0-beta.0", "optimism": "^0.6.9", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.2.tgz", - "integrity": "sha512-EjDx8vToK+zkWIxc76ZQY/irRX52puNg04xf/w8R0kVTDAgHuVfnFVC01O5vE25kFnIaa5em0pFI0p9b6YMkhQ==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "tslib": "^1.9.3" - } - } } }, "apollo-client": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.4.12.tgz", - "integrity": "sha512-E5ClFSB9btJLYibLKwLDSCg+w9tI+25eZgXOM+DClawu7of4d/xhuV/xvpuZpsMP3qwrp0QPacBnfG4tUJs3/w==", + "version": "2.5.0-beta.0", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-beta.0.tgz", + "integrity": "sha512-Tj2P0eIci2zE3HuoPqhPLb11RydXfRyzEmDFg4WS5tnCPOc163sOV4+i6530MT3Ve9Dc7U12DdXfGnQ+6yY/fA==", "dev": true, "requires": { "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.1.25", + "apollo-cache": "1.2.0-beta.0", "apollo-link": "^1.0.0", "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.1.2", + "apollo-utilities": "1.2.0-beta.0", "symbol-observable": "^1.0.2", "tslib": "^1.9.3", "zen-observable": "^0.8.0" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.2.tgz", - "integrity": "sha512-EjDx8vToK+zkWIxc76ZQY/irRX52puNg04xf/w8R0kVTDAgHuVfnFVC01O5vE25kFnIaa5em0pFI0p9b6YMkhQ==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "tslib": "^1.9.3" - } - }, - "zen-observable": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.11.tgz", - "integrity": "sha512-N3xXQVr4L61rZvGMpWe8XoCGX8vhU35dPyQ4fm5CY/KDlG0F75un14hjbckPXTDuKUY6V0dqR2giT6xN8Y4GEQ==", - "dev": true - } } }, "apollo-link": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.1.tgz", - "integrity": "sha512-6Ghf+j3cQLCIvjXd2dJrLw+16HZbWbwmB1qlTc41BviB2hv+rK1nJr17Y9dWK0UD4p3i9Hfddx3tthpMKrueHg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.8.tgz", + "integrity": "sha512-lfzGRxhK9RmiH3HPFi7TIEBhhDY9M5a2ZDnllcfy5QDk7cCQHQ1WQArcw1FK0g1B+mV4Kl72DSrlvZHZJEolrA==", "dev": true, "requires": { - "@types/node": "^9.4.6", - "apollo-utilities": "^1.0.0", - "zen-observable-ts": "^0.8.6" + "zen-observable-ts": "^0.8.15" }, "dependencies": { "zen-observable-ts": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.8.tgz", - "integrity": "sha512-oGjFvBbAA94uh/HvAwJDwMHtNq4lZRtupJx8XsyreOTYvH8x1ef9hIeH/M+IqiAXtNpglq/Klh5rbpYWEeRSOQ==", + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.15.tgz", + "integrity": "sha512-sXKPWiw6JszNEkRv5dQ+lQCttyjHM2Iks74QU5NP8mMPS/NrzTlHDr780gf/wOBqmHkPO6NCLMlsa+fAQ8VE8w==", "dev": true, "requires": { - "zen-observable": "^0.7.0" + "zen-observable": "^0.8.0" } } } }, "apollo-link-dedup": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.13.tgz", - "integrity": "sha512-i4NuqT3DSFczFcC7NMUzmnYjKX7NggLY+rqYVf+kE9JjqKOQhT6wqhaWsVIABfIUGE/N0DTgYJBCMu/18aXmYA==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.15.tgz", + "integrity": "sha512-14/+Tg7ogcYVrvZa8C7uBQIvX2B/dCKSnojI41yDYGp/t2eWD5ITCWdgjhciXpi0Ij6z+NRyMEebACz3EOwm4w==", "dev": true, "requires": { - "apollo-link": "^1.2.6" - }, - "dependencies": { - "apollo-link": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.6.tgz", - "integrity": "sha512-sUNlA20nqIF3gG3F8eyMD+mO80fmf3dPZX+GUOs3MI9oZR8ug09H3F0UsWJMcpEg6h55Yy5wZ+BMmAjrbenF/Q==", - "dev": true, - "requires": { - "apollo-utilities": "^1.0.0", - "zen-observable-ts": "^0.8.13" - } - } + "apollo-link": "^1.2.8" } }, "apollo-utilities": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.8.tgz", - "integrity": "sha512-EvqRJCw5xy2gWeH37toUimbEkmUxronCosBNE4tOCJvZUMLLGB8CuTQ5RsBhKJm+rZ6kwGxV+2uszk14f/P/rA==", - "dev": true + "version": "1.2.0-beta.0", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.0.tgz", + "integrity": "sha512-NVPp5+iulBqkFqOJj3ABddDj4K3/nMh08iVBT1P2O3O0mer+ldLPJWJI02HDcu81uGQUk3StBn06V9Ja751zRQ==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "tslib": "^1.9.3" + } }, "append-transform": { "version": "0.4.0", @@ -3591,8 +3539,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3616,15 +3563,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3641,22 +3586,19 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3787,8 +3729,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -3802,7 +3743,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3819,7 +3759,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3828,15 +3767,13 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "resolved": false, "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3857,7 +3794,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -3946,8 +3882,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -3961,7 +3896,6 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4057,8 +3991,7 @@ "version": "5.1.1", "resolved": false, "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -4100,7 +4033,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4122,7 +4054,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4171,15 +4102,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "resolved": false, "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true, - "optional": true + "dev": true } } }, @@ -10969,9 +10898,9 @@ } }, "zen-observable": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.7.1.tgz", - "integrity": "sha512-OI6VMSe0yeqaouIXtedC+F55Sr6r9ppS7+wTbSexkYdHbdt4ctTuPNXP/rwm7GTVI63YBc+EBT0b0tl7YnJLRg==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.13.tgz", + "integrity": "sha512-fa+6aDUVvavYsefZw0zaZ/v3ckEtMgCFi30sn91SEZea4y/6jQp05E3omjkX91zV6RVdn15fqnFZ6RKjRGbp2g==", "dev": true }, "zen-observable-ts": { diff --git a/package.json b/package.json index 6e32d473b9..37273a3556 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "^2.4.12", + "apollo-client": "beta", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -107,10 +107,10 @@ "@types/react-test-renderer": "16.0.3", "@types/recompose": "0.30.3", "@types/zen-observable": "0.8.0", - "apollo-cache": "^1.1.25", - "apollo-cache-inmemory": "^1.4.2", - "apollo-client": "^2.4.12", - "apollo-link": "1.2.1", + "apollo-cache": "beta", + "apollo-cache-inmemory": "beta", + "apollo-client": "beta", + "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", "babel-preset-env": "1.7.0", From f4375779c906ba7f28454f7800052e2e69627a6b Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Mon, 4 Feb 2019 13:02:43 -0500 Subject: [PATCH 27/49] Adjust types to line up with recent Apollo Link type changes --- src/Mutation.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Mutation.tsx b/src/Mutation.tsx index 8b135fe77f..5aff8d94a6 100644 --- a/src/Mutation.tsx +++ b/src/Mutation.tsx @@ -35,14 +35,19 @@ export declare type MutationUpdaterFn< } > = (proxy: DataProxy, mutationResult: FetchResult) => void; -export declare type FetchResult, E = Record> = ExecutionResult< - C -> & { +export declare type FetchResult< + TData = Record, + C = Record, + E = Record +> = ExecutionResult & { extensions?: E; context?: C; }; -export declare type MutationOptions = { +export declare type MutationOptions< + TData = { [key: string]: any }, + TVariables = OperationVariables +> = { variables?: TVariables; optimisticResponse?: TData; refetchQueries?: Array | RefetchQueriesProviderFn; @@ -174,11 +179,11 @@ class Mutation extends React.Compo const mutationId = this.generateNewMutationId(); return this.mutate(options) - .then(response => { + .then((response: ExecutionResult) => { this.onMutationCompleted(response, mutationId); return response; }) - .catch(e => { + .catch((e: ApolloError) => { this.onMutationError(e, mutationId); if (!this.props.onError) throw e; }); From cce3316e7e3ed65f554346fe59d6c320d6b695da Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Mon, 4 Feb 2019 13:07:11 -0500 Subject: [PATCH 28/49] Disable HOC prop variable validation Making sure the incoming variables (passed in via props) match the variables used in the defined query/mutation, and logging an error if there is a mismatch, is helpful. With Apollo Client's new integrated local state handling features, and `@client @export` capabilities in particular, it's now feasible to have a query/mutation that uses GraphQL variables that aren't passed in. This means they'll never be passed in via props, which also means the mismatch warning needs to be altered. For now this commit fully disables the mismatched variable check. We don't have an easy way of telling which variables should be verified, and which ones should not, since that would require re-parsing the entire document AST, to extract `@export` variable names. Apollo Client is already going to do this when the query/mutation runs, so we don't want to do this a second time. Given that any mismatched variables will be caught and an error will be thrown at runtime anyways, we should be safe to disable this extra check for now. If this becomes a problem, we can re-visit this in the future. --- src/hoc-utils.tsx | 13 +------------ src/mutation-hoc.tsx | 2 -- src/query-hoc.tsx | 2 -- src/subscription-hoc.tsx | 2 -- 4 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/hoc-utils.tsx b/src/hoc-utils.tsx index 8933a82905..91187bd982 100644 --- a/src/hoc-utils.tsx +++ b/src/hoc-utils.tsx @@ -15,8 +15,6 @@ export function getDisplayName

(WrappedComponent: React.ComponentType

) { export function calculateVariablesFromProps( operation: IDocumentDefinition, props: TProps, - graphQLDisplayName: string, - wrapperName: string, ) { let variables: OperationVariables = {}; for (let { variable, type } of operation.variables) { @@ -30,19 +28,10 @@ export function calculateVariablesFromProps( continue; } - // allow optional props + // Allow optional props if (type.kind !== 'NonNullType') { variables[variableName] = null; - continue; } - - if (operation.type === DocumentType.Mutation) return; - invariant( - typeof variableProp !== 'undefined', - `The operation '${operation.name}' wrapping '${wrapperName}' ` + - `is expecting a variable: '${variable.name.value}' but it was not found in the props ` + - `passed to '${graphQLDisplayName}'`, - ); } return variables; } diff --git a/src/mutation-hoc.tsx b/src/mutation-hoc.tsx index 46c26894e3..bb6f09f12b 100644 --- a/src/mutation-hoc.tsx +++ b/src/mutation-hoc.tsx @@ -51,8 +51,6 @@ export function withMutation< opts.variables = calculateVariablesFromProps( operation, props, - graphQLDisplayName, - getDisplayName(WrappedComponent), ); } diff --git a/src/query-hoc.tsx b/src/query-hoc.tsx index 46692c1601..99c1cc0993 100644 --- a/src/query-hoc.tsx +++ b/src/query-hoc.tsx @@ -61,8 +61,6 @@ export function withQuery< opts.variables = calculateVariablesFromProps( operation, props, - graphQLDisplayName, - getDisplayName(WrappedComponent), ); } return ( diff --git a/src/subscription-hoc.tsx b/src/subscription-hoc.tsx index 5ad59d7cca..e7f24d6c1d 100644 --- a/src/subscription-hoc.tsx +++ b/src/subscription-hoc.tsx @@ -67,8 +67,6 @@ export function withSubscription< opts.variables = calculateVariablesFromProps( operation, props, - graphQLDisplayName, - getDisplayName(WrappedComponent), ); } return ( From 97f08c3443e30c5c2d04b620bfbcc04ec48f6d90 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Mon, 4 Feb 2019 13:14:48 -0500 Subject: [PATCH 29/49] Prevent `@client` fields from being used in mocked responses Now that local state handling is part of Apollo Client, `@client` fields should not used in `MockLink`'s. These changes make sure `@client` document sets are ignored when setting up mocked links. Side note - this commit also adds `apollo-utlities` as a React Apollo dependency. It has been a dependency for a while (used by `MockedProvider`), but hasn't been clearly identified in the `package.json`. --- package-lock.json | 4 +--- package.json | 1 + src/test-links.ts | 10 ++++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 207b97db49..5ba0034c81 100644 --- a/package-lock.json +++ b/package-lock.json @@ -763,7 +763,6 @@ "version": "1.2.0-beta.0", "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.0.tgz", "integrity": "sha512-NVPp5+iulBqkFqOJj3ABddDj4K3/nMh08iVBT1P2O3O0mer+ldLPJWJI02HDcu81uGQUk3StBn06V9Ja751zRQ==", - "dev": true, "requires": { "fast-json-stable-stringify": "^2.0.0", "tslib": "^1.9.3" @@ -3359,8 +3358,7 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", diff --git a/package.json b/package.json index 37273a3556..1495592f95 100644 --- a/package.json +++ b/package.json @@ -149,6 +149,7 @@ "zen-observable-ts": "0.8.13" }, "dependencies": { + "apollo-utilities": "beta", "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", diff --git a/src/test-links.ts b/src/test-links.ts index 8e39fd97ce..dbd0636686 100644 --- a/src/test-links.ts +++ b/src/test-links.ts @@ -8,7 +8,10 @@ import { } from 'apollo-link'; import { print } from 'graphql/language/printer'; -import { addTypenameToDocument } from 'apollo-utilities'; +import { + addTypenameToDocument, + removeClientSetsFromDocument, +} from 'apollo-utilities'; const isEqual = require('lodash.isequal'); export interface MockedResponse { @@ -144,11 +147,10 @@ export class MockSubscriptionLink extends ApolloLink { } function requestToKey(request: GraphQLRequest, addTypename: Boolean): string { + const query = removeClientSetsFromDocument(request.query); const queryString = - request.query && print(addTypename ? addTypenameToDocument(request.query) : request.query); - + query && print(addTypename ? addTypenameToDocument(query) : query); const requestKey = { query: queryString }; - return JSON.stringify(requestKey); } From d6f746d56c083a924d9a8fce7fd29b4aefdf2310 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 7 Feb 2019 13:59:32 -0500 Subject: [PATCH 30/49] Use ts-invariant instead of utils/invariant.ts. --- package-lock.json | 14 +++++++++++--- package.json | 3 ++- src/ApolloConsumer.tsx | 2 +- src/ApolloProvider.tsx | 2 +- src/Mutation.tsx | 2 +- src/Query.tsx | 2 +- src/Subscriptions.tsx | 2 +- src/component-utils.tsx | 2 +- src/hoc-utils.tsx | 2 +- src/parser.ts | 2 +- src/utils/invariant.ts | 15 --------------- src/withApollo.tsx | 2 +- 12 files changed, 22 insertions(+), 28 deletions(-) delete mode 100644 src/utils/invariant.ts diff --git a/package-lock.json b/package-lock.json index 5eac48442a..d885ac1ab1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8751,9 +8751,9 @@ } }, "rollup-plugin-invariant": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-invariant/-/rollup-plugin-invariant-0.1.2.tgz", - "integrity": "sha512-+srhuBuMp87THWK3hYRdkT+swDPqcM/Xb5y/MnDkI+nM6EpeRD+j0/5lEIo2nKtfRXeUtz/Q8AzcYZg7Ifa5Pw==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-invariant/-/rollup-plugin-invariant-0.3.2.tgz", + "integrity": "sha512-1LxRFWan0jXGIlP8H7XaL2ivt96SLQFM7mdSJVMkZSdfNTTCCrIjk4G2H2wdhStcFDtCRpmu9ukYPUXShTa2yg==", "dev": true, "requires": { "recast": "^0.17.2", @@ -10245,6 +10245,14 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "ts-invariant": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz", + "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==", + "requires": { + "tslib": "^1.9.3" + } + }, "ts-jest": { "version": "23.10.5", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.10.5.tgz", diff --git a/package.json b/package.json index 5657135657..ea24b97788 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "rollup": "0.68.2", "rollup-plugin-commonjs": "9.2.0", "rollup-plugin-filesize": "^6.0.0", - "rollup-plugin-invariant": "^0.1.2", + "rollup-plugin-invariant": "^0.3.2", "rollup-plugin-node-resolve": "3.4.0", "rollup-plugin-typescript2": "^0.18.1", "rollup-plugin-uglify": "6.0.2", @@ -152,6 +152,7 @@ "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", + "ts-invariant": "^0.2.1", "tslib": "^1.9.3" } } diff --git a/src/ApolloConsumer.tsx b/src/ApolloConsumer.tsx index d9e569cda0..d685133dd2 100644 --- a/src/ApolloConsumer.tsx +++ b/src/ApolloConsumer.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as PropTypes from 'prop-types'; import ApolloClient from 'apollo-client'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export interface ApolloConsumerProps { children: (client: ApolloClient) => React.ReactElement | null; diff --git a/src/ApolloProvider.tsx b/src/ApolloProvider.tsx index fbe7ec14d2..03d204e3ba 100644 --- a/src/ApolloProvider.tsx +++ b/src/ApolloProvider.tsx @@ -4,7 +4,7 @@ import { Component } from 'react'; import ApolloClient from 'apollo-client'; import { DocumentNode } from 'graphql'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export interface ApolloProviderProps { client: ApolloClient; diff --git a/src/Mutation.tsx b/src/Mutation.tsx index 8b135fe77f..97a3972fc9 100644 --- a/src/Mutation.tsx +++ b/src/Mutation.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as PropTypes from 'prop-types'; import ApolloClient, { PureQueryOptions, ApolloError, FetchPolicy } from 'apollo-client'; import { DataProxy } from 'apollo-cache'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; import { DocumentNode, GraphQLError } from 'graphql'; import shallowEqual from './utils/shallowEqual'; diff --git a/src/Query.tsx b/src/Query.tsx index b83d2d2aa9..af0d176884 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -16,7 +16,7 @@ import { getClient } from './component-utils'; import { RenderPromises } from './getDataFromTree'; import shallowEqual from './utils/shallowEqual'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export type ObservableQueryFields = Pick< ObservableQuery, diff --git a/src/Subscriptions.tsx b/src/Subscriptions.tsx index 76f08dc3da..178ae3d2de 100644 --- a/src/Subscriptions.tsx +++ b/src/Subscriptions.tsx @@ -9,7 +9,7 @@ import { OperationVariables } from './types'; import { getClient } from './component-utils'; import shallowEqual from './utils/shallowEqual'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export interface SubscriptionResult { loading: boolean; diff --git a/src/component-utils.tsx b/src/component-utils.tsx index bf485dbde3..8f2f7016c0 100644 --- a/src/component-utils.tsx +++ b/src/component-utils.tsx @@ -1,5 +1,5 @@ import ApolloClient from 'apollo-client'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export interface CommonComponentProps { client?: ApolloClient; diff --git a/src/hoc-utils.tsx b/src/hoc-utils.tsx index 8933a82905..6ad8c699b3 100644 --- a/src/hoc-utils.tsx +++ b/src/hoc-utils.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; import { OperationVariables } from './types'; import { DocumentType, IDocumentDefinition } from './parser'; diff --git a/src/parser.ts b/src/parser.ts index f921c034d8..eff87464bd 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -5,7 +5,7 @@ import { OperationDefinitionNode, } from 'graphql'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; export enum DocumentType { Query, diff --git a/src/utils/invariant.ts b/src/utils/invariant.ts deleted file mode 100644 index eaa7d80f39..0000000000 --- a/src/utils/invariant.ts +++ /dev/null @@ -1,15 +0,0 @@ -const genericMessage = "Invariant Violation"; - -export class InvariantError extends Error { - framesToPop = 1; - name = genericMessage; - constructor(message: string = genericMessage) { - super(message); - } -} - -export default function invariant(condition: any, message: string) { - if (!condition) { - throw new InvariantError(message); - } -} diff --git a/src/withApollo.tsx b/src/withApollo.tsx index 6545b407b3..c2d0757573 100644 --- a/src/withApollo.tsx +++ b/src/withApollo.tsx @@ -4,7 +4,7 @@ import ApolloConsumer from './ApolloConsumer'; import { ApolloClient } from 'apollo-client'; import hoistNonReactStatics from 'hoist-non-react-statics'; -import invariant from './utils/invariant'; +import { invariant } from 'ts-invariant'; function getDisplayName

(WrappedComponent: React.ComponentType

) { return WrappedComponent.displayName || WrappedComponent.name || 'Component'; From 9ff8f447de403a2d3662c72a4bc08b1330270d45 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Thu, 7 Feb 2019 15:03:30 -0500 Subject: [PATCH 31/49] Make sure `npm run watch` builds ESM/UMB bundles (#2765) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When testing new `react-apollo` changes out (during core development), it can be useful to `npm link` `react-apollo` into a test app. After the link is in place, the `npm run watch` script can be used to compile typescript file changes, in watch mode. So while working on the `react-apollo` codebase, .ts file changes will be picked up automatically, compiled, and because of the `npm link`, the test app will recognize that there have been changes made to `react-apollo` and re-run with the updated version. Unfortunately, `npm run watch` doesn’t currently work as it’s missing the additional post compilation steps that `npm run compile` leverages via `postcompile`. This mean that `npm run watch` isn’t calling `rollup` and generating the associated ESM/UMD bundles. So when typescript changes are picked up and compiled, the application at the other end of the link doesn’t always recognize that `react-apollo` has been updated, since it doesn’t see changes in the ESM/UMD bundles (if it’s using them - e.g. `create-react-app` is). This commit first introduces the `tsc-watch` helper utility to make it easier to run scripts after watched typescript files are compiled. It then wires in changes to call `npm run postcompile` after watched typescript compilation has completed. This helps ensure that apps at the other end of the link see changes, since the ESM/UMD bundles are regenerated. One thing to note is that running rollup with the current config takes about 3 seconds. This adds a delay between making changes in `react-apollo` and seeing them show up in the linked application. We can reduce this time by adjusting the rollup config to accommodate watching and only generate the bundles we need, but given that this functionality is currently broken as is, this commit will at least get things back to a working state. --- package-lock.json | 182 ++++++++++++++++++++++++++++++++++------------ package.json | 3 +- 2 files changed, 136 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index d885ac1ab1..17fa7aeada 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3284,6 +3284,21 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, "exec-sh": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", @@ -3540,6 +3555,12 @@ "map-cache": "^0.2.2" } }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -3591,8 +3612,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3603,7 +3623,7 @@ }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, @@ -3616,15 +3636,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3632,7 +3650,7 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true @@ -3641,22 +3659,19 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3677,7 +3692,7 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true @@ -3732,7 +3747,7 @@ }, "glob": { "version": "7.1.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, @@ -3754,7 +3769,7 @@ }, "iconv-lite": { "version": "0.4.21", - "resolved": false, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, @@ -3787,8 +3802,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -3802,7 +3816,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3819,7 +3832,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3828,15 +3840,13 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", - "resolved": false, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3844,7 +3854,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, @@ -3857,7 +3867,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -3871,7 +3880,7 @@ }, "needle": { "version": "2.2.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, @@ -3883,7 +3892,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, @@ -3913,14 +3922,14 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": false, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, @@ -3946,8 +3955,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -3961,7 +3969,6 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4007,7 +4014,7 @@ }, "rc": { "version": "1.2.7", - "resolved": false, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, @@ -4045,7 +4052,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, @@ -4055,10 +4062,9 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -4076,7 +4082,7 @@ }, "semver": { "version": "5.5.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true @@ -4100,7 +4106,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4122,7 +4127,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4136,7 +4140,7 @@ }, "tar": { "version": "4.4.1", - "resolved": false, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, @@ -4159,7 +4163,7 @@ }, "wide-align": { "version": "1.1.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, @@ -4171,15 +4175,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true, - "optional": true + "dev": true } } }, @@ -6743,6 +6745,12 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -7606,6 +7614,15 @@ "pinkie-promise": "^2.0.0" } }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -7903,6 +7920,15 @@ } } }, + "ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "dev": true, + "requires": { + "event-stream": "=3.3.4" + } + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -9495,6 +9521,15 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -9587,6 +9622,21 @@ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } + }, + "string-argv": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.1.1.tgz", + "integrity": "sha512-El1Va5ehZ0XTj3Ekw4WFidXvTmt9SrC0+eigdojgtJMVtPkF0qbBe9fyNSl9eQf+kUHnTSQxdQYzuHfZy8V+DQ==", + "dev": true + }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -10132,6 +10182,12 @@ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", @@ -10296,6 +10352,36 @@ } } }, + "tsc-watch": { + "version": "1.1.35", + "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-1.1.35.tgz", + "integrity": "sha512-dBqnVU6e+9Dabco6Av9FbBGaGTdJR7ThSprDORX3f9HOim6yTCp/SAPT9SydLmfuh0dOWnrOTBCEAqteHDolJg==", + "dev": true, + "requires": { + "cross-spawn": "^5.1.0", + "node-cleanup": "^2.1.2", + "ps-tree": "^1.2.0", + "string-argv": "^0.1.1", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", diff --git a/package.json b/package.json index ea24b97788..9552c27e93 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "test:compiled:cjs": "jest --config jest.cjs.config.js --runInBand", "test:compiled:umd": "jest --config jest.umd.config.js --runInBand", "type-check": "tsc --project tsconfig.json --noEmit ", - "watch": "tsc -w" + "watch": "tsc-watch --onSuccess \"npm run postcompile\"" }, "babel": { "presets": [ @@ -143,6 +143,7 @@ "rollup-plugin-typescript2": "^0.18.1", "rollup-plugin-uglify": "6.0.2", "ts-jest": "23.10.5", + "tsc-watch": "^1.1.35", "tslint": "5.12.1", "typescript": "3.1.6", "typescript-require": "0.2.10", From d5efe42ae70c4207ddf78b8580c0f080c7df37b2 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Fri, 8 Feb 2019 12:30:37 -0500 Subject: [PATCH 32/49] Remove no longer valid props matching variables test The matching code for this test was removed in https://github.com/apollographql/react-apollo/pull/2776/commits/cce3316e7e3ed65f554346fe59d6c320d6b695da. --- test/client/graphql/queries/index.test.tsx | 50 ---------------------- 1 file changed, 50 deletions(-) diff --git a/test/client/graphql/queries/index.test.tsx b/test/client/graphql/queries/index.test.tsx index 637dfcc287..b84791288b 100644 --- a/test/client/graphql/queries/index.test.tsx +++ b/test/client/graphql/queries/index.test.tsx @@ -484,56 +484,6 @@ describe('queries', () => { expect(errorCaught).toBeNull(); }); - // note this should log an error in the console until they are all cleaned up with react 16 - it("errors if the passed props don't contain the needed variables", done => { - const query: DocumentNode = gql` - query people($first: Int!) { - allPeople(first: $first) { - people { - name - } - } - } - `; - const data = { allPeople: { people: [{ name: 'Luke Skywalker' }] } }; - type Data = typeof data; - - const variables = { first: 1 }; - type Vars = typeof variables; - - const link = mockSingleLink({ - request: { query, variables }, - result: { data }, - }); - const client = new ApolloClient({ - link, - cache: new Cache({ addTypename: false }), - }); - - interface WrongProps { - frst: number; - } - const Container = graphql(query)(() => null); - class ErrorBoundary extends React.Component { - componentDidCatch(e: Error) { - expect(e.name).toMatch(/Invariant Violation/); - expect(e.message).toMatch(/The operation 'people'/); - done(); - } - - render() { - return this.props.children; - } - } - renderer.create( - - - - - , - ); - }); - // context it('allows context through updates', done => { const query: DocumentNode = gql` From f580c81e0fbb4eff46178c7d9868248913c1cec1 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Sat, 9 Feb 2019 10:34:04 -0500 Subject: [PATCH 33/49] Adjust `startPolling` test avoid using `jest.runTimersToTime` This test was depending on polling to complete within a specific time interval, but wasn't accommodating for extra processing time that might be needed during that interval. Instead of relying on a specific time frame, these changes adapt the test to finish after 3 polling intervals have completed (and polling time has been reduced to help this test finish in half the time that it did previously). --- test/client/Query.test.tsx | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/test/client/Query.test.tsx b/test/client/Query.test.tsx index 46693f33c4..aa7d5e65d8 100644 --- a/test/client/Query.test.tsx +++ b/test/client/Query.test.tsx @@ -348,8 +348,7 @@ describe('Query component', () => { }); it('startPolling', done => { - jest.useFakeTimers(); - expect.assertions(4); + expect.assertions(3); const data1 = { allPeople: { people: [{ name: 'Luke Skywalker' }] } }; const data2 = { allPeople: { people: [{ name: 'Han Solo' }] } }; @@ -373,8 +372,7 @@ describe('Query component', () => { let count = 0; let isPolling = false; - const POLL_INTERVAL = 30; - const POLL_COUNT = 3; + const POLL_INTERVAL = 5; const Component = () => ( @@ -386,6 +384,7 @@ describe('Query component', () => { isPolling = true; result.startPolling(POLL_INTERVAL); } + catchAsyncError(done, () => { if (count === 0) { expect(stripSymbols(result.data)).toEqual(data1); @@ -393,6 +392,8 @@ describe('Query component', () => { expect(stripSymbols(result.data)).toEqual(data2); } else if (count === 2) { expect(stripSymbols(result.data)).toEqual(data3); + } else if (count === 3) { + done(); } }); @@ -407,13 +408,6 @@ describe('Query component', () => { , ); - - jest.runTimersToTime(POLL_INTERVAL * POLL_COUNT); - - catchAsyncError(done, () => { - expect(count).toBe(POLL_COUNT); - done(); - }); }); it('stopPolling', done => { From 03391a466901f392e49073dac5b26054935a2ce7 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Sat, 9 Feb 2019 12:50:09 -0500 Subject: [PATCH 34/49] Remove failing jest timer mocks from polling tests For some reason polling tests that use jest timer mocks have started failing. This is likely related to recent Apollo Client changes that were made to improve query polling (https://github.com/apollographql/apollo-client/commit/e399ad8dccf5d9ddefe0395c0571d5ddb69830a6), and jest not being able to properly mock AC's timers. Regardless these changes just seem to impact the way jest timer mocks work, they don't impact the actual code that is being tested. These tests can be written and verified without using jest timer mocks, so this commit removes them and verifies things using an alternate approach. At some point we might want to look into why using `jest.useFakeTimers()` and `jest.runTimersToTime()` no longer seems to jive with Apollo Client query polling, but since our use of mock timers is fairly minimal, and in each case we can use an alternative approach to test the same end result, we should be okay to leave this for now. cc @benjamn --- test/client/Query.test.tsx | 25 +++++++------------- test/client/graphql/queries/polling.test.tsx | 19 +++++---------- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/test/client/Query.test.tsx b/test/client/Query.test.tsx index aa7d5e65d8..34fbc26edd 100644 --- a/test/client/Query.test.tsx +++ b/test/client/Query.test.tsx @@ -411,7 +411,6 @@ describe('Query component', () => { }); it('stopPolling', done => { - jest.useFakeTimers(); expect.assertions(3); const data1 = { allPeople: { people: [{ name: 'Luke Skywalker' }] } }; @@ -434,7 +433,7 @@ describe('Query component', () => { ]; const POLL_COUNT = 2; - const POLL_INTERVAL = 30; + const POLL_INTERVAL = 5; let count = 0; const Component = () => ( @@ -448,6 +447,10 @@ describe('Query component', () => { } else if (count === 1) { expect(stripSymbols(result.data)).toEqual(data2); result.stopPolling(); + setTimeout(() => { + expect(count).toBe(POLL_COUNT); + done(); + }, 10); } count++; return null; @@ -460,13 +463,6 @@ describe('Query component', () => { , ); - - jest.runTimersToTime(POLL_INTERVAL * POLL_COUNT); - - catchAsyncError(done, () => { - expect(count).toBe(POLL_COUNT); - done(); - }); }); it('updateQuery', done => { @@ -624,7 +620,6 @@ describe('Query component', () => { }); it('pollInterval', done => { - jest.useFakeTimers(); expect.assertions(4); const data1 = { allPeople: { people: [{ name: 'Luke Skywalker' }] } }; @@ -662,6 +657,9 @@ describe('Query component', () => { expect(stripSymbols(result.data)).toEqual(data2); } else if (count === 2) { expect(stripSymbols(result.data)).toEqual(data3); + } else { + expect(count).toBe(POLL_COUNT); + done(); } count++; return null; @@ -674,13 +672,6 @@ describe('Query component', () => { , ); - - jest.runTimersToTime(POLL_INTERVAL * POLL_COUNT); - - catchAsyncError(done, () => { - expect(count).toBe(POLL_COUNT); - done(); - }); }); it('skip', done => { diff --git a/test/client/graphql/queries/polling.test.tsx b/test/client/graphql/queries/polling.test.tsx index 8e7e6b1f76..e595c5b15a 100644 --- a/test/client/graphql/queries/polling.test.tsx +++ b/test/client/graphql/queries/polling.test.tsx @@ -19,9 +19,9 @@ describe('[queries] polling', () => { }); // polling it('allows a polling query to be created', done => { - jest.useFakeTimers(); + expect.assertions(4); - const POLL_INTERVAL = 250; + const POLL_INTERVAL = 5; const POLL_COUNT = 4; const query: DocumentNode = gql` query people { @@ -52,6 +52,10 @@ describe('[queries] polling', () => { }), })(() => { count++; + expect(true).toBe(true); + if (count === 4) { + done(); + } return null; }); @@ -60,17 +64,6 @@ describe('[queries] polling', () => { , ); - - jest.runTimersToTime(POLL_INTERVAL * POLL_COUNT); - - try { - expect(count).toEqual(POLL_COUNT); - done(); - } catch (e) { - done.fail(e); - } finally { - (wrapper as any).unmount(); - } }); it('exposes stopPolling as part of the props api', done => { From 48a8a172a842e325082d16640cac08b3bb17800d Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Sun, 17 Feb 2019 10:11:41 -0500 Subject: [PATCH 35/49] Remove nested Apollo Client `DefaultOptions` import --- src/test-utils.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test-utils.tsx b/src/test-utils.tsx index b4580b1176..53df07d48e 100644 --- a/src/test-utils.tsx +++ b/src/test-utils.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import ApolloClient from 'apollo-client'; -import { DefaultOptions } from 'apollo-client/ApolloClient'; +import { DefaultOptions } from 'apollo-client'; import { InMemoryCache as Cache } from 'apollo-cache-inmemory'; import { ApolloProvider } from './index'; From 927f13c2bdb2e53047ea07eef2636d6c3b0f2feb Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Sun, 17 Feb 2019 10:14:03 -0500 Subject: [PATCH 36/49] Track subscription last result to help avoid extra renders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the `Query` component, we’re watching for any data that comes in through the Apollo Client `watchQuery` Observable (started in `startQuerySubscription`). When new data is received via the Observable subscription, we’re calling `React.forceUpdate` to force a re-render of the component, so it can use the the new data. While this works, the problem with this approach is that we’re forcing a re-render of the component every time a new result comes in through the subscription (excluding a small check to avoid an initial re-render when getting the component ready), even if the component is already in a state that matches the state it would be put into, after using the result that just came in from the subscription. This can lead to unnecessary re-renders. This problem has always been lurking in React Apollo, but has become more evident due to changes made in Apollo Client 2.5.0. This commit updates React Apollo to keep track of the last result that was received in an Observble subscription chain, and will compare the latest incoming result against this last result, before deciding if the component should be `forceUpdate`d. --- src/Query.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Query.tsx b/src/Query.tsx index b83d2d2aa9..43edcd6974 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -135,6 +135,7 @@ export default class Query extends private hasMounted: boolean = false; private operation?: IDocumentDefinition; + private lastResult?: ApolloQueryResult | null; constructor(props: QueryProps, context: QueryContext) { super(props, context); @@ -197,6 +198,7 @@ export default class Query extends componentWillReceiveProps(nextProps: QueryProps, nextContext: QueryContext) { // the next render wants to skip if (nextProps.skip && !this.props.skip) { + this.lastResult = this.queryObservable!.getLastResult(); this.removeQuerySubscription(); return; } @@ -220,7 +222,10 @@ export default class Query extends } this.updateQuery(nextProps); + if (nextProps.skip) return; + + this.lastResult = this.queryObservable!.getLastResult(); this.startQuerySubscription(); } @@ -329,8 +334,9 @@ export default class Query extends if (this.querySubscription) return; // store the initial renders worth of result let initial: QueryResult | undefined = this.getQueryResult(); + this.querySubscription = this.queryObservable!.subscribe({ - next: ({ data }) => { + next: ({ loading, networkStatus, data }) => { // to prevent a quick second render from the subscriber // we compare to see if the original started finished (from cache) and is unchanged if (initial && initial.networkStatus === 7 && shallowEqual(initial.data, data)) { @@ -338,6 +344,15 @@ export default class Query extends return; } + if ( + this.lastResult && + this.lastResult.loading === loading && + this.lastResult.networkStatus === networkStatus && + shallowEqual(this.lastResult.data, data) + ) { + return; + } + initial = undefined; this.updateCurrentData(); }, @@ -355,6 +370,7 @@ export default class Query extends if (this.querySubscription) { this.querySubscription.unsubscribe(); delete this.querySubscription; + this.lastResult = null; } }; From 77b63e42f341cecd40c96c46381195db8482a853 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Sun, 17 Feb 2019 13:43:17 -0500 Subject: [PATCH 37/49] Update client toggling test to work with current apollo libs Recent changes to both Apollo Client and Apollo Link have impacted the approach used to verify that queries are re-run properly when a Query component has its `client` toggled to another version. This commit updates the test to verify that `client` toggling works with current Apollo libs. --- src/Query.tsx | 1 - .../client/graphql/queries/lifecycle.test.tsx | 61 +++++++++++++------ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/Query.tsx b/src/Query.tsx index 43edcd6974..830744365d 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -198,7 +198,6 @@ export default class Query extends componentWillReceiveProps(nextProps: QueryProps, nextContext: QueryContext) { // the next render wants to skip if (nextProps.skip && !this.props.skip) { - this.lastResult = this.queryObservable!.getLastResult(); this.removeQuerySubscription(); return; } diff --git a/test/client/graphql/queries/lifecycle.test.tsx b/test/client/graphql/queries/lifecycle.test.tsx index 67ccbb3a4d..b244ce6827 100644 --- a/test/client/graphql/queries/lifecycle.test.tsx +++ b/test/client/graphql/queries/lifecycle.test.tsx @@ -442,42 +442,31 @@ describe('[queries] lifecycle', () => { } `; const link1 = mockSingleLink( + // Data for "Load 1" below { request: { query }, result: { data: { a: 1, b: 2, c: 3 } }, }, - { - request: { query }, - result: { data: { a: 1, b: 2, c: 3 } }, - }, + // Data for "Load 2" below { request: { query }, result: { data: { a: 1, b: 2, c: 3 } }, }, ); const link2 = mockSingleLink( + // Data for "Load 3" below { request: { query }, result: { data: { a: 4, b: 5, c: 6 } }, }, - { - request: { query }, - result: { data: { a: 4, b: 5, c: 6 } }, - }, + // Data for "Load 4" below { request: { query }, result: { data: { a: 4, b: 5, c: 6 } }, }, ); const link3 = mockSingleLink( - { - request: { query }, - result: { data: { a: 7, b: 8, c: 9 } }, - }, - { - request: { query }, - result: { data: { a: 7, b: 8, c: 9 } }, - }, + // Data for "Load 5" below { request: { query }, result: { data: { a: 7, b: 8, c: 9 } }, @@ -543,15 +532,26 @@ describe('[queries] lifecycle', () => { renderer.create(); + // Load 1 await wait(1); + + // Load 2 refetchQuery!(); await wait(1); + + // Load 3 switchClient!(client2); await wait(1); + + // Load 4 refetchQuery!(); await wait(1); + + // Load 5 switchClient!(client3); await wait(1); + + // Load 6 switchClient!(client1); await wait(1); switchClient!(client2); @@ -560,18 +560,41 @@ describe('[queries] lifecycle', () => { await wait(1); expect(renders).toEqual([ - { loading: true }, + // Load 1 + { loading: true, a: undefined, b: undefined, c: undefined }, { loading: false, a: 1, b: 2, c: 3 }, + + // Load 2 { loading: true, a: 1, b: 2, c: 3 }, { loading: false, a: 1, b: 2, c: 3 }, - { loading: true }, + + // Load 3 + { loading: true,a: undefined, b: undefined, c: undefined }, { loading: false, a: 4, b: 5, c: 6 }, + + // Load 4 { loading: true, a: 4, b: 5, c: 6 }, { loading: false, a: 4, b: 5, c: 6 }, - { loading: true }, + + // Load 5 + { loading: true, a: undefined, b: undefined, c: undefined }, { loading: false, a: 7, b: 8, c: 9 }, + + // Load 6 + + // The first render is caused by the component having its state updated + // when switching the client. The 2nd and 3rd renders are caused by the + // component re-subscribing to get data from Apollo Client. { loading: false, a: 1, b: 2, c: 3 }, + { loading: false, a: 1, b: 2, c: 3 }, + { loading: false, a: 1, b: 2, c: 3 }, + + { loading: false, a: 4, b: 5, c: 6 }, { loading: false, a: 4, b: 5, c: 6 }, + { loading: false, a: 4, b: 5, c: 6 }, + + { loading: false, a: 7, b: 8, c: 9 }, + { loading: false, a: 7, b: 8, c: 9 }, { loading: false, a: 7, b: 8, c: 9 }, ]); }); From d9835ab5d552d610fc0df02765c09ca1a2d40032 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Wed, 20 Feb 2019 08:56:45 -0500 Subject: [PATCH 38/49] Changes based on code review --- src/Mutation.tsx | 2 +- src/Query.tsx | 31 ++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/Mutation.tsx b/src/Mutation.tsx index 5aff8d94a6..13a7fbe9d4 100644 --- a/src/Mutation.tsx +++ b/src/Mutation.tsx @@ -45,7 +45,7 @@ export declare type FetchResult< }; export declare type MutationOptions< - TData = { [key: string]: any }, + TData = Record, TVariables = OperationVariables > = { variables?: TVariables; diff --git a/src/Query.tsx b/src/Query.tsx index 830744365d..3668986295 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -186,7 +186,7 @@ export default class Query extends this.hasMounted = true; if (this.props.skip) return; - this.startQuerySubscription(); + this.startQuerySubscription(true); if (this.refetcherQueue) { const { args, resolve, reject } = this.refetcherQueue; this.queryObservable!.refetch(args) @@ -221,10 +221,7 @@ export default class Query extends } this.updateQuery(nextProps); - if (nextProps.skip) return; - - this.lastResult = this.queryObservable!.getLastResult(); this.startQuerySubscription(); } @@ -329,8 +326,27 @@ export default class Query extends .catch(() => null); } - private startQuerySubscription = () => { + private startQuerySubscription = (justMounted: boolean = false) => { + // When the `Query` component receives new props, or when we explicitly + // re-subscribe to a query using `resubscribeToQuery`, we start a new + // subscription in this method. To avoid un-necessary re-renders when + // receiving new props or re-subscribing, we track the full last + // observable result so it can be compared against incoming new data. + // We only trigger a re-render if the incoming result is different than + // the stored `lastResult`. + // + // It's important to note that when a component is first mounted, + // the `startQuerySubscription` method is also triggered. During a first + // mount, we don't want to store or use the last result, as we always + // need the first render to happen, even if there was a previous last + // result (which can happen when the same component is mounted, unmounted, + // and mounted again). + if (!justMounted) { + this.lastResult = this.queryObservable!.getLastResult(); + } + if (this.querySubscription) return; + // store the initial renders worth of result let initial: QueryResult | undefined = this.getQueryResult(); @@ -367,9 +383,9 @@ export default class Query extends private removeQuerySubscription = () => { if (this.querySubscription) { + this.lastResult = this.queryObservable!.getLastResult(); this.querySubscription.unsubscribe(); delete this.querySubscription; - this.lastResult = null; } }; @@ -377,7 +393,8 @@ export default class Query extends this.removeQuerySubscription(); const lastError = this.queryObservable!.getLastError(); - const lastResult = this.queryObservable!.getLastResult(); + const lastResult = this.lastResult; + // If lastError is set, the observable will immediately // send it, causing the stream to terminate on initialization. // We clear everything here and restore it afterward to From 411ff37eb80de285f50c8ac6def4adf8689c7ce1 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 21 Feb 2019 13:02:51 -0500 Subject: [PATCH 39/49] Update src/Query.tsx Co-Authored-By: hwillson --- src/Query.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Query.tsx b/src/Query.tsx index 3668986295..0cd280b80d 100644 --- a/src/Query.tsx +++ b/src/Query.tsx @@ -135,7 +135,7 @@ export default class Query extends private hasMounted: boolean = false; private operation?: IDocumentDefinition; - private lastResult?: ApolloQueryResult | null; + private lastResult: ApolloQueryResult | null = null; constructor(props: QueryProps, context: QueryContext) { super(props, context); From b64395815a0ba9a964f3b82a8e60aae5b4998370 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Thu, 21 Feb 2019 15:04:56 -0500 Subject: [PATCH 40/49] Bump versions for RC --- package-lock.json | 91 ++++++++++++++++++++++++++++++++++------------- package.json | 10 +++--- 2 files changed, 72 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index eaec67e8cf..492c6f8054 100644 --- a/package-lock.json +++ b/package-lock.json @@ -693,41 +693,92 @@ } }, "apollo-cache": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-beta.0.tgz", - "integrity": "sha512-MIkqjZcej+GhCWJjHCU/qR8cHB+gS36+ZIollp76tfOva0xTxEE1hxdJUQLEKkKI/V522jozexIEW6DjORJn+Q==", + "version": "1.2.0-rc.0", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.0.tgz", + "integrity": "sha512-MnWEtug+sEzJR2dzrZ0uc1f4hH3HF1mGP+GEvKBx4+kmFjpTtdy6I1SyXRDVjOdLxpzMAQ3o8PM86ygyl/H0Cg==", "dev": true, "requires": { - "apollo-utilities": "^1.2.0-beta.0", + "apollo-utilities": "^1.2.0-beta.1", "tslib": "^1.9.3" + }, + "dependencies": { + "apollo-utilities": { + "version": "1.2.0-beta.1", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", + "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-cache-inmemory": { - "version": "1.5.0-beta.0", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-beta.0.tgz", - "integrity": "sha512-fUhM4l1rBI/4ITMIniaUNL1Ktirf0iH6nKzvnQV7W0noPSOI1zSOibgQ1fpS/vr194QkU+bD3DbrCd7OeRXcag==", + "version": "1.5.0-rc.0", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.0.tgz", + "integrity": "sha512-u38GO0HGZa0VNYJBW/M6is5/CA2VDFBf/ogHWJUP5mwvAIIdLqZMkWQzjRQYrb7CLLCAdssKyDwuMs+2o0jXoQ==", "dev": true, "requires": { - "apollo-cache": "^1.2.0-beta.0", - "apollo-utilities": "^1.2.0-beta.0", + "apollo-cache": "^1.2.0-rc.0", + "apollo-utilities": "^1.2.0-beta.1", "optimism": "^0.6.9", + "ts-invariant": "^0.2.1", "tslib": "^1.9.3" + }, + "dependencies": { + "apollo-utilities": { + "version": "1.2.0-beta.1", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", + "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-client": { - "version": "2.5.0-beta.0", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-beta.0.tgz", - "integrity": "sha512-Tj2P0eIci2zE3HuoPqhPLb11RydXfRyzEmDFg4WS5tnCPOc163sOV4+i6530MT3Ve9Dc7U12DdXfGnQ+6yY/fA==", + "version": "2.5.0-rc.0", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.0.tgz", + "integrity": "sha512-LO5qo5SiReNeZftykHhJpxR+WUqUm9q4hnz/gj5WIfw7QG0gx2tCO1VDCzY23CXcmaQjJuQEPdlsEedobg9+cQ==", "dev": true, "requires": { "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.2.0-beta.0", + "apollo-cache": "1.2.0-rc.0", "apollo-link": "^1.0.0", "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.2.0-beta.0", + "apollo-utilities": "1.2.0-beta.1", "symbol-observable": "^1.0.2", + "ts-invariant": "^0.2.1", "tslib": "^1.9.3", "zen-observable": "^0.8.0" + }, + "dependencies": { + "apollo-cache": { + "version": "1.2.0-rc.0", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.0.tgz", + "integrity": "sha512-MnWEtug+sEzJR2dzrZ0uc1f4hH3HF1mGP+GEvKBx4+kmFjpTtdy6I1SyXRDVjOdLxpzMAQ3o8PM86ygyl/H0Cg==", + "dev": true, + "requires": { + "apollo-utilities": "^1.2.0-beta.1", + "tslib": "^1.9.3" + } + }, + "apollo-utilities": { + "version": "1.2.0-beta.1", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", + "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-link": { @@ -759,15 +810,6 @@ "apollo-link": "^1.2.8" } }, - "apollo-utilities": { - "version": "1.2.0-beta.0", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.0.tgz", - "integrity": "sha512-NVPp5+iulBqkFqOJj3ABddDj4K3/nMh08iVBT1P2O3O0mer+ldLPJWJI02HDcu81uGQUk3StBn06V9Ja751zRQ==", - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "tslib": "^1.9.3" - } - }, "append-transform": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", @@ -3373,7 +3415,8 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", diff --git a/package.json b/package.json index ac3b5d718b..8796a5b820 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-beta.1", + "version": "2.5.0-rc.0", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "beta", + "apollo-client": "^2.5.0-rc.0", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -107,9 +107,9 @@ "@types/react-test-renderer": "16.8.0", "@types/recompose": "0.30.3", "@types/zen-observable": "0.8.0", - "apollo-cache": "beta", - "apollo-cache-inmemory": "beta", - "apollo-client": "beta", + "apollo-cache": "^1.2.0-rc.0", + "apollo-cache-inmemory": "^1.5.0-rc.0", + "apollo-client": "^2.5.0-rc.0", "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", From 7b606563a5b3d7ccf93cf6cbb28e7604be001628 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Thu, 21 Feb 2019 15:05:52 -0500 Subject: [PATCH 41/49] Bump apollo-utilities dep to RC --- package-lock.json | 7 ++++++- package.json | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 492c6f8054..9b7080234e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-beta.1", + "version": "2.5.0-rc.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -810,6 +810,11 @@ "apollo-link": "^1.2.8" } }, + "apollo-utilities": { + "version": "0.2.0-rc.3", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-0.2.0-rc.3.tgz", + "integrity": "sha512-UM5ok/DUKSgh/3T302hoPqCAhqfXdvBaQKOQJb0QUuX3qu2qVKzvwFsv/C3zWYySeCJTP9EoV2LtooIJOhSL4g==" + }, "append-transform": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", diff --git a/package.json b/package.json index 8796a5b820..a271bf71a0 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "zen-observable-ts": "0.8.15" }, "dependencies": { - "apollo-utilities": "beta", + "apollo-utilities": "^0.2.0-rc.3", "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", From ebf10398cbdbb9f067077a0cf86bd81923445ad2 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Thu, 21 Feb 2019 15:22:36 -0500 Subject: [PATCH 42/49] Now that the proper apollo-utilities RC has been published, use it --- package-lock.json | 14 +++++++++----- package.json | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b7080234e..75df8f60d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -811,9 +811,14 @@ } }, "apollo-utilities": { - "version": "0.2.0-rc.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-0.2.0-rc.3.tgz", - "integrity": "sha512-UM5ok/DUKSgh/3T302hoPqCAhqfXdvBaQKOQJb0QUuX3qu2qVKzvwFsv/C3zWYySeCJTP9EoV2LtooIJOhSL4g==" + "version": "1.2.0-rc.1", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.1.tgz", + "integrity": "sha512-RKlC6yrKXo4hS+3zoN1RoW3n76GIV4++yehnU7TRoidD1JyJcWD1IxzcHAycvq3WVmKYtyA8kv0+xq0t5kBvJA==", + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } }, "append-transform": { "version": "0.4.0", @@ -3420,8 +3425,7 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", diff --git a/package.json b/package.json index a271bf71a0..64e4565d0b 100644 --- a/package.json +++ b/package.json @@ -150,7 +150,7 @@ "zen-observable-ts": "0.8.15" }, "dependencies": { - "apollo-utilities": "^0.2.0-rc.3", + "apollo-utilities": "^1.2.0-rc.1", "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", From 1f53b98b99d882178cb2c67d9dffe06ad57f1049 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Thu, 21 Feb 2019 15:53:20 -0500 Subject: [PATCH 43/49] Bump to Apollo Client rc.1 deps --- package-lock.json | 79 +++++++++-------------------------------------- package.json | 10 +++--- 2 files changed, 20 insertions(+), 69 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75df8f60d8..7655ffc47f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.0", + "version": "2.5.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -693,92 +693,43 @@ } }, "apollo-cache": { - "version": "1.2.0-rc.0", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.0.tgz", - "integrity": "sha512-MnWEtug+sEzJR2dzrZ0uc1f4hH3HF1mGP+GEvKBx4+kmFjpTtdy6I1SyXRDVjOdLxpzMAQ3o8PM86ygyl/H0Cg==", + "version": "1.2.0-rc.1", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.1.tgz", + "integrity": "sha512-ZXIkACVnMEh+hh/oGVUshsDBRZJxs6MwsdrdJQPYUrpp+IFsn+HQv5aqqJt9hoGGfvYZUVL4Piv9XObTMKdC0Q==", "dev": true, "requires": { - "apollo-utilities": "^1.2.0-beta.1", + "apollo-utilities": "^1.2.0-rc.1", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.2.0-beta.1", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", - "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } - } } }, "apollo-cache-inmemory": { - "version": "1.5.0-rc.0", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.0.tgz", - "integrity": "sha512-u38GO0HGZa0VNYJBW/M6is5/CA2VDFBf/ogHWJUP5mwvAIIdLqZMkWQzjRQYrb7CLLCAdssKyDwuMs+2o0jXoQ==", + "version": "1.5.0-rc.1", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.1.tgz", + "integrity": "sha512-lQnd/gdIGNA8Pp0pTv1XuEGWKAy9EfJERM7XVEZu0Uxpdh1j53K8O79cpBbokd/IAfLQnkZZxxG7R7C/VOctRA==", "dev": true, "requires": { - "apollo-cache": "^1.2.0-rc.0", - "apollo-utilities": "^1.2.0-beta.1", + "apollo-cache": "^1.2.0-rc.1", + "apollo-utilities": "^1.2.0-rc.1", "optimism": "^0.6.9", "ts-invariant": "^0.2.1", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.2.0-beta.1", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", - "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } - } } }, "apollo-client": { - "version": "2.5.0-rc.0", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.0.tgz", - "integrity": "sha512-LO5qo5SiReNeZftykHhJpxR+WUqUm9q4hnz/gj5WIfw7QG0gx2tCO1VDCzY23CXcmaQjJuQEPdlsEedobg9+cQ==", + "version": "2.5.0-rc.1", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.1.tgz", + "integrity": "sha512-KTlRDpKy7KKk1W9STIitZ2/jhJMG89wSxMtD3H8BKfCGqD6NsU9y4tF1wwfWhUGte3gtuo5iMvGyPrcap4+zMg==", "dev": true, "requires": { "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.2.0-rc.0", + "apollo-cache": "1.2.0-rc.1", "apollo-link": "^1.0.0", "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.2.0-beta.1", + "apollo-utilities": "1.2.0-rc.1", "symbol-observable": "^1.0.2", "ts-invariant": "^0.2.1", "tslib": "^1.9.3", "zen-observable": "^0.8.0" - }, - "dependencies": { - "apollo-cache": { - "version": "1.2.0-rc.0", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.0.tgz", - "integrity": "sha512-MnWEtug+sEzJR2dzrZ0uc1f4hH3HF1mGP+GEvKBx4+kmFjpTtdy6I1SyXRDVjOdLxpzMAQ3o8PM86ygyl/H0Cg==", - "dev": true, - "requires": { - "apollo-utilities": "^1.2.0-beta.1", - "tslib": "^1.9.3" - } - }, - "apollo-utilities": { - "version": "1.2.0-beta.1", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-beta.1.tgz", - "integrity": "sha512-YbQwgnyS6B6uJgtj7kIP/zsLoKuXNFJ4jW98v4PaMMuRb9LyCLm8jEAu5BQtW8Nx/7Vaa25C3o3nvqoAaqvsBg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } - } } }, "apollo-link": { diff --git a/package.json b/package.json index 64e4565d0b..0eaa46efb4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.0", + "version": "2.5.0-rc.1", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "^2.5.0-rc.0", + "apollo-client": "^2.5.0-rc.1", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -107,9 +107,9 @@ "@types/react-test-renderer": "16.8.0", "@types/recompose": "0.30.3", "@types/zen-observable": "0.8.0", - "apollo-cache": "^1.2.0-rc.0", - "apollo-cache-inmemory": "^1.5.0-rc.0", - "apollo-client": "^2.5.0-rc.0", + "apollo-cache": "^1.2.0-rc.1", + "apollo-cache-inmemory": "^1.5.0-rc.1", + "apollo-client": "^2.5.0-rc.1", "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", From d3be327d4023303753df33bb37d80ef27fa10730 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Mon, 25 Feb 2019 07:36:04 -0500 Subject: [PATCH 44/49] Bump versions; prep for publish --- package-lock.json | 98 ++++++++++++++++++++++++++++++++++++++++------- package.json | 12 +++--- 2 files changed, 90 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7655ffc47f..7ff7ee5d5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -693,43 +693,113 @@ } }, "apollo-cache": { - "version": "1.2.0-rc.1", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.1.tgz", - "integrity": "sha512-ZXIkACVnMEh+hh/oGVUshsDBRZJxs6MwsdrdJQPYUrpp+IFsn+HQv5aqqJt9hoGGfvYZUVL4Piv9XObTMKdC0Q==", + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.2.tgz", + "integrity": "sha512-R3O5M6cowa61Dsm2u9k3gdSWmuovTzCgsPcPHnu8yMtepNrfzGySJbCkfpS1g6vnrQoR/q7X3FkxaYMJkVpB5w==", "dev": true, "requires": { - "apollo-utilities": "^1.2.0-rc.1", + "apollo-utilities": "^1.2.0-rc.2", "tslib": "^1.9.3" + }, + "dependencies": { + "apollo-utilities": { + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", + "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-cache-inmemory": { - "version": "1.5.0-rc.1", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.1.tgz", - "integrity": "sha512-lQnd/gdIGNA8Pp0pTv1XuEGWKAy9EfJERM7XVEZu0Uxpdh1j53K8O79cpBbokd/IAfLQnkZZxxG7R7C/VOctRA==", + "version": "1.5.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.2.tgz", + "integrity": "sha512-Yr1QrzPBA9qPR/KLka92l7W7TwIWEnCBgLnnwDit0/PDeDIYcL61kUwWstXzPJyjewsCsIE+3+qAAH1HsbHxNg==", "dev": true, "requires": { - "apollo-cache": "^1.2.0-rc.1", - "apollo-utilities": "^1.2.0-rc.1", + "apollo-cache": "^1.2.0-rc.2", + "apollo-utilities": "^1.2.0-rc.2", "optimism": "^0.6.9", "ts-invariant": "^0.2.1", "tslib": "^1.9.3" + }, + "dependencies": { + "apollo-cache": { + "version": "1.2.0-verify.4", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-verify.4.tgz", + "integrity": "sha512-SgSuDoiZU++hcgJnUnH6WueFibZ6X0FpkppVIb0/6Bi8e8hNY6CT0V1GRtx6GMXQOw/vTjeuYYkxGZZJ0aqXaA==", + "dev": true, + "requires": { + "apollo-utilities": "^1.1.0-verify.4" + }, + "dependencies": { + "apollo-utilities": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.3.tgz", + "integrity": "sha512-pF9abhiClX5gfj/WFWZh8DiI33nOLGxRhXH9ZMquaM1V8bhq1WLFPt2QjShWH3kGQVeIGUK+FQefnhe+ZaaAYg==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "tslib": "^1.9.3" + } + } + } + }, + "apollo-utilities": { + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", + "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-client": { - "version": "2.5.0-rc.1", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.1.tgz", - "integrity": "sha512-KTlRDpKy7KKk1W9STIitZ2/jhJMG89wSxMtD3H8BKfCGqD6NsU9y4tF1wwfWhUGte3gtuo5iMvGyPrcap4+zMg==", + "version": "2.5.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.2.tgz", + "integrity": "sha512-P7RFewcAbyi347+hRhr5vV9JQTUJlUMaVYlqZRiit79r5QlKWOtpM+9tHf8jDTfh1tpMveH0AM+bE8Hdy7S09w==", "dev": true, "requires": { "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.2.0-rc.1", + "apollo-cache": "1.2.0-rc.2", "apollo-link": "^1.0.0", "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.2.0-rc.1", + "apollo-utilities": "1.2.0-rc.2", "symbol-observable": "^1.0.2", "ts-invariant": "^0.2.1", "tslib": "^1.9.3", "zen-observable": "^0.8.0" + }, + "dependencies": { + "apollo-cache": { + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-rc.2.tgz", + "integrity": "sha512-R3O5M6cowa61Dsm2u9k3gdSWmuovTzCgsPcPHnu8yMtepNrfzGySJbCkfpS1g6vnrQoR/q7X3FkxaYMJkVpB5w==", + "dev": true, + "requires": { + "apollo-utilities": "^1.2.0-rc.2", + "tslib": "^1.9.3" + } + }, + "apollo-utilities": { + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", + "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-link": { diff --git a/package.json b/package.json index 0eaa46efb4..3c040ed6bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.1", + "version": "2.5.0-rc.2", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", @@ -23,7 +23,7 @@ "scripts": { "compile": "tsc -p ./tsconfig.cjs.json", "danger": "danger run --verbose", - "deploy": "cd lib && npm publish", + "deploy": "cd lib && npm publish --tag next", "filesize": "bundlesize", "jest": "jest --runInBand --coverage", "lint": "tslint --project tsconfig.json --config tslint.json", @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "^2.5.0-rc.1", + "apollo-client": "^2.5.0-rc.2", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -107,9 +107,9 @@ "@types/react-test-renderer": "16.8.0", "@types/recompose": "0.30.3", "@types/zen-observable": "0.8.0", - "apollo-cache": "^1.2.0-rc.1", - "apollo-cache-inmemory": "^1.5.0-rc.1", - "apollo-client": "^2.5.0-rc.1", + "apollo-cache": "^1.2.0-rc.2", + "apollo-cache-inmemory": "^1.5.0-rc.2", + "apollo-client": "^2.5.0-rc.2", "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", From 2b877b97157304b964899c9e789ed425a2a06fbe Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Tue, 26 Feb 2019 11:05:17 -0500 Subject: [PATCH 45/49] Version bump; prep for rc.3 publish --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 589e25d55a..e572cb26fc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.2", + "version": "2.5.0-rc.3", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "^2.5.0-rc.2", + "apollo-client": "^2.5.0-rc.3", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -109,7 +109,7 @@ "@types/zen-observable": "0.8.0", "apollo-cache": "^1.2.0-rc.2", "apollo-cache-inmemory": "^1.5.0-rc.2", - "apollo-client": "^2.5.0-rc.2", + "apollo-client": "^2.5.0-rc.3", "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", @@ -150,7 +150,7 @@ "zen-observable-ts": "0.8.15" }, "dependencies": { - "apollo-utilities": "^1.2.0-rc.1", + "apollo-utilities": "^1.2.0-rc.2", "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", From b551a3248e54a3dc1009bdf883994c1ec6774ba8 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Tue, 26 Feb 2019 12:49:22 -0500 Subject: [PATCH 46/49] Fix broken package-lock.json --- package-lock.json | 3644 ++++++++++++++++++--------------------------- 1 file changed, 1480 insertions(+), 2164 deletions(-) diff --git a/package-lock.json b/package-lock.json index dbaef9a497..f21c153e61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.1", + "version": "2.5.0-rc.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -34,9 +34,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -50,12 +50,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -86,9 +80,9 @@ } }, "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", - "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", "dev": true, "requires": { "regenerator-runtime": "^0.12.0" @@ -133,12 +127,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true - }, - "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", - "dev": true } } }, @@ -181,8 +169,8 @@ }, "@types/hoist-non-react-statics": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/@types/hoist-non-react-statics/download/@types/hoist-non-react-statics-3.0.1.tgz", - "integrity": "sha1-3efFMQGRLa6PRaGAf5hXpZ3fORk=", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.0.1.tgz", + "integrity": "sha512-3wTz66vV+WatOAjMST+hKCmo01KYPFgnsu+QeLcn0FuwPCoymX6aj1a4RvFCdVsfh2m0hfTPhE/zTv4M28ho1Q==", "dev": true, "requires": { "@types/react": "*" @@ -201,9 +189,9 @@ "dev": true }, "@types/node": { - "version": "9.4.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.6.tgz", - "integrity": "sha512-CTUtLb6WqCCgp6P59QintjHWqzf4VL1uPA27bipLAPxFqrtK1gEYllePzTICGqQ8rYsCbpnsNypXjjDzGAAjEQ==", + "version": "11.9.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.9.5.tgz", + "integrity": "sha512-vVjM0SVzgaOUpflq4GYBvCpozes8OgIIS5gVXVka+OfK3hvnkC1i93U8WiY2OtNE4XUWyyy/86Kf6e0IHTQw1Q==", "dev": true }, "@types/object-assign": { @@ -290,17 +278,17 @@ }, "dependencies": { "acorn": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.1.tgz", - "integrity": "sha512-SiwgrRuRD2D1R6qjwwoopKcCTkmmIWjy1M15Wv+Nk/7VUsBad4P8GOPft2t6coDZG0TuR5dq9o1v0g8wo7F6+A==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", "dev": true } } }, "acorn-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.0.1.tgz", - "integrity": "sha512-PqVQ8c6a3kyqdsUZlC7nljp3FFuxipBRHKu+7C1h8QygBFlzTaDX5HD383jej3Peed+1aDG8HwkfB1Z1HMNPkw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", + "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", "dev": true }, "agent-base": { @@ -313,15 +301,15 @@ } }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz", + "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-align": { @@ -368,9 +356,9 @@ } }, "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { @@ -700,19 +688,6 @@ "requires": { "apollo-utilities": "^1.2.0-rc.2", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", - "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } - } } }, "apollo-cache-inmemory": { @@ -726,46 +701,12 @@ "optimism": "^0.6.9", "ts-invariant": "^0.2.1", "tslib": "^1.9.3" - }, - "dependencies": { - "apollo-cache": { - "version": "1.2.0-verify.4", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-verify.4.tgz", - "integrity": "sha512-SgSuDoiZU++hcgJnUnH6WueFibZ6X0FpkppVIb0/6Bi8e8hNY6CT0V1GRtx6GMXQOw/vTjeuYYkxGZZJ0aqXaA==", - "dev": true, - "requires": { - "apollo-utilities": "^1.1.0-verify.4" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.3.tgz", - "integrity": "sha512-pF9abhiClX5gfj/WFWZh8DiI33nOLGxRhXH9ZMquaM1V8bhq1WLFPt2QjShWH3kGQVeIGUK+FQefnhe+ZaaAYg==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "tslib": "^1.9.3" - } - } - } - }, - "apollo-utilities": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", - "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } - } } }, "apollo-client": { - "version": "2.5.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.2.tgz", - "integrity": "sha512-P7RFewcAbyi347+hRhr5vV9JQTUJlUMaVYlqZRiit79r5QlKWOtpM+9tHf8jDTfh1tpMveH0AM+bE8Hdy7S09w==", + "version": "2.5.0-rc.3", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-rc.3.tgz", + "integrity": "sha512-Kgwl0KluOWOcbI23Q8/v5M+0Cq0p+e7Y/v8g+OHkMA/uIdm3BIgnmy2P15pf00VzIWtSQgALpc6WITXWrg/Dqw==", "dev": true, "requires": { "@types/zen-observable": "^0.8.0", @@ -788,17 +729,6 @@ "apollo-utilities": "^1.2.0-rc.2", "tslib": "^1.9.3" } - }, - "apollo-utilities": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", - "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.2.1", - "tslib": "^1.9.3" - } } } }, @@ -809,17 +739,6 @@ "dev": true, "requires": { "zen-observable-ts": "^0.8.15" - }, - "dependencies": { - "zen-observable-ts": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.15.tgz", - "integrity": "sha512-sXKPWiw6JszNEkRv5dQ+lQCttyjHM2Iks74QU5NP8mMPS/NrzTlHDr780gf/wOBqmHkPO6NCLMlsa+fAQ8VE8w==", - "dev": true, - "requires": { - "zen-observable": "^0.8.0" - } - } } }, "apollo-link-dedup": { @@ -832,9 +751,9 @@ } }, "apollo-utilities": { - "version": "1.2.0-rc.1", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.1.tgz", - "integrity": "sha512-RKlC6yrKXo4hS+3zoN1RoW3n76GIV4++yehnU7TRoidD1JyJcWD1IxzcHAycvq3WVmKYtyA8kv0+xq0t5kBvJA==", + "version": "1.2.0-rc.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", + "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", "requires": { "fast-json-stable-stringify": "^2.0.0", "ts-invariant": "^0.2.1", @@ -928,7 +847,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true }, "asn1": { "version": "0.2.4", @@ -952,9 +872,9 @@ "dev": true }, "ast-types": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.1.tgz", - "integrity": "sha512-H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.2.tgz", + "integrity": "sha512-8c83xDLJM/dLDyXNLiR6afRRm4dPKN6KAnKqytRK3DBJul9lA+atxdQkNDkSVPdTqea5HiRq3lnnOIZ0MBpvdg==", "dev": true }, "astral-regex": { @@ -964,12 +884,12 @@ "dev": true }, "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "^4.17.11" } }, "async-limiter": { @@ -985,9 +905,9 @@ "dev": true }, "atob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", - "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "aws-sign2": { @@ -996,6 +916,12 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, "axios": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz", @@ -1015,6 +941,14 @@ "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } } }, "babel-core": { @@ -1058,14 +992,6 @@ "lodash": "^4.17.4", "source-map": "^0.5.7", "trim-right": "^1.0.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -1404,9 +1330,9 @@ } }, "babel-plugin-transform-es2015-modules-commonjs": { - "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", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", @@ -1611,14 +1537,6 @@ "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" - }, - "dependencies": { - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", - "dev": true - } } }, "babel-runtime": { @@ -1629,14 +1547,6 @@ "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", - "dev": true - } } }, "babel-template": { @@ -1650,14 +1560,6 @@ "babel-types": "^6.26.0", "babylon": "^6.18.0", "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } } }, "babel-traverse": { @@ -1675,14 +1577,6 @@ "globals": "^9.18.0", "invariant": "^2.2.2", "lodash": "^4.17.4" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } } }, "babel-types": { @@ -1695,14 +1589,6 @@ "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", - "dev": true - } } }, "babylon": { @@ -1789,15 +1675,14 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "optional": true, "requires": { "tweetnacl": "^0.14.3" } }, "before-after-hook": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.0.tgz", - "integrity": "sha512-cKJpHP2JckjiWgJCSASD7np08Et+wA+rFVvdwNfCciDHd9IWfa9C2hcwY8o2i5yCFc9E+jhAcKUN9KFgPqi3zA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.2.tgz", + "integrity": "sha512-zyPgY5dgbf99c0uGUjhY4w+mxqEGxPKg9RQDl34VvrVh2bM31lFN+mwR1ZHepq/KA3VCPk1gwJZL6IIJqjLy2w==", "dev": true }, "bl": { @@ -1808,32 +1693,6 @@ "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "block-stream": { @@ -1846,9 +1705,9 @@ } }, "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", "dev": true }, "boolbase": { @@ -1991,6 +1850,14 @@ "dev": true, "requires": { "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } } }, "browserslist": { @@ -2062,9 +1929,9 @@ "dev": true }, "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", "dev": true }, "bundlesize": { @@ -2152,9 +2019,9 @@ } }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, "cache-base": { @@ -2195,9 +2062,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30000846", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz", - "integrity": "sha512-qxUOHr5mTaadWH1ap0ueivHd8x42Bnemcn+JutVr7GWmm2bU4zoBhjuv5QdXgALQnnT626lOQros7cCDf8PwCg==", + "version": "1.0.30000939", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz", + "integrity": "sha512-oXB23ImDJOgQpGjRv1tCtzAvJr4/OvrHi5SO2vUgB0g0xpdZZoA/BxfImiWfdwoYdUTtQrPsXsvYU/dmCSM8gg==", "dev": true }, "capture-exit": { @@ -2261,9 +2128,9 @@ "dev": true }, "ci-info": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", - "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, "class-utils": { @@ -2302,9 +2169,9 @@ "dev": true }, "cliui": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", - "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "^2.1.1", @@ -2368,12 +2235,12 @@ } }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "^1.1.1" + "color-name": "1.1.3" } }, "color-name": { @@ -2383,24 +2250,24 @@ "dev": true }, "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true }, "component-emitter": { @@ -2422,10 +2289,13 @@ "dev": true }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, "copy-descriptor": { "version": "0.1.1", @@ -2434,9 +2304,9 @@ "dev": true }, "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==", "dev": true }, "core-util-is": { @@ -2459,16 +2329,6 @@ "request": "^2.86.0" }, "dependencies": { - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -2478,12 +2338,14 @@ } }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } @@ -2501,30 +2363,30 @@ } }, "css-what": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", - "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, "cssom": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", - "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", + "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", "dev": true }, "cssstyle": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", - "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", + "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", "dev": true, "requires": { "cssom": "0.3.x" } }, "csstype": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.7.tgz", - "integrity": "sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz", + "integrity": "sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow==", "dev": true }, "danger": { @@ -2576,9 +2438,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -2586,12 +2448,6 @@ "supports-color": "^5.3.0" } }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2628,12 +2484,6 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, - "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", - "dev": true - }, "p-limit": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", @@ -2670,13 +2520,13 @@ } }, "data-urls": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.1.tgz", - "integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", "dev": true, "requires": { "abab": "^2.0.0", - "whatwg-mimetype": "^2.1.0", + "whatwg-mimetype": "^2.2.0", "whatwg-url": "^7.0.0" }, "dependencies": { @@ -2754,13 +2604,12 @@ } }, "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "object-keys": "^1.0.12" } }, "define-property": { @@ -2850,9 +2699,9 @@ "dev": true }, "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "discontinuous-range": { @@ -2862,21 +2711,13 @@ "dev": true }, "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } + "domelementtype": "^1.3.0", + "entities": "^1.1.1" } }, "dom-walk": { @@ -2930,25 +2771,24 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", - "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { - "version": "1.3.48", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", - "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=", + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", "dev": true }, "emoji-regex": { @@ -2961,6 +2801,7 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, "requires": { "iconv-lite": "~0.4.13" } @@ -3005,23 +2846,6 @@ "raf": "^3.4.0", "rst-selector-parser": "^2.2.3", "string.prototype.trim": "^1.1.2" - }, - "dependencies": { - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - } } }, "enzyme-adapter-react-16": { @@ -3037,100 +2861,6 @@ "prop-types": "^15.6.2", "react-is": "^16.7.0", "react-test-renderer": "^16.0.0-0" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "react-is": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", - "integrity": "sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==", - "dev": true - } } }, "enzyme-adapter-utils": { @@ -3144,63 +2874,46 @@ "object.fromentries": "^2.0.0", "prop-types": "^15.6.2", "semver": "^5.6.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - } } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "dev": true, "requires": { - "es-to-primitive": "^1.1.1", + "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" } }, "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.1", + "is-callable": "^1.1.4", "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-symbol": "^1.0.2" } }, "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", "dev": true }, "es6-promisify": { @@ -3219,9 +2932,9 @@ "dev": true }, "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", "dev": true, "requires": { "esprima": "^3.1.3", @@ -3247,9 +2960,9 @@ } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "estraverse": { @@ -3295,12 +3008,12 @@ } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "cross-spawn": "^5.0.1", + "cross-spawn": "^6.0.0", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", @@ -3373,6 +3086,12 @@ } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -3398,9 +3117,9 @@ "dev": true }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-json-stable-stringify": { @@ -3423,9 +3142,32 @@ "bser": "^2.0.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "dev": true, + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, @@ -3468,22 +3210,28 @@ } }, "follow-redirects": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", - "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", "dev": true, "requires": { - "debug": "=3.1.0" + "debug": "^3.2.6" }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -3502,12 +3250,6 @@ "for-in": "^1.0.1" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -3515,13 +3257,13 @@ "dev": true }, "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "1.0.6", + "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, @@ -3570,9 +3312,9 @@ "dev": true }, "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", "dev": true, "optional": true, "requires": { @@ -3582,28 +3324,24 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "bundled": true, "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "bundled": true, "dev": true }, "aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3613,14 +3351,12 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "bundled": true, "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "bundled": true, "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -3628,41 +3364,35 @@ } }, "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "version": "1.1.1", + "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "bundled": true, "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "bundled": true, "dev": true }, "console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "bundled": true, "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "bundled": true, "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3670,30 +3400,26 @@ } }, "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "version": "0.6.0", + "bundled": true, "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bundled": true, "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3702,15 +3428,13 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "bundled": true, "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3725,9 +3449,8 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3741,25 +3464,22 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "bundled": true, "dev": true, "optional": true }, "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "version": "0.4.24", + "bundled": true, "dev": true, "optional": true, "requires": { - "safer-buffer": "^2.1.0" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3768,8 +3488,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3779,21 +3498,18 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "bundled": true, "dev": true }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bundled": true, "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -3801,15 +3517,13 @@ }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "bundled": true, "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -3817,24 +3531,21 @@ }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "bundled": true, "dev": true }, "minipass": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", + "version": "2.3.5", + "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "version": "1.2.1", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3843,8 +3554,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, "dev": true, "requires": { "minimist": "0.0.8" @@ -3852,15 +3562,13 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "version": "2.2.4", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3870,19 +3578,18 @@ } }, "node-pre-gyp": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", + "version": "0.10.3", + "bundled": true, "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", - "needle": "^2.2.0", + "needle": "^2.2.1", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" @@ -3890,8 +3597,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3900,16 +3606,14 @@ } }, "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "version": "1.0.5", + "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", + "version": "1.2.0", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3919,8 +3623,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3932,21 +3635,18 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "bundled": true, "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, "dev": true, "requires": { "wrappy": "1" @@ -3954,22 +3654,19 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -3979,26 +3676,23 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", + "version": "1.2.8", + "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "^0.5.1", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -4006,8 +3700,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, "dev": true, "optional": true } @@ -4015,8 +3708,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4030,60 +3722,52 @@ } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "bundled": true, "dev": true, "optional": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "version": "5.1.2", + "bundled": true, "dev": true }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "bundled": true, "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "bundled": true, "dev": true, "optional": true }, "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "version": "5.6.0", + "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -4093,8 +3777,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "bundled": true, "dev": true, "optional": true, "requires": { @@ -4103,8 +3786,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -4112,54 +3794,48 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, "dev": true, "optional": true }, "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", + "version": "4.4.8", + "bundled": true, "dev": true, "optional": true, "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", + "safe-buffer": "^5.1.2", "yallist": "^3.0.2" } }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "bundled": true, "dev": true, "optional": true }, "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "version": "1.1.3", + "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "bundled": true, "dev": true }, "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "version": "3.0.3", + "bundled": true, "dev": true } } @@ -4210,9 +3886,9 @@ } }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "get-stdin": { @@ -4289,9 +3965,9 @@ "dev": true }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4338,9 +4014,9 @@ "dev": true }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "graphql": { @@ -4389,9 +4065,9 @@ } }, "handlebars": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", - "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", "dev": true, "requires": { "async": "^2.5.0", @@ -4414,13 +4090,23 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.0.2" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -4511,11 +4197,11 @@ } }, "hoist-non-react-statics": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.0.1.tgz", - "integrity": "sha512-1kXwPsOi0OGQIZNVMPvgWJ9tSnGMiMfJdihqEzrPEXlHOBh9AAHXX/QYmAJTXztnz/K+PQ8ryCb4eGaN6HlGbQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", + "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", "requires": { - "react-is": "^16.3.2" + "react-is": "^16.7.0" } }, "home-or-tmp": { @@ -4529,18 +4215,18 @@ } }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { "parse-passwd": "^1.0.0" } }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "html-encoding-sniffer": { @@ -4553,38 +4239,29 @@ } }, "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { - "domelementtype": "^1.3.0", + "domelementtype": "^1.3.1", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", - "readable-stream": "^3.0.6" + "readable-stream": "^3.1.1" }, "dependencies": { "readable-stream": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", - "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", + "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } - }, - "string_decoder": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", - "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, @@ -4654,9 +4331,13 @@ "dev": true }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, "iltorb": { "version": "1.3.10", @@ -4671,9 +4352,9 @@ } }, "immutability-helper": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.7.1.tgz", - "integrity": "sha512-6uhvN9F1TRPtirUV3b7MIeY34h+U2hFR5hyK6jaWOvT36BNXYCx2tGujZhx/41fzUta/VNmK47scDhohTFYRDw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.9.1.tgz", + "integrity": "sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==", "dev": true, "requires": { "invariant": "^2.2.0" @@ -4724,9 +4405,9 @@ "dev": true }, "invariant": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.3.tgz", - "integrity": "sha512-7Z5PPegwDTyjbaeCnV0efcyS6vdKAU51kpEmS7QFib3P4822l8ICYyMn7qvJnc+WzLoDsuI9gPMKbJ8pCu8XtA==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { "loose-envify": "^1.0.0" @@ -4765,28 +4446,19 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-ci": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", - "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ci-info": "^1.0.0" + "ci-info": "^1.5.0" } }, "is-data-descriptor": { @@ -4910,23 +4582,6 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -4968,7 +4623,8 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-string": { "version": "1.0.4", @@ -4983,10 +4639,13 @@ "dev": true }, "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } }, "is-typedarray": { "version": "1.0.0", @@ -5006,6 +4665,12 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5031,9 +4696,22 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } } }, "isstream": { @@ -5059,35 +4737,12 @@ "js-yaml": "^3.7.0", "mkdirp": "^0.5.1", "once": "^1.4.0" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", - "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } - } } }, "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", "dev": true }, "istanbul-lib-hook": { @@ -5100,9 +4755,9 @@ } }, "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { "babel-generator": "^6.18.0", @@ -5110,7 +4765,7 @@ "babel-traverse": "^6.18.0", "babel-types": "^6.18.0", "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-coverage": "^1.2.1", "semver": "^5.3.0" } }, @@ -5132,12 +4787,6 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -5163,20 +4812,14 @@ }, "dependencies": { "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -5226,9 +4869,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5347,9 +4990,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5396,9 +5039,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5452,9 +5095,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5529,16 +5172,6 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } } } }, @@ -5553,9 +5186,9 @@ } }, "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", "dev": true }, "jest-haste-map": { @@ -5572,17 +5205,6 @@ "jest-worker": "^23.2.0", "micromatch": "^2.3.11", "sane": "^2.0.0" - }, - "dependencies": { - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - } } }, "jest-jasmine2": { @@ -5615,9 +5237,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5702,9 +5324,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5752,9 +5374,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5812,9 +5434,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5877,9 +5499,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -5927,9 +5549,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -5994,9 +5616,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -6047,9 +5669,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -6102,9 +5724,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -6150,9 +5772,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -6187,14 +5809,14 @@ } }, "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.2.tgz", + "integrity": "sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -6205,8 +5827,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "jsdom": { "version": "13.2.0", @@ -6243,43 +5864,17 @@ }, "dependencies": { "acorn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.5.tgz", - "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", "dev": true }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", "dev": true }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -6290,21 +5885,6 @@ "punycode": "^2.1.1" } }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, "whatwg-url": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", @@ -6317,9 +5897,9 @@ } }, "ws": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", - "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", "dev": true, "requires": { "async-limiter": "~1.0.0" @@ -6354,9 +5934,9 @@ } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -6394,9 +5974,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stringify-safe": { @@ -6427,12 +6007,12 @@ "dev": true }, "jsonwebtoken": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.4.0.tgz", - "integrity": "sha512-coyXjRTCy0pw5WYBpMvWOMN+Kjaik2MwTUIq9cna/W7NpO9E+iYbumZONAz3hcr+tXFJECoQVrtmIoC3Oz0gvg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.0.tgz", + "integrity": "sha512-IqEycp0znWHNA11TpYi77bVgyBO/pGESDh7Ajhas+u0ttkGkKYIIAjniL4Bw5+oVejVF+SYkaI7XKfwCCyeTuA==", "dev": true, "requires": { - "jws": "^3.1.5", + "jws": "^3.2.1", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", @@ -6440,7 +6020,8 @@ "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", - "ms": "^2.1.1" + "ms": "^2.1.1", + "semver": "^5.6.0" }, "dependencies": { "ms": { @@ -6464,23 +6045,23 @@ } }, "jwa": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", - "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.3.0.tgz", + "integrity": "sha512-SxObIyzv9a6MYuZYaSN6DhSm9j3+qkokwvCB0/OTSV5ylPq1wUQiygZQcHT5Qlux0I5kmISx3J86TxKhuefItg==", "dev": true, "requires": { "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.10", + "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "jws": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", - "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz", + "integrity": "sha512-bGA2omSrFUkd72dhh05bIAN832znP4wOU3lfuXtRBuGTbsmNmDXMQg28f0Vsxaxgk4myF5YkKQpz6qeRpMgX9g==", "dev": true, "requires": { - "jwa": "^1.1.5", + "jwa": "^1.2.0", "safe-buffer": "^5.0.1" } }, @@ -6560,9 +6141,9 @@ } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "lodash.escape": { @@ -6661,17 +6242,17 @@ "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -6685,12 +6266,12 @@ "dev": true }, "magic-string": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", - "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz", + "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.1" + "sourcemap-codec": "^1.4.4" } }, "make-error": { @@ -6730,9 +6311,9 @@ } }, "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, "mem": { @@ -6787,18 +6368,18 @@ } }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", "dev": true }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", + "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", "dev": true, "requires": { - "mime-db": "~1.33.0" + "mime-db": "~1.38.0" } }, "mimic-fn": { @@ -6880,15 +6461,15 @@ "dev": true }, "nan": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.9.2.tgz", - "integrity": "sha512-ltW65co7f3PQWBDbqVvaU1WtFJUsNW7sWWm4HINhbMQIyVyzIeyZ8toX5TC5eeooE6piZoaEh4cZkueSKG3KYw==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true }, "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", @@ -6896,7 +6477,6 @@ "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", - "is-odd": "^2.0.0", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", @@ -6957,13 +6537,13 @@ "dev": true }, "nearley": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.1.tgz", - "integrity": "sha512-8IUY/rUrKz2mIynUGh8k+tul1awMKEjeHHC5G3FHvvyAW6oq4mQfNp2c0BMea+sYZJvYcrrM6GmZVIle/GRXGw==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.16.0.tgz", + "integrity": "sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==", "dev": true, "requires": { + "commander": "^2.19.0", "moo": "^0.4.3", - "nomnom": "~1.6.2", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6", "semver": "^5.4.1" @@ -6976,9 +6556,9 @@ "dev": true }, "node-abi": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.5.1.tgz", - "integrity": "sha512-oDbFc7vCFx0RWWCweTer3hFm1u+e60N5FtGnmRV6QqvgATGFH/XRR6vqWIeBVosCYCqt6YdIr2L0exLZuEdVcQ==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", + "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", "dev": true, "requires": { "semver": "^5.4.1" @@ -6991,13 +6571,10 @@ "dev": true }, "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true }, "node-gyp": { "version": "3.8.0", @@ -7034,27 +6611,18 @@ "dev": true }, "node-notifier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", - "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", + "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", "dev": true, "requires": { "growly": "^1.3.0", - "semver": "^5.4.1", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", "shellwords": "^0.1.1", "which": "^1.3.0" } }, - "nomnom": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", - "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", - "dev": true, - "requires": { - "colors": "0.5.x", - "underscore": "~1.4.4" - } - }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", @@ -7071,13 +6639,13 @@ } }, "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", + "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } @@ -7128,9 +6696,15 @@ "dev": true }, "nwsapi": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.9.tgz", - "integrity": "sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.1.tgz", + "integrity": "sha512-T5GaA1J/d34AC8mkrFD2O0DR17kwJ702ZOtJOsS8RpbsQZVOC2/xYFb1i/cw+xdM54JIlMuojjDOYct8GIWtwg==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { @@ -7173,9 +6747,9 @@ "dev": true }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", "dev": true }, "object-visit": { @@ -7208,15 +6782,15 @@ } }, "object.entries": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "object.fromentries": { @@ -7229,65 +6803,6 @@ "es-abstract": "^1.11.0", "function-bind": "^1.1.1", "has": "^1.0.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - }, - "dependencies": { - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - } - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - } } }, "object.getownpropertydescriptors": { @@ -7328,15 +6843,15 @@ } }, "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "once": { @@ -7404,6 +6919,34 @@ "execa": "^0.7.0", "lcid": "^1.0.0", "mem": "^1.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "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" + } + } } }, "os-name": { @@ -7445,9 +6988,9 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -7561,9 +7104,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { @@ -7657,18 +7200,6 @@ "preact-transition-group": "^1.1.1", "prop-types": "^15.6.2", "standalone-react-addons-pure-render-mixin": "^0.1.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } } }, "preact-render-to-string": { @@ -7838,6 +7369,7 @@ "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, "requires": { "asap": "~2.0.3" } @@ -7853,34 +7385,13 @@ } }, "prop-types": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", - "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - } + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "ps-tree": { @@ -7899,9 +7410,9 @@ "dev": true }, "psl": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.28.tgz", - "integrity": "sha512-+AqO1Ae+N/4r7Rvchrdm432afjT9hqJRyBN3DQv9At0tPz4hIFSGKbq64fN9dVoCow4oggIIax5/iONx0r9hZw==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, "pump": { @@ -7915,9 +7426,15 @@ } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "raf": { @@ -7946,9 +7463,9 @@ } }, "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { "is-number": "^4.0.0", @@ -8000,27 +7517,6 @@ "object-assign": "^4.1.1", "prop-types": "^15.6.2", "schedule": "^0.5.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "schedule": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", - "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", - "dev": true, - "requires": { - "object-assign": "^4.1.1" - } - } } }, "react-dom": { @@ -8033,34 +7529,12 @@ "object-assign": "^4.1.1", "prop-types": "^15.6.2", "scheduler": "^0.13.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "scheduler": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.1.tgz", - "integrity": "sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } } }, "react-is": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.4.2.tgz", - "integrity": "sha512-rI3cGFj/obHbBz156PvErrS5xc6f1eWyTwyV4mo0vF2lGgXgS+mm7EKD5buLJq6jNgIagQescGSVG2YzgXt8Yg==" + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.3.tgz", + "integrity": "sha512-Y4rC1ZJmsxxkkPuMLwvKvlL1Zfpbcu+Bf4ZigkHup3v9EfdYhAlWAaVyA19olXq2o2mGn0w+dFKvk3pVVlYcIA==" }, "react-lifecycles-compat": { "version": "3.0.4", @@ -8078,24 +7552,6 @@ "prop-types": "^15.6.2", "react-is": "^16.8.1", "scheduler": "^0.13.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "react-is": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", - "integrity": "sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==", - "dev": true - } } }, "read-pkg": { @@ -8141,9 +7597,9 @@ } }, "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -8151,7 +7607,7 @@ "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, @@ -8162,23 +7618,23 @@ "dev": true }, "realpath-native": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.2.tgz", - "integrity": "sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", "dev": true, "requires": { "util.promisify": "^1.0.0" } }, "recast": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.2.tgz", - "integrity": "sha512-YHFvn4rBXl8eIjALjUiOV/AP3xFpyGNGNHDw9mAncAWuIdgnBKjbZQ9+P3VlsKcNaNapRVFlTEX1dvDRlYwyxg==", + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.3.tgz", + "integrity": "sha512-NwQguXPwHqaVb6M7tsY11+8RDoAKHGRdymPGDxHJrsxOlNADQh0b08uz/MgYp1R1wmHuSBK4A4I5Oq+cE1J40g==", "dev": true, "requires": { - "ast-types": "0.12.1", + "ast-types": "0.12.2", "esprima": "~4.0.0", - "private": "~0.1.5", + "private": "^0.1.8", "source-map": "~0.6.1" }, "dependencies": { @@ -8204,27 +7660,6 @@ "symbol-observable": "^1.0.4" }, "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, "hoist-non-react-statics": { "version": "2.5.5", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", @@ -8246,12 +7681,6 @@ "minimist": "^1.2.0" }, "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -8364,9 +7793,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { @@ -8410,99 +7839,26 @@ "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", - "dev": true - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "dev": true, - "requires": { - "mime-db": "~1.36.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } } }, "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", "dev": true, "requires": { - "lodash": "^4.13.1" + "lodash": "^4.17.11" } }, "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", "dev": true, "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" + "request-promise-core": "1.1.2", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" } }, "require-directory": { @@ -8524,10 +7880,13 @@ "dev": true }, "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } }, "resolve-cwd": { "version": "2.0.0", @@ -8569,22 +7928,6 @@ "dev": true, "requires": { "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "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" - } - } } }, "rollup": { @@ -8607,33 +7950,12 @@ "magic-string": "^0.25.1", "resolve": "^1.8.1", "rollup-pluginutils": "^2.3.3" - }, - "dependencies": { - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "^1.0.5" - } - }, - "rollup-pluginutils": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", - "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", - "dev": true, - "requires": { - "estree-walker": "^0.5.2", - "micromatch": "^2.3.11" - } - } } }, "rollup-plugin-filesize": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-6.0.0.tgz", - "integrity": "sha512-yU1nNkB2RP1PwLpBFIzH9oIwLL+Si6AEuy0/hAhFW+68hy6x/W/MxhhsUe7bDhG7Gnei7FOGC4Ag4W9+CninMQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-6.0.1.tgz", + "integrity": "sha512-wtxHShJofSxJRuYGGxgwIJyxxW+Mgu/vGGcsOUJVN+US6jE+gQYphSS3H2PS2HCVfxDtERtL0gjptk1gYru9rA==", "dev": true, "requires": { "boxen": "^2.0.0", @@ -8655,12 +7977,6 @@ "iltorb": "^2.0.5" } }, - "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", - "dev": true - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -8708,9 +8024,9 @@ "dev": true }, "prebuild-install": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.2.tgz", - "integrity": "sha512-4e8VJnP3zJdZv/uP0eNWmr2r9urp4NECw7Mt1OSAi3rcLrbBRxGiAkfUFtre2MhQ5wfREAjRV+K1gubvs/GPsA==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.2.4.tgz", + "integrity": "sha512-CG3JnpTZXdmr92GW4zbcba4jkDha6uHraJ7hW4Fn8j0mExxwOKK20hqho8ZuBDCKYCHYIkFM1P2jhtG+KpP4fg==", "dev": true, "requires": { "detect-libc": "^1.0.3", @@ -8719,7 +8035,7 @@ "minimist": "^1.2.0", "mkdirp": "^0.5.1", "napi-build-utils": "^1.0.1", - "node-abi": "^2.2.0", + "node-abi": "^2.7.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", "os-homedir": "^1.0.1", @@ -8753,14 +8069,6 @@ "builtin-modules": "^2.0.0", "is-module": "^1.0.0", "resolve": "^1.1.6" - }, - "dependencies": { - "builtin-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", - "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", - "dev": true - } } }, "rollup-plugin-typescript2": { @@ -8836,67 +8144,13 @@ } }, "rollup-pluginutils": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", - "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", - "dev": true, - "requires": { - "estree-walker": "^0.5.2", - "micromatch": "^2.3.11" - } - }, - "rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.4.1.tgz", + "integrity": "sha512-wesMQ9/172IJDIW/lYWm0vW0LiKe5Ekjws481R7z9WTRtmO59cqyM/2uUlxvf6yzm/fElFmHUobeQOYz46dZJw==", "dev": true, "requires": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" + "estree-walker": "^0.6.0", + "micromatch": "^3.1.10" }, "dependencies": { "arr-diff": { @@ -8940,6 +8194,12 @@ } } }, + "estree-walker": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.0.tgz", + "integrity": "sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==", + "dev": true + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -9193,187 +8453,285 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true } } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "saxes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.6.tgz", - "integrity": "sha512-LAYs+lChg1v5uKNzPtsgTxSS5hLo8aIhSMCJt1WMpefAxm3D1RTpMwSpb6ebdL31cubiLTnhokVktBW+cv9Y9w==", - "dev": true, - "requires": { - "xmlchars": "^1.3.1" - } - }, - "scheduler": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.1.tgz", - "integrity": "sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - }, - "serialize-javascript": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", - "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", "dev": true }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "ret": "~0.1.10" } }, - "sisteransi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", - "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", "dev": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "kind-of": "^6.0.0" - } - }, + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", @@ -9394,6 +8752,26 @@ "kind-of": "^6.0.2" } }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", @@ -9405,44 +8783,287 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "saxes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.9.tgz", + "integrity": "sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw==", "dev": true, "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "xmlchars": "^1.3.1" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", "dev": true, "requires": { - "source-map": "^0.5.6" + "object-assign": "^4.1.1" + } + }, + "scheduler": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz", + "integrity": "sha512-UxN5QRYWtpR1egNWzJcVLk8jlegxAugswQc984lD3kU7NuobsO37/sRfbpTdBjtnD5TBNFA2Q2oLV5+UmPSmEQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, + "serialize-javascript": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", + "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", + "dev": true + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "dev": true, + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "sisteransi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", + "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" } }, "source-map-url": { @@ -9452,30 +9073,41 @@ "dev": true }, "sourcemap-codec": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz", - "integrity": "sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz", + "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==", "dev": true }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { - "spdx-license-ids": "^1.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", "dev": true }, "split": { @@ -9524,9 +9156,9 @@ "dev": true }, "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -9541,9 +9173,9 @@ } }, "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", "dev": true }, "standalone-react-addons-pure-render-mixin": { @@ -9644,9 +9276,9 @@ } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -9728,411 +9360,142 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dev": true, - "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "terser": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.14.1.tgz", - "integrity": "sha512-NSo3E99QDbYSMeJaEk9YW2lTg3qS9V0aKGlb+PlOrei1X02r1wSBHCNX/O+yeTRFSWPKPIGj6MqvvdqV4rnVGw==", - "dev": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1", - "source-map-support": "~0.5.6" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", - "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } - } - }, - "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^3.1.8", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "tar-fs": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", + "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "dev": true, + "requires": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + }, + "dependencies": { + "pump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + } + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "cross-spawn": "^5.0.1", + "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" } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + } + } + }, + "terser": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", + "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.9" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } } } }, + "test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, "throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", @@ -10227,12 +9590,21 @@ } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "tr46": { @@ -10242,14 +9614,6 @@ "dev": true, "requires": { "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } } }, "trim-right": { @@ -10310,9 +9674,9 @@ } }, "tsc-watch": { - "version": "1.1.35", - "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-1.1.35.tgz", - "integrity": "sha512-dBqnVU6e+9Dabco6Av9FbBGaGTdJR7ThSprDORX3f9HOim6yTCp/SAPT9SydLmfuh0dOWnrOTBCEAqteHDolJg==", + "version": "1.1.39", + "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-1.1.39.tgz", + "integrity": "sha512-+TClwG3mX//n37Zkq4MTfty/+v8BQfvgizcGBcCOQMShZ8Y3wUwfvzQf2jDxsNzAY+XDNDUknMvVb77HLQg/Og==", "dev": true, "requires": { "cross-spawn": "^5.1.0", @@ -10328,6 +9692,17 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -10373,6 +9748,12 @@ "color-convert": "^1.9.0" } }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -10390,21 +9771,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "resolve": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz", - "integrity": "sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -10438,8 +9804,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "dev": true }, "type-check": { "version": "0.3.2", @@ -10474,9 +9839,10 @@ } }, "ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", + "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==", + "dev": true }, "uglify-js": { "version": "3.4.9", @@ -10502,12 +9868,6 @@ } } }, - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=", - "dev": true - }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -10535,9 +9895,9 @@ } }, "universal-user-agent": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.2.tgz", - "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", + "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", "dev": true, "requires": { "os-name": "^3.0.0" @@ -10595,6 +9955,15 @@ } } }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -10608,21 +9977,10 @@ "dev": true }, "use": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", - "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "util-deprecate": { "version": "1.0.2", @@ -10640,14 +9998,20 @@ "object.getownpropertydescriptors": "^2.0.3" } }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "verror": { @@ -10662,9 +10026,9 @@ } }, "vm2": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.6.4.tgz", - "integrity": "sha512-LFj8YL9DyGn+fwgG2J+10HyuIpdIRHHN8/3NwKoc2e2t2Pr0aXV/2OSODceDR7NP7VNr8RTqmxHRYcwbNvpbwg==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.6.10.tgz", + "integrity": "sha512-p4LBl7theIhmKaWPdCn25kEIG0bfDDEDx1lexXH7gcCu9pHIT+PKFgofwLHVHUGhe39lKExeaYVEZtdbQhdl2g==", "dev": true }, "w3c-hr-time": { @@ -10721,34 +10085,24 @@ "dev": true }, "whatwg-encoding": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz", - "integrity": "sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { - "iconv-lite": "0.4.23" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } + "iconv-lite": "0.4.24" } }, "whatwg-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==", + "dev": true }, "whatwg-mimetype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz", - "integrity": "sha512-5YSO1nMd5D1hY3WzAQV3PzZL83W3YeyR1yW9PcH26Weh1t+Vzh9B6XkDh7aXm83HBZ4nSMvkjvN2H2ySWIvBgw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { @@ -10763,9 +10117,9 @@ } }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -10841,36 +10195,6 @@ "dev": true, "requires": { "execa": "^0.10.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "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" - } - } } }, "wordwrap": { @@ -10896,9 +10220,9 @@ "dev": true }, "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", + "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -10952,9 +10276,9 @@ "dev": true }, "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", "dev": true, "requires": { "cliui": "^4.0.0", @@ -11026,14 +10350,6 @@ "dev": true, "requires": { "zen-observable": "^0.8.0" - }, - "dependencies": { - "zen-observable": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.13.tgz", - "integrity": "sha512-fa+6aDUVvavYsefZw0zaZ/v3ckEtMgCFi30sn91SEZea4y/6jQp05E3omjkX91zV6RVdn15fqnFZ6RKjRGbp2g==", - "dev": true - } } } } From 6556e63e34c0640283dbe5c58ec55675fe38d5f0 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Tue, 26 Feb 2019 13:06:19 -0500 Subject: [PATCH 47/49] Changelog update --- Changelog.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Changelog.md b/Changelog.md index 18df759af6..641ddcbe95 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,11 +1,13 @@ # Change log -## vNext - -### Bug Fixes +## 2.5.0 ### Improvements +- Ready to be used with Apollo Client 2.5 and its new local state management + features, as well as many overall code improvements to help reduce the React + Apollo bundle size.
+ [#2758](https://github.com/apollographql/react-apollo/pull/2758) - A function can now be set as a `MockedResponse` `result` when using `MockedProvider`, such that every time the mocked result is returned, the function is run to calculate the result. This opens up new testing From 51fb03451eb795da0a716005ac63e6d7d5a62bd9 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Tue, 26 Feb 2019 14:34:47 -0500 Subject: [PATCH 48/49] Version bump, prep for publish --- package.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 6df8280150..4614ea2632 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.3", + "version": "2.5.0", "author": "opensource@apollographql.com", "private": true, "description": "React data container for Apollo Client", @@ -87,7 +87,7 @@ "trailingComma": "all" }, "peerDependencies": { - "apollo-client": "^2.5.0-rc.3", + "apollo-client": "^2.5.0", "react": "^15.0.0 || ^16.0.0", "react-dom": "^15.0.0 || ^16.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0" @@ -107,9 +107,9 @@ "@types/react-test-renderer": "16.8.0", "@types/recompose": "0.30.3", "@types/zen-observable": "0.8.0", - "apollo-cache": "^1.2.0-rc.2", - "apollo-cache-inmemory": "^1.5.0-rc.2", - "apollo-client": "^2.5.0-rc.3", + "apollo-cache": "^1.2.0", + "apollo-cache-inmemory": "^1.5.0", + "apollo-client": "^2.5.0", "apollo-link": "1.2.8", "babel-core": "6.26.3", "babel-jest": "23.6.0", @@ -150,7 +150,7 @@ "zen-observable-ts": "0.8.15" }, "dependencies": { - "apollo-utilities": "^1.2.0-rc.2", + "apollo-utilities": "^1.2.0", "hoist-non-react-statics": "^3.0.0", "lodash.isequal": "^4.5.0", "prop-types": "^15.6.0", From 424952384555b90567177ef77fdf3f48bdc318a8 Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Tue, 26 Feb 2019 14:43:20 -0500 Subject: [PATCH 49/49] Last package lock fix --- package-lock.json | 77 +++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 291118e1a4..e91b502ace 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-apollo", - "version": "2.5.0-rc.3", + "version": "2.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -130,13 +130,6 @@ } } }, - "@types/async": { - "version": "2.0.49", - "resolved": "https://registry.npmjs.org/@types/async/-/async-2.0.49.tgz", - "integrity": "sha512-Benr3i5odUkvpFkOpzGqrltGdbSs+EVCkEBGXbuR7uT0VzhXKIkhem6PDzHdx5EonA+rfbB3QvP6aDOw5+zp5Q==", - "dev": true, - "optional": true - }, "@types/cheerio": { "version": "0.22.10", "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.10.tgz", @@ -688,62 +681,80 @@ } }, "apollo-cache": { - "version": "1.2.0-verify.4", - "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0-verify.4.tgz", - "integrity": "sha512-SgSuDoiZU++hcgJnUnH6WueFibZ6X0FpkppVIb0/6Bi8e8hNY6CT0V1GRtx6GMXQOw/vTjeuYYkxGZZJ0aqXaA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.0.tgz", + "integrity": "sha512-aZduG7o75crjWeONq9kVzkqO9hAcEklo3oN6Rd+ANpB+ImRklCFkz88XdXQ2/GHV26jh8VtQJIhiNIow10QzIg==", "dev": true, "requires": { - "apollo-utilities": "^1.1.0-verify.4" + "apollo-utilities": "^1.2.0", + "tslib": "^1.9.3" }, "dependencies": { "apollo-utilities": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.3.tgz", - "integrity": "sha512-pF9abhiClX5gfj/WFWZh8DiI33nOLGxRhXH9ZMquaM1V8bhq1WLFPt2QjShWH3kGQVeIGUK+FQefnhe+ZaaAYg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0.tgz", + "integrity": "sha512-4+vxCpEuirQjPqLCckBnOMGZxK/c+2eJtYEbh3xhccNM1pYB5Gx/lrfCdZS5MKDykuWZYY08EvidDy21nr049w==", "dev": true, "requires": { "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", "tslib": "^1.9.3" } } } }, "apollo-cache-inmemory": { - "version": "1.5.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0-rc.2.tgz", - "integrity": "sha512-Yr1QrzPBA9qPR/KLka92l7W7TwIWEnCBgLnnwDit0/PDeDIYcL61kUwWstXzPJyjewsCsIE+3+qAAH1HsbHxNg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.5.0.tgz", + "integrity": "sha512-hyg8R7G3XOfZhl8fQLs0vGEwi2rr8PuEIiumCY4qmwviaGsmwjs/Dm63cyeMm3Sfu05vzFQkwMdBf5u7xBg3cQ==", "dev": true, "requires": { - "apollo-cache": "^1.2.0-rc.2", - "apollo-utilities": "^1.2.0-rc.2", + "apollo-cache": "^1.2.0", + "apollo-utilities": "^1.2.0", "optimism": "^0.6.9", "ts-invariant": "^0.2.1", "tslib": "^1.9.3" + }, + "dependencies": { + "apollo-utilities": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0.tgz", + "integrity": "sha512-4+vxCpEuirQjPqLCckBnOMGZxK/c+2eJtYEbh3xhccNM1pYB5Gx/lrfCdZS5MKDykuWZYY08EvidDy21nr049w==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" + } + } } }, "apollo-client": { - "version": "2.5.0-verify.4", - "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0-verify.4.tgz", - "integrity": "sha512-gtXEXtlIJGF80kcR9w5S6kPhbAcDiis7w5apGBOcU5z9ls+cBphPbWRl3ZXf/FI32lRBVqIVX247qbUZJra35A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.0.tgz", + "integrity": "sha512-px2qCsbxrJFy+nkEOmtCMTl7svPMYlmoqKVfJx3ZAdE4mdlQp9BMm47nT7l9pHdez5U/QJmpgz5OICHLfjloGg==", "dev": true, "requires": { - "@types/async": "2.0.49", "@types/zen-observable": "^0.8.0", - "apollo-cache": "1.2.0-verify.4", + "apollo-cache": "1.2.0", "apollo-link": "^1.0.0", "apollo-link-dedup": "^1.0.0", - "apollo-utilities": "1.1.0-verify.4", + "apollo-utilities": "1.2.0", "symbol-observable": "^1.0.2", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3", "zen-observable": "^0.8.0" }, "dependencies": { "apollo-utilities": { - "version": "1.1.0-verify.4", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.0-verify.4.tgz", - "integrity": "sha512-y/a0sOQAZ0IPh3dzVAnLSNdr0FraJnC/0p8HVg99rJZcefhaHsFIG77Jjr6ExwD2sXVJpXWHFgIGbXfQaatXSA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0.tgz", + "integrity": "sha512-4+vxCpEuirQjPqLCckBnOMGZxK/c+2eJtYEbh3xhccNM1pYB5Gx/lrfCdZS5MKDykuWZYY08EvidDy21nr049w==", "dev": true, "requires": { - "fast-json-stable-stringify": "^2.0.0" + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.2.1", + "tslib": "^1.9.3" } } } @@ -767,9 +778,9 @@ } }, "apollo-utilities": { - "version": "1.2.0-rc.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0-rc.2.tgz", - "integrity": "sha512-DD/kojZKd16ooa78t70E3McWwbirWJ2+uKVk4e5PeOMbUtCzBHnO9mlZtVg8ve6QsKaxUhulKFC959c15ekd2g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.0.tgz", + "integrity": "sha512-4+vxCpEuirQjPqLCckBnOMGZxK/c+2eJtYEbh3xhccNM1pYB5Gx/lrfCdZS5MKDykuWZYY08EvidDy21nr049w==", "requires": { "fast-json-stable-stringify": "^2.0.0", "ts-invariant": "^0.2.1",