Mirror: The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

(chore) - Create Tachometer benchmark for Graphcache (#1200)

* initial scaffolding for benchmarks directory, including initial tachometer tests for POC

* implemented initial urql client w/ default config graphcache & execute exchanges

* troubleshooting: working with Jovi to create bypass for 'process' variable

* troubleshooting: fix for 'process' related error w/ GQL

* successfully created urql client that performs operations with execute-exchange

* refactored test queries to use async/await to get POC prior to writing read/write benchmarks

* achieved fully functional urql client

* implemented initial benchmark scaffolding for different variations of reads/writes => get feedback from Jovi to confirm accuracy of approach

* added functions to produce different entities to be used in larger read/write benchmarks

* removed Date references from newly added entities => revisit creating scalar Date later

* updated schema to reflect typing of new entities to be used in benchmark

* implemented mutation for adding writers

* added mutations for additional entities to be used for benchmarking

* implemented benchmarks for reading/writing several entities ranging from 500 to 50,000

* implemented MVP around complex query benchmark

* created complex write benchmarks

* implemented benchmarks for complex reads

* implemented mutation to update complete field on last Todo entity for benchmark

* troubleshooting: updateQuery invocation in custom updater => pushing up to get feedback from Jovi

* implemented benchmark for adding a single todo to API & graphcache

* refactored 100 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored 500 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored 1000 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored 5000 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored 10000 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored 50000 entity read/write benchmarks to use async/await to handle asynchronicity

* refactored updateTodo benchmark to use async/await to handle asynchronicity

* refactored benchmarks to return data returned from queries

* created rough draft for readme

* implemented feedback from Jovi on initial PR

* applied linting/linting to benchmarks

Co-authored-by: Juan Hart <formidable@Juans-MacBook-Pro.local>

authored by

Juan Hart
Juan Hart
and committed by
GitHub
a30a923b 87542984

+3386
+37
exchanges/graphcache/benchmarks/10000Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>10000 Reads</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const tenThousandTodos = makeEntries(10000, makeTodo); 24 + 25 + const benchmark = async () => { 26 + await addTodos(tenThousandTodos); 27 + bench.start(); 28 + await getAllTodos(); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+38
exchanges/graphcache/benchmarks/10000ReadsComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>10000 Reads Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const tenThousandAuthors = makeEntries(10000, makeAuthor); 24 + 25 + const benchmark = async () => { 26 + await addAuthors(tenThousandAuthors); 27 + // measure how long read takes 28 + bench.start(); 29 + await getAllAuthors(); 30 + bench.stop(); 31 + }; 32 + 33 + benchmark(); 34 + 35 + </script> 36 + </body> 37 + 38 + </html>
+36
exchanges/graphcache/benchmarks/10000Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>10000 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const tenThousandTodos = makeEntries(10000, makeTodo); 24 + 25 + const benchmark = async () => { 26 + bench.start(); 27 + await addTodos(tenThousandTodos); 28 + bench.stop(); 29 + }; 30 + 31 + benchmark(); 32 + 33 + </script> 34 + </body> 35 + 36 + </html>
+37
exchanges/graphcache/benchmarks/10000WritesComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>10000 Writes Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const hundredAuthors = makeEntries(10000, makeAuthor); 24 + 25 + const benchmark = async () => { 26 + // measure how long write takes 27 + bench.start(); 28 + await addAuthors(hundredAuthors); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+37
exchanges/graphcache/benchmarks/1000Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>1000 Reads</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const thousandTodos = makeEntries(1000, makeTodo); 24 + 25 + const benchmark = async () => { 26 + await addTodos(thousandTodos); 27 + bench.start(); 28 + await getAllTodos(); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+38
exchanges/graphcache/benchmarks/1000ReadsComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>1000 Reads Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const thousandAuthors = makeEntries(1000, makeAuthor); 24 + 25 + const benchmark = async () => { 26 + await addAuthors(thousandAuthors); 27 + // measure how long read takes 28 + bench.start(); 29 + await getAllAuthors(); 30 + bench.stop(); 31 + }; 32 + 33 + benchmark(); 34 + 35 + </script> 36 + </body> 37 + 38 + </html>
+36
exchanges/graphcache/benchmarks/1000Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>1000 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const thousandTodos = makeEntries(1000, makeTodo); 24 + 25 + const benchmark = async () => { 26 + bench.start(); 27 + await addTodos(thousandTodos); 28 + bench.stop(); 29 + }; 30 + 31 + benchmark(); 32 + 33 + </script> 34 + </body> 35 + 36 + </html>
+37
exchanges/graphcache/benchmarks/1000WritesComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>1000 Writes Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const hundredAuthors = makeEntries(1000, makeAuthor); 24 + 25 + const benchmark = async () => { 26 + // measure how long write takes 27 + bench.start(); 28 + await addAuthors(hundredAuthors); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+38
exchanges/graphcache/benchmarks/100Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>100 Reads</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const hundredTodos = makeEntries(100, makeTodo); 24 + 25 + // benchmark to be performed to assess urql client performance 26 + const benchmark = async () => { 27 + await addTodos(hundredTodos); 28 + bench.start(); 29 + await getAllTodos(); 30 + bench.stop(); 31 + }; 32 + 33 + benchmark(); 34 + 35 + </script> 36 + </body> 37 + 38 + </html>
+38
exchanges/graphcache/benchmarks/100ReadsComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>100 Reads Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const hundredAuthors = makeEntries(100, makeAuthor); 24 + 25 + // benchmark to be performed to assess urql client performance 26 + const benchmark = async () => { 27 + await addAuthors(hundredAuthors); 28 + bench.start(); 29 + await getAllAuthors(); 30 + bench.stop(); 31 + }; 32 + 33 + benchmark(); 34 + 35 + </script> 36 + </body> 37 + 38 + </html>
+37
exchanges/graphcache/benchmarks/100Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>100 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const hundredTodos = makeEntries(100, makeTodo); 24 + 25 + // benchmark to be performed to assess urql client performance 26 + const benchmark = async () => { 27 + bench.start(); 28 + await addTodos(hundredTodos); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+37
exchanges/graphcache/benchmarks/100WritesComplex.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>100 Writes Complex</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeAuthor } from "./entities.js"; 20 + import { getAllAuthors, addAuthors } from "./benchmarks.js"; 21 + 22 + // create authors to be added/written 23 + const hundredAuthors = makeEntries(100, makeAuthor); 24 + 25 + // benchmark to be performed to assess urql client performance 26 + const benchmark = async () => { 27 + bench.start(); 28 + await addAuthors(hundredAuthors); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+50
exchanges/graphcache/benchmarks/50000Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>50000 Reads</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const hundredTodos = makeEntries(10000, makeTodo); 24 + const hundredWriters = makeEntries(10000, makeWriter); 25 + const hundredBooks = makeEntries(10000, makeBook); 26 + const hundredStores = makeEntries(10000, makeStore); 27 + const hundredEmployees = makeEntries(10000, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + await addTodos(hundredTodos); 31 + await addWriters(hundredWriters); 32 + await addBooks(hundredBooks); 33 + await addStores(hundredStores); 34 + await addEmployees(hundredEmployees); 35 + 36 + bench.start(); 37 + await getAllTodos(); 38 + await getAllWriters(); 39 + await getAllBooks(); 40 + await getAllStores(); 41 + await getAllEmployees(); 42 + bench.stop(); 43 + }; 44 + 45 + benchmark(); 46 + 47 + </script> 48 + </body> 49 + 50 + </html>
+44
exchanges/graphcache/benchmarks/50000Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>50000 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const tenThousandTodos = makeEntries(10000, makeTodo); 24 + const tenThousandWriters = makeEntries(10000, makeWriter); 25 + const tenThousandBooks = makeEntries(10000, makeBook); 26 + const tenThousandStores = makeEntries(10000, makeStore); 27 + const tenThousandEmployees = makeEntries(10000, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + bench.start(); 31 + await addTodos(tenThousandTodos); 32 + await addWriters(tenThousandWriters); 33 + await addBooks(tenThousandBooks); 34 + await addStores(tenThousandStores); 35 + await addEmployees(tenThousandEmployees); 36 + bench.stop(); 37 + }; 38 + 39 + benchmark(); 40 + 41 + </script> 42 + </body> 43 + 44 + </html>
+50
exchanges/graphcache/benchmarks/5000Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>5000 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const hundredTodos = makeEntries(1000, makeTodo); 24 + const hundredWriters = makeEntries(1000, makeWriter); 25 + const hundredBooks = makeEntries(1000, makeBook); 26 + const hundredStores = makeEntries(1000, makeStore); 27 + const hundredEmployees = makeEntries(1000, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + await addTodos(hundredTodos); 31 + await addWriters(hundredWriters); 32 + await addBooks(hundredBooks); 33 + await addStores(hundredStores); 34 + await addEmployees(hundredEmployees); 35 + 36 + bench.start(); 37 + await getAllTodos(); 38 + await getAllWriters(); 39 + await getAllBooks(); 40 + await getAllStores(); 41 + await getAllEmployees(); 42 + bench.stop(); 43 + }; 44 + 45 + benchmark(); 46 + 47 + </script> 48 + </body> 49 + 50 + </html>
+44
exchanges/graphcache/benchmarks/5000Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>5000 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const thousandTodos = makeEntries(1000, makeTodo); 24 + const thousandWriters = makeEntries(1000, makeWriter); 25 + const thousandBooks = makeEntries(1000, makeBook); 26 + const thousandStores = makeEntries(1000, makeStore); 27 + const thousandEmployees = makeEntries(1000, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + bench.start(); 31 + await addTodos(thousandTodos); 32 + await addWriters(thousandWriters); 33 + await addBooks(thousandBooks); 34 + await addStores(thousandStores); 35 + await addEmployees(thousandEmployees); 36 + bench.stop(); 37 + }; 38 + 39 + benchmark(); 40 + 41 + </script> 42 + </body> 43 + 44 + </html>
+50
exchanges/graphcache/benchmarks/500Reads.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>500 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const hundredTodos = makeEntries(100, makeTodo); 24 + const hundredWriters = makeEntries(100, makeWriter); 25 + const hundredBooks = makeEntries(100, makeBook); 26 + const hundredStores = makeEntries(100, makeStore); 27 + const hundredEmployees = makeEntries(100, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + await addTodos(hundredTodos); 31 + await addWriters(hundredWriters); 32 + await addBooks(hundredBooks); 33 + await addStores(hundredStores); 34 + await addEmployees(hundredEmployees); 35 + 36 + bench.start(); 37 + await getAllTodos(); 38 + await getAllWriters(); 39 + await getAllBooks(); 40 + await getAllStores(); 41 + await getAllEmployees(); 42 + bench.stop(); 43 + }; 44 + 45 + benchmark(); 46 + 47 + </script> 48 + </body> 49 + 50 + </html>
+44
exchanges/graphcache/benchmarks/500Writes.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>500 Writes</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js"; 20 + import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js"; 21 + 22 + // create entities to be written 23 + const hundredTodos = makeEntries(100, makeTodo); 24 + const hundredWriters = makeEntries(100, makeWriter); 25 + const hundredBooks = makeEntries(100, makeBook); 26 + const hundredStores = makeEntries(100, makeStore); 27 + const hundredEmployees = makeEntries(100, makeEmployee); 28 + 29 + const benchmark = async () => { 30 + bench.start(); 31 + await addTodos(hundredTodos); 32 + await addWriters(hundredWriters); 33 + await addBooks(hundredBooks); 34 + await addStores(hundredStores); 35 + await addEmployees(hundredEmployees); 36 + bench.stop(); 37 + }; 38 + 39 + benchmark(); 40 + 41 + </script> 42 + </body> 43 + 44 + </html>
+37
exchanges/graphcache/benchmarks/addTodo.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Add Todo</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodo, addTodos } from "./benchmarks.js"; 21 + 22 + const todosToBeAdded = makeEntries(100, makeTodo); 23 + 24 + const benchmark = async () => { 25 + await addTodos(todosToBeAdded); 26 + await getAllTodos(); 27 + bench.start(); 28 + await addTodo(); 29 + bench.stop(); 30 + }; 31 + 32 + benchmark(); 33 + 34 + </script> 35 + </body> 36 + 37 + </html>
+99
exchanges/graphcache/benchmarks/benchmarks.js
··· 1 + import urqlClient from './urqlClient.js'; 2 + import { 3 + ALL_TODOS_QUERY, 4 + ALL_WRITERS_QUERY, 5 + ALL_BOOKS_QUERY, 6 + ALL_STORES_QUERY, 7 + ALL_EMPLOYEES_QUERY, 8 + ALL_AUTHORS_QUERY, 9 + ADD_TODO_MUTATION, 10 + UPDATE_TODO_MUTATION, 11 + ADD_TODOS_MUTATION, 12 + ADD_WRITERS_MUTATION, 13 + ADD_BOOKS_MUTATION, 14 + ADD_STORES_MUTATION, 15 + ADD_EMPLOYEES_MUTATION, 16 + ADD_AUTHORS_MUTATION, 17 + } from './operations.js'; 18 + 19 + // create functions that execute operations/queries/mutaitons to be benchmarked 20 + export const getAllTodos = async () => { 21 + const queryResult = await urqlClient.query(ALL_TODOS_QUERY).toPromise(); 22 + return queryResult.data.todos; 23 + }; 24 + export const getAllWriters = async () => { 25 + const queryResult = await urqlClient.query(ALL_WRITERS_QUERY).toPromise(); 26 + return queryResult.data.writers; 27 + }; 28 + export const getAllBooks = async () => { 29 + const queryResult = await urqlClient.query(ALL_BOOKS_QUERY).toPromise(); 30 + return queryResult.data.books; 31 + }; 32 + export const getAllStores = async () => { 33 + const queryResult = await urqlClient.query(ALL_STORES_QUERY).toPromise(); 34 + return queryResult.data.stores; 35 + }; 36 + export const getAllEmployees = async () => { 37 + const queryResult = await urqlClient.query(ALL_EMPLOYEES_QUERY).toPromise(); 38 + return queryResult.data.employees; 39 + }; 40 + export const getAllAuthors = async () => { 41 + const queryResult = await urqlClient.query(ALL_AUTHORS_QUERY).toPromise(); 42 + return queryResult.data.authors; 43 + }; 44 + export const addTodo = async () => { 45 + const newTodo = { text: 'New todo', complete: true }; 46 + const mutationResult = await urqlClient 47 + .mutation(ADD_TODO_MUTATION, newTodo) 48 + .toPromise(); 49 + return mutationResult.data.addTodo; 50 + }; 51 + export const updateTodo = async ({ id, complete }) => { 52 + const updatedTodo = { id, complete }; 53 + const mutationResult = await urqlClient 54 + .mutation(UPDATE_TODO_MUTATION, updatedTodo) 55 + .toPromise(); 56 + return mutationResult.data.updateTodo; 57 + }; 58 + export const addTodos = async todosToBeAdded => { 59 + const newTodos = { newTodos: { todos: todosToBeAdded } }; 60 + const mutationResult = await urqlClient 61 + .mutation(ADD_TODOS_MUTATION, newTodos) 62 + .toPromise(); 63 + return mutationResult.data.addTodos; 64 + }; 65 + export const addWriters = async writersToBeAdded => { 66 + const newWriters = { newWriters: { writers: writersToBeAdded } }; 67 + const mutationResult = await urqlClient 68 + .mutation(ADD_WRITERS_MUTATION, newWriters) 69 + .toPromise(); 70 + return mutationResult.data.addWriters; 71 + }; 72 + export const addBooks = async booksToBeAdded => { 73 + const newBooks = { newBooks: { books: booksToBeAdded } }; 74 + const mutationResult = await urqlClient 75 + .mutation(ADD_BOOKS_MUTATION, newBooks) 76 + .toPromise(); 77 + return mutationResult.data.addBooks; 78 + }; 79 + export const addStores = async storesToBeAdded => { 80 + const newStores = { newStores: { stores: storesToBeAdded } }; 81 + const mutationResult = await urqlClient 82 + .mutation(ADD_STORES_MUTATION, newStores) 83 + .toPromise(); 84 + return mutationResult.data.addStores; 85 + }; 86 + export const addEmployees = async employeesToBeAdded => { 87 + const newEmployees = { newEmployees: { employees: employeesToBeAdded } }; 88 + const mutationResult = await urqlClient 89 + .mutation(ADD_EMPLOYEES_MUTATION, newEmployees) 90 + .toPromise(); 91 + return mutationResult.data.addEmployees; 92 + }; 93 + export const addAuthors = async authorsToBeAdded => { 94 + const newAuthors = { newAuthors: { authors: authorsToBeAdded } }; 95 + const mutationResult = await urqlClient 96 + .mutation(ADD_AUTHORS_MUTATION, newAuthors) 97 + .toPromise(); 98 + return mutationResult.data.addAuthors; 99 + };
+53
exchanges/graphcache/benchmarks/entities.js
··· 1 + // functions to produce objects representing entities => todos, writers, books, stores, employees 2 + export const makeTodo = i => ({ 3 + id: `${i}`, 4 + text: `Todo ${i}`, 5 + complete: false, 6 + }); 7 + export const makeWriter = i => ({ 8 + id: `${i}`, 9 + name: `Writer ${i}`, 10 + amountOfBooks: Math.random() * 100, 11 + recognized: Boolean(i % 2), 12 + number: i, 13 + interests: 'Dragonball-Z', 14 + }); 15 + export const makeBook = i => ({ 16 + id: `${i}`, 17 + title: `Book ${i}`, 18 + published: Boolean(i % 2), 19 + genre: 'Fantasy', 20 + rating: (i / Math.random()) * 100, 21 + }); 22 + export const makeStore = i => ({ 23 + id: `${i}`, 24 + name: `Store ${i}`, 25 + country: 'USA', 26 + }); 27 + export const makeEmployee = i => ({ 28 + id: `${i}`, 29 + name: `Employee ${i}`, 30 + origin: 'USA', 31 + }); 32 + export const makeAuthor = i => ({ 33 + id: `${i}`, 34 + name: `Author ${i}`, 35 + recognized: Boolean(i % 2), 36 + book: { 37 + id: `${i}`, 38 + title: `Book ${i}`, 39 + published: Boolean(i % 2), 40 + genre: `Non-Fiction`, 41 + rating: (i / Math.random()) * 100, 42 + review: { 43 + id: `${i}`, 44 + score: i, 45 + name: `Review ${i}`, 46 + reviewer: { 47 + id: `${i}`, 48 + name: `Person ${i}`, 49 + verified: Boolean(i % 2), 50 + }, 51 + }, 52 + }, 53 + });
+13
exchanges/graphcache/benchmarks/makeEntries.js
··· 1 + // create a function that will take in a number of times to be run and a function that will produce an entry/entity 2 + export const makeEntries = (amount, makeEntry) => { 3 + // create array of entries to be outputted 4 + const entries = []; 5 + // iterate from 0 up to the amount inputted 6 + for (let i = 0; i < amount; i += 1) { 7 + // each iteration, create an entry and pass it the current index & push it into output array 8 + const entry = makeEntry(i); 9 + entries.push(entry); 10 + } 11 + // return array of entries 12 + return entries; 13 + };
+139
exchanges/graphcache/benchmarks/operations.js
··· 1 + // create operations, i.e., queries & mutations, to be performed 2 + export const ALL_TODOS_QUERY = ` 3 + query ALL_TODOS_QUERY { 4 + todos { 5 + id, 6 + text, 7 + complete 8 + } 9 + } 10 + `; 11 + export const ALL_WRITERS_QUERY = ` 12 + query ALL_WRITERS_QUERY { 13 + writers { 14 + id, 15 + name, 16 + amountOfBooks, 17 + recognized, 18 + number, 19 + interests 20 + } 21 + } 22 + `; 23 + export const ALL_BOOKS_QUERY = ` 24 + query ALL_BOOKS_QUERY { 25 + books { 26 + id, 27 + title, 28 + published, 29 + genre, 30 + rating 31 + } 32 + } 33 + `; 34 + export const ALL_STORES_QUERY = ` 35 + query ALL_STORES_QUERY { 36 + stores { 37 + id, 38 + name, 39 + country 40 + } 41 + } 42 + `; 43 + export const ALL_EMPLOYEES_QUERY = ` 44 + query ALL_EMPLOYEES_QUERY { 45 + employees { 46 + id, 47 + name, 48 + origin 49 + } 50 + } 51 + `; 52 + export const ALL_AUTHORS_QUERY = ` 53 + query ALL_AUTHORS_QUERY { 54 + authors { 55 + id, 56 + name, 57 + recognized, 58 + book 59 + } 60 + } 61 + `; 62 + export const ADD_TODO_MUTATION = ` 63 + mutation ADD_TODO_MUTATION($text: String!, $complete: Boolean!){ 64 + addTodo(text: $text, complete: $complete){ 65 + id, 66 + text, 67 + complete 68 + } 69 + } 70 + `; 71 + export const UPDATE_TODO_MUTATION = ` 72 + mutation UPDATE_TODO_MUTATION($id: ID!, $complete: Boolean!){ 73 + updateTodo(id: $id, complete: $complete){ 74 + id, 75 + text, 76 + complete 77 + } 78 + } 79 + `; 80 + export const ADD_TODOS_MUTATION = ` 81 + mutation ADD_TODOS_MUTATION($newTodos: NewTodosInput!){ 82 + addTodos(newTodos: $newTodos){ 83 + id, 84 + text, 85 + complete 86 + } 87 + } 88 + `; 89 + export const ADD_WRITERS_MUTATION = ` 90 + mutation ADD_WRITERS_MUTATION($newWriters: NewWritersInput!){ 91 + addWriters(newWriters: $newWriters){ 92 + id, 93 + name, 94 + amountOfBooks, 95 + recognized, 96 + number, 97 + interests 98 + } 99 + } 100 + `; 101 + export const ADD_BOOKS_MUTATION = ` 102 + mutation ADD_BOOKS_MUTATION($newBooks: NewBooksInput!){ 103 + addBooks(newBooks: $newBooks){ 104 + id, 105 + title, 106 + published, 107 + genre, 108 + rating 109 + } 110 + } 111 + `; 112 + export const ADD_STORES_MUTATION = ` 113 + mutation ADD_STORES_MUTATION($newStores: NewStoresInput!){ 114 + addStores(newStores: $newStores){ 115 + id, 116 + name, 117 + country 118 + } 119 + } 120 + `; 121 + export const ADD_EMPLOYEES_MUTATION = ` 122 + mutation ADD_EMPLOYEES_MUTATION($newEmployees: NewEmployeesInput!){ 123 + addEmployees(newEmployees: $newEmployees){ 124 + id, 125 + name, 126 + origin 127 + } 128 + } 129 + `; 130 + export const ADD_AUTHORS_MUTATION = ` 131 + mutation ADD_AUTHORS_MUTATION($newAuthors: NewAuthorsInput!){ 132 + addAuthors(newAuthors: $newAuthors){ 133 + id 134 + name 135 + recognized 136 + book 137 + } 138 + } 139 + `;
+39
exchanges/graphcache/benchmarks/package.json
··· 1 + { 2 + "name": "@urql/exchange-graphcache-tachometer-benchmark", 3 + "version": "1.0.0", 4 + "description": "Comprehensive Tachometer benchmarks for urql/graphcache", 5 + "main": "index.js", 6 + "scripts": { 7 + "bench": "npm-run-all bench:*", 8 + "bench:addTodo": "tachometer addTodo.html", 9 + "bench:update": "tachometer updateTodo.html", 10 + "bench:write100": "tachometer 100Writes.html", 11 + "bench:write100c": "tachometer 100WritesComplex.html", 12 + "bench:write500": "tachometer 500Writes.html", 13 + "bench:write1000": "tachometer 1000Writes.html", 14 + "bench:write1000c": "tachometer 1000WritesComplex.html", 15 + "bench:write5000": "tachometer 5000Writes.html", 16 + "bench:write10000": "tachometer 10000Writes.html", 17 + "bench:write10000c": "tachometer 10000WritesComplex.html", 18 + "bench:write50000": "tachometer 50000Writes.html", 19 + "bench:read100": "tachometer 100Reads.html", 20 + "bench:read100c": "tachometer 100ReadsComplex.html", 21 + "bench:read500": "tachometer 500Reads.html", 22 + "bench:read1000": "tachometer 1000Reads.html", 23 + "bench:read1000c": "tachometer 1000ReadsComplex.html", 24 + "bench:read5000": "tachometer 5000Reads.html", 25 + "bench:read10000": "tachometer 10000Reads.html", 26 + "bench:read10000c": "tachometer 10000ReadsComplex.html", 27 + "bench:read50000": "tachometer 50000Reads.html" 28 + }, 29 + "license": "MIT", 30 + "dependencies": { 31 + "@urql/exchange-execute": "^1.0.3", 32 + "@urql/exchange-graphcache": "^3.1.11", 33 + "graphql": "^15.4.0", 34 + "graphql-tag": "^2.11.0", 35 + "npm-run-all": "^4.1.5", 36 + "tachometer": "^0.5.5", 37 + "urql": "^1.11.3" 38 + } 39 + }
+37
exchanges/graphcache/benchmarks/readMe.md
··· 1 + ## About 2 + 3 + This is a set of benchmarks assessing the performance of various graphCache operations. The operations are of varying sizes, complexitites, and are accomplished via a singular `urql` client instance. Client has a stubbed out GQL API (fetchExchange) to perform GQL operations against. 4 + 5 + ## Usage 6 + 7 + #### 1. Install dependencies in repo root. 8 + 9 + To get started, make sure to install necessary dependencies in the root directory of your clone. 10 + 11 + ```bash 12 + # In root directory 13 + yarn or npm i 14 + ``` 15 + 16 + #### 2. Run benchmark(s). 17 + 18 + The commands to run benchmarks follows a certain syntax: 19 + npm run `ActionQuantityComplexity` => i.e., npm run read500c 20 + read === Action 21 + 5000 === Quantity 22 + c === Complex 23 + 24 + Action & Quantity are required, but c is optional, as not all operations involve a more complex data structure. 25 + 26 + There are two exceptions that don't follow the beformentioned conventions for the commands to run benchmarks. They are `addTodo` & `updateTodo`. 27 + They are simply run as follows: 28 + 29 + ``` 30 + npm run addTodo 31 + 32 + npm run updateTodo 33 + ``` 34 + 35 + #### 3. Benchmark Expections 36 + 37 + Upon executing a command, `Tachometer` will automatically execute the benchmarks via your default browser. Done 50 times prior to returning benchmark result in the console where the command was launched.
+38
exchanges/graphcache/benchmarks/updateTodo.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + 4 + <head> 5 + <meta charset="UTF-8" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Update Todo</title> 8 + <script> 9 + window.process = { env: { NODE_ENV: "development" } }; 10 + </script> 11 + </head> 12 + 13 + <body> 14 + <div id="root"></div> 15 + <script type="module"> 16 + import urqlClient from './urqlClient.js'; 17 + import * as bench from '/bench.js'; 18 + import { makeEntries } from "./makeEntries.js"; 19 + import { makeTodo } from "./entities.js"; 20 + import { getAllTodos, addTodos, updateTodo } from "./benchmarks.js"; 21 + 22 + // create todos to be added/written 23 + const hundredTodos = makeEntries(100, makeTodo); 24 + 25 + const benchmark = async () => { 26 + await addTodos(hundredTodos); 27 + // measure how long update of last Todo entity takes on faux server-side (executeExchange) & cache 28 + bench.start(); 29 + await updateTodo({id: "99", complete: true}); 30 + bench.stop(); 31 + }; 32 + 33 + benchmark(); 34 + 35 + </script> 36 + </body> 37 + 38 + </html>
+261
exchanges/graphcache/benchmarks/urqlClient.js
··· 1 + import { createClient, dedupExchange } from '@urql/core'; 2 + import { cacheExchange } from '@urql/exchange-graphcache'; 3 + import { executeExchange } from '@urql/exchange-execute'; 4 + import { buildSchema } from 'graphql'; 5 + import { ALL_TODOS_QUERY } from './operations'; 6 + 7 + export const cache = cacheExchange({ 8 + updates: { 9 + Mutation: { 10 + addTodo: (result, args, cache) => { 11 + cache.updateQuery({ query: ALL_TODOS_QUERY }, data => { 12 + data.todos.push(result.addTodo); 13 + return data; 14 + }); 15 + return result; 16 + }, 17 + }, 18 + }, 19 + }); 20 + 21 + // local schema to be used with Execute Exchange 22 + const schema = buildSchema(` 23 + type Todo { 24 + id: ID! 25 + text: String! 26 + complete: Boolean! 27 + } 28 + 29 + type Writer { 30 + id: ID! 31 + name: String 32 + amountOfBooks: Float! 33 + recognized: Boolean! 34 + number: Int! 35 + interests: String! 36 + } 37 + 38 + type Book { 39 + id: ID! 40 + title: String! 41 + published: Boolean! 42 + genre: String! 43 + rating: Float! 44 + review: Review 45 + } 46 + 47 + type Store { 48 + id: ID! 49 + name: String! 50 + country: String! 51 + } 52 + 53 + type Employee { 54 + id: ID! 55 + name: String! 56 + origin: String! 57 + } 58 + 59 + type Author { 60 + id: ID! 61 + name: String! 62 + recognized: Boolean! 63 + book: Book! 64 + } 65 + 66 + type Review { 67 + id: ID! 68 + score: Int! 69 + name: String! 70 + reviewer: Person! 71 + } 72 + 73 + type Person { 74 + id: ID! 75 + name: String! 76 + verfied: Boolean! 77 + } 78 + 79 + input NewTodo { 80 + id: ID! 81 + text: String! 82 + complete: Boolean! 83 + } 84 + 85 + input NewTodosInput { 86 + todos: [NewTodo]! 87 + } 88 + 89 + input NewWriter { 90 + id: ID! 91 + name: String 92 + amountOfBooks: Float! 93 + recognized: Boolean! 94 + number: Int! 95 + interests: String! 96 + } 97 + 98 + input NewWritersInput { 99 + writers: [NewWriter]! 100 + } 101 + 102 + input NewBook { 103 + id: ID! 104 + title: String! 105 + published: Boolean! 106 + genre: String! 107 + rating: Float! 108 + review: NewReview 109 + } 110 + 111 + input NewBooksInput { 112 + books: [NewBook]! 113 + } 114 + 115 + input NewStore { 116 + id: ID! 117 + name: String! 118 + country: String! 119 + } 120 + 121 + input NewStoresInput { 122 + stores: [NewStore]! 123 + } 124 + 125 + input NewEmployee { 126 + id: ID! 127 + name: String! 128 + origin: String! 129 + } 130 + 131 + input NewEmployeesInput { 132 + employees: [NewEmployee]! 133 + } 134 + 135 + input NewAuthor { 136 + id: ID! 137 + name: String! 138 + recognized: Boolean! 139 + book: NewBook! 140 + } 141 + 142 + 143 + input NewAuthorsInput { 144 + authors: [NewAuthor]! 145 + } 146 + 147 + input NewReview { 148 + id: ID! 149 + score: Int! 150 + name: String! 151 + reviewer: NewPerson! 152 + } 153 + 154 + input NewPerson { 155 + id: ID! 156 + name: String! 157 + verified: Boolean! 158 + } 159 + 160 + type Query { 161 + todos: [Todo]! 162 + writers: [Writer]! 163 + books: [Book]! 164 + stores: [Store]! 165 + employees: [Employee]! 166 + authors: [Author]! 167 + } 168 + 169 + type Mutation { 170 + addTodo( text: String!, complete: Boolean! ): Todo! 171 + updateTodo( id: ID!, complete: Boolean! ): Todo! 172 + addTodos( newTodos: NewTodosInput! ): [Todo]! 173 + addWriters( newWriters: NewWritersInput! ): [Writer]! 174 + addBooks( newBooks: NewBooksInput! ): [Book]! 175 + addStores( newStores: NewStoresInput! ): [Store]! 176 + addEmployees( newEmployees: NewEmployeesInput! ): [Employee]! 177 + addAuthors( newAuthors: NewAuthorsInput! ): [Author]! 178 + } 179 + `); 180 + 181 + // local state to be used with Execute Exchange 182 + const todos = []; 183 + const writers = []; 184 + const books = []; 185 + const stores = []; 186 + const employees = []; 187 + const authors = []; 188 + 189 + // root value with resolvers to be used with Execute Exchange 190 + const rootValue = { 191 + todos: () => { 192 + return todos; 193 + }, 194 + writers: () => { 195 + return writers; 196 + }, 197 + books: () => { 198 + return books; 199 + }, 200 + stores: () => { 201 + return stores; 202 + }, 203 + employees: () => { 204 + return employees; 205 + }, 206 + authors: () => { 207 + return authors; 208 + }, 209 + addTodo: args => { 210 + const todo = { id: todos.length.toString(), ...args }; 211 + todos.push(todo); 212 + return todo; 213 + }, 214 + updateTodo: ({ id, complete }) => { 215 + const [todoToBeUpdated] = todos.filter(todo => todo.id === id); 216 + todoToBeUpdated.complete = complete; 217 + return todoToBeUpdated; 218 + }, 219 + addTodos: ({ newTodos }) => { 220 + const todosToBeAdded = newTodos.todos; 221 + todos.push(...todosToBeAdded); 222 + return todos; 223 + }, 224 + addWriters: ({ newWriters }) => { 225 + const writersToBeAdded = newWriters.writers; 226 + writers.push(...writersToBeAdded); 227 + return writers; 228 + }, 229 + addBooks: ({ newBooks }) => { 230 + const booksToBeAdded = newBooks.books; 231 + books.push(...booksToBeAdded); 232 + return books; 233 + }, 234 + addStores: ({ newStores }) => { 235 + const storesToBeAdded = newStores.stores; 236 + stores.push(...storesToBeAdded); 237 + return stores; 238 + }, 239 + addEmployees: ({ newEmployees }) => { 240 + const employeesToBeAdded = newEmployees.employees; 241 + employees.push(...employeesToBeAdded); 242 + return employees; 243 + }, 244 + addAuthors: ({ newAuthors }) => { 245 + const authorsToBeAdded = newAuthors.authors; 246 + authors.push(...authorsToBeAdded); 247 + return authors; 248 + }, 249 + }; 250 + 251 + const client = createClient({ 252 + url: 'http://localhost:3000/graphql', 253 + exchanges: [ 254 + dedupExchange, 255 + cache, 256 + // cacheExchange({}), 257 + executeExchange({ schema, rootValue }), 258 + ], 259 + }); 260 + 261 + export default client;
+1942
exchanges/graphcache/benchmarks/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.10.4": 6 + version "7.10.4" 7 + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" 8 + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== 9 + dependencies: 10 + "@babel/highlight" "^7.10.4" 11 + 12 + "@babel/generator@^7.12.5", "@babel/generator@^7.4.4": 13 + version "7.12.5" 14 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" 15 + integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== 16 + dependencies: 17 + "@babel/types" "^7.12.5" 18 + jsesc "^2.5.1" 19 + source-map "^0.5.0" 20 + 21 + "@babel/helper-function-name@^7.10.4": 22 + version "7.10.4" 23 + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" 24 + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== 25 + dependencies: 26 + "@babel/helper-get-function-arity" "^7.10.4" 27 + "@babel/template" "^7.10.4" 28 + "@babel/types" "^7.10.4" 29 + 30 + "@babel/helper-get-function-arity@^7.10.4": 31 + version "7.10.4" 32 + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" 33 + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== 34 + dependencies: 35 + "@babel/types" "^7.10.4" 36 + 37 + "@babel/helper-split-export-declaration@^7.11.0": 38 + version "7.11.0" 39 + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" 40 + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== 41 + dependencies: 42 + "@babel/types" "^7.11.0" 43 + 44 + "@babel/helper-validator-identifier@^7.10.4": 45 + version "7.10.4" 46 + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" 47 + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== 48 + 49 + "@babel/highlight@^7.10.4": 50 + version "7.10.4" 51 + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" 52 + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== 53 + dependencies: 54 + "@babel/helper-validator-identifier" "^7.10.4" 55 + chalk "^2.0.0" 56 + js-tokens "^4.0.0" 57 + 58 + "@babel/parser@^7.12.7", "@babel/parser@^7.4.5": 59 + version "7.12.7" 60 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" 61 + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== 62 + 63 + "@babel/template@^7.10.4": 64 + version "7.12.7" 65 + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" 66 + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== 67 + dependencies: 68 + "@babel/code-frame" "^7.10.4" 69 + "@babel/parser" "^7.12.7" 70 + "@babel/types" "^7.12.7" 71 + 72 + "@babel/traverse@^7.4.5": 73 + version "7.12.9" 74 + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f" 75 + integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw== 76 + dependencies: 77 + "@babel/code-frame" "^7.10.4" 78 + "@babel/generator" "^7.12.5" 79 + "@babel/helper-function-name" "^7.10.4" 80 + "@babel/helper-split-export-declaration" "^7.11.0" 81 + "@babel/parser" "^7.12.7" 82 + "@babel/types" "^7.12.7" 83 + debug "^4.1.0" 84 + globals "^11.1.0" 85 + lodash "^4.17.19" 86 + 87 + "@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.5", "@babel/types@^7.12.7": 88 + version "7.12.7" 89 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" 90 + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== 91 + dependencies: 92 + "@babel/helper-validator-identifier" "^7.10.4" 93 + lodash "^4.17.19" 94 + to-fast-properties "^2.0.0" 95 + 96 + "@graphql-typed-document-node/core@^3.1.0": 97 + version "3.1.0" 98 + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950" 99 + integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg== 100 + 101 + "@sindresorhus/is@^4.0.0": 102 + version "4.0.0" 103 + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" 104 + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== 105 + 106 + "@szmarczak/http-timer@^4.0.5": 107 + version "4.0.5" 108 + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" 109 + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== 110 + dependencies: 111 + defer-to-connect "^2.0.0" 112 + 113 + "@types/babel__generator@^7.6.1": 114 + version "7.6.2" 115 + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" 116 + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== 117 + dependencies: 118 + "@babel/types" "^7.0.0" 119 + 120 + "@types/cacheable-request@^6.0.1": 121 + version "6.0.1" 122 + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" 123 + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== 124 + dependencies: 125 + "@types/http-cache-semantics" "*" 126 + "@types/keyv" "*" 127 + "@types/node" "*" 128 + "@types/responselike" "*" 129 + 130 + "@types/command-line-usage@^5.0.1": 131 + version "5.0.1" 132 + resolved "https://registry.yarnpkg.com/@types/command-line-usage/-/command-line-usage-5.0.1.tgz#99424950da567ba67b6b65caee57ff03c4e751ec" 133 + integrity sha512-/xUgezxxYePeXhg5S04hUjxG9JZi+rJTs1+4NwpYPfSaS7BeDa6tVJkH6lN9Cb6rl8d24Fi2uX0s0Ngg2JT6gg== 134 + 135 + "@types/execa@^0.9.0": 136 + version "0.9.0" 137 + resolved "https://registry.yarnpkg.com/@types/execa/-/execa-0.9.0.tgz#9b025d2755f17e80beaf9368c3f4f319d8b0fb93" 138 + integrity sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA== 139 + dependencies: 140 + "@types/node" "*" 141 + 142 + "@types/http-cache-semantics@*": 143 + version "4.0.0" 144 + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" 145 + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== 146 + 147 + "@types/keyv@*": 148 + version "3.1.1" 149 + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" 150 + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== 151 + dependencies: 152 + "@types/node" "*" 153 + 154 + "@types/node@*": 155 + version "14.14.10" 156 + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785" 157 + integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ== 158 + 159 + "@types/node@^11.9.4": 160 + version "11.15.39" 161 + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.15.39.tgz#00043d22cb2814c0ca32ef17e789911aa2325d9a" 162 + integrity sha512-vVNBFg0n7vd2GuIEDa/s854RpcqAMRer/8IPmhKCYEoC2cLDGeTPNwlnAmSoI0sddOPhTb82DDWeHMrqEi5p3w== 163 + 164 + "@types/parse5@^5.0.0": 165 + version "5.0.3" 166 + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" 167 + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== 168 + 169 + "@types/responselike@*", "@types/responselike@^1.0.0": 170 + version "1.0.0" 171 + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" 172 + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== 173 + dependencies: 174 + "@types/node" "*" 175 + 176 + "@types/selenium-webdriver@^4.0.5": 177 + version "4.0.10" 178 + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-4.0.10.tgz#1aa370a14747b51752e65622999848c4f037b058" 179 + integrity sha512-Xavn3fE+uM2aeIHtefIwpy0zAf2HQOyip/jU7ZR0ailt/B0ww/TJ6yMnfZ5pM0F4+Kx+9AQSnxQio3P5QAl1yQ== 180 + 181 + "@types/table@^6.0.0": 182 + version "6.0.0" 183 + resolved "https://registry.yarnpkg.com/@types/table/-/table-6.0.0.tgz#c3e8f1e0d80525036a7655fd650409e0230f1ead" 184 + integrity sha512-RSmRiYetRzpcZcgNo4x6C1VSsPGBHCGGDO7Rbnz5esVLbGONxBP1CUcn8JhAkVzUVLO+AY8yOSkb27jvfauLyg== 185 + 186 + "@urql/core@>=1.15.1", "@urql/core@>=1.16.0", "@urql/core@^1.16.0": 187 + version "1.16.0" 188 + resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.16.0.tgz#e83a2c9f744ae7804f79a4077f77701cf68b80f4" 189 + integrity sha512-bGdxlVRm02q9jIj463jRNthM5haia1lccob1gXDUhpAWXJY58xYgnFPuv0pYf/MqsM67nizZRLhHgf84Knb9ZQ== 190 + dependencies: 191 + "@graphql-typed-document-node/core" "^3.1.0" 192 + wonka "^4.0.14" 193 + 194 + "@urql/exchange-execute@^1.0.3": 195 + version "1.0.3" 196 + resolved "https://registry.yarnpkg.com/@urql/exchange-execute/-/exchange-execute-1.0.3.tgz#fed6644b955de5eff9401312fa4a2b869485d310" 197 + integrity sha512-N3dQQ0W5Vmw64b3xgHvpHSf+n7QTHvmS6FutuEwASRjVHmjlQCgbHzntSyzWefXBC+rkQ/JygcWyO1vP6mOrnA== 198 + dependencies: 199 + "@urql/core" ">=1.15.1" 200 + wonka "^4.0.14" 201 + 202 + "@urql/exchange-graphcache@^3.1.11": 203 + version "3.3.1" 204 + resolved "https://registry.yarnpkg.com/@urql/exchange-graphcache/-/exchange-graphcache-3.3.1.tgz#4bbe3708b1a41897de8cd05817ddaa61499e23a0" 205 + integrity sha512-GrqwYICXguMCc0IbMsSPZHbiQ8/s0g0gURD56NTSZYrk2jj33OYuFIL6jcDJNysRkCmUQ/ZSX4pD5qYVboggcw== 206 + dependencies: 207 + "@urql/core" ">=1.16.0" 208 + wonka "^4.0.14" 209 + 210 + accepts@^1.3.5: 211 + version "1.3.7" 212 + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 213 + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 214 + dependencies: 215 + mime-types "~2.1.24" 216 + negotiator "0.6.2" 217 + 218 + ajv@^6.12.4: 219 + version "6.12.6" 220 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 221 + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 222 + dependencies: 223 + fast-deep-equal "^3.1.1" 224 + fast-json-stable-stringify "^2.0.0" 225 + json-schema-traverse "^0.4.1" 226 + uri-js "^4.2.2" 227 + 228 + ansi-escape-sequences@^5.0.0: 229 + version "5.1.2" 230 + resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz#b24471db2073009ebe28a7044ac7436bbd3d28e7" 231 + integrity sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw== 232 + dependencies: 233 + array-back "^4.0.0" 234 + 235 + ansi-regex@^5.0.0: 236 + version "5.0.0" 237 + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 238 + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 239 + 240 + ansi-styles@^3.2.1: 241 + version "3.2.1" 242 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 243 + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 244 + dependencies: 245 + color-convert "^1.9.0" 246 + 247 + ansi-styles@^4.0.0: 248 + version "4.3.0" 249 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 250 + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 251 + dependencies: 252 + color-convert "^2.0.1" 253 + 254 + any-promise@^1.1.0: 255 + version "1.3.0" 256 + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 257 + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 258 + 259 + array-back@^3.0.1: 260 + version "3.1.0" 261 + resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" 262 + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== 263 + 264 + array-back@^4.0.0, array-back@^4.0.1: 265 + version "4.0.1" 266 + resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" 267 + integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== 268 + 269 + astral-regex@^2.0.0: 270 + version "2.0.0" 271 + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 272 + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 273 + 274 + at-least-node@^1.0.0: 275 + version "1.0.0" 276 + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" 277 + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== 278 + 279 + balanced-match@^1.0.0: 280 + version "1.0.0" 281 + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 282 + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 283 + 284 + brace-expansion@^1.1.7: 285 + version "1.1.11" 286 + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 287 + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 288 + dependencies: 289 + balanced-match "^1.0.0" 290 + concat-map "0.0.1" 291 + 292 + buffer-equal-constant-time@1.0.1: 293 + version "1.0.1" 294 + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 295 + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 296 + 297 + buffer-from@^1.0.0: 298 + version "1.1.1" 299 + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 300 + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 301 + 302 + bytes@3.1.0: 303 + version "3.1.0" 304 + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 305 + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 306 + 307 + cache-content-type@^1.0.0: 308 + version "1.0.1" 309 + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" 310 + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== 311 + dependencies: 312 + mime-types "^2.1.18" 313 + ylru "^1.2.0" 314 + 315 + cacheable-lookup@^5.0.3: 316 + version "5.0.3" 317 + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3" 318 + integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w== 319 + 320 + cacheable-request@^7.0.1: 321 + version "7.0.1" 322 + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58" 323 + integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw== 324 + dependencies: 325 + clone-response "^1.0.2" 326 + get-stream "^5.1.0" 327 + http-cache-semantics "^4.0.0" 328 + keyv "^4.0.0" 329 + lowercase-keys "^2.0.0" 330 + normalize-url "^4.1.0" 331 + responselike "^2.0.0" 332 + 333 + call-bind@^1.0.0: 334 + version "1.0.0" 335 + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" 336 + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== 337 + dependencies: 338 + function-bind "^1.1.1" 339 + get-intrinsic "^1.0.0" 340 + 341 + chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: 342 + version "2.4.2" 343 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 344 + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 345 + dependencies: 346 + ansi-styles "^3.2.1" 347 + escape-string-regexp "^1.0.5" 348 + supports-color "^5.3.0" 349 + 350 + clone-response@^1.0.2: 351 + version "1.0.2" 352 + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 353 + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 354 + dependencies: 355 + mimic-response "^1.0.0" 356 + 357 + co-body@^6.0.0: 358 + version "6.1.0" 359 + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547" 360 + integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== 361 + dependencies: 362 + inflation "^2.0.0" 363 + qs "^6.5.2" 364 + raw-body "^2.3.3" 365 + type-is "^1.6.16" 366 + 367 + co@^4.6.0: 368 + version "4.6.0" 369 + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 370 + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 371 + 372 + color-convert@^1.9.0: 373 + version "1.9.3" 374 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 375 + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 376 + dependencies: 377 + color-name "1.1.3" 378 + 379 + color-convert@^2.0.1: 380 + version "2.0.1" 381 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 382 + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 383 + dependencies: 384 + color-name "~1.1.4" 385 + 386 + color-name@1.1.3: 387 + version "1.1.3" 388 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 389 + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 390 + 391 + color-name@~1.1.4: 392 + version "1.1.4" 393 + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 394 + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 395 + 396 + command-line-args@^5.0.2: 397 + version "5.1.1" 398 + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" 399 + integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== 400 + dependencies: 401 + array-back "^3.0.1" 402 + find-replace "^3.0.0" 403 + lodash.camelcase "^4.3.0" 404 + typical "^4.0.0" 405 + 406 + command-line-usage@^6.1.0: 407 + version "6.1.1" 408 + resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz#c908e28686108917758a49f45efb4f02f76bc03f" 409 + integrity sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA== 410 + dependencies: 411 + array-back "^4.0.1" 412 + chalk "^2.4.2" 413 + table-layout "^1.0.1" 414 + typical "^5.2.0" 415 + 416 + concat-map@0.0.1: 417 + version "0.0.1" 418 + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 419 + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 420 + 421 + content-disposition@~0.5.2: 422 + version "0.5.3" 423 + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 424 + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 425 + dependencies: 426 + safe-buffer "5.1.2" 427 + 428 + content-type@^1.0.4: 429 + version "1.0.4" 430 + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 431 + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 432 + 433 + cookies@~0.8.0: 434 + version "0.8.0" 435 + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" 436 + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== 437 + dependencies: 438 + depd "~2.0.0" 439 + keygrip "~1.1.0" 440 + 441 + copy-to@^2.0.1: 442 + version "2.0.1" 443 + resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" 444 + integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= 445 + 446 + core-util-is@~1.0.0: 447 + version "1.0.2" 448 + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 449 + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 450 + 451 + cross-spawn@^6.0.0, cross-spawn@^6.0.5: 452 + version "6.0.5" 453 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 454 + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 455 + dependencies: 456 + nice-try "^1.0.4" 457 + path-key "^2.0.1" 458 + semver "^5.5.0" 459 + shebang-command "^1.2.0" 460 + which "^1.2.9" 461 + 462 + csv-stringify@^5.3.0: 463 + version "5.5.3" 464 + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.5.3.tgz#b7a287daee7492de3722b13dccb238f2d60db522" 465 + integrity sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg== 466 + 467 + debug@^3.1.0: 468 + version "3.2.7" 469 + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 470 + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 471 + dependencies: 472 + ms "^2.1.1" 473 + 474 + debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 475 + version "4.3.1" 476 + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 477 + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 478 + dependencies: 479 + ms "2.1.2" 480 + 481 + debug@~3.1.0: 482 + version "3.1.0" 483 + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 484 + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 485 + dependencies: 486 + ms "2.0.0" 487 + 488 + decompress-response@^6.0.0: 489 + version "6.0.0" 490 + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" 491 + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== 492 + dependencies: 493 + mimic-response "^3.1.0" 494 + 495 + deep-equal@~1.0.1: 496 + version "1.0.1" 497 + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 498 + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 499 + 500 + deep-extend@~0.6.0: 501 + version "0.6.0" 502 + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 503 + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 504 + 505 + defer-to-connect@^2.0.0: 506 + version "2.0.0" 507 + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" 508 + integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== 509 + 510 + define-properties@^1.1.3: 511 + version "1.1.3" 512 + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 513 + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 514 + dependencies: 515 + object-keys "^1.0.12" 516 + 517 + delegates@^1.0.0: 518 + version "1.0.0" 519 + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 520 + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 521 + 522 + depd@^1.1.2, depd@~1.1.2: 523 + version "1.1.2" 524 + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 525 + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 526 + 527 + depd@~2.0.0: 528 + version "2.0.0" 529 + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 530 + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 531 + 532 + destroy@^1.0.4: 533 + version "1.0.4" 534 + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 535 + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 536 + 537 + ecdsa-sig-formatter@1.0.11: 538 + version "1.0.11" 539 + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 540 + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 541 + dependencies: 542 + safe-buffer "^5.0.1" 543 + 544 + ee-first@1.1.1: 545 + version "1.1.1" 546 + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 547 + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 548 + 549 + emoji-regex@^8.0.0: 550 + version "8.0.0" 551 + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 552 + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 553 + 554 + encodeurl@^1.0.2: 555 + version "1.0.2" 556 + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 557 + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 558 + 559 + end-of-stream@^1.1.0: 560 + version "1.4.4" 561 + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 562 + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 563 + dependencies: 564 + once "^1.4.0" 565 + 566 + error-ex@^1.3.1: 567 + version "1.3.2" 568 + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 569 + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 570 + dependencies: 571 + is-arrayish "^0.2.1" 572 + 573 + es-abstract@^1.18.0-next.1: 574 + version "1.18.0-next.1" 575 + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" 576 + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== 577 + dependencies: 578 + es-to-primitive "^1.2.1" 579 + function-bind "^1.1.1" 580 + has "^1.0.3" 581 + has-symbols "^1.0.1" 582 + is-callable "^1.2.2" 583 + is-negative-zero "^2.0.0" 584 + is-regex "^1.1.1" 585 + object-inspect "^1.8.0" 586 + object-keys "^1.1.1" 587 + object.assign "^4.1.1" 588 + string.prototype.trimend "^1.0.1" 589 + string.prototype.trimstart "^1.0.1" 590 + 591 + es-to-primitive@^1.2.1: 592 + version "1.2.1" 593 + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 594 + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 595 + dependencies: 596 + is-callable "^1.1.4" 597 + is-date-object "^1.0.1" 598 + is-symbol "^1.0.2" 599 + 600 + escape-html@^1.0.3: 601 + version "1.0.3" 602 + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 603 + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 604 + 605 + escape-string-regexp@^1.0.5: 606 + version "1.0.5" 607 + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 608 + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 609 + 610 + execa@^1.0.0: 611 + version "1.0.0" 612 + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 613 + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 614 + dependencies: 615 + cross-spawn "^6.0.0" 616 + get-stream "^4.0.0" 617 + is-stream "^1.1.0" 618 + npm-run-path "^2.0.0" 619 + p-finally "^1.0.0" 620 + signal-exit "^3.0.0" 621 + strip-eof "^1.0.0" 622 + 623 + fast-deep-equal@^3.1.1: 624 + version "3.1.3" 625 + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 626 + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 627 + 628 + fast-json-stable-stringify@^2.0.0: 629 + version "2.1.0" 630 + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 631 + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 632 + 633 + find-replace@^3.0.0: 634 + version "3.0.0" 635 + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" 636 + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== 637 + dependencies: 638 + array-back "^3.0.1" 639 + 640 + find-up@^3.0.0: 641 + version "3.0.0" 642 + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 643 + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 644 + dependencies: 645 + locate-path "^3.0.0" 646 + 647 + fresh@~0.5.2: 648 + version "0.5.2" 649 + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 650 + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 651 + 652 + fs-extra@^9.0.1: 653 + version "9.0.1" 654 + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" 655 + integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== 656 + dependencies: 657 + at-least-node "^1.0.0" 658 + graceful-fs "^4.2.0" 659 + jsonfile "^6.0.1" 660 + universalify "^1.0.0" 661 + 662 + fs.realpath@^1.0.0: 663 + version "1.0.0" 664 + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 665 + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 666 + 667 + function-bind@^1.1.1: 668 + version "1.1.1" 669 + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 670 + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 671 + 672 + get-intrinsic@^1.0.0: 673 + version "1.0.1" 674 + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" 675 + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== 676 + dependencies: 677 + function-bind "^1.1.1" 678 + has "^1.0.3" 679 + has-symbols "^1.0.1" 680 + 681 + get-stream@^4.0.0: 682 + version "4.1.0" 683 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 684 + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 685 + dependencies: 686 + pump "^3.0.0" 687 + 688 + get-stream@^5.1.0: 689 + version "5.2.0" 690 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 691 + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 692 + dependencies: 693 + pump "^3.0.0" 694 + 695 + get-stream@^6.0.0: 696 + version "6.0.0" 697 + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" 698 + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== 699 + 700 + glob@^7.1.3: 701 + version "7.1.6" 702 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 703 + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 704 + dependencies: 705 + fs.realpath "^1.0.0" 706 + inflight "^1.0.4" 707 + inherits "2" 708 + minimatch "^3.0.4" 709 + once "^1.3.0" 710 + path-is-absolute "^1.0.0" 711 + 712 + globals@^11.1.0: 713 + version "11.12.0" 714 + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 715 + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 716 + 717 + got@^11.5.0: 718 + version "11.8.0" 719 + resolved "https://registry.yarnpkg.com/got/-/got-11.8.0.tgz#be0920c3586b07fd94add3b5b27cb28f49e6545f" 720 + integrity sha512-k9noyoIIY9EejuhaBNLyZ31D5328LeqnyPNXJQb2XlJZcKakLqN5m6O/ikhq/0lw56kUYS54fVm+D1x57YC9oQ== 721 + dependencies: 722 + "@sindresorhus/is" "^4.0.0" 723 + "@szmarczak/http-timer" "^4.0.5" 724 + "@types/cacheable-request" "^6.0.1" 725 + "@types/responselike" "^1.0.0" 726 + cacheable-lookup "^5.0.3" 727 + cacheable-request "^7.0.1" 728 + decompress-response "^6.0.0" 729 + http2-wrapper "^1.0.0-beta.5.2" 730 + lowercase-keys "^2.0.0" 731 + p-cancelable "^2.0.0" 732 + responselike "^2.0.0" 733 + 734 + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: 735 + version "4.2.4" 736 + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 737 + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 738 + 739 + graphql-tag@^2.11.0: 740 + version "2.11.0" 741 + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" 742 + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== 743 + 744 + graphql@^15.4.0: 745 + version "15.4.0" 746 + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347" 747 + integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA== 748 + 749 + has-flag@^3.0.0: 750 + version "3.0.0" 751 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 752 + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 753 + 754 + has-symbols@^1.0.1: 755 + version "1.0.1" 756 + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 757 + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 758 + 759 + has@^1.0.3: 760 + version "1.0.3" 761 + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 762 + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 763 + dependencies: 764 + function-bind "^1.1.1" 765 + 766 + hosted-git-info@^2.1.4: 767 + version "2.8.8" 768 + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" 769 + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== 770 + 771 + http-assert@^1.3.0: 772 + version "1.4.1" 773 + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" 774 + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== 775 + dependencies: 776 + deep-equal "~1.0.1" 777 + http-errors "~1.7.2" 778 + 779 + http-cache-semantics@^4.0.0: 780 + version "4.1.0" 781 + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 782 + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 783 + 784 + http-errors@1.7.3, http-errors@~1.7.2: 785 + version "1.7.3" 786 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 787 + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 788 + dependencies: 789 + depd "~1.1.2" 790 + inherits "2.0.4" 791 + setprototypeof "1.1.1" 792 + statuses ">= 1.5.0 < 2" 793 + toidentifier "1.0.0" 794 + 795 + http-errors@^1.6.3, http-errors@^1.7.3: 796 + version "1.8.0" 797 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" 798 + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== 799 + dependencies: 800 + depd "~1.1.2" 801 + inherits "2.0.4" 802 + setprototypeof "1.2.0" 803 + statuses ">= 1.5.0 < 2" 804 + toidentifier "1.0.0" 805 + 806 + http-errors@~1.6.2: 807 + version "1.6.3" 808 + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 809 + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 810 + dependencies: 811 + depd "~1.1.2" 812 + inherits "2.0.3" 813 + setprototypeof "1.1.0" 814 + statuses ">= 1.4.0 < 2" 815 + 816 + http2-wrapper@^1.0.0-beta.5.2: 817 + version "1.0.0-beta.5.2" 818 + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3" 819 + integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ== 820 + dependencies: 821 + quick-lru "^5.1.1" 822 + resolve-alpn "^1.0.0" 823 + 824 + iconv-lite@0.4.24: 825 + version "0.4.24" 826 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 827 + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 828 + dependencies: 829 + safer-buffer ">= 2.1.2 < 3" 830 + 831 + immediate@~3.0.5: 832 + version "3.0.6" 833 + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 834 + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= 835 + 836 + inflation@^2.0.0: 837 + version "2.0.0" 838 + resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f" 839 + integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8= 840 + 841 + inflight@^1.0.4: 842 + version "1.0.6" 843 + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 844 + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 845 + dependencies: 846 + once "^1.3.0" 847 + wrappy "1" 848 + 849 + inherits@2, inherits@2.0.4, inherits@~2.0.3: 850 + version "2.0.4" 851 + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 852 + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 853 + 854 + inherits@2.0.3: 855 + version "2.0.3" 856 + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 857 + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 858 + 859 + is-arrayish@^0.2.1: 860 + version "0.2.1" 861 + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 862 + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 863 + 864 + is-callable@^1.1.4, is-callable@^1.2.2: 865 + version "1.2.2" 866 + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" 867 + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== 868 + 869 + is-core-module@^2.1.0: 870 + version "2.2.0" 871 + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" 872 + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== 873 + dependencies: 874 + has "^1.0.3" 875 + 876 + is-date-object@^1.0.1: 877 + version "1.0.2" 878 + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" 879 + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== 880 + 881 + is-fullwidth-code-point@^3.0.0: 882 + version "3.0.0" 883 + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 884 + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 885 + 886 + is-generator-function@^1.0.7: 887 + version "1.0.8" 888 + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" 889 + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== 890 + 891 + is-negative-zero@^2.0.0: 892 + version "2.0.1" 893 + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 894 + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 895 + 896 + is-regex@^1.1.1: 897 + version "1.1.1" 898 + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" 899 + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== 900 + dependencies: 901 + has-symbols "^1.0.1" 902 + 903 + is-stream@^1.1.0: 904 + version "1.1.0" 905 + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 906 + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 907 + 908 + is-symbol@^1.0.2: 909 + version "1.0.3" 910 + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" 911 + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== 912 + dependencies: 913 + has-symbols "^1.0.1" 914 + 915 + isarray@~1.0.0: 916 + version "1.0.0" 917 + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 918 + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 919 + 920 + isexe@^2.0.0: 921 + version "2.0.0" 922 + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 923 + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 924 + 925 + js-tokens@^4.0.0: 926 + version "4.0.0" 927 + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 928 + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 929 + 930 + jsesc@^2.5.1: 931 + version "2.5.2" 932 + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 933 + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 934 + 935 + json-buffer@3.0.1: 936 + version "3.0.1" 937 + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" 938 + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 939 + 940 + json-parse-better-errors@^1.0.1: 941 + version "1.0.2" 942 + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 943 + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 944 + 945 + json-schema-traverse@^0.4.1: 946 + version "0.4.1" 947 + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 948 + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 949 + 950 + jsonfile@^6.0.1: 951 + version "6.1.0" 952 + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 953 + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 954 + dependencies: 955 + universalify "^2.0.0" 956 + optionalDependencies: 957 + graceful-fs "^4.1.6" 958 + 959 + jsonschema@^1.2.4: 960 + version "1.4.0" 961 + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" 962 + integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== 963 + 964 + jsonwebtoken@^8.5.1: 965 + version "8.5.1" 966 + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" 967 + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== 968 + dependencies: 969 + jws "^3.2.2" 970 + lodash.includes "^4.3.0" 971 + lodash.isboolean "^3.0.3" 972 + lodash.isinteger "^4.0.4" 973 + lodash.isnumber "^3.0.3" 974 + lodash.isplainobject "^4.0.6" 975 + lodash.isstring "^4.0.1" 976 + lodash.once "^4.0.0" 977 + ms "^2.1.1" 978 + semver "^5.6.0" 979 + 980 + jstat@^1.9.2: 981 + version "1.9.4" 982 + resolved "https://registry.yarnpkg.com/jstat/-/jstat-1.9.4.tgz#5b787bcbc6353f54904307f2a4e6d4a4a1897f39" 983 + integrity sha512-IiTPlI7pcrsq41EpDzrghlA1fhiC9GXxNqO4k5ogsjsM1XAWQ8zESH/bZsExLVgQsYpXE+7c11kEbbuxTLUpJQ== 984 + 985 + jszip@^3.5.0: 986 + version "3.5.0" 987 + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" 988 + integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA== 989 + dependencies: 990 + lie "~3.3.0" 991 + pako "~1.0.2" 992 + readable-stream "~2.3.6" 993 + set-immediate-shim "~1.0.1" 994 + 995 + jwa@^1.4.1: 996 + version "1.4.1" 997 + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 998 + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 999 + dependencies: 1000 + buffer-equal-constant-time "1.0.1" 1001 + ecdsa-sig-formatter "1.0.11" 1002 + safe-buffer "^5.0.1" 1003 + 1004 + jws@^3.2.2: 1005 + version "3.2.2" 1006 + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1007 + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1008 + dependencies: 1009 + jwa "^1.4.1" 1010 + safe-buffer "^5.0.1" 1011 + 1012 + keygrip@~1.1.0: 1013 + version "1.1.0" 1014 + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" 1015 + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== 1016 + dependencies: 1017 + tsscmp "1.0.6" 1018 + 1019 + keyv@^4.0.0: 1020 + version "4.0.3" 1021 + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" 1022 + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== 1023 + dependencies: 1024 + json-buffer "3.0.1" 1025 + 1026 + koa-bodyparser@^4.2.1: 1027 + version "4.3.0" 1028 + resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a" 1029 + integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw== 1030 + dependencies: 1031 + co-body "^6.0.0" 1032 + copy-to "^2.0.1" 1033 + 1034 + koa-compose@^3.0.0: 1035 + version "3.2.1" 1036 + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 1037 + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 1038 + dependencies: 1039 + any-promise "^1.1.0" 1040 + 1041 + koa-compose@^4.1.0: 1042 + version "4.1.0" 1043 + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" 1044 + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== 1045 + 1046 + koa-convert@^1.2.0: 1047 + version "1.2.0" 1048 + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 1049 + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 1050 + dependencies: 1051 + co "^4.6.0" 1052 + koa-compose "^3.0.0" 1053 + 1054 + koa-mount@^4.0.0: 1055 + version "4.0.0" 1056 + resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c" 1057 + integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ== 1058 + dependencies: 1059 + debug "^4.0.1" 1060 + koa-compose "^4.1.0" 1061 + 1062 + koa-node-resolve@^1.0.0-pre.8: 1063 + version "1.0.0-pre.9" 1064 + resolved "https://registry.yarnpkg.com/koa-node-resolve/-/koa-node-resolve-1.0.0-pre.9.tgz#25e928ccc70ee9960c9615cab84fbfa25a1f608f" 1065 + integrity sha512-WKgqe5TGVD6zuR3NrKnmbb/NNHIbWOCezQVqqnyQLdtLLXWgiothlUQT23S5qQGE0Z623jp6jxpMjvAqyrcZFQ== 1066 + dependencies: 1067 + "@babel/generator" "^7.4.4" 1068 + "@babel/parser" "^7.4.5" 1069 + "@babel/traverse" "^7.4.5" 1070 + "@types/babel__generator" "^7.6.1" 1071 + "@types/parse5" "^5.0.0" 1072 + get-stream "^5.1.0" 1073 + parse5 "^5.1.0" 1074 + resolve "^1.11.0" 1075 + 1076 + koa-send@^5.0.0: 1077 + version "5.0.1" 1078 + resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79" 1079 + integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ== 1080 + dependencies: 1081 + debug "^4.1.1" 1082 + http-errors "^1.7.3" 1083 + resolve-path "^1.4.0" 1084 + 1085 + koa-static@^5.0.0: 1086 + version "5.0.0" 1087 + resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943" 1088 + integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ== 1089 + dependencies: 1090 + debug "^3.1.0" 1091 + koa-send "^5.0.0" 1092 + 1093 + koa@^2.11.0: 1094 + version "2.13.0" 1095 + resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501" 1096 + integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ== 1097 + dependencies: 1098 + accepts "^1.3.5" 1099 + cache-content-type "^1.0.0" 1100 + content-disposition "~0.5.2" 1101 + content-type "^1.0.4" 1102 + cookies "~0.8.0" 1103 + debug "~3.1.0" 1104 + delegates "^1.0.0" 1105 + depd "^1.1.2" 1106 + destroy "^1.0.4" 1107 + encodeurl "^1.0.2" 1108 + escape-html "^1.0.3" 1109 + fresh "~0.5.2" 1110 + http-assert "^1.3.0" 1111 + http-errors "^1.6.3" 1112 + is-generator-function "^1.0.7" 1113 + koa-compose "^4.1.0" 1114 + koa-convert "^1.2.0" 1115 + on-finished "^2.3.0" 1116 + only "~0.0.2" 1117 + parseurl "^1.3.2" 1118 + statuses "^1.5.0" 1119 + type-is "^1.6.16" 1120 + vary "^1.1.2" 1121 + 1122 + lie@~3.3.0: 1123 + version "3.3.0" 1124 + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" 1125 + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== 1126 + dependencies: 1127 + immediate "~3.0.5" 1128 + 1129 + load-json-file@^4.0.0: 1130 + version "4.0.0" 1131 + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 1132 + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= 1133 + dependencies: 1134 + graceful-fs "^4.1.2" 1135 + parse-json "^4.0.0" 1136 + pify "^3.0.0" 1137 + strip-bom "^3.0.0" 1138 + 1139 + locate-path@^3.0.0: 1140 + version "3.0.0" 1141 + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 1142 + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 1143 + dependencies: 1144 + p-locate "^3.0.0" 1145 + path-exists "^3.0.0" 1146 + 1147 + lodash.camelcase@^4.3.0: 1148 + version "4.3.0" 1149 + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 1150 + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 1151 + 1152 + lodash.includes@^4.3.0: 1153 + version "4.3.0" 1154 + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1155 + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= 1156 + 1157 + lodash.isboolean@^3.0.3: 1158 + version "3.0.3" 1159 + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1160 + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= 1161 + 1162 + lodash.isinteger@^4.0.4: 1163 + version "4.0.4" 1164 + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1165 + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= 1166 + 1167 + lodash.isnumber@^3.0.3: 1168 + version "3.0.3" 1169 + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1170 + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= 1171 + 1172 + lodash.isplainobject@^4.0.6: 1173 + version "4.0.6" 1174 + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1175 + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= 1176 + 1177 + lodash.isstring@^4.0.1: 1178 + version "4.0.1" 1179 + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1180 + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= 1181 + 1182 + lodash.once@^4.0.0: 1183 + version "4.1.1" 1184 + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1185 + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 1186 + 1187 + lodash@^4.17.19, lodash@^4.17.20: 1188 + version "4.17.20" 1189 + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" 1190 + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== 1191 + 1192 + lowercase-keys@^2.0.0: 1193 + version "2.0.0" 1194 + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 1195 + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 1196 + 1197 + lru-cache@^6.0.0: 1198 + version "6.0.0" 1199 + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1200 + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1201 + dependencies: 1202 + yallist "^4.0.0" 1203 + 1204 + media-typer@0.3.0: 1205 + version "0.3.0" 1206 + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1207 + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 1208 + 1209 + memorystream@^0.3.1: 1210 + version "0.3.1" 1211 + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" 1212 + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= 1213 + 1214 + mime-db@1.44.0: 1215 + version "1.44.0" 1216 + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 1217 + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 1218 + 1219 + mime-types@^2.1.18, mime-types@~2.1.24: 1220 + version "2.1.27" 1221 + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 1222 + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 1223 + dependencies: 1224 + mime-db "1.44.0" 1225 + 1226 + mimic-response@^1.0.0: 1227 + version "1.0.1" 1228 + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 1229 + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 1230 + 1231 + mimic-response@^3.1.0: 1232 + version "3.1.0" 1233 + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" 1234 + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== 1235 + 1236 + minimatch@^3.0.4: 1237 + version "3.0.4" 1238 + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1239 + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1240 + dependencies: 1241 + brace-expansion "^1.1.7" 1242 + 1243 + ms@2.0.0: 1244 + version "2.0.0" 1245 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1246 + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1247 + 1248 + ms@2.1.2, ms@^2.1.1: 1249 + version "2.1.2" 1250 + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1251 + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1252 + 1253 + negotiator@0.6.2: 1254 + version "0.6.2" 1255 + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1256 + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1257 + 1258 + nice-try@^1.0.4: 1259 + version "1.0.5" 1260 + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1261 + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1262 + 1263 + normalize-package-data@^2.3.2: 1264 + version "2.5.0" 1265 + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1266 + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1267 + dependencies: 1268 + hosted-git-info "^2.1.4" 1269 + resolve "^1.10.0" 1270 + semver "2 || 3 || 4 || 5" 1271 + validate-npm-package-license "^3.0.1" 1272 + 1273 + normalize-url@^4.1.0: 1274 + version "4.5.0" 1275 + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 1276 + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 1277 + 1278 + npm-run-all@^4.1.5: 1279 + version "4.1.5" 1280 + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" 1281 + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== 1282 + dependencies: 1283 + ansi-styles "^3.2.1" 1284 + chalk "^2.4.1" 1285 + cross-spawn "^6.0.5" 1286 + memorystream "^0.3.1" 1287 + minimatch "^3.0.4" 1288 + pidtree "^0.3.0" 1289 + read-pkg "^3.0.0" 1290 + shell-quote "^1.6.1" 1291 + string.prototype.padend "^3.0.0" 1292 + 1293 + npm-run-path@^2.0.0: 1294 + version "2.0.2" 1295 + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1296 + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1297 + dependencies: 1298 + path-key "^2.0.0" 1299 + 1300 + object-inspect@^1.8.0: 1301 + version "1.9.0" 1302 + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" 1303 + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== 1304 + 1305 + object-keys@^1.0.12, object-keys@^1.1.1: 1306 + version "1.1.1" 1307 + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1308 + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1309 + 1310 + object.assign@^4.1.1: 1311 + version "4.1.2" 1312 + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1313 + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1314 + dependencies: 1315 + call-bind "^1.0.0" 1316 + define-properties "^1.1.3" 1317 + has-symbols "^1.0.1" 1318 + object-keys "^1.1.1" 1319 + 1320 + on-finished@^2.3.0: 1321 + version "2.3.0" 1322 + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1323 + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1324 + dependencies: 1325 + ee-first "1.1.1" 1326 + 1327 + once@^1.3.0, once@^1.3.1, once@^1.4.0: 1328 + version "1.4.0" 1329 + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1330 + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1331 + dependencies: 1332 + wrappy "1" 1333 + 1334 + only@~0.0.2: 1335 + version "0.0.2" 1336 + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 1337 + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 1338 + 1339 + p-cancelable@^2.0.0: 1340 + version "2.0.0" 1341 + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" 1342 + integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== 1343 + 1344 + p-finally@^1.0.0: 1345 + version "1.0.0" 1346 + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1347 + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1348 + 1349 + p-limit@^2.0.0: 1350 + version "2.3.0" 1351 + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 1352 + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 1353 + dependencies: 1354 + p-try "^2.0.0" 1355 + 1356 + p-locate@^3.0.0: 1357 + version "3.0.0" 1358 + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1359 + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1360 + dependencies: 1361 + p-limit "^2.0.0" 1362 + 1363 + p-try@^2.0.0: 1364 + version "2.2.0" 1365 + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1366 + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1367 + 1368 + pako@~1.0.2: 1369 + version "1.0.11" 1370 + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 1371 + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 1372 + 1373 + parse-json@^4.0.0: 1374 + version "4.0.0" 1375 + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1376 + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1377 + dependencies: 1378 + error-ex "^1.3.1" 1379 + json-parse-better-errors "^1.0.1" 1380 + 1381 + parse5@^5.1.0: 1382 + version "5.1.1" 1383 + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" 1384 + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== 1385 + 1386 + parseurl@^1.3.2: 1387 + version "1.3.3" 1388 + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1389 + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1390 + 1391 + path-exists@^3.0.0: 1392 + version "3.0.0" 1393 + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1394 + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1395 + 1396 + path-is-absolute@1.0.1, path-is-absolute@^1.0.0: 1397 + version "1.0.1" 1398 + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1399 + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1400 + 1401 + path-key@^2.0.0, path-key@^2.0.1: 1402 + version "2.0.1" 1403 + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1404 + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1405 + 1406 + path-parse@^1.0.6: 1407 + version "1.0.6" 1408 + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1409 + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1410 + 1411 + path-type@^3.0.0: 1412 + version "3.0.0" 1413 + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 1414 + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== 1415 + dependencies: 1416 + pify "^3.0.0" 1417 + 1418 + pidtree@^0.3.0: 1419 + version "0.3.1" 1420 + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" 1421 + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== 1422 + 1423 + pify@^3.0.0: 1424 + version "3.0.0" 1425 + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1426 + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1427 + 1428 + pkg-install@^1.0.0: 1429 + version "1.0.0" 1430 + resolved "https://registry.yarnpkg.com/pkg-install/-/pkg-install-1.0.0.tgz#a0c2e64e14d1733d670571489c303605527063fe" 1431 + integrity sha512-UGI8bfhrDb1KN01RZ7Bq08GRQc8rmVjxQ2up0g4mUHPCYDTK1FzQ0PMmLOBCHg3yaIijZ2U3Fn9ofLa4N392Ug== 1432 + dependencies: 1433 + "@types/execa" "^0.9.0" 1434 + "@types/node" "^11.9.4" 1435 + execa "^1.0.0" 1436 + 1437 + pkg-up@^3.1.0: 1438 + version "3.1.0" 1439 + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" 1440 + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== 1441 + dependencies: 1442 + find-up "^3.0.0" 1443 + 1444 + process-nextick-args@~2.0.0: 1445 + version "2.0.1" 1446 + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1447 + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1448 + 1449 + progress@^2.0.3: 1450 + version "2.0.3" 1451 + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1452 + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1453 + 1454 + pump@^3.0.0: 1455 + version "3.0.0" 1456 + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1457 + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1458 + dependencies: 1459 + end-of-stream "^1.1.0" 1460 + once "^1.3.1" 1461 + 1462 + punycode@^2.1.0: 1463 + version "2.1.1" 1464 + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1465 + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1466 + 1467 + qs@^6.5.2: 1468 + version "6.9.4" 1469 + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" 1470 + integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== 1471 + 1472 + quick-lru@^5.1.1: 1473 + version "5.1.1" 1474 + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 1475 + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 1476 + 1477 + raw-body@^2.3.3: 1478 + version "2.4.1" 1479 + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" 1480 + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== 1481 + dependencies: 1482 + bytes "3.1.0" 1483 + http-errors "1.7.3" 1484 + iconv-lite "0.4.24" 1485 + unpipe "1.0.0" 1486 + 1487 + read-pkg@^3.0.0: 1488 + version "3.0.0" 1489 + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" 1490 + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= 1491 + dependencies: 1492 + load-json-file "^4.0.0" 1493 + normalize-package-data "^2.3.2" 1494 + path-type "^3.0.0" 1495 + 1496 + readable-stream@~2.3.6: 1497 + version "2.3.7" 1498 + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1499 + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1500 + dependencies: 1501 + core-util-is "~1.0.0" 1502 + inherits "~2.0.3" 1503 + isarray "~1.0.0" 1504 + process-nextick-args "~2.0.0" 1505 + safe-buffer "~5.1.1" 1506 + string_decoder "~1.1.1" 1507 + util-deprecate "~1.0.1" 1508 + 1509 + reduce-flatten@^2.0.0: 1510 + version "2.0.0" 1511 + resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" 1512 + integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== 1513 + 1514 + resolve-alpn@^1.0.0: 1515 + version "1.0.0" 1516 + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" 1517 + integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== 1518 + 1519 + resolve-path@^1.4.0: 1520 + version "1.4.0" 1521 + resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" 1522 + integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= 1523 + dependencies: 1524 + http-errors "~1.6.2" 1525 + path-is-absolute "1.0.1" 1526 + 1527 + resolve@^1.10.0, resolve@^1.11.0: 1528 + version "1.19.0" 1529 + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" 1530 + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== 1531 + dependencies: 1532 + is-core-module "^2.1.0" 1533 + path-parse "^1.0.6" 1534 + 1535 + responselike@^2.0.0: 1536 + version "2.0.0" 1537 + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" 1538 + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== 1539 + dependencies: 1540 + lowercase-keys "^2.0.0" 1541 + 1542 + rimraf@^2.6.3, rimraf@^2.7.1: 1543 + version "2.7.1" 1544 + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 1545 + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 1546 + dependencies: 1547 + glob "^7.1.3" 1548 + 1549 + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1550 + version "5.1.2" 1551 + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1552 + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1553 + 1554 + safe-buffer@^5.0.1: 1555 + version "5.2.1" 1556 + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1557 + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1558 + 1559 + "safer-buffer@>= 2.1.2 < 3": 1560 + version "2.1.2" 1561 + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1562 + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1563 + 1564 + selenium-webdriver@^4.0.0-alpha.1: 1565 + version "4.0.0-alpha.8" 1566 + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.8.tgz#5cb99f4239b39dbdff6ac796893f873d044dd3bc" 1567 + integrity sha512-yPSaiWySZTEbxuuWQMDqdXh3H3N4Aiw/bSUjpkKMPWWCysfPqUncrq6FewBqdxWD1wQKzy5yWaQMGsgTY/0rCQ== 1568 + dependencies: 1569 + jszip "^3.5.0" 1570 + rimraf "^2.7.1" 1571 + tmp "^0.1.0" 1572 + ws "^7.3.1" 1573 + 1574 + "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: 1575 + version "5.7.1" 1576 + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 1577 + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 1578 + 1579 + semver@^7.1.1: 1580 + version "7.3.4" 1581 + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" 1582 + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== 1583 + dependencies: 1584 + lru-cache "^6.0.0" 1585 + 1586 + set-immediate-shim@~1.0.1: 1587 + version "1.0.1" 1588 + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1589 + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= 1590 + 1591 + setprototypeof@1.1.0: 1592 + version "1.1.0" 1593 + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1594 + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 1595 + 1596 + setprototypeof@1.1.1: 1597 + version "1.1.1" 1598 + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1599 + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1600 + 1601 + setprototypeof@1.2.0: 1602 + version "1.2.0" 1603 + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 1604 + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 1605 + 1606 + shebang-command@^1.2.0: 1607 + version "1.2.0" 1608 + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1609 + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1610 + dependencies: 1611 + shebang-regex "^1.0.0" 1612 + 1613 + shebang-regex@^1.0.0: 1614 + version "1.0.0" 1615 + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1616 + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1617 + 1618 + shell-quote@^1.6.1: 1619 + version "1.7.2" 1620 + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" 1621 + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== 1622 + 1623 + signal-exit@^3.0.0: 1624 + version "3.0.3" 1625 + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1626 + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1627 + 1628 + slice-ansi@^4.0.0: 1629 + version "4.0.0" 1630 + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 1631 + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 1632 + dependencies: 1633 + ansi-styles "^4.0.0" 1634 + astral-regex "^2.0.0" 1635 + is-fullwidth-code-point "^3.0.0" 1636 + 1637 + source-map-support@^0.5.16: 1638 + version "0.5.19" 1639 + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 1640 + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 1641 + dependencies: 1642 + buffer-from "^1.0.0" 1643 + source-map "^0.6.0" 1644 + 1645 + source-map@^0.5.0: 1646 + version "0.5.7" 1647 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1648 + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 1649 + 1650 + source-map@^0.6.0: 1651 + version "0.6.1" 1652 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1653 + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1654 + 1655 + spdx-correct@^3.0.0: 1656 + version "3.1.1" 1657 + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1658 + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1659 + dependencies: 1660 + spdx-expression-parse "^3.0.0" 1661 + spdx-license-ids "^3.0.0" 1662 + 1663 + spdx-exceptions@^2.1.0: 1664 + version "2.3.0" 1665 + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1666 + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1667 + 1668 + spdx-expression-parse@^3.0.0: 1669 + version "3.0.1" 1670 + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1671 + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1672 + dependencies: 1673 + spdx-exceptions "^2.1.0" 1674 + spdx-license-ids "^3.0.0" 1675 + 1676 + spdx-license-ids@^3.0.0: 1677 + version "3.0.7" 1678 + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" 1679 + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== 1680 + 1681 + "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: 1682 + version "1.5.0" 1683 + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1684 + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1685 + 1686 + string-width@^4.2.0: 1687 + version "4.2.0" 1688 + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 1689 + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 1690 + dependencies: 1691 + emoji-regex "^8.0.0" 1692 + is-fullwidth-code-point "^3.0.0" 1693 + strip-ansi "^6.0.0" 1694 + 1695 + string.prototype.padend@^3.0.0: 1696 + version "3.1.1" 1697 + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz#824c84265dbac46cade2b957b38b6a5d8d1683c5" 1698 + integrity sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg== 1699 + dependencies: 1700 + call-bind "^1.0.0" 1701 + define-properties "^1.1.3" 1702 + es-abstract "^1.18.0-next.1" 1703 + 1704 + string.prototype.trimend@^1.0.1: 1705 + version "1.0.3" 1706 + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" 1707 + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== 1708 + dependencies: 1709 + call-bind "^1.0.0" 1710 + define-properties "^1.1.3" 1711 + 1712 + string.prototype.trimstart@^1.0.1: 1713 + version "1.0.3" 1714 + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" 1715 + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== 1716 + dependencies: 1717 + call-bind "^1.0.0" 1718 + define-properties "^1.1.3" 1719 + 1720 + string_decoder@~1.1.1: 1721 + version "1.1.1" 1722 + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1723 + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1724 + dependencies: 1725 + safe-buffer "~5.1.0" 1726 + 1727 + strip-ansi@^6.0.0: 1728 + version "6.0.0" 1729 + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1730 + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1731 + dependencies: 1732 + ansi-regex "^5.0.0" 1733 + 1734 + strip-bom@^3.0.0: 1735 + version "3.0.0" 1736 + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1737 + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1738 + 1739 + strip-eof@^1.0.0: 1740 + version "1.0.0" 1741 + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1742 + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1743 + 1744 + supports-color@^5.3.0: 1745 + version "5.5.0" 1746 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1747 + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1748 + dependencies: 1749 + has-flag "^3.0.0" 1750 + 1751 + systeminformation@^4.14.17: 1752 + version "4.31.0" 1753 + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-4.31.0.tgz#24da1f4ba904de8ac66e71be656fef0a234e1d72" 1754 + integrity sha512-j1eNsuHxpW00RpxSvLy2IJHXpH54TyzZGQRTSFM5flD+dl83qmZ7TWIPnVkACMgHFABkL95I4KTf6S7aRsGUWg== 1755 + 1756 + table-layout@^1.0.1: 1757 + version "1.0.1" 1758 + resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" 1759 + integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== 1760 + dependencies: 1761 + array-back "^4.0.1" 1762 + deep-extend "~0.6.0" 1763 + typical "^5.2.0" 1764 + wordwrapjs "^4.0.0" 1765 + 1766 + table@^6.0.3: 1767 + version "6.0.4" 1768 + resolved "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d" 1769 + integrity sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw== 1770 + dependencies: 1771 + ajv "^6.12.4" 1772 + lodash "^4.17.20" 1773 + slice-ansi "^4.0.0" 1774 + string-width "^4.2.0" 1775 + 1776 + tachometer@^0.5.5: 1777 + version "0.5.5" 1778 + resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.5.5.tgz#91009d4fa0968d06a9cfe13e3bfbd2fc05c27878" 1779 + integrity sha512-a1sjEzfY01kL4oBQXue3cVN+5wX6tncNU6jVzYNGlSskJ+AwSV3DyGfxh9pjviJ4hLiaBpmF9EFRURGenSoD2w== 1780 + dependencies: 1781 + "@types/command-line-usage" "^5.0.1" 1782 + "@types/selenium-webdriver" "^4.0.5" 1783 + "@types/table" "^6.0.0" 1784 + ansi-escape-sequences "^5.0.0" 1785 + command-line-args "^5.0.2" 1786 + command-line-usage "^6.1.0" 1787 + csv-stringify "^5.3.0" 1788 + fs-extra "^9.0.1" 1789 + get-stream "^6.0.0" 1790 + got "^11.5.0" 1791 + jsonschema "^1.2.4" 1792 + jsonwebtoken "^8.5.1" 1793 + jstat "^1.9.2" 1794 + koa "^2.11.0" 1795 + koa-bodyparser "^4.2.1" 1796 + koa-mount "^4.0.0" 1797 + koa-node-resolve "^1.0.0-pre.8" 1798 + koa-send "^5.0.0" 1799 + koa-static "^5.0.0" 1800 + pkg-install "^1.0.0" 1801 + pkg-up "^3.1.0" 1802 + progress "^2.0.3" 1803 + selenium-webdriver "^4.0.0-alpha.1" 1804 + semver "^7.1.1" 1805 + source-map-support "^0.5.16" 1806 + strip-ansi "^6.0.0" 1807 + systeminformation "^4.14.17" 1808 + table "^6.0.3" 1809 + ua-parser-js "^0.7.19" 1810 + 1811 + tmp@^0.1.0: 1812 + version "0.1.0" 1813 + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" 1814 + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== 1815 + dependencies: 1816 + rimraf "^2.6.3" 1817 + 1818 + to-fast-properties@^2.0.0: 1819 + version "2.0.0" 1820 + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1821 + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1822 + 1823 + toidentifier@1.0.0: 1824 + version "1.0.0" 1825 + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1826 + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1827 + 1828 + tsscmp@1.0.6: 1829 + version "1.0.6" 1830 + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" 1831 + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== 1832 + 1833 + type-is@^1.6.16: 1834 + version "1.6.18" 1835 + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1836 + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1837 + dependencies: 1838 + media-typer "0.3.0" 1839 + mime-types "~2.1.24" 1840 + 1841 + typical@^4.0.0: 1842 + version "4.0.0" 1843 + resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" 1844 + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== 1845 + 1846 + typical@^5.0.0, typical@^5.2.0: 1847 + version "5.2.0" 1848 + resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" 1849 + integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== 1850 + 1851 + ua-parser-js@^0.7.19: 1852 + version "0.7.22" 1853 + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" 1854 + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== 1855 + 1856 + universalify@^1.0.0: 1857 + version "1.0.0" 1858 + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" 1859 + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== 1860 + 1861 + universalify@^2.0.0: 1862 + version "2.0.0" 1863 + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 1864 + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 1865 + 1866 + unpipe@1.0.0: 1867 + version "1.0.0" 1868 + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1869 + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1870 + 1871 + uri-js@^4.2.2: 1872 + version "4.4.0" 1873 + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" 1874 + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== 1875 + dependencies: 1876 + punycode "^2.1.0" 1877 + 1878 + urql@^1.11.3: 1879 + version "1.11.4" 1880 + resolved "https://registry.yarnpkg.com/urql/-/urql-1.11.4.tgz#f4eb430d7756baf61f2906779d5a1914e9eeef0d" 1881 + integrity sha512-VtX8xuzwxDtVXRCf/uvy1LcAnBIfiDrKlkblq6ENVJtI3eNsq7mTTxk3F1kZCxE29GWBayQpO4kcLzhEE0OojQ== 1882 + dependencies: 1883 + "@urql/core" "^1.16.0" 1884 + wonka "^4.0.14" 1885 + 1886 + util-deprecate@~1.0.1: 1887 + version "1.0.2" 1888 + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1889 + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1890 + 1891 + validate-npm-package-license@^3.0.1: 1892 + version "3.0.4" 1893 + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1894 + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1895 + dependencies: 1896 + spdx-correct "^3.0.0" 1897 + spdx-expression-parse "^3.0.0" 1898 + 1899 + vary@^1.1.2: 1900 + version "1.1.2" 1901 + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1902 + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1903 + 1904 + which@^1.2.9: 1905 + version "1.3.1" 1906 + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1907 + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1908 + dependencies: 1909 + isexe "^2.0.0" 1910 + 1911 + wonka@^4.0.14: 1912 + version "4.0.15" 1913 + resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89" 1914 + integrity sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg== 1915 + 1916 + wordwrapjs@^4.0.0: 1917 + version "4.0.0" 1918 + resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" 1919 + integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== 1920 + dependencies: 1921 + reduce-flatten "^2.0.0" 1922 + typical "^5.0.0" 1923 + 1924 + wrappy@1: 1925 + version "1.0.2" 1926 + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1927 + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1928 + 1929 + ws@^7.3.1: 1930 + version "7.4.1" 1931 + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" 1932 + integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== 1933 + 1934 + yallist@^4.0.0: 1935 + version "4.0.0" 1936 + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1937 + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1938 + 1939 + ylru@^1.2.0: 1940 + version "1.2.1" 1941 + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" 1942 + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==