├── .gitignore
├── .mocharc.js
├── .npmignore
├── .travis.yml
├── LICENSE
├── README.md
├── package.json
├── src
└── fetch-suspense.ts
├── tests
├── create-use-fetch.test.ts
├── use-fetch-without-window.test.ts
├── use-fetch.test.ts
├── utils
│ └── constants.ts
└── yse-fetch-without-window-fetch.test.ts
├── tsconfig.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /fetch-suspense.d.ts
3 | /fetch-suspense.js
4 |
--------------------------------------------------------------------------------
/.mocharc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | allowUncaught: false,
3 | checkLeaks: true,
4 | color: true,
5 | diff: true,
6 | extension: [ 'ts' ],
7 | forbidOnly: true,
8 | forbidPending: true,
9 | fullTrace: false,
10 | inlineDiff: true,
11 | recursive: true,
12 | require: [
13 | '@babel/register',
14 | 'chai/register-expect',
15 | 'jsdom-global/register',
16 | 'ts-node/register',
17 | ],
18 | sort: true,
19 | watch: false,
20 | watchExtensions: [ 'ts' ],
21 | };
22 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /src
3 | /tests
4 | /.gitignore
5 | /.mocharc.js
6 | /.npmignore
7 | /.travis.yml
8 | /tsconfig.json
9 | /yarn.lock
10 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js: 8.9.1
3 | branches:
4 | only: master
5 | cache: yarn
6 | install: yarn
7 | script:
8 | - yarn build
9 | - yarn test
10 | deploy:
11 | api_key:
12 | secure: dfYNR3lqPc4oJIzrilJSznRAEiF9XmIvVmrZZuGSWxC2vGJPuVMp5rKQFnD1uWxjDwfJdkZOUL9F5zepuS5Pp7SqCWvpjt8hH/tVJfk/9mhf69b1sImB9d7rGm4TIE9iQaV71C5OEOZu9tcWsN6ukdFxETarLc1NahdCsKW7wZ+k6s0rUD3rlBAnJKWXPZAFiWo9bD+PZXI9reX72NoVDMFLl/WSQOAQTFPDOlwitXclOJ+7NNo5YQpwtmaTAh2ZWq7G7cfPhIaCVsTXeQI76az73BisuX3gsPPLNHGRA5+a9BKk7anajr9W0rKLK3WBg5/y7DqXBBA85xly2HhAYexQJFcJxgufHn7bu+fRdyzIHdMbBb7vD6VbyPPgRSZnZ9p9MMMTr8Mwkscp/sxKndcF8vUOf1d8iXVUGxEgZqSBgZZE9/wMCSK7YUwzsNtmrJx/20dUJ1nFcdn/pnTqEJ7DBY3pJPv1bQTp4BLcv4XEZNVO6uFbF0tO3Zu1glLrCUbY5KwJabpI6gcJFtqe4eV93SpnsuVh8puppmKMT/JfXpjSdhSsnSzj+cnU+JtQbKyYtgBVEMTIahnPO9HZZk1E33H8jM1HNFOv4JTOFLwcSpF3oufQYLn3aRZiHBNx9viW6PWLVUBkZSmMxL9SpCANU2UFiJjieS5L9h4hXcw=
13 | email: npmjs@charlesstover.com
14 | on:
15 | branch: master
16 | provider: npm
17 | skip_cleanup: true
18 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Charles Stover
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # useFetch [](https://twitter.com/intent/tweet?text=You%20can%20now%20use%20React%20Suspense%20with%20the%20Fetch%20API!&url=https://github.com/CharlesStover/fetch-suspense&via=CharlesStover&hashtags=react,reactjs,javascript,typescript,webdev,webdevelopment) [](https://www.npmjs.com/package/fetch-suspense) [](https://www.npmjs.com/package/fetch-suspense) [](https://www.npmjs.com/package/fetch-suspense) [](https://www.npmjs.com/package/fetch-suspense) [](https://travis-ci.com/CharlesStover/fetch-suspense/)
2 |
3 | `useFetch` is a React hook that supports the React 16.6 Suspense component
4 | implementation.
5 |
6 | The design decisions and development process for this package are outlined in
7 | the Medium article
8 | [React Suspense with the Fetch API](https://medium.com/@Charles_Stover/react-suspense-with-the-fetch-api-a1b7369b0469).
9 |
10 | ## Install
11 |
12 | * `npm install fetch-suspense` or
13 | * `yarn add fetch-suspense`
14 |
15 | ## Examples
16 |
17 | ### Basic Example
18 |
19 | ```javascript
20 | import useFetch from 'fetch-suspense';
21 | import React, { Suspense } from 'react';
22 |
23 | // This fetching component will be delayed by Suspense until the fetch request
24 | // resolves. The return value of useFetch will be the response of the server.
25 | const MyFetchingComponent = () => {
26 | const response = useFetch('/path/to/api', { method: 'POST' });
27 | return 'The server responded with: ' + response;
28 | };
29 |
30 | // The App component wraps the asynchronous fetching component in Suspense.
31 | // The fallback component (loading text) is displayed until the fetch request
32 | // resolves.
33 | const App = () => {
34 | return (
35 |
36 |
37 |
38 | );
39 | };
40 | ```
41 |
42 | ### Using a Custom Fetch API
43 |
44 | If you don't want to rely on the global `fetch` API, you can create your own
45 | `useFetch` hook by importing the `createUseFetch` helper function.
46 |
47 | ```javascript
48 | import { createUseFetch } from 'fetch-suspense';
49 | import myFetchApi from 'my-fetch-package';
50 | import React, { Suspense } from 'react';
51 |
52 | // Create a useFetch hook using one's own Fetch API.
53 | // NOTE: useFetch hereafter refers to this constant, not the default export of
54 | // the fetch-suspense package.
55 | const useFetch = createUseFetch(myFetchApi);
56 |
57 | // This fetching component will be delayed by Suspense until the fetch request
58 | // resolves. The return value of useFetch will be the response of the server.
59 | const MyFetchingComponent = () => {
60 | const response = useFetch('/path/to/api', { method: 'POST' });
61 | return 'The server responded with: ' + response;
62 | };
63 |
64 | // The App component wraps the asynchronous fetching component in Suspense.
65 | // The fallback component (loading text) is displayed until the fetch request
66 | // resolves.
67 | const App = () => {
68 | return (
69 |
70 |
71 |
72 | );
73 | };
74 | ```
75 |
76 | ### Including Fetch Metadata
77 |
78 | To include fetch metadata with your response, include an `options` parameter
79 | with `metadata: true`.
80 |
81 | ```javascript
82 | import useFetch from 'fetch-suspense';
83 | import React, { Suspense } from 'react';
84 |
85 | // This fetching component will be delayed by Suspense until the fetch request
86 | // resolves. The return value of useFetch will be the response of the server
87 | // AS WELL AS metadata for the request.
88 | const MyFetchingComponent = () => {
89 | const { contentType, response } = useFetch(
90 | '/path/to/api',
91 | { method: 'POST' },
92 | { metadata: true }, // <--
93 | );
94 | return `The server responded with ${contentType}: ${response}`;
95 | };
96 |
97 | // The App component wraps the asynchronous fetching component in Suspense.
98 | // The fallback component (loading text) is displayed until the fetch request
99 | // resolves.
100 | const App = () => {
101 | return (
102 |
103 |
104 |
105 | );
106 | };
107 | ```
108 |
109 | ## Options
110 |
111 | The supported options for the third, options parameter are:
112 |
113 | ### lifespan?: number
114 |
115 | _Default: 0_
116 |
117 | The number of milliseconds to cache the result of the request. Each time the
118 | component mounts before this many milliseconds have passed, it will return the
119 | response from the last time this same request was made.
120 |
121 | If 0, the cache will be last the remainder of the browser session.
122 |
123 | ### metadata?: boolean
124 |
125 | _Default: false_
126 |
127 | If true, the `useFetch` hook will return metadata _in addition to_ the response
128 | from the fetch request. Instead of returning just the response, an interface
129 | as follows will be returned:
130 |
131 | ```typescript
132 | interface UseFetchResponse {
133 | bodyUsed: boolean;
134 | contentType: null | string;
135 | headers: Headers;
136 | ok: boolean;
137 | redirected: boolean;
138 | // The same response from the server that would be returned if metadata were
139 | // false. It is an Object is the server responded with JSON, and it is a
140 | // string if the server responded with plain text.
141 | response: Object | string;
142 | status: number;
143 | statusText: string;
144 | url: string;
145 | }
146 | ```
147 |
148 | You can access these properties easily through destructuring. See
149 | [Including Fetch Metadata](#including-fetch-metadata).
150 |
151 | ## Sponsor 💗
152 |
153 | If you are a fan of this project, you may
154 | [become a sponsor](https://github.com/sponsors/CharlesStover)
155 | via GitHub's Sponsors Program.
156 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fetch-suspense",
3 | "version": "1.2.2",
4 | "author": "Charles Stover ",
5 | "bugs": {
6 | "url": "https://github.com/CharlesStover/fetch-suspense/issues"
7 | },
8 | "description": "A React hook compatible with React 16.6's Suspense component.",
9 | "homepage": "https://github.com/CharlesStover/fetch-suspense#readme",
10 | "license": "MIT",
11 | "main": "fetch-suspense.js",
12 | "repository": "https://github.com/CharlesStover/fetch-suspense.git",
13 | "scripts": {
14 | "build": "tsc",
15 | "dev": "tsc --watch",
16 | "prepublishOnly": "npm run build",
17 | "test": "mocha tests/**/*.test.ts"
18 | },
19 | "dependencies": {
20 | "deep-equal": "^1.0.1"
21 | },
22 | "devDependencies": {
23 | "@babel/core": "^7.4.3",
24 | "@babel/register": "^7.4.0",
25 | "@types/chai": "^4.1.7",
26 | "@types/deep-equal": "^1.0.1",
27 | "@types/mocha": "^5.2.6",
28 | "@types/node": "^12.6.2",
29 | "@types/node-fetch": "^2.5.0",
30 | "@types/sinon": "^7.0.11",
31 | "chai": "^4.2.0",
32 | "jsdom": "^14.0.0",
33 | "jsdom-global": "^3.0.2",
34 | "mocha": "^6.1.3",
35 | "node-fetch": "^2.6.0",
36 | "sinon": "^7.3.1",
37 | "ts-node": "^8.0.3",
38 | "typescript": "^3.1.5"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/fetch-suspense.ts:
--------------------------------------------------------------------------------
1 | import deepEqual = require('deep-equal');
2 |
3 | type FetchFunction = typeof window.fetch;
4 |
5 | type CreateUseFetch = (fetch?: FetchFunction) => UseFetch;
6 |
7 | interface Export extends UseFetch {
8 | createUseFetch: CreateUseFetch;
9 | default: UseFetch;
10 | }
11 |
12 | interface FetchCache {
13 | bodyUsed?: boolean;
14 | contentType?: null | string;
15 | fetch?: Promise;
16 | error?: any;
17 | headers?: Headers;
18 | init: RequestInit | undefined;
19 | input: RequestInfo;
20 | ok?: boolean;
21 | redirected?: boolean;
22 | response?: any;
23 | status?: number;
24 | statusText?: string;
25 | url?: string;
26 | }
27 |
28 | type FetchResponse = Object | string;
29 |
30 | interface FetchResponseMetadata {
31 | bodyUsed: boolean;
32 | contentType: null | string;
33 | headers: Headers;
34 | ok: boolean;
35 | redirected: boolean;
36 | response: FetchResponse;
37 | status: number;
38 | statusText: string;
39 | url: string;
40 | }
41 |
42 | interface Options {
43 | lifespan?: number;
44 | metadata?: boolean;
45 | }
46 |
47 | interface OptionsWithMetadata extends Options {
48 | metadata: true;
49 | }
50 |
51 | interface OptionsWithoutMetadata extends Options {
52 | metadata?: false;
53 | }
54 |
55 | interface UseFetch {
56 | (
57 | input: RequestInfo,
58 | init?: RequestInit | undefined,
59 | options?: number | OptionsWithoutMetadata,
60 | ): FetchResponse;
61 | (
62 | input: RequestInfo,
63 | init: RequestInit | undefined,
64 | options: OptionsWithMetadata,
65 | ): FetchResponseMetadata;
66 | }
67 |
68 | const getDefaultFetchFunction = (): FetchFunction => {
69 | if (typeof window === 'undefined') {
70 | return (): Promise => {
71 | return Promise.reject(
72 | new Error('Cannot find `window`. Use `createUseFetch` to provide a custom `fetch` function.'),
73 | );
74 | };
75 | }
76 | if (typeof window.fetch === 'undefined') {
77 | return (): Promise => {
78 | return Promise.reject(
79 | new Error('Cannot find `window.fetch`. Use `createUseFetch` to provide a custom `fetch` function.'),
80 | );
81 | };
82 | }
83 | return window.fetch;
84 | };
85 |
86 | const createUseFetch: CreateUseFetch = (
87 | fetch: FetchFunction = getDefaultFetchFunction(),
88 | ): UseFetch => {
89 | // Create a set of caches for this hook.
90 | const caches: FetchCache[] = [];
91 |
92 | function useFetch(
93 | input: RequestInfo,
94 | init?: RequestInit | undefined,
95 | options?: number | OptionsWithoutMetadata,
96 | ): FetchResponse;
97 | function useFetch(
98 | input: RequestInfo,
99 | init: RequestInit | undefined,
100 | options: OptionsWithMetadata,
101 | ): FetchResponseMetadata;
102 | function useFetch(
103 | input: RequestInfo,
104 | init?: RequestInit | undefined,
105 | options: number | Options = 0,
106 | ): FetchResponse | FetchResponseMetadata {
107 |
108 | if (typeof options === 'number') {
109 | return useFetch(input, init, { lifespan: options });
110 | }
111 |
112 | const { metadata = false, lifespan = 0 } = options;
113 |
114 | // Check each cache by this useFetch hook.
115 | for (const cache of caches) {
116 |
117 | // If this cache matches the request,
118 | if (
119 | deepEqual(input, cache.input) &&
120 | deepEqual(init, cache.init)
121 | ) {
122 |
123 | // If an error occurred, throw it so that componentDidCatch can handle
124 | // it.
125 | if (Object.prototype.hasOwnProperty.call(cache, 'error')) {
126 | throw cache.error;
127 | }
128 |
129 | // If a response was successful, return it.
130 | if (Object.prototype.hasOwnProperty.call(cache, 'response')) {
131 | if (metadata) {
132 | return {
133 | bodyUsed: cache.bodyUsed,
134 | contentType: cache.contentType,
135 | headers: cache.headers,
136 | ok: cache.ok,
137 | redirected: cache.redirected,
138 | response: cache.response,
139 | status: cache.status,
140 | statusText: cache.statusText,
141 | url: cache.url,
142 | };
143 | }
144 | return cache.response;
145 | }
146 |
147 | // If we are still waiting, throw the Promise so that Suspense can
148 | // fallback.
149 | throw cache.fetch;
150 | }
151 | }
152 |
153 | // If no request in the cache matched this one, create a new cache entry.
154 | const cache: FetchCache = {
155 |
156 | // Make the fetch request.
157 | fetch: fetch(input, init)
158 |
159 | // Parse the response.
160 | .then((response: Response): Promise => {
161 | cache.contentType = response.headers.get('Content-Type');
162 | if (metadata) {
163 | cache.bodyUsed = response.bodyUsed;
164 | cache.headers = response.headers;
165 | cache.ok = response.ok;
166 | cache.redirected = response.redirected;
167 | cache.status = response.status;
168 | cache.statusText = response.statusText;
169 | }
170 | if (
171 | cache.contentType &&
172 | cache.contentType.indexOf('application/json') !== -1
173 | ) {
174 | return response.json();
175 | }
176 | return response.text();
177 | })
178 |
179 | // Cache the response.
180 | .then((response: FetchResponse): void => {
181 | cache.response = response;
182 | })
183 |
184 | // Handle an error.
185 | .catch((e: Error): void => {
186 | cache.error = e;
187 | })
188 |
189 | // Invalidate the cache.
190 | .then((): void => {
191 | if (lifespan > 0) {
192 | setTimeout(
193 | (): void => {
194 | const index: number = caches.indexOf(cache);
195 | if (index !== -1) {
196 | caches.splice(index, 1);
197 | }
198 | },
199 | lifespan,
200 | );
201 | }
202 | }),
203 | init,
204 | input,
205 | };
206 | caches.push(cache);
207 | throw cache.fetch;
208 | }
209 |
210 | return useFetch;
211 | };
212 |
213 | const _export: Export = Object.assign(
214 | createUseFetch(), {
215 | createUseFetch,
216 | default: createUseFetch(),
217 | });
218 |
219 | export = _export;
220 |
--------------------------------------------------------------------------------
/tests/create-use-fetch.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 | import { Headers as NodeFetchHeaders } from 'node-fetch';
3 | import { createUseFetch } from '../fetch-suspense';
4 | import CommonJS = require('../fetch-suspense');
5 |
6 | type FetchResponse = Object | string;
7 |
8 | interface FetchResponseMetadata {
9 | contentType: null | string;
10 | headers: Headers;
11 | ok: boolean;
12 | redirected: boolean;
13 | response: FetchResponse;
14 | status: number;
15 | statusText: string;
16 | }
17 |
18 | interface Options {
19 | lifespan?: number;
20 | metadata?: boolean;
21 | }
22 |
23 | interface OptionsWithMetadata extends Options {
24 | metadata: true;
25 | }
26 |
27 | interface OptionsWithoutMetadata extends Options {
28 | metadata?: false;
29 | }
30 |
31 | interface UseFetch {
32 | (
33 | input: RequestInfo,
34 | init?: RequestInit | undefined,
35 | options?: number | OptionsWithoutMetadata,
36 | ): FetchResponse;
37 | (
38 | input: RequestInfo,
39 | init: RequestInit | undefined,
40 | options: OptionsWithMetadata,
41 | ): FetchResponseMetadata;
42 | }
43 |
44 | const MOCK_BODY: string = 'mock body';
45 |
46 | const MOCK_STATUS: number = 420;
47 |
48 | const MOCK_STATUS_TEXT: string = 'mock status text';
49 |
50 | const TEST_CONTENT_TYPE: string = 'text/plain';
51 |
52 | const TEST_PATH: string = '/test-path';
53 |
54 | const MOCK_HEADERS_INIT: HeadersInit = {
55 | 'Content-Type': TEST_CONTENT_TYPE,
56 | };
57 |
58 | const MOCK_HEADERS: Headers =
59 | new NodeFetchHeaders(MOCK_HEADERS_INIT) as any as Headers;
60 |
61 | const MOCK_RESPONSE: Response = {
62 | arrayBuffer: (): Promise =>
63 | Promise.resolve(null as any as ArrayBuffer),
64 | blob: (): Promise => Promise.resolve(null as any as Blob),
65 | body: null,
66 | bodyUsed: true,
67 | clone: (): Response => MOCK_RESPONSE,
68 | formData: (): Promise => Promise.resolve(null as any as FormData),
69 | headers: MOCK_HEADERS,
70 | json: (): Promise => Promise.resolve(null),
71 | ok: true,
72 | redirected: false,
73 | status: MOCK_STATUS,
74 | statusText: MOCK_STATUS_TEXT,
75 | text: (): Promise => Promise.resolve(MOCK_BODY),
76 | trailer: Promise.resolve(MOCK_HEADERS),
77 | type: null as any as ResponseType,
78 | url: '',
79 | };
80 |
81 | const MOCK_FETCH = (): Promise => Promise.resolve(MOCK_RESPONSE);
82 |
83 | describe('createUseFetch', (): void => {
84 |
85 | it('should be a function with 1 parameter via CommonJS', (): void => {
86 | expect(CommonJS.createUseFetch).to.be.a('function');
87 | expect(CommonJS.createUseFetch.length).to.equal(1);
88 | });
89 |
90 | it('should be a function with 1 parameter via ES6', (): void => {
91 | expect(createUseFetch).to.be.a('function');
92 | expect(createUseFetch.length).to.equal(1);
93 | });
94 |
95 | describe('return value', (): void => {
96 | it('should be a function with 3 parameters via CommonJS', (): void => {
97 | const useFetch = CommonJS.createUseFetch(MOCK_FETCH);
98 | expect(useFetch).to.be.a('function');
99 | expect(useFetch.length).to.equal(3);
100 | });
101 |
102 | it('should be a function with 3 parameters via ES6', (): void => {
103 | const useFetch = createUseFetch(MOCK_FETCH);
104 | expect(useFetch).to.be.a('function');
105 | expect(useFetch.length).to.equal(3);
106 | });
107 |
108 | describe('useFetch', (): void => {
109 |
110 | let useFetch: UseFetch;
111 | beforeEach((): void => {
112 | useFetch = createUseFetch(MOCK_FETCH)
113 | });
114 |
115 | it('should throw a Promise', (): void => {
116 | try {
117 | useFetch(TEST_PATH);
118 | } catch (p) {
119 | expect(p).to.be.instanceOf(Promise);
120 | return;
121 | }
122 | throw new Error('useFetch did not throw.');
123 | });
124 |
125 | it('should not throw twice', async (): Promise => {
126 | try {
127 | useFetch(TEST_PATH);
128 | } catch (p) {
129 | await p;
130 | try {
131 | useFetch(TEST_PATH);
132 | return;
133 | } catch (q) {
134 | throw new Error('useFetch threw twice.');
135 | }
136 | }
137 | throw new Error('useFetch did not throw.');
138 | });
139 |
140 | it('should return a Response', async (): Promise => {
141 | try {
142 | useFetch(TEST_PATH);
143 | } catch (p) {
144 | await p;
145 | const response = useFetch(TEST_PATH);
146 | expect(response).to.equal(MOCK_BODY);
147 | return;
148 | }
149 | throw new Error('useFetch did not throw.');
150 | });
151 |
152 | it('should return a Response with metadata', async (): Promise => {
153 | try {
154 | useFetch(TEST_PATH, undefined, { metadata: true });
155 | } catch (p) {
156 | await p;
157 | const { contentType, headers, response, status, statusText } =
158 | useFetch(TEST_PATH, undefined, { metadata: true });
159 | expect(contentType).to.equal(TEST_CONTENT_TYPE);
160 | expect(headers).to.equal(MOCK_HEADERS);
161 | expect(response).to.equal(MOCK_BODY);
162 | expect(status).to.equal(MOCK_STATUS);
163 | expect(statusText).to.equal(MOCK_STATUS_TEXT);
164 | return;
165 | }
166 | throw new Error('useFetch did not throw.');
167 | });
168 | });
169 | });
170 | });
171 |
--------------------------------------------------------------------------------
/tests/use-fetch-without-window.test.ts:
--------------------------------------------------------------------------------
1 | // TODO: Difficulty deleting global window object.
2 |
3 | /*
4 | import { expect } from 'chai';
5 | import useFetch from '../fetch-suspense';
6 | import CommonJS = require('../fetch-suspense');
7 |
8 | describe('useFetch without window', (): void => {
9 | it('should reject via CommonJS', async (): Promise => {
10 | try {
11 | CommonJS('test'); // initial fetch
12 | } catch (p) {
13 | try {
14 | await p; // await Suspense
15 | CommonJS('test'); // post-Suspense fetch
16 | } catch (e) {
17 | expect(e).to.be.an.instanceOf(Error);
18 | expect(e.message).to.equal('Cannot find `window`. Use `createUseFetch` to provide a custom `fetch` function.');
19 | return;
20 | }
21 | throw new Error('useFetch did not reject.');
22 | }
23 | throw new Error('useFetch did not throw.');
24 | });
25 |
26 | it('should reject via ES6', async (): Promise => {
27 | try {
28 | useFetch('test'); // initial fetch
29 | } catch (p) {
30 | try {
31 | await p; // await Suspense
32 | useFetch('test'); // post-Suspense fetch
33 | } catch (e) {
34 | expect(e).to.be.an.instanceOf(Error);
35 | expect(e.message).to.equal('Cannot find `window`. Use `createUseFetch` to provide a custom `fetch` function.');
36 | return;
37 | }
38 | throw new Error('useFetch did not reject.');
39 | }
40 | throw new Error('useFetch did not throw.');
41 | });
42 | });
43 | */
44 |
--------------------------------------------------------------------------------
/tests/use-fetch.test.ts:
--------------------------------------------------------------------------------
1 | import { expect } from 'chai';
2 | import useFetch from '../fetch-suspense';
3 | import CommonJS = require('../fetch-suspense');
4 |
5 | describe('useFetch', (): void => {
6 | it('should be a function with 3 parameters via CommonJS', (): void => {
7 | expect(CommonJS).to.be.a('function');
8 | expect(CommonJS.length).to.equal(3);
9 | });
10 |
11 | it('should be a function with 3 parameters via ES6', async (): Promise => {
12 | expect(useFetch).to.be.a('function');
13 | expect(useFetch.length).to.equal(3);
14 | });
15 | });
16 |
--------------------------------------------------------------------------------
/tests/utils/constants.ts:
--------------------------------------------------------------------------------
1 | export const ERROR_REQUEST: RequestInfo = 'http://';
2 |
3 | export const JSON_REQUEST: RequestInfo = 'https://json';
4 |
5 | export const MOCK_ERROR: Error = new Error('Mock Error');
6 |
7 | export const MOCK_JSON: Object = {
8 | mock: 'json',
9 | };
10 |
11 | export const MOCK_STRING: string = 'mock string';
12 |
13 | export const STRING_REQUEST: RequestInfo = 'https://string';
14 |
15 | export const UNKNOWN_ERROR: Error =
16 | new Error('Test Error. The test should fail.');
17 |
--------------------------------------------------------------------------------
/tests/yse-fetch-without-window-fetch.test.ts:
--------------------------------------------------------------------------------
1 | const windowFetchBak: typeof window.fetch = window.fetch;
2 | delete window.fetch;
3 |
4 | import { expect } from 'chai';
5 | import useFetch from '../fetch-suspense';
6 | import CommonJS = require('../fetch-suspense');
7 |
8 | describe('useFetch without window.fetch', (): void => {
9 | it('should reject via CommonJS', async (): Promise => {
10 | try {
11 | CommonJS('test'); // initial fetch
12 | } catch (p) {
13 | try {
14 | await p; // await Suspesne
15 | CommonJS('test'); // post-Suspense fetch
16 | } catch (e) {
17 | expect(e).to.be.an.instanceOf(Error);
18 | expect(e.message).to.equal('Cannot find `window.fetch`. Use `createUseFetch` to provide a custom `fetch` function.');
19 | return;
20 | }
21 | throw new Error('useFetch did not reject.');
22 | }
23 | throw new Error('useFetch did not throw.');
24 | });
25 |
26 | it('should reject via ES6', async (): Promise => {
27 | try {
28 | useFetch('test'); // initial fetch
29 | } catch (p) {
30 | try {
31 | await p; // await Suspense
32 | useFetch('test'); // post-Suspense fetch
33 | } catch (e) {
34 | expect(e).to.be.an.instanceOf(Error);
35 | expect(e.message).to.equal('Cannot find `window.fetch`. Use `createUseFetch` to provide a custom `fetch` function.');
36 | return;
37 | }
38 | throw new Error('useFetch did not reject.');
39 | }
40 | throw new Error('useFetch did not throw.');
41 | });
42 | });
43 |
44 | window.fetch = windowFetchBak;
45 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": true,
4 | "downlevelIteration": true,
5 | "lib": [ "dom", "es5", "es2015.promise", "es2017", "scripthost" ],
6 | "module": "commonjs",
7 | "moduleResolution": "Node",
8 | "noFallthroughCasesInSwitch": true,
9 | "noImplicitAny": true,
10 | "noImplicitReturns": true,
11 | "noImplicitThis": true,
12 | "noUnusedLocals": true,
13 | "noUnusedParameters": true,
14 | "outDir": ".",
15 | "removeComments": true,
16 | "strict": true,
17 | "strictNullChecks": true,
18 | "strictPropertyInitialization": true,
19 | "target": "es5"
20 | },
21 | "files": [ "src/fetch-suspense.ts" ]
22 | }
23 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.0.0"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
9 | dependencies:
10 | "@babel/highlight" "^7.0.0"
11 |
12 | "@babel/core@^7.4.3":
13 | version "7.4.3"
14 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.3.tgz#198d6d3af4567be3989550d97e068de94503074f"
15 | integrity sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==
16 | dependencies:
17 | "@babel/code-frame" "^7.0.0"
18 | "@babel/generator" "^7.4.0"
19 | "@babel/helpers" "^7.4.3"
20 | "@babel/parser" "^7.4.3"
21 | "@babel/template" "^7.4.0"
22 | "@babel/traverse" "^7.4.3"
23 | "@babel/types" "^7.4.0"
24 | convert-source-map "^1.1.0"
25 | debug "^4.1.0"
26 | json5 "^2.1.0"
27 | lodash "^4.17.11"
28 | resolve "^1.3.2"
29 | semver "^5.4.1"
30 | source-map "^0.5.0"
31 |
32 | "@babel/generator@^7.4.0":
33 | version "7.4.0"
34 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196"
35 | integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==
36 | dependencies:
37 | "@babel/types" "^7.4.0"
38 | jsesc "^2.5.1"
39 | lodash "^4.17.11"
40 | source-map "^0.5.0"
41 | trim-right "^1.0.1"
42 |
43 | "@babel/helper-function-name@^7.1.0":
44 | version "7.1.0"
45 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
46 | integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
47 | dependencies:
48 | "@babel/helper-get-function-arity" "^7.0.0"
49 | "@babel/template" "^7.1.0"
50 | "@babel/types" "^7.0.0"
51 |
52 | "@babel/helper-get-function-arity@^7.0.0":
53 | version "7.0.0"
54 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
55 | integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
56 | dependencies:
57 | "@babel/types" "^7.0.0"
58 |
59 | "@babel/helper-split-export-declaration@^7.4.0":
60 | version "7.4.0"
61 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55"
62 | integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==
63 | dependencies:
64 | "@babel/types" "^7.4.0"
65 |
66 | "@babel/helpers@^7.4.3":
67 | version "7.4.3"
68 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.3.tgz#7b1d354363494b31cb9a2417ae86af32b7853a3b"
69 | integrity sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q==
70 | dependencies:
71 | "@babel/template" "^7.4.0"
72 | "@babel/traverse" "^7.4.3"
73 | "@babel/types" "^7.4.0"
74 |
75 | "@babel/highlight@^7.0.0":
76 | version "7.0.0"
77 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
78 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
79 | dependencies:
80 | chalk "^2.0.0"
81 | esutils "^2.0.2"
82 | js-tokens "^4.0.0"
83 |
84 | "@babel/parser@^7.4.0", "@babel/parser@^7.4.3":
85 | version "7.4.3"
86 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.3.tgz#eb3ac80f64aa101c907d4ce5406360fe75b7895b"
87 | integrity sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==
88 |
89 | "@babel/register@^7.4.0":
90 | version "7.4.4"
91 | resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23"
92 | integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==
93 | dependencies:
94 | core-js "^3.0.0"
95 | find-cache-dir "^2.0.0"
96 | lodash "^4.17.11"
97 | mkdirp "^0.5.1"
98 | pirates "^4.0.0"
99 | source-map-support "^0.5.9"
100 |
101 | "@babel/template@^7.1.0", "@babel/template@^7.4.0":
102 | version "7.4.0"
103 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b"
104 | integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==
105 | dependencies:
106 | "@babel/code-frame" "^7.0.0"
107 | "@babel/parser" "^7.4.0"
108 | "@babel/types" "^7.4.0"
109 |
110 | "@babel/traverse@^7.4.3":
111 | version "7.4.3"
112 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84"
113 | integrity sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==
114 | dependencies:
115 | "@babel/code-frame" "^7.0.0"
116 | "@babel/generator" "^7.4.0"
117 | "@babel/helper-function-name" "^7.1.0"
118 | "@babel/helper-split-export-declaration" "^7.4.0"
119 | "@babel/parser" "^7.4.3"
120 | "@babel/types" "^7.4.0"
121 | debug "^4.1.0"
122 | globals "^11.1.0"
123 | lodash "^4.17.11"
124 |
125 | "@babel/types@^7.0.0", "@babel/types@^7.4.0":
126 | version "7.4.0"
127 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c"
128 | integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==
129 | dependencies:
130 | esutils "^2.0.2"
131 | lodash "^4.17.11"
132 | to-fast-properties "^2.0.0"
133 |
134 | "@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2", "@sinonjs/commons@^1.4.0":
135 | version "1.4.0"
136 | resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78"
137 | integrity sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==
138 | dependencies:
139 | type-detect "4.0.8"
140 |
141 | "@sinonjs/formatio@^3.1.0", "@sinonjs/formatio@^3.2.1":
142 | version "3.2.1"
143 | resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e"
144 | integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==
145 | dependencies:
146 | "@sinonjs/commons" "^1"
147 | "@sinonjs/samsam" "^3.1.0"
148 |
149 | "@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.1":
150 | version "3.3.1"
151 | resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.1.tgz#e88c53fbd9d91ad9f0f2b0140c16c7c107fe0d07"
152 | integrity sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==
153 | dependencies:
154 | "@sinonjs/commons" "^1.0.2"
155 | array-from "^2.1.1"
156 | lodash "^4.17.11"
157 |
158 | "@sinonjs/text-encoding@^0.7.1":
159 | version "0.7.1"
160 | resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
161 | integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
162 |
163 | "@types/chai@^4.1.7":
164 | version "4.1.7"
165 | resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a"
166 | integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==
167 |
168 | "@types/deep-equal@^1.0.1":
169 | version "1.0.1"
170 | resolved "https://registry.yarnpkg.com/@types/deep-equal/-/deep-equal-1.0.1.tgz#71cfabb247c22bcc16d536111f50c0ed12476b03"
171 |
172 | "@types/mocha@^5.2.6":
173 | version "5.2.7"
174 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea"
175 | integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==
176 |
177 | "@types/node-fetch@^2.5.0":
178 | version "2.5.0"
179 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.0.tgz#1c55616a4591bdd15a389fbd0da4a55b9502add5"
180 | integrity sha512-TLFRywthBgL68auWj+ziWu+vnmmcHCDFC/sqCOQf1xTz4hRq8cu79z8CtHU9lncExGBsB8fXA4TiLDLt6xvMzw==
181 | dependencies:
182 | "@types/node" "*"
183 |
184 | "@types/node@*":
185 | version "12.6.8"
186 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c"
187 | integrity sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==
188 |
189 | "@types/node@^12.6.2":
190 | version "12.6.2"
191 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.2.tgz#a5ccec6abb6060d5f20d256fb03ed743e9774999"
192 | integrity sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ==
193 |
194 | "@types/sinon@^7.0.11":
195 | version "7.0.13"
196 | resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-7.0.13.tgz#ca039c23a9e27ebea53e0901ef928ea2a1a6d313"
197 | integrity sha512-d7c/C/+H/knZ3L8/cxhicHUiTDxdgap0b/aNJfsmLwFu/iOP17mdgbQsbHA3SJmrzsjD0l3UEE5SN4xxuz5ung==
198 |
199 | abab@^2.0.0:
200 | version "2.0.0"
201 | resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
202 | integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
203 |
204 | acorn-globals@^4.3.0:
205 | version "4.3.0"
206 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
207 | integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
208 | dependencies:
209 | acorn "^6.0.1"
210 | acorn-walk "^6.0.1"
211 |
212 | acorn-walk@^6.0.1:
213 | version "6.1.1"
214 | resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
215 | integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==
216 |
217 | acorn@^6.0.1, acorn@^6.0.4:
218 | version "6.4.1"
219 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
220 | integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
221 |
222 | ajv@^6.5.5:
223 | version "6.10.0"
224 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
225 | integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
226 | dependencies:
227 | fast-deep-equal "^2.0.1"
228 | fast-json-stable-stringify "^2.0.0"
229 | json-schema-traverse "^0.4.1"
230 | uri-js "^4.2.2"
231 |
232 | ansi-colors@3.2.3:
233 | version "3.2.3"
234 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
235 | integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
236 |
237 | ansi-regex@^2.0.0:
238 | version "2.1.1"
239 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
240 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
241 |
242 | ansi-regex@^3.0.0:
243 | version "3.0.0"
244 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
245 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
246 |
247 | ansi-regex@^4.1.0:
248 | version "4.1.0"
249 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
250 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
251 |
252 | ansi-styles@^3.2.1:
253 | version "3.2.1"
254 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
255 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
256 | dependencies:
257 | color-convert "^1.9.0"
258 |
259 | arg@^4.1.0:
260 | version "4.1.0"
261 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0"
262 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==
263 |
264 | argparse@^1.0.7:
265 | version "1.0.10"
266 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
267 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
268 | dependencies:
269 | sprintf-js "~1.0.2"
270 |
271 | array-equal@^1.0.0:
272 | version "1.0.0"
273 | resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
274 | integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
275 |
276 | array-from@^2.1.1:
277 | version "2.1.1"
278 | resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
279 | integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
280 |
281 | asn1@~0.2.3:
282 | version "0.2.4"
283 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
284 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
285 | dependencies:
286 | safer-buffer "~2.1.0"
287 |
288 | assert-plus@1.0.0, assert-plus@^1.0.0:
289 | version "1.0.0"
290 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
291 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
292 |
293 | assertion-error@^1.1.0:
294 | version "1.1.0"
295 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
296 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
297 |
298 | async-limiter@~1.0.0:
299 | version "1.0.1"
300 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
301 | integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
302 |
303 | asynckit@^0.4.0:
304 | version "0.4.0"
305 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
306 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
307 |
308 | aws-sign2@~0.7.0:
309 | version "0.7.0"
310 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
311 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
312 |
313 | aws4@^1.8.0:
314 | version "1.8.0"
315 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
316 | integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
317 |
318 | balanced-match@^1.0.0:
319 | version "1.0.0"
320 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
321 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
322 |
323 | bcrypt-pbkdf@^1.0.0:
324 | version "1.0.2"
325 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
326 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
327 | dependencies:
328 | tweetnacl "^0.14.3"
329 |
330 | brace-expansion@^1.1.7:
331 | version "1.1.11"
332 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
333 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
334 | dependencies:
335 | balanced-match "^1.0.0"
336 | concat-map "0.0.1"
337 |
338 | browser-process-hrtime@^0.1.2:
339 | version "0.1.3"
340 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
341 | integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
342 |
343 | browser-stdout@1.3.1:
344 | version "1.3.1"
345 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
346 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
347 |
348 | buffer-from@^1.0.0:
349 | version "1.1.1"
350 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
351 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
352 |
353 | camelcase@^5.0.0:
354 | version "5.3.1"
355 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
356 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
357 |
358 | caseless@~0.12.0:
359 | version "0.12.0"
360 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
361 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
362 |
363 | chai@^4.2.0:
364 | version "4.2.0"
365 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5"
366 | integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==
367 | dependencies:
368 | assertion-error "^1.1.0"
369 | check-error "^1.0.2"
370 | deep-eql "^3.0.1"
371 | get-func-name "^2.0.0"
372 | pathval "^1.1.0"
373 | type-detect "^4.0.5"
374 |
375 | chalk@^2.0.0, chalk@^2.0.1:
376 | version "2.4.2"
377 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
378 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
379 | dependencies:
380 | ansi-styles "^3.2.1"
381 | escape-string-regexp "^1.0.5"
382 | supports-color "^5.3.0"
383 |
384 | check-error@^1.0.2:
385 | version "1.0.2"
386 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
387 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
388 |
389 | cliui@^4.0.0:
390 | version "4.1.0"
391 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
392 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
393 | dependencies:
394 | string-width "^2.1.1"
395 | strip-ansi "^4.0.0"
396 | wrap-ansi "^2.0.0"
397 |
398 | code-point-at@^1.0.0:
399 | version "1.1.0"
400 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
401 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
402 |
403 | color-convert@^1.9.0:
404 | version "1.9.3"
405 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
406 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
407 | dependencies:
408 | color-name "1.1.3"
409 |
410 | color-name@1.1.3:
411 | version "1.1.3"
412 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
413 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
414 |
415 | combined-stream@^1.0.6, combined-stream@~1.0.6:
416 | version "1.0.7"
417 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
418 | integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
419 | dependencies:
420 | delayed-stream "~1.0.0"
421 |
422 | commondir@^1.0.1:
423 | version "1.0.1"
424 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
425 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
426 |
427 | concat-map@0.0.1:
428 | version "0.0.1"
429 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
430 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
431 |
432 | convert-source-map@^1.1.0:
433 | version "1.6.0"
434 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
435 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
436 | dependencies:
437 | safe-buffer "~5.1.1"
438 |
439 | core-js@^3.0.0:
440 | version "3.0.1"
441 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.1.tgz#1343182634298f7f38622f95e73f54e48ddf4738"
442 | integrity sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew==
443 |
444 | core-util-is@1.0.2:
445 | version "1.0.2"
446 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
447 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
448 |
449 | cross-spawn@^6.0.0:
450 | version "6.0.5"
451 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
452 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
453 | dependencies:
454 | nice-try "^1.0.4"
455 | path-key "^2.0.1"
456 | semver "^5.5.0"
457 | shebang-command "^1.2.0"
458 | which "^1.2.9"
459 |
460 | cssom@0.3.x, cssom@^0.3.4:
461 | version "0.3.6"
462 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad"
463 | integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==
464 |
465 | cssstyle@^1.1.1:
466 | version "1.2.2"
467 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077"
468 | integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==
469 | dependencies:
470 | cssom "0.3.x"
471 |
472 | dashdash@^1.12.0:
473 | version "1.14.1"
474 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
475 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
476 | dependencies:
477 | assert-plus "^1.0.0"
478 |
479 | data-urls@^1.1.0:
480 | version "1.1.0"
481 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
482 | integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
483 | dependencies:
484 | abab "^2.0.0"
485 | whatwg-mimetype "^2.2.0"
486 | whatwg-url "^7.0.0"
487 |
488 | debug@3.2.6:
489 | version "3.2.6"
490 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
491 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
492 | dependencies:
493 | ms "^2.1.1"
494 |
495 | debug@^4.1.0:
496 | version "4.1.1"
497 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
498 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
499 | dependencies:
500 | ms "^2.1.1"
501 |
502 | decamelize@^1.2.0:
503 | version "1.2.0"
504 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
505 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
506 |
507 | deep-eql@^3.0.1:
508 | version "3.0.1"
509 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
510 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
511 | dependencies:
512 | type-detect "^4.0.0"
513 |
514 | deep-equal@^1.0.1:
515 | version "1.0.1"
516 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
517 |
518 | deep-is@~0.1.3:
519 | version "0.1.3"
520 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
521 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
522 |
523 | define-properties@^1.1.2:
524 | version "1.1.3"
525 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
526 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
527 | dependencies:
528 | object-keys "^1.0.12"
529 |
530 | delayed-stream@~1.0.0:
531 | version "1.0.0"
532 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
533 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
534 |
535 | diff@3.5.0, diff@^3.1.0, diff@^3.5.0:
536 | version "3.5.0"
537 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
538 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
539 |
540 | domexception@^1.0.1:
541 | version "1.0.1"
542 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
543 | integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
544 | dependencies:
545 | webidl-conversions "^4.0.2"
546 |
547 | ecc-jsbn@~0.1.1:
548 | version "0.1.2"
549 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
550 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
551 | dependencies:
552 | jsbn "~0.1.0"
553 | safer-buffer "^2.1.0"
554 |
555 | emoji-regex@^7.0.1:
556 | version "7.0.3"
557 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
558 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
559 |
560 | end-of-stream@^1.1.0:
561 | version "1.4.1"
562 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
563 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
564 | dependencies:
565 | once "^1.4.0"
566 |
567 | es-abstract@^1.5.1:
568 | version "1.13.0"
569 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
570 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
571 | dependencies:
572 | es-to-primitive "^1.2.0"
573 | function-bind "^1.1.1"
574 | has "^1.0.3"
575 | is-callable "^1.1.4"
576 | is-regex "^1.0.4"
577 | object-keys "^1.0.12"
578 |
579 | es-to-primitive@^1.2.0:
580 | version "1.2.0"
581 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
582 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
583 | dependencies:
584 | is-callable "^1.1.4"
585 | is-date-object "^1.0.1"
586 | is-symbol "^1.0.2"
587 |
588 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
589 | version "1.0.5"
590 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
591 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
592 |
593 | escodegen@^1.11.0:
594 | version "1.11.1"
595 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510"
596 | integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==
597 | dependencies:
598 | esprima "^3.1.3"
599 | estraverse "^4.2.0"
600 | esutils "^2.0.2"
601 | optionator "^0.8.1"
602 | optionalDependencies:
603 | source-map "~0.6.1"
604 |
605 | esprima@^3.1.3:
606 | version "3.1.3"
607 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
608 | integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
609 |
610 | esprima@^4.0.0:
611 | version "4.0.1"
612 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
613 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
614 |
615 | estraverse@^4.2.0:
616 | version "4.2.0"
617 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
618 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
619 |
620 | esutils@^2.0.2:
621 | version "2.0.2"
622 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
623 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
624 |
625 | execa@^1.0.0:
626 | version "1.0.0"
627 | resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
628 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
629 | dependencies:
630 | cross-spawn "^6.0.0"
631 | get-stream "^4.0.0"
632 | is-stream "^1.1.0"
633 | npm-run-path "^2.0.0"
634 | p-finally "^1.0.0"
635 | signal-exit "^3.0.0"
636 | strip-eof "^1.0.0"
637 |
638 | extend@~3.0.2:
639 | version "3.0.2"
640 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
641 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
642 |
643 | extsprintf@1.3.0:
644 | version "1.3.0"
645 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
646 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
647 |
648 | extsprintf@^1.2.0:
649 | version "1.4.0"
650 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
651 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
652 |
653 | fast-deep-equal@^2.0.1:
654 | version "2.0.1"
655 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
656 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
657 |
658 | fast-json-stable-stringify@^2.0.0:
659 | version "2.0.0"
660 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
661 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
662 |
663 | fast-levenshtein@~2.0.4:
664 | version "2.0.6"
665 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
666 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
667 |
668 | find-cache-dir@^2.0.0:
669 | version "2.1.0"
670 | resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
671 | integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
672 | dependencies:
673 | commondir "^1.0.1"
674 | make-dir "^2.0.0"
675 | pkg-dir "^3.0.0"
676 |
677 | find-up@3.0.0, find-up@^3.0.0:
678 | version "3.0.0"
679 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
680 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
681 | dependencies:
682 | locate-path "^3.0.0"
683 |
684 | flat@^4.1.0:
685 | version "4.1.0"
686 | resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
687 | integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==
688 | dependencies:
689 | is-buffer "~2.0.3"
690 |
691 | forever-agent@~0.6.1:
692 | version "0.6.1"
693 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
694 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
695 |
696 | form-data@~2.3.2:
697 | version "2.3.3"
698 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
699 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
700 | dependencies:
701 | asynckit "^0.4.0"
702 | combined-stream "^1.0.6"
703 | mime-types "^2.1.12"
704 |
705 | fs.realpath@^1.0.0:
706 | version "1.0.0"
707 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
708 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
709 |
710 | function-bind@^1.1.1:
711 | version "1.1.1"
712 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
713 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
714 |
715 | get-caller-file@^1.0.1:
716 | version "1.0.3"
717 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
718 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
719 |
720 | get-caller-file@^2.0.1:
721 | version "2.0.5"
722 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
723 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
724 |
725 | get-func-name@^2.0.0:
726 | version "2.0.0"
727 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
728 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
729 |
730 | get-stream@^4.0.0:
731 | version "4.1.0"
732 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
733 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
734 | dependencies:
735 | pump "^3.0.0"
736 |
737 | getpass@^0.1.1:
738 | version "0.1.7"
739 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
740 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
741 | dependencies:
742 | assert-plus "^1.0.0"
743 |
744 | glob@7.1.3:
745 | version "7.1.3"
746 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
747 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
748 | dependencies:
749 | fs.realpath "^1.0.0"
750 | inflight "^1.0.4"
751 | inherits "2"
752 | minimatch "^3.0.4"
753 | once "^1.3.0"
754 | path-is-absolute "^1.0.0"
755 |
756 | globals@^11.1.0:
757 | version "11.11.0"
758 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e"
759 | integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==
760 |
761 | growl@1.10.5:
762 | version "1.10.5"
763 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
764 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
765 |
766 | har-schema@^2.0.0:
767 | version "2.0.0"
768 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
769 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
770 |
771 | har-validator@~5.1.0:
772 | version "5.1.3"
773 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
774 | integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
775 | dependencies:
776 | ajv "^6.5.5"
777 | har-schema "^2.0.0"
778 |
779 | has-flag@^3.0.0:
780 | version "3.0.0"
781 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
782 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
783 |
784 | has-symbols@^1.0.0:
785 | version "1.0.0"
786 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
787 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
788 |
789 | has@^1.0.1, has@^1.0.3:
790 | version "1.0.3"
791 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
792 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
793 | dependencies:
794 | function-bind "^1.1.1"
795 |
796 | he@1.2.0:
797 | version "1.2.0"
798 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
799 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
800 |
801 | html-encoding-sniffer@^1.0.2:
802 | version "1.0.2"
803 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
804 | integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
805 | dependencies:
806 | whatwg-encoding "^1.0.1"
807 |
808 | http-signature@~1.2.0:
809 | version "1.2.0"
810 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
811 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
812 | dependencies:
813 | assert-plus "^1.0.0"
814 | jsprim "^1.2.2"
815 | sshpk "^1.7.0"
816 |
817 | iconv-lite@0.4.24:
818 | version "0.4.24"
819 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
820 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
821 | dependencies:
822 | safer-buffer ">= 2.1.2 < 3"
823 |
824 | inflight@^1.0.4:
825 | version "1.0.6"
826 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
827 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
828 | dependencies:
829 | once "^1.3.0"
830 | wrappy "1"
831 |
832 | inherits@2:
833 | version "2.0.3"
834 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
835 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
836 |
837 | invert-kv@^2.0.0:
838 | version "2.0.0"
839 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
840 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
841 |
842 | is-buffer@~2.0.3:
843 | version "2.0.3"
844 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
845 | integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
846 |
847 | is-callable@^1.1.4:
848 | version "1.1.4"
849 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
850 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
851 |
852 | is-date-object@^1.0.1:
853 | version "1.0.1"
854 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
855 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
856 |
857 | is-fullwidth-code-point@^1.0.0:
858 | version "1.0.0"
859 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
860 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
861 | dependencies:
862 | number-is-nan "^1.0.0"
863 |
864 | is-fullwidth-code-point@^2.0.0:
865 | version "2.0.0"
866 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
867 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
868 |
869 | is-regex@^1.0.4:
870 | version "1.0.4"
871 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
872 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
873 | dependencies:
874 | has "^1.0.1"
875 |
876 | is-stream@^1.1.0:
877 | version "1.1.0"
878 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
879 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
880 |
881 | is-symbol@^1.0.2:
882 | version "1.0.2"
883 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
884 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
885 | dependencies:
886 | has-symbols "^1.0.0"
887 |
888 | is-typedarray@~1.0.0:
889 | version "1.0.0"
890 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
891 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
892 |
893 | isarray@0.0.1:
894 | version "0.0.1"
895 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
896 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
897 |
898 | isexe@^2.0.0:
899 | version "2.0.0"
900 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
901 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
902 |
903 | isstream@~0.1.2:
904 | version "0.1.2"
905 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
906 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
907 |
908 | js-tokens@^4.0.0:
909 | version "4.0.0"
910 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
911 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
912 |
913 | js-yaml@3.13.1:
914 | version "3.13.1"
915 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
916 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
917 | dependencies:
918 | argparse "^1.0.7"
919 | esprima "^4.0.0"
920 |
921 | jsbn@~0.1.0:
922 | version "0.1.1"
923 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
924 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
925 |
926 | jsdom-global@^3.0.2:
927 | version "3.0.2"
928 | resolved "https://registry.yarnpkg.com/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9"
929 | integrity sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=
930 |
931 | jsdom@^14.0.0:
932 | version "14.0.0"
933 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.0.0.tgz#c7f1441ebcc57902d08d5fb2f6ba2baf746da7c6"
934 | integrity sha512-/VkyPmdtbwqpJSkwDx3YyJ3U1oawYNB/h5z8vTUZGAzjtu2OHTeFRfnJqyMHsJ5Cyes23trOmvUpM1GfHH1leA==
935 | dependencies:
936 | abab "^2.0.0"
937 | acorn "^6.0.4"
938 | acorn-globals "^4.3.0"
939 | array-equal "^1.0.0"
940 | cssom "^0.3.4"
941 | cssstyle "^1.1.1"
942 | data-urls "^1.1.0"
943 | domexception "^1.0.1"
944 | escodegen "^1.11.0"
945 | html-encoding-sniffer "^1.0.2"
946 | nwsapi "^2.0.9"
947 | parse5 "5.1.0"
948 | pn "^1.1.0"
949 | request "^2.88.0"
950 | request-promise-native "^1.0.5"
951 | saxes "^3.1.5"
952 | symbol-tree "^3.2.2"
953 | tough-cookie "^2.5.0"
954 | w3c-hr-time "^1.0.1"
955 | w3c-xmlserializer "^1.0.1"
956 | webidl-conversions "^4.0.2"
957 | whatwg-encoding "^1.0.5"
958 | whatwg-mimetype "^2.3.0"
959 | whatwg-url "^7.0.0"
960 | ws "^6.1.2"
961 | xml-name-validator "^3.0.0"
962 |
963 | jsesc@^2.5.1:
964 | version "2.5.2"
965 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
966 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
967 |
968 | json-schema-traverse@^0.4.1:
969 | version "0.4.1"
970 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
971 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
972 |
973 | json-schema@0.2.3:
974 | version "0.2.3"
975 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
976 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
977 |
978 | json-stringify-safe@~5.0.1:
979 | version "5.0.1"
980 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
981 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
982 |
983 | json5@^2.1.0:
984 | version "2.1.0"
985 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
986 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
987 | dependencies:
988 | minimist "^1.2.0"
989 |
990 | jsprim@^1.2.2:
991 | version "1.4.1"
992 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
993 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
994 | dependencies:
995 | assert-plus "1.0.0"
996 | extsprintf "1.3.0"
997 | json-schema "0.2.3"
998 | verror "1.10.0"
999 |
1000 | just-extend@^4.0.2:
1001 | version "4.0.2"
1002 | resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
1003 | integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
1004 |
1005 | lcid@^2.0.0:
1006 | version "2.0.0"
1007 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
1008 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
1009 | dependencies:
1010 | invert-kv "^2.0.0"
1011 |
1012 | levn@~0.3.0:
1013 | version "0.3.0"
1014 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
1015 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1016 | dependencies:
1017 | prelude-ls "~1.1.2"
1018 | type-check "~0.3.2"
1019 |
1020 | locate-path@^3.0.0:
1021 | version "3.0.0"
1022 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
1023 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
1024 | dependencies:
1025 | p-locate "^3.0.0"
1026 | path-exists "^3.0.0"
1027 |
1028 | lodash.sortby@^4.7.0:
1029 | version "4.7.0"
1030 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
1031 | integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
1032 |
1033 | lodash@^4.17.11:
1034 | version "4.17.21"
1035 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1036 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1037 |
1038 | log-symbols@2.2.0:
1039 | version "2.2.0"
1040 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
1041 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
1042 | dependencies:
1043 | chalk "^2.0.1"
1044 |
1045 | lolex@^2.3.2:
1046 | version "2.7.5"
1047 | resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733"
1048 | integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==
1049 |
1050 | lolex@^3.1.0:
1051 | version "3.1.0"
1052 | resolved "https://registry.yarnpkg.com/lolex/-/lolex-3.1.0.tgz#1a7feb2fefd75b3e3a7f79f0e110d9476e294434"
1053 | integrity sha512-zFo5MgCJ0rZ7gQg69S4pqBsLURbFw11X68C18OcJjJQbqaXm2NoTrGl1IMM3TIz0/BnN1tIs2tzmmqvCsOMMjw==
1054 |
1055 | make-dir@^2.0.0:
1056 | version "2.1.0"
1057 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
1058 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
1059 | dependencies:
1060 | pify "^4.0.1"
1061 | semver "^5.6.0"
1062 |
1063 | make-error@^1.1.1:
1064 | version "1.3.5"
1065 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
1066 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
1067 |
1068 | map-age-cleaner@^0.1.1:
1069 | version "0.1.3"
1070 | resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
1071 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
1072 | dependencies:
1073 | p-defer "^1.0.0"
1074 |
1075 | mem@^4.0.0:
1076 | version "4.3.0"
1077 | resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
1078 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
1079 | dependencies:
1080 | map-age-cleaner "^0.1.1"
1081 | mimic-fn "^2.0.0"
1082 | p-is-promise "^2.0.0"
1083 |
1084 | mime-db@~1.38.0:
1085 | version "1.38.0"
1086 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"
1087 | integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==
1088 |
1089 | mime-types@^2.1.12, mime-types@~2.1.19:
1090 | version "2.1.22"
1091 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd"
1092 | integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==
1093 | dependencies:
1094 | mime-db "~1.38.0"
1095 |
1096 | mimic-fn@^2.0.0:
1097 | version "2.1.0"
1098 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1099 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1100 |
1101 | minimatch@3.0.4, minimatch@^3.0.4:
1102 | version "3.0.4"
1103 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1104 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1105 | dependencies:
1106 | brace-expansion "^1.1.7"
1107 |
1108 | minimist@0.0.8:
1109 | version "0.0.8"
1110 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1111 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
1112 |
1113 | minimist@^1.2.0:
1114 | version "1.2.0"
1115 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1116 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
1117 |
1118 | mkdirp@0.5.1, mkdirp@^0.5.1:
1119 | version "0.5.1"
1120 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1121 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
1122 | dependencies:
1123 | minimist "0.0.8"
1124 |
1125 | mocha@^6.1.3:
1126 | version "6.1.4"
1127 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.1.4.tgz#e35fada242d5434a7e163d555c705f6875951640"
1128 | integrity sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==
1129 | dependencies:
1130 | ansi-colors "3.2.3"
1131 | browser-stdout "1.3.1"
1132 | debug "3.2.6"
1133 | diff "3.5.0"
1134 | escape-string-regexp "1.0.5"
1135 | find-up "3.0.0"
1136 | glob "7.1.3"
1137 | growl "1.10.5"
1138 | he "1.2.0"
1139 | js-yaml "3.13.1"
1140 | log-symbols "2.2.0"
1141 | minimatch "3.0.4"
1142 | mkdirp "0.5.1"
1143 | ms "2.1.1"
1144 | node-environment-flags "1.0.5"
1145 | object.assign "4.1.0"
1146 | strip-json-comments "2.0.1"
1147 | supports-color "6.0.0"
1148 | which "1.3.1"
1149 | wide-align "1.1.3"
1150 | yargs "13.2.2"
1151 | yargs-parser "13.0.0"
1152 | yargs-unparser "1.5.0"
1153 |
1154 | ms@2.1.1, ms@^2.1.1:
1155 | version "2.1.1"
1156 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
1157 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
1158 |
1159 | nice-try@^1.0.4:
1160 | version "1.0.5"
1161 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
1162 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
1163 |
1164 | nise@^1.4.10:
1165 | version "1.4.10"
1166 | resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6"
1167 | integrity sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==
1168 | dependencies:
1169 | "@sinonjs/formatio" "^3.1.0"
1170 | "@sinonjs/text-encoding" "^0.7.1"
1171 | just-extend "^4.0.2"
1172 | lolex "^2.3.2"
1173 | path-to-regexp "^1.7.0"
1174 |
1175 | node-environment-flags@1.0.5:
1176 | version "1.0.5"
1177 | resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a"
1178 | integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==
1179 | dependencies:
1180 | object.getownpropertydescriptors "^2.0.3"
1181 | semver "^5.7.0"
1182 |
1183 | node-fetch@^2.6.0:
1184 | version "2.6.1"
1185 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
1186 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
1187 |
1188 | node-modules-regexp@^1.0.0:
1189 | version "1.0.0"
1190 | resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
1191 | integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
1192 |
1193 | npm-run-path@^2.0.0:
1194 | version "2.0.2"
1195 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
1196 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
1197 | dependencies:
1198 | path-key "^2.0.0"
1199 |
1200 | number-is-nan@^1.0.0:
1201 | version "1.0.1"
1202 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1203 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
1204 |
1205 | nwsapi@^2.0.9:
1206 | version "2.1.3"
1207 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.3.tgz#25f3a5cec26c654f7376df6659cdf84b99df9558"
1208 | integrity sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A==
1209 |
1210 | oauth-sign@~0.9.0:
1211 | version "0.9.0"
1212 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
1213 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
1214 |
1215 | object-keys@^1.0.11, object-keys@^1.0.12:
1216 | version "1.1.1"
1217 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1218 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1219 |
1220 | object.assign@4.1.0:
1221 | version "4.1.0"
1222 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
1223 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
1224 | dependencies:
1225 | define-properties "^1.1.2"
1226 | function-bind "^1.1.1"
1227 | has-symbols "^1.0.0"
1228 | object-keys "^1.0.11"
1229 |
1230 | object.getownpropertydescriptors@^2.0.3:
1231 | version "2.0.3"
1232 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
1233 | integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
1234 | dependencies:
1235 | define-properties "^1.1.2"
1236 | es-abstract "^1.5.1"
1237 |
1238 | once@^1.3.0, once@^1.3.1, once@^1.4.0:
1239 | version "1.4.0"
1240 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1241 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1242 | dependencies:
1243 | wrappy "1"
1244 |
1245 | optionator@^0.8.1:
1246 | version "0.8.2"
1247 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
1248 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
1249 | dependencies:
1250 | deep-is "~0.1.3"
1251 | fast-levenshtein "~2.0.4"
1252 | levn "~0.3.0"
1253 | prelude-ls "~1.1.2"
1254 | type-check "~0.3.2"
1255 | wordwrap "~1.0.0"
1256 |
1257 | os-locale@^3.0.0, os-locale@^3.1.0:
1258 | version "3.1.0"
1259 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
1260 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
1261 | dependencies:
1262 | execa "^1.0.0"
1263 | lcid "^2.0.0"
1264 | mem "^4.0.0"
1265 |
1266 | p-defer@^1.0.0:
1267 | version "1.0.0"
1268 | resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
1269 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
1270 |
1271 | p-finally@^1.0.0:
1272 | version "1.0.0"
1273 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
1274 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
1275 |
1276 | p-is-promise@^2.0.0:
1277 | version "2.1.0"
1278 | resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
1279 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
1280 |
1281 | p-limit@^2.0.0:
1282 | version "2.2.0"
1283 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2"
1284 | integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==
1285 | dependencies:
1286 | p-try "^2.0.0"
1287 |
1288 | p-locate@^3.0.0:
1289 | version "3.0.0"
1290 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
1291 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
1292 | dependencies:
1293 | p-limit "^2.0.0"
1294 |
1295 | p-try@^2.0.0:
1296 | version "2.2.0"
1297 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1298 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1299 |
1300 | parse5@5.1.0:
1301 | version "5.1.0"
1302 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
1303 | integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
1304 |
1305 | path-exists@^3.0.0:
1306 | version "3.0.0"
1307 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1308 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
1309 |
1310 | path-is-absolute@^1.0.0:
1311 | version "1.0.1"
1312 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1313 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1314 |
1315 | path-key@^2.0.0, path-key@^2.0.1:
1316 | version "2.0.1"
1317 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1318 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
1319 |
1320 | path-parse@^1.0.6:
1321 | version "1.0.6"
1322 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1323 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1324 |
1325 | path-to-regexp@^1.7.0:
1326 | version "1.7.0"
1327 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
1328 | integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=
1329 | dependencies:
1330 | isarray "0.0.1"
1331 |
1332 | pathval@^1.1.0:
1333 | version "1.1.0"
1334 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
1335 | integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA=
1336 |
1337 | performance-now@^2.1.0:
1338 | version "2.1.0"
1339 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
1340 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
1341 |
1342 | pify@^4.0.1:
1343 | version "4.0.1"
1344 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
1345 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
1346 |
1347 | pirates@^4.0.0:
1348 | version "4.0.1"
1349 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
1350 | integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
1351 | dependencies:
1352 | node-modules-regexp "^1.0.0"
1353 |
1354 | pkg-dir@^3.0.0:
1355 | version "3.0.0"
1356 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
1357 | integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
1358 | dependencies:
1359 | find-up "^3.0.0"
1360 |
1361 | pn@^1.1.0:
1362 | version "1.1.0"
1363 | resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
1364 | integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
1365 |
1366 | prelude-ls@~1.1.2:
1367 | version "1.1.2"
1368 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
1369 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
1370 |
1371 | psl@^1.1.24, psl@^1.1.28:
1372 | version "1.1.31"
1373 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
1374 | integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
1375 |
1376 | pump@^3.0.0:
1377 | version "3.0.0"
1378 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
1379 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
1380 | dependencies:
1381 | end-of-stream "^1.1.0"
1382 | once "^1.3.1"
1383 |
1384 | punycode@^1.4.1:
1385 | version "1.4.1"
1386 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1387 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
1388 |
1389 | punycode@^2.1.0, punycode@^2.1.1:
1390 | version "2.1.1"
1391 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1392 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1393 |
1394 | qs@~6.5.2:
1395 | version "6.5.2"
1396 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
1397 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
1398 |
1399 | request-promise-core@1.1.2:
1400 | version "1.1.2"
1401 | resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346"
1402 | integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==
1403 | dependencies:
1404 | lodash "^4.17.11"
1405 |
1406 | request-promise-native@^1.0.5:
1407 | version "1.0.7"
1408 | resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59"
1409 | integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==
1410 | dependencies:
1411 | request-promise-core "1.1.2"
1412 | stealthy-require "^1.1.1"
1413 | tough-cookie "^2.3.3"
1414 |
1415 | request@^2.88.0:
1416 | version "2.88.0"
1417 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
1418 | integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
1419 | dependencies:
1420 | aws-sign2 "~0.7.0"
1421 | aws4 "^1.8.0"
1422 | caseless "~0.12.0"
1423 | combined-stream "~1.0.6"
1424 | extend "~3.0.2"
1425 | forever-agent "~0.6.1"
1426 | form-data "~2.3.2"
1427 | har-validator "~5.1.0"
1428 | http-signature "~1.2.0"
1429 | is-typedarray "~1.0.0"
1430 | isstream "~0.1.2"
1431 | json-stringify-safe "~5.0.1"
1432 | mime-types "~2.1.19"
1433 | oauth-sign "~0.9.0"
1434 | performance-now "^2.1.0"
1435 | qs "~6.5.2"
1436 | safe-buffer "^5.1.2"
1437 | tough-cookie "~2.4.3"
1438 | tunnel-agent "^0.6.0"
1439 | uuid "^3.3.2"
1440 |
1441 | require-directory@^2.1.1:
1442 | version "2.1.1"
1443 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1444 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1445 |
1446 | require-main-filename@^1.0.1:
1447 | version "1.0.1"
1448 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
1449 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
1450 |
1451 | require-main-filename@^2.0.0:
1452 | version "2.0.0"
1453 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1454 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1455 |
1456 | resolve@^1.3.2:
1457 | version "1.10.0"
1458 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
1459 | integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
1460 | dependencies:
1461 | path-parse "^1.0.6"
1462 |
1463 | safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.1:
1464 | version "5.1.2"
1465 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1466 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1467 |
1468 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
1469 | version "2.1.2"
1470 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1471 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1472 |
1473 | saxes@^3.1.5:
1474 | version "3.1.9"
1475 | resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b"
1476 | integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw==
1477 | dependencies:
1478 | xmlchars "^1.3.1"
1479 |
1480 | semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0:
1481 | version "5.7.0"
1482 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
1483 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
1484 |
1485 | set-blocking@^2.0.0:
1486 | version "2.0.0"
1487 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1488 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
1489 |
1490 | shebang-command@^1.2.0:
1491 | version "1.2.0"
1492 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1493 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
1494 | dependencies:
1495 | shebang-regex "^1.0.0"
1496 |
1497 | shebang-regex@^1.0.0:
1498 | version "1.0.0"
1499 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1500 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
1501 |
1502 | signal-exit@^3.0.0:
1503 | version "3.0.2"
1504 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1505 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
1506 |
1507 | sinon@^7.3.1:
1508 | version "7.3.1"
1509 | resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.3.1.tgz#e8276522104e6c08d1cb52a907270b0e316655c4"
1510 | integrity sha512-eQKMaeWovtOtYe2xThEvaHmmxf870Di+bim10c3ZPrL5bZhLGtu8cz+rOBTFz0CwBV4Q/7dYwZiqZbGVLZ+vjQ==
1511 | dependencies:
1512 | "@sinonjs/commons" "^1.4.0"
1513 | "@sinonjs/formatio" "^3.2.1"
1514 | "@sinonjs/samsam" "^3.3.1"
1515 | diff "^3.5.0"
1516 | lolex "^3.1.0"
1517 | nise "^1.4.10"
1518 | supports-color "^5.5.0"
1519 |
1520 | source-map-support@^0.5.6, source-map-support@^0.5.9:
1521 | version "0.5.12"
1522 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
1523 | integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
1524 | dependencies:
1525 | buffer-from "^1.0.0"
1526 | source-map "^0.6.0"
1527 |
1528 | source-map@^0.5.0:
1529 | version "0.5.7"
1530 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1531 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1532 |
1533 | source-map@^0.6.0, source-map@~0.6.1:
1534 | version "0.6.1"
1535 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1536 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1537 |
1538 | sprintf-js@~1.0.2:
1539 | version "1.0.3"
1540 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1541 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1542 |
1543 | sshpk@^1.7.0:
1544 | version "1.16.1"
1545 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
1546 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
1547 | dependencies:
1548 | asn1 "~0.2.3"
1549 | assert-plus "^1.0.0"
1550 | bcrypt-pbkdf "^1.0.0"
1551 | dashdash "^1.12.0"
1552 | ecc-jsbn "~0.1.1"
1553 | getpass "^0.1.1"
1554 | jsbn "~0.1.0"
1555 | safer-buffer "^2.0.2"
1556 | tweetnacl "~0.14.0"
1557 |
1558 | stealthy-require@^1.1.1:
1559 | version "1.1.1"
1560 | resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
1561 | integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
1562 |
1563 | string-width@^1.0.1:
1564 | version "1.0.2"
1565 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
1566 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
1567 | dependencies:
1568 | code-point-at "^1.0.0"
1569 | is-fullwidth-code-point "^1.0.0"
1570 | strip-ansi "^3.0.0"
1571 |
1572 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
1573 | version "2.1.1"
1574 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1575 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
1576 | dependencies:
1577 | is-fullwidth-code-point "^2.0.0"
1578 | strip-ansi "^4.0.0"
1579 |
1580 | string-width@^3.0.0:
1581 | version "3.1.0"
1582 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1583 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1584 | dependencies:
1585 | emoji-regex "^7.0.1"
1586 | is-fullwidth-code-point "^2.0.0"
1587 | strip-ansi "^5.1.0"
1588 |
1589 | strip-ansi@^3.0.0, strip-ansi@^3.0.1:
1590 | version "3.0.1"
1591 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
1592 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
1593 | dependencies:
1594 | ansi-regex "^2.0.0"
1595 |
1596 | strip-ansi@^4.0.0:
1597 | version "4.0.0"
1598 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1599 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
1600 | dependencies:
1601 | ansi-regex "^3.0.0"
1602 |
1603 | strip-ansi@^5.1.0:
1604 | version "5.2.0"
1605 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1606 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1607 | dependencies:
1608 | ansi-regex "^4.1.0"
1609 |
1610 | strip-eof@^1.0.0:
1611 | version "1.0.0"
1612 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
1613 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
1614 |
1615 | strip-json-comments@2.0.1:
1616 | version "2.0.1"
1617 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1618 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1619 |
1620 | supports-color@6.0.0:
1621 | version "6.0.0"
1622 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a"
1623 | integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==
1624 | dependencies:
1625 | has-flag "^3.0.0"
1626 |
1627 | supports-color@^5.3.0, supports-color@^5.5.0:
1628 | version "5.5.0"
1629 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1630 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1631 | dependencies:
1632 | has-flag "^3.0.0"
1633 |
1634 | symbol-tree@^3.2.2:
1635 | version "3.2.2"
1636 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
1637 | integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
1638 |
1639 | to-fast-properties@^2.0.0:
1640 | version "2.0.0"
1641 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1642 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1643 |
1644 | tough-cookie@^2.3.3, tough-cookie@^2.5.0:
1645 | version "2.5.0"
1646 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
1647 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
1648 | dependencies:
1649 | psl "^1.1.28"
1650 | punycode "^2.1.1"
1651 |
1652 | tough-cookie@~2.4.3:
1653 | version "2.4.3"
1654 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
1655 | integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
1656 | dependencies:
1657 | psl "^1.1.24"
1658 | punycode "^1.4.1"
1659 |
1660 | tr46@^1.0.1:
1661 | version "1.0.1"
1662 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
1663 | integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
1664 | dependencies:
1665 | punycode "^2.1.0"
1666 |
1667 | trim-right@^1.0.1:
1668 | version "1.0.1"
1669 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
1670 | integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
1671 |
1672 | ts-node@^8.0.3:
1673 | version "8.0.3"
1674 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.0.3.tgz#aa60b836a24dafd8bf21b54766841a232fdbc641"
1675 | integrity sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==
1676 | dependencies:
1677 | arg "^4.1.0"
1678 | diff "^3.1.0"
1679 | make-error "^1.1.1"
1680 | source-map-support "^0.5.6"
1681 | yn "^3.0.0"
1682 |
1683 | tunnel-agent@^0.6.0:
1684 | version "0.6.0"
1685 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
1686 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
1687 | dependencies:
1688 | safe-buffer "^5.0.1"
1689 |
1690 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
1691 | version "0.14.5"
1692 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
1693 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
1694 |
1695 | type-check@~0.3.2:
1696 | version "0.3.2"
1697 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1698 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
1699 | dependencies:
1700 | prelude-ls "~1.1.2"
1701 |
1702 | type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
1703 | version "4.0.8"
1704 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
1705 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
1706 |
1707 | typescript@^3.1.5:
1708 | version "3.1.5"
1709 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.5.tgz#93d8b6864375325a91177372cb370ae0ae3a0703"
1710 |
1711 | uri-js@^4.2.2:
1712 | version "4.2.2"
1713 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
1714 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
1715 | dependencies:
1716 | punycode "^2.1.0"
1717 |
1718 | uuid@^3.3.2:
1719 | version "3.3.2"
1720 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
1721 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
1722 |
1723 | verror@1.10.0:
1724 | version "1.10.0"
1725 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
1726 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
1727 | dependencies:
1728 | assert-plus "^1.0.0"
1729 | core-util-is "1.0.2"
1730 | extsprintf "^1.2.0"
1731 |
1732 | w3c-hr-time@^1.0.1:
1733 | version "1.0.1"
1734 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
1735 | integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
1736 | dependencies:
1737 | browser-process-hrtime "^0.1.2"
1738 |
1739 | w3c-xmlserializer@^1.0.1:
1740 | version "1.1.2"
1741 | resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
1742 | integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
1743 | dependencies:
1744 | domexception "^1.0.1"
1745 | webidl-conversions "^4.0.2"
1746 | xml-name-validator "^3.0.0"
1747 |
1748 | webidl-conversions@^4.0.2:
1749 | version "4.0.2"
1750 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
1751 | integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
1752 |
1753 | whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
1754 | version "1.0.5"
1755 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
1756 | integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
1757 | dependencies:
1758 | iconv-lite "0.4.24"
1759 |
1760 | whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
1761 | version "2.3.0"
1762 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
1763 | integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
1764 |
1765 | whatwg-url@^7.0.0:
1766 | version "7.0.0"
1767 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
1768 | integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
1769 | dependencies:
1770 | lodash.sortby "^4.7.0"
1771 | tr46 "^1.0.1"
1772 | webidl-conversions "^4.0.2"
1773 |
1774 | which-module@^2.0.0:
1775 | version "2.0.0"
1776 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
1777 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
1778 |
1779 | which@1.3.1, which@^1.2.9:
1780 | version "1.3.1"
1781 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1782 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
1783 | dependencies:
1784 | isexe "^2.0.0"
1785 |
1786 | wide-align@1.1.3:
1787 | version "1.1.3"
1788 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
1789 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
1790 | dependencies:
1791 | string-width "^1.0.2 || 2"
1792 |
1793 | wordwrap@~1.0.0:
1794 | version "1.0.0"
1795 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
1796 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
1797 |
1798 | wrap-ansi@^2.0.0:
1799 | version "2.1.0"
1800 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
1801 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
1802 | dependencies:
1803 | string-width "^1.0.1"
1804 | strip-ansi "^3.0.1"
1805 |
1806 | wrappy@1:
1807 | version "1.0.2"
1808 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1809 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1810 |
1811 | ws@^6.1.2:
1812 | version "6.2.2"
1813 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
1814 | integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
1815 | dependencies:
1816 | async-limiter "~1.0.0"
1817 |
1818 | xml-name-validator@^3.0.0:
1819 | version "3.0.0"
1820 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
1821 | integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
1822 |
1823 | xmlchars@^1.3.1:
1824 | version "1.3.1"
1825 | resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf"
1826 | integrity sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==
1827 |
1828 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
1829 | version "4.0.0"
1830 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
1831 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
1832 |
1833 | yargs-parser@13.0.0, yargs-parser@^13.0.0:
1834 | version "13.0.0"
1835 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b"
1836 | integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==
1837 | dependencies:
1838 | camelcase "^5.0.0"
1839 | decamelize "^1.2.0"
1840 |
1841 | yargs-parser@^11.1.1:
1842 | version "11.1.1"
1843 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
1844 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
1845 | dependencies:
1846 | camelcase "^5.0.0"
1847 | decamelize "^1.2.0"
1848 |
1849 | yargs-unparser@1.5.0:
1850 | version "1.5.0"
1851 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d"
1852 | integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==
1853 | dependencies:
1854 | flat "^4.1.0"
1855 | lodash "^4.17.11"
1856 | yargs "^12.0.5"
1857 |
1858 | yargs@13.2.2:
1859 | version "13.2.2"
1860 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993"
1861 | integrity sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==
1862 | dependencies:
1863 | cliui "^4.0.0"
1864 | find-up "^3.0.0"
1865 | get-caller-file "^2.0.1"
1866 | os-locale "^3.1.0"
1867 | require-directory "^2.1.1"
1868 | require-main-filename "^2.0.0"
1869 | set-blocking "^2.0.0"
1870 | string-width "^3.0.0"
1871 | which-module "^2.0.0"
1872 | y18n "^4.0.0"
1873 | yargs-parser "^13.0.0"
1874 |
1875 | yargs@^12.0.5:
1876 | version "12.0.5"
1877 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
1878 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
1879 | dependencies:
1880 | cliui "^4.0.0"
1881 | decamelize "^1.2.0"
1882 | find-up "^3.0.0"
1883 | get-caller-file "^1.0.1"
1884 | os-locale "^3.0.0"
1885 | require-directory "^2.1.1"
1886 | require-main-filename "^1.0.1"
1887 | set-blocking "^2.0.0"
1888 | string-width "^2.0.0"
1889 | which-module "^2.0.0"
1890 | y18n "^3.2.1 || ^4.0.0"
1891 | yargs-parser "^11.1.1"
1892 |
1893 | yn@^3.0.0:
1894 | version "3.1.0"
1895 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114"
1896 | integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==
1897 |
--------------------------------------------------------------------------------