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

(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>

+37
exchanges/graphcache/benchmarks/10000Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>10000 Reads</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const tenThousandTodos = makeEntries(10000, makeTodo);
+
+
const benchmark = async () => {
+
await addTodos(tenThousandTodos);
+
bench.start();
+
await getAllTodos();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+38
exchanges/graphcache/benchmarks/10000ReadsComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>10000 Reads Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const tenThousandAuthors = makeEntries(10000, makeAuthor);
+
+
const benchmark = async () => {
+
await addAuthors(tenThousandAuthors);
+
// measure how long read takes
+
bench.start();
+
await getAllAuthors();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+36
exchanges/graphcache/benchmarks/10000Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>10000 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const tenThousandTodos = makeEntries(10000, makeTodo);
+
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(tenThousandTodos);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/10000WritesComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>10000 Writes Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const hundredAuthors = makeEntries(10000, makeAuthor);
+
+
const benchmark = async () => {
+
// measure how long write takes
+
bench.start();
+
await addAuthors(hundredAuthors);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/1000Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>1000 Reads</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const thousandTodos = makeEntries(1000, makeTodo);
+
+
const benchmark = async () => {
+
await addTodos(thousandTodos);
+
bench.start();
+
await getAllTodos();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+38
exchanges/graphcache/benchmarks/1000ReadsComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>1000 Reads Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const thousandAuthors = makeEntries(1000, makeAuthor);
+
+
const benchmark = async () => {
+
await addAuthors(thousandAuthors);
+
// measure how long read takes
+
bench.start();
+
await getAllAuthors();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+36
exchanges/graphcache/benchmarks/1000Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>1000 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const thousandTodos = makeEntries(1000, makeTodo);
+
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(thousandTodos);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/1000WritesComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>1000 Writes Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const hundredAuthors = makeEntries(1000, makeAuthor);
+
+
const benchmark = async () => {
+
// measure how long write takes
+
bench.start();
+
await addAuthors(hundredAuthors);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+38
exchanges/graphcache/benchmarks/100Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>100 Reads</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const hundredTodos = makeEntries(100, makeTodo);
+
+
// benchmark to be performed to assess urql client performance
+
const benchmark = async () => {
+
await addTodos(hundredTodos);
+
bench.start();
+
await getAllTodos();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+38
exchanges/graphcache/benchmarks/100ReadsComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>100 Reads Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const hundredAuthors = makeEntries(100, makeAuthor);
+
+
// benchmark to be performed to assess urql client performance
+
const benchmark = async () => {
+
await addAuthors(hundredAuthors);
+
bench.start();
+
await getAllAuthors();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/100Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>100 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const hundredTodos = makeEntries(100, makeTodo);
+
+
// benchmark to be performed to assess urql client performance
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(hundredTodos);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/100WritesComplex.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>100 Writes Complex</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeAuthor } from "./entities.js";
+
import { getAllAuthors, addAuthors } from "./benchmarks.js";
+
+
// create authors to be added/written
+
const hundredAuthors = makeEntries(100, makeAuthor);
+
+
// benchmark to be performed to assess urql client performance
+
const benchmark = async () => {
+
bench.start();
+
await addAuthors(hundredAuthors);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+50
exchanges/graphcache/benchmarks/50000Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>50000 Reads</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js";
+
+
// create entities to be written
+
const hundredTodos = makeEntries(10000, makeTodo);
+
const hundredWriters = makeEntries(10000, makeWriter);
+
const hundredBooks = makeEntries(10000, makeBook);
+
const hundredStores = makeEntries(10000, makeStore);
+
const hundredEmployees = makeEntries(10000, makeEmployee);
+
+
const benchmark = async () => {
+
await addTodos(hundredTodos);
+
await addWriters(hundredWriters);
+
await addBooks(hundredBooks);
+
await addStores(hundredStores);
+
await addEmployees(hundredEmployees);
+
+
bench.start();
+
await getAllTodos();
+
await getAllWriters();
+
await getAllBooks();
+
await getAllStores();
+
await getAllEmployees();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+44
exchanges/graphcache/benchmarks/50000Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>50000 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js";
+
+
// create entities to be written
+
const tenThousandTodos = makeEntries(10000, makeTodo);
+
const tenThousandWriters = makeEntries(10000, makeWriter);
+
const tenThousandBooks = makeEntries(10000, makeBook);
+
const tenThousandStores = makeEntries(10000, makeStore);
+
const tenThousandEmployees = makeEntries(10000, makeEmployee);
+
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(tenThousandTodos);
+
await addWriters(tenThousandWriters);
+
await addBooks(tenThousandBooks);
+
await addStores(tenThousandStores);
+
await addEmployees(tenThousandEmployees);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+50
exchanges/graphcache/benchmarks/5000Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>5000 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js";
+
+
// create entities to be written
+
const hundredTodos = makeEntries(1000, makeTodo);
+
const hundredWriters = makeEntries(1000, makeWriter);
+
const hundredBooks = makeEntries(1000, makeBook);
+
const hundredStores = makeEntries(1000, makeStore);
+
const hundredEmployees = makeEntries(1000, makeEmployee);
+
+
const benchmark = async () => {
+
await addTodos(hundredTodos);
+
await addWriters(hundredWriters);
+
await addBooks(hundredBooks);
+
await addStores(hundredStores);
+
await addEmployees(hundredEmployees);
+
+
bench.start();
+
await getAllTodos();
+
await getAllWriters();
+
await getAllBooks();
+
await getAllStores();
+
await getAllEmployees();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+44
exchanges/graphcache/benchmarks/5000Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>5000 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js";
+
+
// create entities to be written
+
const thousandTodos = makeEntries(1000, makeTodo);
+
const thousandWriters = makeEntries(1000, makeWriter);
+
const thousandBooks = makeEntries(1000, makeBook);
+
const thousandStores = makeEntries(1000, makeStore);
+
const thousandEmployees = makeEntries(1000, makeEmployee);
+
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(thousandTodos);
+
await addWriters(thousandWriters);
+
await addBooks(thousandBooks);
+
await addStores(thousandStores);
+
await addEmployees(thousandEmployees);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+50
exchanges/graphcache/benchmarks/500Reads.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>500 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, getAllWriters, getAllBooks, getAllStores, getAllEmployees, addTodos, addWriters, addBooks, addStores, addEmployees, } from "./benchmarks.js";
+
+
// create entities to be written
+
const hundredTodos = makeEntries(100, makeTodo);
+
const hundredWriters = makeEntries(100, makeWriter);
+
const hundredBooks = makeEntries(100, makeBook);
+
const hundredStores = makeEntries(100, makeStore);
+
const hundredEmployees = makeEntries(100, makeEmployee);
+
+
const benchmark = async () => {
+
await addTodos(hundredTodos);
+
await addWriters(hundredWriters);
+
await addBooks(hundredBooks);
+
await addStores(hundredStores);
+
await addEmployees(hundredEmployees);
+
+
bench.start();
+
await getAllTodos();
+
await getAllWriters();
+
await getAllBooks();
+
await getAllStores();
+
await getAllEmployees();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+44
exchanges/graphcache/benchmarks/500Writes.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>500 Writes</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo, makeWriter, makeBook, makeStore, makeEmployee } from "./entities.js";
+
import { getAllTodos, addTodos, addWriters, addBooks, addStores, addEmployees } from "./benchmarks.js";
+
+
// create entities to be written
+
const hundredTodos = makeEntries(100, makeTodo);
+
const hundredWriters = makeEntries(100, makeWriter);
+
const hundredBooks = makeEntries(100, makeBook);
+
const hundredStores = makeEntries(100, makeStore);
+
const hundredEmployees = makeEntries(100, makeEmployee);
+
+
const benchmark = async () => {
+
bench.start();
+
await addTodos(hundredTodos);
+
await addWriters(hundredWriters);
+
await addBooks(hundredBooks);
+
await addStores(hundredStores);
+
await addEmployees(hundredEmployees);
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+37
exchanges/graphcache/benchmarks/addTodo.html
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>Add Todo</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodo, addTodos } from "./benchmarks.js";
+
+
const todosToBeAdded = makeEntries(100, makeTodo);
+
+
const benchmark = async () => {
+
await addTodos(todosToBeAdded);
+
await getAllTodos();
+
bench.start();
+
await addTodo();
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+99
exchanges/graphcache/benchmarks/benchmarks.js
···
+
import urqlClient from './urqlClient.js';
+
import {
+
ALL_TODOS_QUERY,
+
ALL_WRITERS_QUERY,
+
ALL_BOOKS_QUERY,
+
ALL_STORES_QUERY,
+
ALL_EMPLOYEES_QUERY,
+
ALL_AUTHORS_QUERY,
+
ADD_TODO_MUTATION,
+
UPDATE_TODO_MUTATION,
+
ADD_TODOS_MUTATION,
+
ADD_WRITERS_MUTATION,
+
ADD_BOOKS_MUTATION,
+
ADD_STORES_MUTATION,
+
ADD_EMPLOYEES_MUTATION,
+
ADD_AUTHORS_MUTATION,
+
} from './operations.js';
+
+
// create functions that execute operations/queries/mutaitons to be benchmarked
+
export const getAllTodos = async () => {
+
const queryResult = await urqlClient.query(ALL_TODOS_QUERY).toPromise();
+
return queryResult.data.todos;
+
};
+
export const getAllWriters = async () => {
+
const queryResult = await urqlClient.query(ALL_WRITERS_QUERY).toPromise();
+
return queryResult.data.writers;
+
};
+
export const getAllBooks = async () => {
+
const queryResult = await urqlClient.query(ALL_BOOKS_QUERY).toPromise();
+
return queryResult.data.books;
+
};
+
export const getAllStores = async () => {
+
const queryResult = await urqlClient.query(ALL_STORES_QUERY).toPromise();
+
return queryResult.data.stores;
+
};
+
export const getAllEmployees = async () => {
+
const queryResult = await urqlClient.query(ALL_EMPLOYEES_QUERY).toPromise();
+
return queryResult.data.employees;
+
};
+
export const getAllAuthors = async () => {
+
const queryResult = await urqlClient.query(ALL_AUTHORS_QUERY).toPromise();
+
return queryResult.data.authors;
+
};
+
export const addTodo = async () => {
+
const newTodo = { text: 'New todo', complete: true };
+
const mutationResult = await urqlClient
+
.mutation(ADD_TODO_MUTATION, newTodo)
+
.toPromise();
+
return mutationResult.data.addTodo;
+
};
+
export const updateTodo = async ({ id, complete }) => {
+
const updatedTodo = { id, complete };
+
const mutationResult = await urqlClient
+
.mutation(UPDATE_TODO_MUTATION, updatedTodo)
+
.toPromise();
+
return mutationResult.data.updateTodo;
+
};
+
export const addTodos = async todosToBeAdded => {
+
const newTodos = { newTodos: { todos: todosToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_TODOS_MUTATION, newTodos)
+
.toPromise();
+
return mutationResult.data.addTodos;
+
};
+
export const addWriters = async writersToBeAdded => {
+
const newWriters = { newWriters: { writers: writersToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_WRITERS_MUTATION, newWriters)
+
.toPromise();
+
return mutationResult.data.addWriters;
+
};
+
export const addBooks = async booksToBeAdded => {
+
const newBooks = { newBooks: { books: booksToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_BOOKS_MUTATION, newBooks)
+
.toPromise();
+
return mutationResult.data.addBooks;
+
};
+
export const addStores = async storesToBeAdded => {
+
const newStores = { newStores: { stores: storesToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_STORES_MUTATION, newStores)
+
.toPromise();
+
return mutationResult.data.addStores;
+
};
+
export const addEmployees = async employeesToBeAdded => {
+
const newEmployees = { newEmployees: { employees: employeesToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_EMPLOYEES_MUTATION, newEmployees)
+
.toPromise();
+
return mutationResult.data.addEmployees;
+
};
+
export const addAuthors = async authorsToBeAdded => {
+
const newAuthors = { newAuthors: { authors: authorsToBeAdded } };
+
const mutationResult = await urqlClient
+
.mutation(ADD_AUTHORS_MUTATION, newAuthors)
+
.toPromise();
+
return mutationResult.data.addAuthors;
+
};
+53
exchanges/graphcache/benchmarks/entities.js
···
+
// functions to produce objects representing entities => todos, writers, books, stores, employees
+
export const makeTodo = i => ({
+
id: `${i}`,
+
text: `Todo ${i}`,
+
complete: false,
+
});
+
export const makeWriter = i => ({
+
id: `${i}`,
+
name: `Writer ${i}`,
+
amountOfBooks: Math.random() * 100,
+
recognized: Boolean(i % 2),
+
number: i,
+
interests: 'Dragonball-Z',
+
});
+
export const makeBook = i => ({
+
id: `${i}`,
+
title: `Book ${i}`,
+
published: Boolean(i % 2),
+
genre: 'Fantasy',
+
rating: (i / Math.random()) * 100,
+
});
+
export const makeStore = i => ({
+
id: `${i}`,
+
name: `Store ${i}`,
+
country: 'USA',
+
});
+
export const makeEmployee = i => ({
+
id: `${i}`,
+
name: `Employee ${i}`,
+
origin: 'USA',
+
});
+
export const makeAuthor = i => ({
+
id: `${i}`,
+
name: `Author ${i}`,
+
recognized: Boolean(i % 2),
+
book: {
+
id: `${i}`,
+
title: `Book ${i}`,
+
published: Boolean(i % 2),
+
genre: `Non-Fiction`,
+
rating: (i / Math.random()) * 100,
+
review: {
+
id: `${i}`,
+
score: i,
+
name: `Review ${i}`,
+
reviewer: {
+
id: `${i}`,
+
name: `Person ${i}`,
+
verified: Boolean(i % 2),
+
},
+
},
+
},
+
});
+13
exchanges/graphcache/benchmarks/makeEntries.js
···
+
// create a function that will take in a number of times to be run and a function that will produce an entry/entity
+
export const makeEntries = (amount, makeEntry) => {
+
// create array of entries to be outputted
+
const entries = [];
+
// iterate from 0 up to the amount inputted
+
for (let i = 0; i < amount; i += 1) {
+
// each iteration, create an entry and pass it the current index & push it into output array
+
const entry = makeEntry(i);
+
entries.push(entry);
+
}
+
// return array of entries
+
return entries;
+
};
+139
exchanges/graphcache/benchmarks/operations.js
···
+
// create operations, i.e., queries & mutations, to be performed
+
export const ALL_TODOS_QUERY = `
+
query ALL_TODOS_QUERY {
+
todos {
+
id,
+
text,
+
complete
+
}
+
}
+
`;
+
export const ALL_WRITERS_QUERY = `
+
query ALL_WRITERS_QUERY {
+
writers {
+
id,
+
name,
+
amountOfBooks,
+
recognized,
+
number,
+
interests
+
}
+
}
+
`;
+
export const ALL_BOOKS_QUERY = `
+
query ALL_BOOKS_QUERY {
+
books {
+
id,
+
title,
+
published,
+
genre,
+
rating
+
}
+
}
+
`;
+
export const ALL_STORES_QUERY = `
+
query ALL_STORES_QUERY {
+
stores {
+
id,
+
name,
+
country
+
}
+
}
+
`;
+
export const ALL_EMPLOYEES_QUERY = `
+
query ALL_EMPLOYEES_QUERY {
+
employees {
+
id,
+
name,
+
origin
+
}
+
}
+
`;
+
export const ALL_AUTHORS_QUERY = `
+
query ALL_AUTHORS_QUERY {
+
authors {
+
id,
+
name,
+
recognized,
+
book
+
}
+
}
+
`;
+
export const ADD_TODO_MUTATION = `
+
mutation ADD_TODO_MUTATION($text: String!, $complete: Boolean!){
+
addTodo(text: $text, complete: $complete){
+
id,
+
text,
+
complete
+
}
+
}
+
`;
+
export const UPDATE_TODO_MUTATION = `
+
mutation UPDATE_TODO_MUTATION($id: ID!, $complete: Boolean!){
+
updateTodo(id: $id, complete: $complete){
+
id,
+
text,
+
complete
+
}
+
}
+
`;
+
export const ADD_TODOS_MUTATION = `
+
mutation ADD_TODOS_MUTATION($newTodos: NewTodosInput!){
+
addTodos(newTodos: $newTodos){
+
id,
+
text,
+
complete
+
}
+
}
+
`;
+
export const ADD_WRITERS_MUTATION = `
+
mutation ADD_WRITERS_MUTATION($newWriters: NewWritersInput!){
+
addWriters(newWriters: $newWriters){
+
id,
+
name,
+
amountOfBooks,
+
recognized,
+
number,
+
interests
+
}
+
}
+
`;
+
export const ADD_BOOKS_MUTATION = `
+
mutation ADD_BOOKS_MUTATION($newBooks: NewBooksInput!){
+
addBooks(newBooks: $newBooks){
+
id,
+
title,
+
published,
+
genre,
+
rating
+
}
+
}
+
`;
+
export const ADD_STORES_MUTATION = `
+
mutation ADD_STORES_MUTATION($newStores: NewStoresInput!){
+
addStores(newStores: $newStores){
+
id,
+
name,
+
country
+
}
+
}
+
`;
+
export const ADD_EMPLOYEES_MUTATION = `
+
mutation ADD_EMPLOYEES_MUTATION($newEmployees: NewEmployeesInput!){
+
addEmployees(newEmployees: $newEmployees){
+
id,
+
name,
+
origin
+
}
+
}
+
`;
+
export const ADD_AUTHORS_MUTATION = `
+
mutation ADD_AUTHORS_MUTATION($newAuthors: NewAuthorsInput!){
+
addAuthors(newAuthors: $newAuthors){
+
id
+
name
+
recognized
+
book
+
}
+
}
+
`;
+39
exchanges/graphcache/benchmarks/package.json
···
+
{
+
"name": "@urql/exchange-graphcache-tachometer-benchmark",
+
"version": "1.0.0",
+
"description": "Comprehensive Tachometer benchmarks for urql/graphcache",
+
"main": "index.js",
+
"scripts": {
+
"bench": "npm-run-all bench:*",
+
"bench:addTodo": "tachometer addTodo.html",
+
"bench:update": "tachometer updateTodo.html",
+
"bench:write100": "tachometer 100Writes.html",
+
"bench:write100c": "tachometer 100WritesComplex.html",
+
"bench:write500": "tachometer 500Writes.html",
+
"bench:write1000": "tachometer 1000Writes.html",
+
"bench:write1000c": "tachometer 1000WritesComplex.html",
+
"bench:write5000": "tachometer 5000Writes.html",
+
"bench:write10000": "tachometer 10000Writes.html",
+
"bench:write10000c": "tachometer 10000WritesComplex.html",
+
"bench:write50000": "tachometer 50000Writes.html",
+
"bench:read100": "tachometer 100Reads.html",
+
"bench:read100c": "tachometer 100ReadsComplex.html",
+
"bench:read500": "tachometer 500Reads.html",
+
"bench:read1000": "tachometer 1000Reads.html",
+
"bench:read1000c": "tachometer 1000ReadsComplex.html",
+
"bench:read5000": "tachometer 5000Reads.html",
+
"bench:read10000": "tachometer 10000Reads.html",
+
"bench:read10000c": "tachometer 10000ReadsComplex.html",
+
"bench:read50000": "tachometer 50000Reads.html"
+
},
+
"license": "MIT",
+
"dependencies": {
+
"@urql/exchange-execute": "^1.0.3",
+
"@urql/exchange-graphcache": "^3.1.11",
+
"graphql": "^15.4.0",
+
"graphql-tag": "^2.11.0",
+
"npm-run-all": "^4.1.5",
+
"tachometer": "^0.5.5",
+
"urql": "^1.11.3"
+
}
+
}
+37
exchanges/graphcache/benchmarks/readMe.md
···
+
## About
+
+
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.
+
+
## Usage
+
+
#### 1. Install dependencies in repo root.
+
+
To get started, make sure to install necessary dependencies in the root directory of your clone.
+
+
```bash
+
# In root directory
+
yarn or npm i
+
```
+
+
#### 2. Run benchmark(s).
+
+
The commands to run benchmarks follows a certain syntax:
+
npm run `ActionQuantityComplexity` => i.e., npm run read500c
+
read === Action
+
5000 === Quantity
+
c === Complex
+
+
Action & Quantity are required, but c is optional, as not all operations involve a more complex data structure.
+
+
There are two exceptions that don't follow the beformentioned conventions for the commands to run benchmarks. They are `addTodo` & `updateTodo`.
+
They are simply run as follows:
+
+
```
+
npm run addTodo
+
+
npm run updateTodo
+
```
+
+
#### 3. Benchmark Expections
+
+
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
···
+
<!DOCTYPE html>
+
<html lang="en">
+
+
<head>
+
<meta charset="UTF-8" />
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
<title>Update Todo</title>
+
<script>
+
window.process = { env: { NODE_ENV: "development" } };
+
</script>
+
</head>
+
+
<body>
+
<div id="root"></div>
+
<script type="module">
+
import urqlClient from './urqlClient.js';
+
import * as bench from '/bench.js';
+
import { makeEntries } from "./makeEntries.js";
+
import { makeTodo } from "./entities.js";
+
import { getAllTodos, addTodos, updateTodo } from "./benchmarks.js";
+
+
// create todos to be added/written
+
const hundredTodos = makeEntries(100, makeTodo);
+
+
const benchmark = async () => {
+
await addTodos(hundredTodos);
+
// measure how long update of last Todo entity takes on faux server-side (executeExchange) & cache
+
bench.start();
+
await updateTodo({id: "99", complete: true});
+
bench.stop();
+
};
+
+
benchmark();
+
+
</script>
+
</body>
+
+
</html>
+261
exchanges/graphcache/benchmarks/urqlClient.js
···
+
import { createClient, dedupExchange } from '@urql/core';
+
import { cacheExchange } from '@urql/exchange-graphcache';
+
import { executeExchange } from '@urql/exchange-execute';
+
import { buildSchema } from 'graphql';
+
import { ALL_TODOS_QUERY } from './operations';
+
+
export const cache = cacheExchange({
+
updates: {
+
Mutation: {
+
addTodo: (result, args, cache) => {
+
cache.updateQuery({ query: ALL_TODOS_QUERY }, data => {
+
data.todos.push(result.addTodo);
+
return data;
+
});
+
return result;
+
},
+
},
+
},
+
});
+
+
// local schema to be used with Execute Exchange
+
const schema = buildSchema(`
+
type Todo {
+
id: ID!
+
text: String!
+
complete: Boolean!
+
}
+
+
type Writer {
+
id: ID!
+
name: String
+
amountOfBooks: Float!
+
recognized: Boolean!
+
number: Int!
+
interests: String!
+
}
+
+
type Book {
+
id: ID!
+
title: String!
+
published: Boolean!
+
genre: String!
+
rating: Float!
+
review: Review
+
}
+
+
type Store {
+
id: ID!
+
name: String!
+
country: String!
+
}
+
+
type Employee {
+
id: ID!
+
name: String!
+
origin: String!
+
}
+
+
type Author {
+
id: ID!
+
name: String!
+
recognized: Boolean!
+
book: Book!
+
}
+
+
type Review {
+
id: ID!
+
score: Int!
+
name: String!
+
reviewer: Person!
+
}
+
+
type Person {
+
id: ID!
+
name: String!
+
verfied: Boolean!
+
}
+
+
input NewTodo {
+
id: ID!
+
text: String!
+
complete: Boolean!
+
}
+
+
input NewTodosInput {
+
todos: [NewTodo]!
+
}
+
+
input NewWriter {
+
id: ID!
+
name: String
+
amountOfBooks: Float!
+
recognized: Boolean!
+
number: Int!
+
interests: String!
+
}
+
+
input NewWritersInput {
+
writers: [NewWriter]!
+
}
+
+
input NewBook {
+
id: ID!
+
title: String!
+
published: Boolean!
+
genre: String!
+
rating: Float!
+
review: NewReview
+
}
+
+
input NewBooksInput {
+
books: [NewBook]!
+
}
+
+
input NewStore {
+
id: ID!
+
name: String!
+
country: String!
+
}
+
+
input NewStoresInput {
+
stores: [NewStore]!
+
}
+
+
input NewEmployee {
+
id: ID!
+
name: String!
+
origin: String!
+
}
+
+
input NewEmployeesInput {
+
employees: [NewEmployee]!
+
}
+
+
input NewAuthor {
+
id: ID!
+
name: String!
+
recognized: Boolean!
+
book: NewBook!
+
}
+
+
+
input NewAuthorsInput {
+
authors: [NewAuthor]!
+
}
+
+
input NewReview {
+
id: ID!
+
score: Int!
+
name: String!
+
reviewer: NewPerson!
+
}
+
+
input NewPerson {
+
id: ID!
+
name: String!
+
verified: Boolean!
+
}
+
+
type Query {
+
todos: [Todo]!
+
writers: [Writer]!
+
books: [Book]!
+
stores: [Store]!
+
employees: [Employee]!
+
authors: [Author]!
+
}
+
+
type Mutation {
+
addTodo( text: String!, complete: Boolean! ): Todo!
+
updateTodo( id: ID!, complete: Boolean! ): Todo!
+
addTodos( newTodos: NewTodosInput! ): [Todo]!
+
addWriters( newWriters: NewWritersInput! ): [Writer]!
+
addBooks( newBooks: NewBooksInput! ): [Book]!
+
addStores( newStores: NewStoresInput! ): [Store]!
+
addEmployees( newEmployees: NewEmployeesInput! ): [Employee]!
+
addAuthors( newAuthors: NewAuthorsInput! ): [Author]!
+
}
+
`);
+
+
// local state to be used with Execute Exchange
+
const todos = [];
+
const writers = [];
+
const books = [];
+
const stores = [];
+
const employees = [];
+
const authors = [];
+
+
// root value with resolvers to be used with Execute Exchange
+
const rootValue = {
+
todos: () => {
+
return todos;
+
},
+
writers: () => {
+
return writers;
+
},
+
books: () => {
+
return books;
+
},
+
stores: () => {
+
return stores;
+
},
+
employees: () => {
+
return employees;
+
},
+
authors: () => {
+
return authors;
+
},
+
addTodo: args => {
+
const todo = { id: todos.length.toString(), ...args };
+
todos.push(todo);
+
return todo;
+
},
+
updateTodo: ({ id, complete }) => {
+
const [todoToBeUpdated] = todos.filter(todo => todo.id === id);
+
todoToBeUpdated.complete = complete;
+
return todoToBeUpdated;
+
},
+
addTodos: ({ newTodos }) => {
+
const todosToBeAdded = newTodos.todos;
+
todos.push(...todosToBeAdded);
+
return todos;
+
},
+
addWriters: ({ newWriters }) => {
+
const writersToBeAdded = newWriters.writers;
+
writers.push(...writersToBeAdded);
+
return writers;
+
},
+
addBooks: ({ newBooks }) => {
+
const booksToBeAdded = newBooks.books;
+
books.push(...booksToBeAdded);
+
return books;
+
},
+
addStores: ({ newStores }) => {
+
const storesToBeAdded = newStores.stores;
+
stores.push(...storesToBeAdded);
+
return stores;
+
},
+
addEmployees: ({ newEmployees }) => {
+
const employeesToBeAdded = newEmployees.employees;
+
employees.push(...employeesToBeAdded);
+
return employees;
+
},
+
addAuthors: ({ newAuthors }) => {
+
const authorsToBeAdded = newAuthors.authors;
+
authors.push(...authorsToBeAdded);
+
return authors;
+
},
+
};
+
+
const client = createClient({
+
url: 'http://localhost:3000/graphql',
+
exchanges: [
+
dedupExchange,
+
cache,
+
// cacheExchange({}),
+
executeExchange({ schema, rootValue }),
+
],
+
});
+
+
export default client;
+1942
exchanges/graphcache/benchmarks/yarn.lock
···
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+
# yarn lockfile v1
+
+
+
"@babel/code-frame@^7.10.4":
+
version "7.10.4"
+
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+
dependencies:
+
"@babel/highlight" "^7.10.4"
+
+
"@babel/generator@^7.12.5", "@babel/generator@^7.4.4":
+
version "7.12.5"
+
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de"
+
integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==
+
dependencies:
+
"@babel/types" "^7.12.5"
+
jsesc "^2.5.1"
+
source-map "^0.5.0"
+
+
"@babel/helper-function-name@^7.10.4":
+
version "7.10.4"
+
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
+
integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
+
dependencies:
+
"@babel/helper-get-function-arity" "^7.10.4"
+
"@babel/template" "^7.10.4"
+
"@babel/types" "^7.10.4"
+
+
"@babel/helper-get-function-arity@^7.10.4":
+
version "7.10.4"
+
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
+
integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
+
dependencies:
+
"@babel/types" "^7.10.4"
+
+
"@babel/helper-split-export-declaration@^7.11.0":
+
version "7.11.0"
+
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
+
integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
+
dependencies:
+
"@babel/types" "^7.11.0"
+
+
"@babel/helper-validator-identifier@^7.10.4":
+
version "7.10.4"
+
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
+
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+
+
"@babel/highlight@^7.10.4":
+
version "7.10.4"
+
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+
integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
+
dependencies:
+
"@babel/helper-validator-identifier" "^7.10.4"
+
chalk "^2.0.0"
+
js-tokens "^4.0.0"
+
+
"@babel/parser@^7.12.7", "@babel/parser@^7.4.5":
+
version "7.12.7"
+
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056"
+
integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==
+
+
"@babel/template@^7.10.4":
+
version "7.12.7"
+
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
+
integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
+
dependencies:
+
"@babel/code-frame" "^7.10.4"
+
"@babel/parser" "^7.12.7"
+
"@babel/types" "^7.12.7"
+
+
"@babel/traverse@^7.4.5":
+
version "7.12.9"
+
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f"
+
integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==
+
dependencies:
+
"@babel/code-frame" "^7.10.4"
+
"@babel/generator" "^7.12.5"
+
"@babel/helper-function-name" "^7.10.4"
+
"@babel/helper-split-export-declaration" "^7.11.0"
+
"@babel/parser" "^7.12.7"
+
"@babel/types" "^7.12.7"
+
debug "^4.1.0"
+
globals "^11.1.0"
+
lodash "^4.17.19"
+
+
"@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":
+
version "7.12.7"
+
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13"
+
integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==
+
dependencies:
+
"@babel/helper-validator-identifier" "^7.10.4"
+
lodash "^4.17.19"
+
to-fast-properties "^2.0.0"
+
+
"@graphql-typed-document-node/core@^3.1.0":
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.0.tgz#0eee6373e11418bfe0b5638f654df7a4ca6a3950"
+
integrity sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==
+
+
"@sindresorhus/is@^4.0.0":
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4"
+
integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==
+
+
"@szmarczak/http-timer@^4.0.5":
+
version "4.0.5"
+
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152"
+
integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==
+
dependencies:
+
defer-to-connect "^2.0.0"
+
+
"@types/babel__generator@^7.6.1":
+
version "7.6.2"
+
resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8"
+
integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==
+
dependencies:
+
"@babel/types" "^7.0.0"
+
+
"@types/cacheable-request@^6.0.1":
+
version "6.0.1"
+
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976"
+
integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==
+
dependencies:
+
"@types/http-cache-semantics" "*"
+
"@types/keyv" "*"
+
"@types/node" "*"
+
"@types/responselike" "*"
+
+
"@types/command-line-usage@^5.0.1":
+
version "5.0.1"
+
resolved "https://registry.yarnpkg.com/@types/command-line-usage/-/command-line-usage-5.0.1.tgz#99424950da567ba67b6b65caee57ff03c4e751ec"
+
integrity sha512-/xUgezxxYePeXhg5S04hUjxG9JZi+rJTs1+4NwpYPfSaS7BeDa6tVJkH6lN9Cb6rl8d24Fi2uX0s0Ngg2JT6gg==
+
+
"@types/execa@^0.9.0":
+
version "0.9.0"
+
resolved "https://registry.yarnpkg.com/@types/execa/-/execa-0.9.0.tgz#9b025d2755f17e80beaf9368c3f4f319d8b0fb93"
+
integrity sha512-mgfd93RhzjYBUHHV532turHC2j4l/qxsF/PbfDmprHDEUHmNZGlDn1CEsulGK3AfsPdhkWzZQT/S/k0UGhLGsA==
+
dependencies:
+
"@types/node" "*"
+
+
"@types/http-cache-semantics@*":
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a"
+
integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==
+
+
"@types/keyv@*":
+
version "3.1.1"
+
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7"
+
integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==
+
dependencies:
+
"@types/node" "*"
+
+
"@types/node@*":
+
version "14.14.10"
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.10.tgz#5958a82e41863cfc71f2307b3748e3491ba03785"
+
integrity sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==
+
+
"@types/node@^11.9.4":
+
version "11.15.39"
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-11.15.39.tgz#00043d22cb2814c0ca32ef17e789911aa2325d9a"
+
integrity sha512-vVNBFg0n7vd2GuIEDa/s854RpcqAMRer/8IPmhKCYEoC2cLDGeTPNwlnAmSoI0sddOPhTb82DDWeHMrqEi5p3w==
+
+
"@types/parse5@^5.0.0":
+
version "5.0.3"
+
resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109"
+
integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==
+
+
"@types/responselike@*", "@types/responselike@^1.0.0":
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
+
integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==
+
dependencies:
+
"@types/node" "*"
+
+
"@types/selenium-webdriver@^4.0.5":
+
version "4.0.10"
+
resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-4.0.10.tgz#1aa370a14747b51752e65622999848c4f037b058"
+
integrity sha512-Xavn3fE+uM2aeIHtefIwpy0zAf2HQOyip/jU7ZR0ailt/B0ww/TJ6yMnfZ5pM0F4+Kx+9AQSnxQio3P5QAl1yQ==
+
+
"@types/table@^6.0.0":
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/@types/table/-/table-6.0.0.tgz#c3e8f1e0d80525036a7655fd650409e0230f1ead"
+
integrity sha512-RSmRiYetRzpcZcgNo4x6C1VSsPGBHCGGDO7Rbnz5esVLbGONxBP1CUcn8JhAkVzUVLO+AY8yOSkb27jvfauLyg==
+
+
"@urql/core@>=1.15.1", "@urql/core@>=1.16.0", "@urql/core@^1.16.0":
+
version "1.16.0"
+
resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.16.0.tgz#e83a2c9f744ae7804f79a4077f77701cf68b80f4"
+
integrity sha512-bGdxlVRm02q9jIj463jRNthM5haia1lccob1gXDUhpAWXJY58xYgnFPuv0pYf/MqsM67nizZRLhHgf84Knb9ZQ==
+
dependencies:
+
"@graphql-typed-document-node/core" "^3.1.0"
+
wonka "^4.0.14"
+
+
"@urql/exchange-execute@^1.0.3":
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/@urql/exchange-execute/-/exchange-execute-1.0.3.tgz#fed6644b955de5eff9401312fa4a2b869485d310"
+
integrity sha512-N3dQQ0W5Vmw64b3xgHvpHSf+n7QTHvmS6FutuEwASRjVHmjlQCgbHzntSyzWefXBC+rkQ/JygcWyO1vP6mOrnA==
+
dependencies:
+
"@urql/core" ">=1.15.1"
+
wonka "^4.0.14"
+
+
"@urql/exchange-graphcache@^3.1.11":
+
version "3.3.1"
+
resolved "https://registry.yarnpkg.com/@urql/exchange-graphcache/-/exchange-graphcache-3.3.1.tgz#4bbe3708b1a41897de8cd05817ddaa61499e23a0"
+
integrity sha512-GrqwYICXguMCc0IbMsSPZHbiQ8/s0g0gURD56NTSZYrk2jj33OYuFIL6jcDJNysRkCmUQ/ZSX4pD5qYVboggcw==
+
dependencies:
+
"@urql/core" ">=1.16.0"
+
wonka "^4.0.14"
+
+
accepts@^1.3.5:
+
version "1.3.7"
+
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+
integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+
dependencies:
+
mime-types "~2.1.24"
+
negotiator "0.6.2"
+
+
ajv@^6.12.4:
+
version "6.12.6"
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+
dependencies:
+
fast-deep-equal "^3.1.1"
+
fast-json-stable-stringify "^2.0.0"
+
json-schema-traverse "^0.4.1"
+
uri-js "^4.2.2"
+
+
ansi-escape-sequences@^5.0.0:
+
version "5.1.2"
+
resolved "https://registry.yarnpkg.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz#b24471db2073009ebe28a7044ac7436bbd3d28e7"
+
integrity sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw==
+
dependencies:
+
array-back "^4.0.0"
+
+
ansi-regex@^5.0.0:
+
version "5.0.0"
+
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+
ansi-styles@^3.2.1:
+
version "3.2.1"
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+
dependencies:
+
color-convert "^1.9.0"
+
+
ansi-styles@^4.0.0:
+
version "4.3.0"
+
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+
dependencies:
+
color-convert "^2.0.1"
+
+
any-promise@^1.1.0:
+
version "1.3.0"
+
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
+
+
array-back@^3.0.1:
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
+
integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
+
+
array-back@^4.0.0, array-back@^4.0.1:
+
version "4.0.1"
+
resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90"
+
integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==
+
+
astral-regex@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+
at-least-node@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
+
balanced-match@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+
brace-expansion@^1.1.7:
+
version "1.1.11"
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+
dependencies:
+
balanced-match "^1.0.0"
+
concat-map "0.0.1"
+
+
buffer-equal-constant-time@1.0.1:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
+
+
buffer-from@^1.0.0:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+
bytes@3.1.0:
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+
cache-content-type@^1.0.0:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
+
integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
+
dependencies:
+
mime-types "^2.1.18"
+
ylru "^1.2.0"
+
+
cacheable-lookup@^5.0.3:
+
version "5.0.3"
+
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz#049fdc59dffdd4fc285e8f4f82936591bd59fec3"
+
integrity sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==
+
+
cacheable-request@^7.0.1:
+
version "7.0.1"
+
resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz#062031c2856232782ed694a257fa35da93942a58"
+
integrity sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==
+
dependencies:
+
clone-response "^1.0.2"
+
get-stream "^5.1.0"
+
http-cache-semantics "^4.0.0"
+
keyv "^4.0.0"
+
lowercase-keys "^2.0.0"
+
normalize-url "^4.1.0"
+
responselike "^2.0.0"
+
+
call-bind@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce"
+
integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==
+
dependencies:
+
function-bind "^1.1.1"
+
get-intrinsic "^1.0.0"
+
+
chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+
version "2.4.2"
+
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+
dependencies:
+
ansi-styles "^3.2.1"
+
escape-string-regexp "^1.0.5"
+
supports-color "^5.3.0"
+
+
clone-response@^1.0.2:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+
integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
+
dependencies:
+
mimic-response "^1.0.0"
+
+
co-body@^6.0.0:
+
version "6.1.0"
+
resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547"
+
integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==
+
dependencies:
+
inflation "^2.0.0"
+
qs "^6.5.2"
+
raw-body "^2.3.3"
+
type-is "^1.6.16"
+
+
co@^4.6.0:
+
version "4.6.0"
+
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+
color-convert@^1.9.0:
+
version "1.9.3"
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+
dependencies:
+
color-name "1.1.3"
+
+
color-convert@^2.0.1:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+
dependencies:
+
color-name "~1.1.4"
+
+
color-name@1.1.3:
+
version "1.1.3"
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+
color-name@~1.1.4:
+
version "1.1.4"
+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+
command-line-args@^5.0.2:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a"
+
integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==
+
dependencies:
+
array-back "^3.0.1"
+
find-replace "^3.0.0"
+
lodash.camelcase "^4.3.0"
+
typical "^4.0.0"
+
+
command-line-usage@^6.1.0:
+
version "6.1.1"
+
resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.1.tgz#c908e28686108917758a49f45efb4f02f76bc03f"
+
integrity sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==
+
dependencies:
+
array-back "^4.0.1"
+
chalk "^2.4.2"
+
table-layout "^1.0.1"
+
typical "^5.2.0"
+
+
concat-map@0.0.1:
+
version "0.0.1"
+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+
content-disposition@~0.5.2:
+
version "0.5.3"
+
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+
integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+
dependencies:
+
safe-buffer "5.1.2"
+
+
content-type@^1.0.4:
+
version "1.0.4"
+
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+
cookies@~0.8.0:
+
version "0.8.0"
+
resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
+
integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
+
dependencies:
+
depd "~2.0.0"
+
keygrip "~1.1.0"
+
+
copy-to@^2.0.1:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
+
integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=
+
+
core-util-is@~1.0.0:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+
version "6.0.5"
+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+
dependencies:
+
nice-try "^1.0.4"
+
path-key "^2.0.1"
+
semver "^5.5.0"
+
shebang-command "^1.2.0"
+
which "^1.2.9"
+
+
csv-stringify@^5.3.0:
+
version "5.5.3"
+
resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.5.3.tgz#b7a287daee7492de3722b13dccb238f2d60db522"
+
integrity sha512-JKG8vIHpWPzdilp2SAmvjmAiIhD+XGKGdhZBGi8QIECgJAsFr7k5CmJIW2QkSxBBsctvmojM25s+UINzQ5NLTg==
+
+
debug@^3.1.0:
+
version "3.2.7"
+
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+
dependencies:
+
ms "^2.1.1"
+
+
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+
version "4.3.1"
+
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+
dependencies:
+
ms "2.1.2"
+
+
debug@~3.1.0:
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+
dependencies:
+
ms "2.0.0"
+
+
decompress-response@^6.0.0:
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
+
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
+
dependencies:
+
mimic-response "^3.1.0"
+
+
deep-equal@~1.0.1:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
+
+
deep-extend@~0.6.0:
+
version "0.6.0"
+
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+
defer-to-connect@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1"
+
integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==
+
+
define-properties@^1.1.3:
+
version "1.1.3"
+
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+
dependencies:
+
object-keys "^1.0.12"
+
+
delegates@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
+
depd@^1.1.2, depd@~1.1.2:
+
version "1.1.2"
+
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+
depd@~2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+
destroy@^1.0.4:
+
version "1.0.4"
+
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+
ecdsa-sig-formatter@1.0.11:
+
version "1.0.11"
+
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+
integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
+
dependencies:
+
safe-buffer "^5.0.1"
+
+
ee-first@1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+
emoji-regex@^8.0.0:
+
version "8.0.0"
+
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+
encodeurl@^1.0.2:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+
end-of-stream@^1.1.0:
+
version "1.4.4"
+
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+
dependencies:
+
once "^1.4.0"
+
+
error-ex@^1.3.1:
+
version "1.3.2"
+
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+
dependencies:
+
is-arrayish "^0.2.1"
+
+
es-abstract@^1.18.0-next.1:
+
version "1.18.0-next.1"
+
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
+
integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
+
dependencies:
+
es-to-primitive "^1.2.1"
+
function-bind "^1.1.1"
+
has "^1.0.3"
+
has-symbols "^1.0.1"
+
is-callable "^1.2.2"
+
is-negative-zero "^2.0.0"
+
is-regex "^1.1.1"
+
object-inspect "^1.8.0"
+
object-keys "^1.1.1"
+
object.assign "^4.1.1"
+
string.prototype.trimend "^1.0.1"
+
string.prototype.trimstart "^1.0.1"
+
+
es-to-primitive@^1.2.1:
+
version "1.2.1"
+
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+
integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+
dependencies:
+
is-callable "^1.1.4"
+
is-date-object "^1.0.1"
+
is-symbol "^1.0.2"
+
+
escape-html@^1.0.3:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+
escape-string-regexp@^1.0.5:
+
version "1.0.5"
+
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+
execa@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+
dependencies:
+
cross-spawn "^6.0.0"
+
get-stream "^4.0.0"
+
is-stream "^1.1.0"
+
npm-run-path "^2.0.0"
+
p-finally "^1.0.0"
+
signal-exit "^3.0.0"
+
strip-eof "^1.0.0"
+
+
fast-deep-equal@^3.1.1:
+
version "3.1.3"
+
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+
fast-json-stable-stringify@^2.0.0:
+
version "2.1.0"
+
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+
find-replace@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
+
integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
+
dependencies:
+
array-back "^3.0.1"
+
+
find-up@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+
integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+
dependencies:
+
locate-path "^3.0.0"
+
+
fresh@~0.5.2:
+
version "0.5.2"
+
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+
fs-extra@^9.0.1:
+
version "9.0.1"
+
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
+
integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==
+
dependencies:
+
at-least-node "^1.0.0"
+
graceful-fs "^4.2.0"
+
jsonfile "^6.0.1"
+
universalify "^1.0.0"
+
+
fs.realpath@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+
function-bind@^1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+
get-intrinsic@^1.0.0:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be"
+
integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
+
dependencies:
+
function-bind "^1.1.1"
+
has "^1.0.3"
+
has-symbols "^1.0.1"
+
+
get-stream@^4.0.0:
+
version "4.1.0"
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+
dependencies:
+
pump "^3.0.0"
+
+
get-stream@^5.1.0:
+
version "5.2.0"
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+
dependencies:
+
pump "^3.0.0"
+
+
get-stream@^6.0.0:
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
+
integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
+
+
glob@^7.1.3:
+
version "7.1.6"
+
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+
dependencies:
+
fs.realpath "^1.0.0"
+
inflight "^1.0.4"
+
inherits "2"
+
minimatch "^3.0.4"
+
once "^1.3.0"
+
path-is-absolute "^1.0.0"
+
+
globals@^11.1.0:
+
version "11.12.0"
+
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+
got@^11.5.0:
+
version "11.8.0"
+
resolved "https://registry.yarnpkg.com/got/-/got-11.8.0.tgz#be0920c3586b07fd94add3b5b27cb28f49e6545f"
+
integrity sha512-k9noyoIIY9EejuhaBNLyZ31D5328LeqnyPNXJQb2XlJZcKakLqN5m6O/ikhq/0lw56kUYS54fVm+D1x57YC9oQ==
+
dependencies:
+
"@sindresorhus/is" "^4.0.0"
+
"@szmarczak/http-timer" "^4.0.5"
+
"@types/cacheable-request" "^6.0.1"
+
"@types/responselike" "^1.0.0"
+
cacheable-lookup "^5.0.3"
+
cacheable-request "^7.0.1"
+
decompress-response "^6.0.0"
+
http2-wrapper "^1.0.0-beta.5.2"
+
lowercase-keys "^2.0.0"
+
p-cancelable "^2.0.0"
+
responselike "^2.0.0"
+
+
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+
version "4.2.4"
+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
+
graphql-tag@^2.11.0:
+
version "2.11.0"
+
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd"
+
integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==
+
+
graphql@^15.4.0:
+
version "15.4.0"
+
resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.4.0.tgz#e459dea1150da5a106486ba7276518b5295a4347"
+
integrity sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==
+
+
has-flag@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+
has-symbols@^1.0.1:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+
integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+
+
has@^1.0.3:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+
dependencies:
+
function-bind "^1.1.1"
+
+
hosted-git-info@^2.1.4:
+
version "2.8.8"
+
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+
integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
+
+
http-assert@^1.3.0:
+
version "1.4.1"
+
resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
+
integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
+
dependencies:
+
deep-equal "~1.0.1"
+
http-errors "~1.7.2"
+
+
http-cache-semantics@^4.0.0:
+
version "4.1.0"
+
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+
+
http-errors@1.7.3, http-errors@~1.7.2:
+
version "1.7.3"
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+
dependencies:
+
depd "~1.1.2"
+
inherits "2.0.4"
+
setprototypeof "1.1.1"
+
statuses ">= 1.5.0 < 2"
+
toidentifier "1.0.0"
+
+
http-errors@^1.6.3, http-errors@^1.7.3:
+
version "1.8.0"
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
+
integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
+
dependencies:
+
depd "~1.1.2"
+
inherits "2.0.4"
+
setprototypeof "1.2.0"
+
statuses ">= 1.5.0 < 2"
+
toidentifier "1.0.0"
+
+
http-errors@~1.6.2:
+
version "1.6.3"
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+
integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
+
dependencies:
+
depd "~1.1.2"
+
inherits "2.0.3"
+
setprototypeof "1.1.0"
+
statuses ">= 1.4.0 < 2"
+
+
http2-wrapper@^1.0.0-beta.5.2:
+
version "1.0.0-beta.5.2"
+
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz#8b923deb90144aea65cf834b016a340fc98556f3"
+
integrity sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==
+
dependencies:
+
quick-lru "^5.1.1"
+
resolve-alpn "^1.0.0"
+
+
iconv-lite@0.4.24:
+
version "0.4.24"
+
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+
dependencies:
+
safer-buffer ">= 2.1.2 < 3"
+
+
immediate@~3.0.5:
+
version "3.0.6"
+
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+
integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
+
+
inflation@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
+
integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=
+
+
inflight@^1.0.4:
+
version "1.0.6"
+
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+
dependencies:
+
once "^1.3.0"
+
wrappy "1"
+
+
inherits@2, inherits@2.0.4, inherits@~2.0.3:
+
version "2.0.4"
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+
inherits@2.0.3:
+
version "2.0.3"
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+
is-arrayish@^0.2.1:
+
version "0.2.1"
+
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+
is-callable@^1.1.4, is-callable@^1.2.2:
+
version "1.2.2"
+
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
+
integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
+
+
is-core-module@^2.1.0:
+
version "2.2.0"
+
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
+
integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
+
dependencies:
+
has "^1.0.3"
+
+
is-date-object@^1.0.1:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+
integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+
+
is-fullwidth-code-point@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+
is-generator-function@^1.0.7:
+
version "1.0.8"
+
resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
+
integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
+
+
is-negative-zero@^2.0.0:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+
integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+
+
is-regex@^1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
+
integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
+
dependencies:
+
has-symbols "^1.0.1"
+
+
is-stream@^1.1.0:
+
version "1.1.0"
+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+
is-symbol@^1.0.2:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+
integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+
dependencies:
+
has-symbols "^1.0.1"
+
+
isarray@~1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+
isexe@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+
js-tokens@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+
jsesc@^2.5.1:
+
version "2.5.2"
+
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+
json-buffer@3.0.1:
+
version "3.0.1"
+
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
+
json-parse-better-errors@^1.0.1:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+
json-schema-traverse@^0.4.1:
+
version "0.4.1"
+
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+
jsonfile@^6.0.1:
+
version "6.1.0"
+
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+
dependencies:
+
universalify "^2.0.0"
+
optionalDependencies:
+
graceful-fs "^4.1.6"
+
+
jsonschema@^1.2.4:
+
version "1.4.0"
+
resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2"
+
integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==
+
+
jsonwebtoken@^8.5.1:
+
version "8.5.1"
+
resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+
integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+
dependencies:
+
jws "^3.2.2"
+
lodash.includes "^4.3.0"
+
lodash.isboolean "^3.0.3"
+
lodash.isinteger "^4.0.4"
+
lodash.isnumber "^3.0.3"
+
lodash.isplainobject "^4.0.6"
+
lodash.isstring "^4.0.1"
+
lodash.once "^4.0.0"
+
ms "^2.1.1"
+
semver "^5.6.0"
+
+
jstat@^1.9.2:
+
version "1.9.4"
+
resolved "https://registry.yarnpkg.com/jstat/-/jstat-1.9.4.tgz#5b787bcbc6353f54904307f2a4e6d4a4a1897f39"
+
integrity sha512-IiTPlI7pcrsq41EpDzrghlA1fhiC9GXxNqO4k5ogsjsM1XAWQ8zESH/bZsExLVgQsYpXE+7c11kEbbuxTLUpJQ==
+
+
jszip@^3.5.0:
+
version "3.5.0"
+
resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6"
+
integrity sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==
+
dependencies:
+
lie "~3.3.0"
+
pako "~1.0.2"
+
readable-stream "~2.3.6"
+
set-immediate-shim "~1.0.1"
+
+
jwa@^1.4.1:
+
version "1.4.1"
+
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
+
integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
+
dependencies:
+
buffer-equal-constant-time "1.0.1"
+
ecdsa-sig-formatter "1.0.11"
+
safe-buffer "^5.0.1"
+
+
jws@^3.2.2:
+
version "3.2.2"
+
resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
+
integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
+
dependencies:
+
jwa "^1.4.1"
+
safe-buffer "^5.0.1"
+
+
keygrip@~1.1.0:
+
version "1.1.0"
+
resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
+
integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
+
dependencies:
+
tsscmp "1.0.6"
+
+
keyv@^4.0.0:
+
version "4.0.3"
+
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254"
+
integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==
+
dependencies:
+
json-buffer "3.0.1"
+
+
koa-bodyparser@^4.2.1:
+
version "4.3.0"
+
resolved "https://registry.yarnpkg.com/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a"
+
integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==
+
dependencies:
+
co-body "^6.0.0"
+
copy-to "^2.0.1"
+
+
koa-compose@^3.0.0:
+
version "3.2.1"
+
resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
+
integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
+
dependencies:
+
any-promise "^1.1.0"
+
+
koa-compose@^4.1.0:
+
version "4.1.0"
+
resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
+
integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
+
+
koa-convert@^1.2.0:
+
version "1.2.0"
+
resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
+
integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
+
dependencies:
+
co "^4.6.0"
+
koa-compose "^3.0.0"
+
+
koa-mount@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c"
+
integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==
+
dependencies:
+
debug "^4.0.1"
+
koa-compose "^4.1.0"
+
+
koa-node-resolve@^1.0.0-pre.8:
+
version "1.0.0-pre.9"
+
resolved "https://registry.yarnpkg.com/koa-node-resolve/-/koa-node-resolve-1.0.0-pre.9.tgz#25e928ccc70ee9960c9615cab84fbfa25a1f608f"
+
integrity sha512-WKgqe5TGVD6zuR3NrKnmbb/NNHIbWOCezQVqqnyQLdtLLXWgiothlUQT23S5qQGE0Z623jp6jxpMjvAqyrcZFQ==
+
dependencies:
+
"@babel/generator" "^7.4.4"
+
"@babel/parser" "^7.4.5"
+
"@babel/traverse" "^7.4.5"
+
"@types/babel__generator" "^7.6.1"
+
"@types/parse5" "^5.0.0"
+
get-stream "^5.1.0"
+
parse5 "^5.1.0"
+
resolve "^1.11.0"
+
+
koa-send@^5.0.0:
+
version "5.0.1"
+
resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
+
integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
+
dependencies:
+
debug "^4.1.1"
+
http-errors "^1.7.3"
+
resolve-path "^1.4.0"
+
+
koa-static@^5.0.0:
+
version "5.0.0"
+
resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943"
+
integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==
+
dependencies:
+
debug "^3.1.0"
+
koa-send "^5.0.0"
+
+
koa@^2.11.0:
+
version "2.13.0"
+
resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.0.tgz#25217e05efd3358a7e5ddec00f0a380c9b71b501"
+
integrity sha512-i/XJVOfPw7npbMv67+bOeXr3gPqOAw6uh5wFyNs3QvJ47tUx3M3V9rIE0//WytY42MKz4l/MXKyGkQ2LQTfLUQ==
+
dependencies:
+
accepts "^1.3.5"
+
cache-content-type "^1.0.0"
+
content-disposition "~0.5.2"
+
content-type "^1.0.4"
+
cookies "~0.8.0"
+
debug "~3.1.0"
+
delegates "^1.0.0"
+
depd "^1.1.2"
+
destroy "^1.0.4"
+
encodeurl "^1.0.2"
+
escape-html "^1.0.3"
+
fresh "~0.5.2"
+
http-assert "^1.3.0"
+
http-errors "^1.6.3"
+
is-generator-function "^1.0.7"
+
koa-compose "^4.1.0"
+
koa-convert "^1.2.0"
+
on-finished "^2.3.0"
+
only "~0.0.2"
+
parseurl "^1.3.2"
+
statuses "^1.5.0"
+
type-is "^1.6.16"
+
vary "^1.1.2"
+
+
lie@~3.3.0:
+
version "3.3.0"
+
resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
+
integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
+
dependencies:
+
immediate "~3.0.5"
+
+
load-json-file@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+
integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+
dependencies:
+
graceful-fs "^4.1.2"
+
parse-json "^4.0.0"
+
pify "^3.0.0"
+
strip-bom "^3.0.0"
+
+
locate-path@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+
integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+
dependencies:
+
p-locate "^3.0.0"
+
path-exists "^3.0.0"
+
+
lodash.camelcase@^4.3.0:
+
version "4.3.0"
+
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+
integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
+
+
lodash.includes@^4.3.0:
+
version "4.3.0"
+
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+
integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
+
lodash.isboolean@^3.0.3:
+
version "3.0.3"
+
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+
integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
+
lodash.isinteger@^4.0.4:
+
version "4.0.4"
+
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+
integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+
lodash.isnumber@^3.0.3:
+
version "3.0.3"
+
resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+
integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+
lodash.isplainobject@^4.0.6:
+
version "4.0.6"
+
resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+
integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+
lodash.isstring@^4.0.1:
+
version "4.0.1"
+
resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+
integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
+
lodash.once@^4.0.0:
+
version "4.1.1"
+
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
+
lodash@^4.17.19, lodash@^4.17.20:
+
version "4.17.20"
+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+
+
lowercase-keys@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
+
lru-cache@^6.0.0:
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+
dependencies:
+
yallist "^4.0.0"
+
+
media-typer@0.3.0:
+
version "0.3.0"
+
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+
memorystream@^0.3.1:
+
version "0.3.1"
+
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
+
integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
+
+
mime-db@1.44.0:
+
version "1.44.0"
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+
integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+
+
mime-types@^2.1.18, mime-types@~2.1.24:
+
version "2.1.27"
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+
integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+
dependencies:
+
mime-db "1.44.0"
+
+
mimic-response@^1.0.0:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
+
mimic-response@^3.1.0:
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
+
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
+
+
minimatch@^3.0.4:
+
version "3.0.4"
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+
dependencies:
+
brace-expansion "^1.1.7"
+
+
ms@2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+
ms@2.1.2, ms@^2.1.1:
+
version "2.1.2"
+
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+
negotiator@0.6.2:
+
version "0.6.2"
+
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+
+
nice-try@^1.0.4:
+
version "1.0.5"
+
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+
normalize-package-data@^2.3.2:
+
version "2.5.0"
+
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+
dependencies:
+
hosted-git-info "^2.1.4"
+
resolve "^1.10.0"
+
semver "2 || 3 || 4 || 5"
+
validate-npm-package-license "^3.0.1"
+
+
normalize-url@^4.1.0:
+
version "4.5.0"
+
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
+
integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
+
+
npm-run-all@^4.1.5:
+
version "4.1.5"
+
resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba"
+
integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==
+
dependencies:
+
ansi-styles "^3.2.1"
+
chalk "^2.4.1"
+
cross-spawn "^6.0.5"
+
memorystream "^0.3.1"
+
minimatch "^3.0.4"
+
pidtree "^0.3.0"
+
read-pkg "^3.0.0"
+
shell-quote "^1.6.1"
+
string.prototype.padend "^3.0.0"
+
+
npm-run-path@^2.0.0:
+
version "2.0.2"
+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+
integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+
dependencies:
+
path-key "^2.0.0"
+
+
object-inspect@^1.8.0:
+
version "1.9.0"
+
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
+
integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
+
+
object-keys@^1.0.12, object-keys@^1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+
object.assign@^4.1.1:
+
version "4.1.2"
+
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+
integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+
dependencies:
+
call-bind "^1.0.0"
+
define-properties "^1.1.3"
+
has-symbols "^1.0.1"
+
object-keys "^1.1.1"
+
+
on-finished@^2.3.0:
+
version "2.3.0"
+
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+
integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+
dependencies:
+
ee-first "1.1.1"
+
+
once@^1.3.0, once@^1.3.1, once@^1.4.0:
+
version "1.4.0"
+
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+
dependencies:
+
wrappy "1"
+
+
only@~0.0.2:
+
version "0.0.2"
+
resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
+
integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
+
+
p-cancelable@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e"
+
integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==
+
+
p-finally@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+
p-limit@^2.0.0:
+
version "2.3.0"
+
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+
dependencies:
+
p-try "^2.0.0"
+
+
p-locate@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+
integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+
dependencies:
+
p-limit "^2.0.0"
+
+
p-try@^2.0.0:
+
version "2.2.0"
+
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+
pako@~1.0.2:
+
version "1.0.11"
+
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+
parse-json@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+
integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+
dependencies:
+
error-ex "^1.3.1"
+
json-parse-better-errors "^1.0.1"
+
+
parse5@^5.1.0:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
+
integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
+
+
parseurl@^1.3.2:
+
version "1.3.3"
+
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+
path-exists@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+
path-is-absolute@1.0.1, path-is-absolute@^1.0.0:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+
path-key@^2.0.0, path-key@^2.0.1:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+
path-parse@^1.0.6:
+
version "1.0.6"
+
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
+
path-type@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+
integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+
dependencies:
+
pify "^3.0.0"
+
+
pidtree@^0.3.0:
+
version "0.3.1"
+
resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a"
+
integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==
+
+
pify@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+
pkg-install@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/pkg-install/-/pkg-install-1.0.0.tgz#a0c2e64e14d1733d670571489c303605527063fe"
+
integrity sha512-UGI8bfhrDb1KN01RZ7Bq08GRQc8rmVjxQ2up0g4mUHPCYDTK1FzQ0PMmLOBCHg3yaIijZ2U3Fn9ofLa4N392Ug==
+
dependencies:
+
"@types/execa" "^0.9.0"
+
"@types/node" "^11.9.4"
+
execa "^1.0.0"
+
+
pkg-up@^3.1.0:
+
version "3.1.0"
+
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
+
integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
+
dependencies:
+
find-up "^3.0.0"
+
+
process-nextick-args@~2.0.0:
+
version "2.0.1"
+
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+
progress@^2.0.3:
+
version "2.0.3"
+
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+
pump@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+
dependencies:
+
end-of-stream "^1.1.0"
+
once "^1.3.1"
+
+
punycode@^2.1.0:
+
version "2.1.1"
+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+
qs@^6.5.2:
+
version "6.9.4"
+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687"
+
integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==
+
+
quick-lru@^5.1.1:
+
version "5.1.1"
+
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+
raw-body@^2.3.3:
+
version "2.4.1"
+
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
+
integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
+
dependencies:
+
bytes "3.1.0"
+
http-errors "1.7.3"
+
iconv-lite "0.4.24"
+
unpipe "1.0.0"
+
+
read-pkg@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+
integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+
dependencies:
+
load-json-file "^4.0.0"
+
normalize-package-data "^2.3.2"
+
path-type "^3.0.0"
+
+
readable-stream@~2.3.6:
+
version "2.3.7"
+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+
dependencies:
+
core-util-is "~1.0.0"
+
inherits "~2.0.3"
+
isarray "~1.0.0"
+
process-nextick-args "~2.0.0"
+
safe-buffer "~5.1.1"
+
string_decoder "~1.1.1"
+
util-deprecate "~1.0.1"
+
+
reduce-flatten@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"
+
integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
+
+
resolve-alpn@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c"
+
integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==
+
+
resolve-path@^1.4.0:
+
version "1.4.0"
+
resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
+
integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=
+
dependencies:
+
http-errors "~1.6.2"
+
path-is-absolute "1.0.1"
+
+
resolve@^1.10.0, resolve@^1.11.0:
+
version "1.19.0"
+
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
+
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+
dependencies:
+
is-core-module "^2.1.0"
+
path-parse "^1.0.6"
+
+
responselike@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723"
+
integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==
+
dependencies:
+
lowercase-keys "^2.0.0"
+
+
rimraf@^2.6.3, rimraf@^2.7.1:
+
version "2.7.1"
+
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+
dependencies:
+
glob "^7.1.3"
+
+
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+
version "5.1.2"
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+
safe-buffer@^5.0.1:
+
version "5.2.1"
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+
"safer-buffer@>= 2.1.2 < 3":
+
version "2.1.2"
+
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+
selenium-webdriver@^4.0.0-alpha.1:
+
version "4.0.0-alpha.8"
+
resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.8.tgz#5cb99f4239b39dbdff6ac796893f873d044dd3bc"
+
integrity sha512-yPSaiWySZTEbxuuWQMDqdXh3H3N4Aiw/bSUjpkKMPWWCysfPqUncrq6FewBqdxWD1wQKzy5yWaQMGsgTY/0rCQ==
+
dependencies:
+
jszip "^3.5.0"
+
rimraf "^2.7.1"
+
tmp "^0.1.0"
+
ws "^7.3.1"
+
+
"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
+
version "5.7.1"
+
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+
semver@^7.1.1:
+
version "7.3.4"
+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
+
integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+
dependencies:
+
lru-cache "^6.0.0"
+
+
set-immediate-shim@~1.0.1:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
+
integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
+
+
setprototypeof@1.1.0:
+
version "1.1.0"
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+
integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+
+
setprototypeof@1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+
setprototypeof@1.2.0:
+
version "1.2.0"
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+
shebang-command@^1.2.0:
+
version "1.2.0"
+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+
dependencies:
+
shebang-regex "^1.0.0"
+
+
shebang-regex@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+
shell-quote@^1.6.1:
+
version "1.7.2"
+
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
+
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
+
+
signal-exit@^3.0.0:
+
version "3.0.3"
+
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+
slice-ansi@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+
integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+
dependencies:
+
ansi-styles "^4.0.0"
+
astral-regex "^2.0.0"
+
is-fullwidth-code-point "^3.0.0"
+
+
source-map-support@^0.5.16:
+
version "0.5.19"
+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+
dependencies:
+
buffer-from "^1.0.0"
+
source-map "^0.6.0"
+
+
source-map@^0.5.0:
+
version "0.5.7"
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+
source-map@^0.6.0:
+
version "0.6.1"
+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+
spdx-correct@^3.0.0:
+
version "3.1.1"
+
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+
integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
+
dependencies:
+
spdx-expression-parse "^3.0.0"
+
spdx-license-ids "^3.0.0"
+
+
spdx-exceptions@^2.1.0:
+
version "2.3.0"
+
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+
integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+
+
spdx-expression-parse@^3.0.0:
+
version "3.0.1"
+
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+
integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+
dependencies:
+
spdx-exceptions "^2.1.0"
+
spdx-license-ids "^3.0.0"
+
+
spdx-license-ids@^3.0.0:
+
version "3.0.7"
+
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65"
+
integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==
+
+
"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0:
+
version "1.5.0"
+
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+
string-width@^4.2.0:
+
version "4.2.0"
+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+
integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+
dependencies:
+
emoji-regex "^8.0.0"
+
is-fullwidth-code-point "^3.0.0"
+
strip-ansi "^6.0.0"
+
+
string.prototype.padend@^3.0.0:
+
version "3.1.1"
+
resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz#824c84265dbac46cade2b957b38b6a5d8d1683c5"
+
integrity sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==
+
dependencies:
+
call-bind "^1.0.0"
+
define-properties "^1.1.3"
+
es-abstract "^1.18.0-next.1"
+
+
string.prototype.trimend@^1.0.1:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b"
+
integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==
+
dependencies:
+
call-bind "^1.0.0"
+
define-properties "^1.1.3"
+
+
string.prototype.trimstart@^1.0.1:
+
version "1.0.3"
+
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa"
+
integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==
+
dependencies:
+
call-bind "^1.0.0"
+
define-properties "^1.1.3"
+
+
string_decoder@~1.1.1:
+
version "1.1.1"
+
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+
dependencies:
+
safe-buffer "~5.1.0"
+
+
strip-ansi@^6.0.0:
+
version "6.0.0"
+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+
integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+
dependencies:
+
ansi-regex "^5.0.0"
+
+
strip-bom@^3.0.0:
+
version "3.0.0"
+
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+
strip-eof@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+
supports-color@^5.3.0:
+
version "5.5.0"
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+
dependencies:
+
has-flag "^3.0.0"
+
+
systeminformation@^4.14.17:
+
version "4.31.0"
+
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-4.31.0.tgz#24da1f4ba904de8ac66e71be656fef0a234e1d72"
+
integrity sha512-j1eNsuHxpW00RpxSvLy2IJHXpH54TyzZGQRTSFM5flD+dl83qmZ7TWIPnVkACMgHFABkL95I4KTf6S7aRsGUWg==
+
+
table-layout@^1.0.1:
+
version "1.0.1"
+
resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9"
+
integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==
+
dependencies:
+
array-back "^4.0.1"
+
deep-extend "~0.6.0"
+
typical "^5.2.0"
+
wordwrapjs "^4.0.0"
+
+
table@^6.0.3:
+
version "6.0.4"
+
resolved "https://registry.yarnpkg.com/table/-/table-6.0.4.tgz#c523dd182177e926c723eb20e1b341238188aa0d"
+
integrity sha512-sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw==
+
dependencies:
+
ajv "^6.12.4"
+
lodash "^4.17.20"
+
slice-ansi "^4.0.0"
+
string-width "^4.2.0"
+
+
tachometer@^0.5.5:
+
version "0.5.5"
+
resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.5.5.tgz#91009d4fa0968d06a9cfe13e3bfbd2fc05c27878"
+
integrity sha512-a1sjEzfY01kL4oBQXue3cVN+5wX6tncNU6jVzYNGlSskJ+AwSV3DyGfxh9pjviJ4hLiaBpmF9EFRURGenSoD2w==
+
dependencies:
+
"@types/command-line-usage" "^5.0.1"
+
"@types/selenium-webdriver" "^4.0.5"
+
"@types/table" "^6.0.0"
+
ansi-escape-sequences "^5.0.0"
+
command-line-args "^5.0.2"
+
command-line-usage "^6.1.0"
+
csv-stringify "^5.3.0"
+
fs-extra "^9.0.1"
+
get-stream "^6.0.0"
+
got "^11.5.0"
+
jsonschema "^1.2.4"
+
jsonwebtoken "^8.5.1"
+
jstat "^1.9.2"
+
koa "^2.11.0"
+
koa-bodyparser "^4.2.1"
+
koa-mount "^4.0.0"
+
koa-node-resolve "^1.0.0-pre.8"
+
koa-send "^5.0.0"
+
koa-static "^5.0.0"
+
pkg-install "^1.0.0"
+
pkg-up "^3.1.0"
+
progress "^2.0.3"
+
selenium-webdriver "^4.0.0-alpha.1"
+
semver "^7.1.1"
+
source-map-support "^0.5.16"
+
strip-ansi "^6.0.0"
+
systeminformation "^4.14.17"
+
table "^6.0.3"
+
ua-parser-js "^0.7.19"
+
+
tmp@^0.1.0:
+
version "0.1.0"
+
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877"
+
integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
+
dependencies:
+
rimraf "^2.6.3"
+
+
to-fast-properties@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+
toidentifier@1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+
tsscmp@1.0.6:
+
version "1.0.6"
+
resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
+
integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
+
+
type-is@^1.6.16:
+
version "1.6.18"
+
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+
dependencies:
+
media-typer "0.3.0"
+
mime-types "~2.1.24"
+
+
typical@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
+
integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
+
+
typical@^5.0.0, typical@^5.2.0:
+
version "5.2.0"
+
resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
+
integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
+
+
ua-parser-js@^0.7.19:
+
version "0.7.22"
+
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3"
+
integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==
+
+
universalify@^1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
+
integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
+
+
universalify@^2.0.0:
+
version "2.0.0"
+
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+
unpipe@1.0.0:
+
version "1.0.0"
+
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+
uri-js@^4.2.2:
+
version "4.4.0"
+
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+
integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+
dependencies:
+
punycode "^2.1.0"
+
+
urql@^1.11.3:
+
version "1.11.4"
+
resolved "https://registry.yarnpkg.com/urql/-/urql-1.11.4.tgz#f4eb430d7756baf61f2906779d5a1914e9eeef0d"
+
integrity sha512-VtX8xuzwxDtVXRCf/uvy1LcAnBIfiDrKlkblq6ENVJtI3eNsq7mTTxk3F1kZCxE29GWBayQpO4kcLzhEE0OojQ==
+
dependencies:
+
"@urql/core" "^1.16.0"
+
wonka "^4.0.14"
+
+
util-deprecate@~1.0.1:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+
validate-npm-package-license@^3.0.1:
+
version "3.0.4"
+
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+
integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+
dependencies:
+
spdx-correct "^3.0.0"
+
spdx-expression-parse "^3.0.0"
+
+
vary@^1.1.2:
+
version "1.1.2"
+
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+
which@^1.2.9:
+
version "1.3.1"
+
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+
dependencies:
+
isexe "^2.0.0"
+
+
wonka@^4.0.14:
+
version "4.0.15"
+
resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.15.tgz#9aa42046efa424565ab8f8f451fcca955bf80b89"
+
integrity sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==
+
+
wordwrapjs@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800"
+
integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==
+
dependencies:
+
reduce-flatten "^2.0.0"
+
typical "^5.0.0"
+
+
wrappy@1:
+
version "1.0.2"
+
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+
ws@^7.3.1:
+
version "7.4.1"
+
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb"
+
integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==
+
+
yallist@^4.0.0:
+
version "4.0.0"
+
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+
ylru@^1.2.0:
+
version "1.2.1"
+
resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
+
integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==