diff --git a/genFragmentMatcher.js b/genFragmentMatcher.js
new file mode 100644
index 0000000..d72ccd8
--- /dev/null
+++ b/genFragmentMatcher.js
@@ -0,0 +1,39 @@
+
+const fetch = require('node-fetch');
+const fs = require('fs');
+
+fetch(`http://localhost:4000/graphql`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({
+ variables: {},
+ query: `
+ {
+ __schema {
+ types {
+ kind
+ name
+ possibleTypes {
+ name
+ }
+ }
+ }
+ }
+ `,
+ }),
+})
+ .then(result => result.json())
+ .then(result => {
+ // here we're filtering out any type information unrelated to unions or interfaces
+ const filteredData = result.data.__schema.types.filter(
+ type => type.possibleTypes !== null,
+ );
+ result.data.__schema.types = filteredData;
+ fs.writeFileSync('./src/fragmentTypes.json', JSON.stringify(result.data), err => {
+ if (err) {
+ console.error('Error writing fragmentTypes file', err);
+ } else {
+ console.log('Fragment types successfully extracted!');
+ }
+ });
+ });
\ No newline at end of file
diff --git a/package.json b/package.json
index 35ccb30..c57c5aa 100644
--- a/package.json
+++ b/package.json
@@ -3,12 +3,24 @@
"version": "0.1.0",
"private": true,
"dependencies": {
+ "@apollo/react-hooks": "^3.1.5",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
+ "apollo-cache-inmemory": "^1.6.6",
+ "apollo-client": "^2.6.10",
+ "apollo-link": "^1.2.14",
+ "apollo-link-error": "^1.1.13",
+ "apollo-link-http": "^1.5.17",
+ "apollo-link-ws": "^1.0.20",
+ "graphql": "^14.6.0",
+ "graphql-tag": "^2.10.3",
+ "grommet": "^2.13.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
- "react-scripts": "3.4.1"
+ "react-scripts": "3.4.1",
+ "styled-components": "^5.1.1",
+ "subscriptions-transport-ws": "^0.9.16"
},
"scripts": {
"start": "react-scripts start",
@@ -30,5 +42,8 @@
"last 1 firefox version",
"last 1 safari version"
]
+ },
+ "devDependencies": {
+ "node-fetch": "^2.6.0"
}
}
diff --git a/src/App.css b/src/App.css
index 74b5e05..de1e178 100644
--- a/src/App.css
+++ b/src/App.css
@@ -1,5 +1,5 @@
.App {
- text-align: center;
+ padding: 20px;
}
.App-logo {
diff --git a/src/App.js b/src/App.js
index ce9cbd2..99e6c74 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,25 +1,21 @@
-import React from 'react';
-import logo from './logo.svg';
-import './App.css';
+import React from "react";
+import logo from "./logo.svg";
+//import "./App.css";
+import { Grommet, Box } from "grommet";
+
+import client from "./apolloclient";
+import { ApolloProvider } from "@apollo/react-hooks";
+import Devices from "./devices";
function App() {
return (
-
+
+
+
+
+
+
+
);
}
diff --git a/src/apolloclient.js b/src/apolloclient.js
new file mode 100644
index 0000000..37b9589
--- /dev/null
+++ b/src/apolloclient.js
@@ -0,0 +1,242 @@
+import { ApolloClient } from "apollo-client";
+import {
+ InMemoryCache,
+ IntrospectionFragmentMatcher,
+} from "apollo-cache-inmemory";
+import { HttpLink } from "apollo-link-http";
+import { onError } from "apollo-link-error";
+import { ApolloLink, split } from "apollo-link";
+import { WebSocketLink } from "apollo-link-ws";
+import { getMainDefinition } from "apollo-utilities";
+import gql from "graphql-tag";
+
+import introspectionQueryResultData from "./fragmentTypes.json";
+
+import {
+ propertyVectorFragment,
+ vectorFragment,
+ deviceInfoFragment,
+} from "./graphql/fragment";
+import { isConnectedQuery } from "./graphql/query";
+
+// Create an http link:
+const httpLink = new HttpLink({
+ uri: "/graphql",
+});
+
+// Create a WebSocket link:
+const wsLink = new WebSocketLink({
+ uri: `ws://${window.location.host}/graphql`,
+ options: {
+ reconnect: true,
+ },
+});
+
+const link = split(
+ // split based on operation type
+ ({ query }) => {
+ const definition = getMainDefinition(query);
+ return (
+ definition.kind === "OperationDefinition" &&
+ definition.operation === "subscription"
+ );
+ },
+ wsLink,
+ httpLink
+);
+
+const client = new ApolloClient({
+ link: ApolloLink.from([
+ onError(({ graphQLErrors, networkError }) => {
+ if (graphQLErrors)
+ graphQLErrors.forEach(({ message, locations, path }) =>
+ console.log(
+ `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
+ )
+ );
+ if (networkError) console.log(`[Network error]: ${networkError}`);
+ }),
+ link,
+ ]),
+ cache: new InMemoryCache({
+ fragmentMatcher: new IntrospectionFragmentMatcher({
+ introspectionQueryResultData,
+ }),
+ cacheRedirects: {
+ Query: {
+ device: (_, args, { getCacheKey }) =>
+ getCacheKey({ __typename: "Device", id: args.id }),
+ },
+ },
+ }),
+});
+
+const CONNECTED = gql`
+ subscription connected {
+ connected
+ }
+`;
+
+client
+ .subscribe({
+ query: CONNECTED,
+ })
+ .subscribe(({ data }) => {
+ client.writeQuery({
+ query: isConnectedQuery,
+ data: { connected: data.connected },
+ });
+ console.log(data);
+ });
+
+const DISCONNECTED = gql`
+ subscription disconnected {
+ disconnected
+ }
+`;
+
+client
+ .subscribe({
+ query: DISCONNECTED,
+ })
+ .subscribe(({ data }) => {
+ console.log(data);
+ });
+
+const NEW_DEVICE = gql`
+ subscription newDevice {
+ newDevice {
+ id
+ ...DeviceInfo
+ }
+ }
+
+ ${deviceInfoFragment}
+`;
+
+const GETDEVICES = gql`
+ query devices {
+ devices {
+ id
+ ...DeviceInfo
+ properties {
+ id
+ name
+ ...PropertyVector
+ }
+ }
+ }
+
+ ${deviceInfoFragment}
+ ${propertyVectorFragment}
+`;
+
+const GETDEVICE = gql`
+ query device($id: String!) {
+ device(id: $id) {
+ id
+ ...DeviceInfo
+ properties {
+ id
+ name
+ ...PropertyVector
+ }
+ }
+ }
+
+ ${deviceInfoFragment}
+ ${propertyVectorFragment}
+`;
+
+client
+ .subscribe({
+ query: NEW_DEVICE,
+ })
+ .subscribe(({ data }) => {
+ const res = client.readQuery({ query: GETDEVICES });
+ data.newDevice.properties = [];
+ client.writeQuery({
+ query: GETDEVICES,
+ data: { devices: [...res.devices, data.newDevice] },
+ });
+ });
+
+const NEW_PROPERTY = gql`
+ subscription newProperty {
+ newProperty {
+ id
+ name
+ device
+ ...PropertyVector
+ }
+ }
+
+ ${propertyVectorFragment}
+`;
+
+client
+ .subscribe({
+ query: NEW_PROPERTY,
+ })
+ .subscribe(({ data }) => {
+ const res = client.readQuery({
+ query: GETDEVICE,
+ variables: { id: data.newProperty.device },
+ });
+ client.writeQuery({
+ query: GETDEVICE,
+ variables: { id: res.device.id },
+ data: {
+ device: {
+ ...res.device,
+ drivers:
+ data.newProperty.name === "DRIVER_INFO"
+ ? data.newProperty.vector.values[3].text
+ : res.device.drivers,
+ connected:
+ data.newProperty.name === "CONNECTION"
+ ? data.newProperty.vector.values[0].switch
+ : res.device.connected,
+ properties: [...res.device.properties, data.newProperty],
+ },
+ },
+ });
+ });
+
+const NEW_VALUE = gql`
+ subscription newValue {
+ newValue {
+ id
+ device
+ ...VectorData
+ }
+ }
+
+ ${vectorFragment}
+`;
+
+client
+ .subscribe({
+ query: NEW_VALUE,
+ })
+ .subscribe(({ data }) => {
+ if (data.newValue.name === "CONNECTION") {
+ const res = client.readQuery({
+ query: GETDEVICE,
+ variables: { id: data.newValue.device },
+ });
+ client.writeQuery({
+ query: GETDEVICE,
+ variables: { id: res.device.id },
+ data: {
+ device: {
+ ...res.device,
+ connected: data.newValue.values[0].switch,
+ },
+ },
+ });
+ console.log(res);
+ }
+ });
+
+export default client;
diff --git a/src/components/indi/device.js b/src/components/indi/device.js
new file mode 100644
index 0000000..b253430
--- /dev/null
+++ b/src/components/indi/device.js
@@ -0,0 +1,64 @@
+import React, { useState, useEffect } from "react";
+import { useMutation } from "@apollo/react-hooks";
+import { driversToInterfaces } from "../../utils/indi";
+import Property from "./property";
+import gql from "graphql-tag";
+import { Box, Button, Tabs, Tab } from "grommet";
+
+const CONNECT_DEVICE = gql`
+ mutation connectDevice($id: String!) {
+ connectDevice(id: $id) {
+ id
+ }
+ }
+`;
+
+const Device = ({ device }) => {
+ const [connect] = useMutation(CONNECT_DEVICE, {
+ variables: { id: device.id },
+ });
+ const [groups, setGroups] = useState([]);
+ const [selectedTabs, setSelectedTabs] = useState({});
+ const [currentTab, setCurrentTab] = useState(0);
+
+ useEffect(() => {
+ const groups = new Set();
+ device.properties.forEach((v) => {
+ groups.add(v.vector.group);
+ });
+ setGroups(Array.from(groups));
+ setCurrentTab(selectedTabs[device.id] || 0);
+ }, [device]);
+
+ return (
+
+ {!device.connected && (
+
+ );
+};
+
+export default Device;
diff --git a/src/components/indi/light.js b/src/components/indi/light.js
new file mode 100644
index 0000000..9b6dcd2
--- /dev/null
+++ b/src/components/indi/light.js
@@ -0,0 +1,15 @@
+import React from "react";
+
+import { stateToEmoji } from "../../utils/indi";
+
+const LightVector = ({ vector }) => {
+ return (
+
+ {vector.values.map(v => (
+
{stateToEmoji(v.switch)} {v.label || v.name}
+ ))}
+
+ );
+};
+
+export default LightVector;
\ No newline at end of file
diff --git a/src/components/indi/number.js b/src/components/indi/number.js
new file mode 100644
index 0000000..de353e4
--- /dev/null
+++ b/src/components/indi/number.js
@@ -0,0 +1,23 @@
+import React from "react";
+import { Box, TextInput, Button } from "grommet";
+
+const NumberVector = ({ vector }) => {
+ return (
+
+ {vector.values.map((v) => (
+
+ {v.label || v.name} ({v.min},{v.max},{v.step})
+ {v.formated || v.number}
+ {vector.permission !== 0 && (
+
+
+
+
+ )}
+
+ ))}
+
+ );
+};
+
+export default NumberVector;
diff --git a/src/components/indi/property.js b/src/components/indi/property.js
new file mode 100644
index 0000000..15be198
--- /dev/null
+++ b/src/components/indi/property.js
@@ -0,0 +1,35 @@
+import React from "react";
+import { Box } from "grommet";
+
+import { stateToEmoji } from "../../utils/indi";
+import LightVector from "./light";
+import NumberVector from "./number";
+import SwitchVector from "./switch";
+import TextVector from "./text";
+
+const Property = ({ property }) => {
+ return (
+
+
+
+ {stateToEmoji(property.vector.state)}{" "}
+ {property.vector.label || property.name}
+
+
+ {property.vector.__typename === "NumberVector" && (
+
+ )}
+ {property.vector.__typename === "SwitchVector" && (
+
+ )}
+ {property.vector.__typename === "TextVector" && (
+
+ )}
+ {property.vector.__typename === "LightVector" && (
+
+ )}
+
+ );
+};
+
+export default Property;
diff --git a/src/components/indi/switch.js b/src/components/indi/switch.js
new file mode 100644
index 0000000..24aed8e
--- /dev/null
+++ b/src/components/indi/switch.js
@@ -0,0 +1,53 @@
+import React from "react";
+import { Button, Box } from "grommet";
+import gql from "graphql-tag";
+import { useMutation } from "@apollo/react-hooks";
+
+const SEND = gql`
+ mutation sendSwitch($input: SwitchInput) {
+ sendSwitch(input: $input)
+ }
+`;
+
+const SwitchVector = ({ vector }) => {
+ const [sendSwitch] = useMutation(SEND);
+
+ return (
+
+ {vector.values.map((v) => (
+
+ ))}
+
+ );
+};
+
+export default SwitchVector;
diff --git a/src/components/indi/text.js b/src/components/indi/text.js
new file mode 100644
index 0000000..0b4235e
--- /dev/null
+++ b/src/components/indi/text.js
@@ -0,0 +1,23 @@
+import React from "react";
+import { Box, Button, TextInput } from "grommet";
+
+const TextVector = ({ vector }) => {
+ return (
+
+ {vector.values.map((v) => (
+
+ {v.label || v.name}
+ {v.text}
+ {vector.permission !== 0 && (
+
+
+
+
+ )}
+
+ ))}
+
+ );
+};
+
+export default TextVector;
\ No newline at end of file
diff --git a/src/devices.js b/src/devices.js
new file mode 100644
index 0000000..70764b8
--- /dev/null
+++ b/src/devices.js
@@ -0,0 +1,104 @@
+import React, { useEffect, useState } from "react";
+
+import { useQuery, useSubscription, useMutation } from "@apollo/react-hooks";
+import gql from "graphql-tag";
+import { deviceInfoFragment, propertyVectorFragment } from "./graphql/fragment";
+import Device from "./components/indi/device";
+import { Box, Tabs, Tab, Button, Header, Heading } from "grommet";
+import { isConnectedQuery } from "./graphql/query";
+
+const GETDEVICES = gql`
+ query devices {
+ devices {
+ id
+ ...DeviceInfo
+ properties {
+ id
+ name
+ ...PropertyVector
+ }
+ }
+ }
+
+ ${deviceInfoFragment}
+ ${propertyVectorFragment}
+`;
+
+const CONNECT = gql`
+ mutation connect {
+ connect
+ }
+`;
+
+const DISCONNECT = gql`
+ mutation disconnect {
+ disconnect
+ }
+`;
+
+const useIndiState = () => {
+ const { data } = useQuery(isConnectedQuery);
+ const [connected, setConnected] = useState(false);
+
+ useEffect(() => {
+ data && setConnected(data.connected);
+ }, [data]);
+
+ return connected;
+};
+
+const Devices = () => {
+ const connected = useIndiState();
+ const { data } = useQuery(GETDEVICES);
+ const [connect] = useMutation(CONNECT);
+ const [disconnect] = useMutation(DISCONNECT);
+
+ if (!data || !data.devices) {
+ return No data
;
+ }
+
+ return (
+
+
+
+ ASTRAW
+
+
+ {!connected ? (
+
+
+
+
+ {data ? (
+
+ {data && data.devices ? (
+ data.devices.map((d) => (
+
+
+
+ ))
+ ) : (
+ no devices
+ )}
+
+ ) : null}
+
+
+ );
+};
+
+export default Devices;
diff --git a/src/fragmentTypes.json b/src/fragmentTypes.json
new file mode 100644
index 0000000..2989998
--- /dev/null
+++ b/src/fragmentTypes.json
@@ -0,0 +1 @@
+{"__schema":{"types":[{"kind":"INTERFACE","name":"Vector","possibleTypes":[{"name":"NumberVector"},{"name":"SwitchVector"},{"name":"TextVector"},{"name":"LightVector"}]}]}}
\ No newline at end of file
diff --git a/src/graphql/fragment.js b/src/graphql/fragment.js
new file mode 100644
index 0000000..ebfdf92
--- /dev/null
+++ b/src/graphql/fragment.js
@@ -0,0 +1,66 @@
+import gql from "graphql-tag";
+
+const deviceInfoFragment = gql`
+fragment DeviceInfo on Device {
+ name
+ connected
+ drivers
+}
+`;
+
+const vectorFragment = gql`
+ fragment VectorData on Vector {
+ name
+ label
+ group
+ device
+ state
+ permission
+ ... on NumberVector {
+ values {
+ name
+ label
+ number:value
+ min
+ max
+ step
+ formated
+ }
+ }
+ ... on SwitchVector {
+ rule
+ values {
+ name
+ label
+ switch:value
+ }
+ }
+ ... on TextVector {
+ values {
+ name
+ label
+ text:value
+ }
+ }
+ ... on LightVector {
+ values {
+ name
+ label
+ light:value
+ }
+ }
+ }
+`;
+
+const propertyVectorFragment = gql`
+ fragment PropertyVector on Property {
+ vector {
+ id
+ ...VectorData
+ }
+ }
+
+ ${vectorFragment}
+`;
+
+export { deviceInfoFragment, vectorFragment, propertyVectorFragment };
diff --git a/src/graphql/query.js b/src/graphql/query.js
new file mode 100644
index 0000000..ab5b63a
--- /dev/null
+++ b/src/graphql/query.js
@@ -0,0 +1,9 @@
+import gql from "graphql-tag";
+
+const isConnectedQuery = gql`
+ query connected {
+ connected
+ }
+`;
+
+export { isConnectedQuery }
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index f5185c1..9710934 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,14 +1,14 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import './index.css';
-import App from './App';
-import * as serviceWorker from './serviceWorker';
+import React from "react";
+import ReactDOM from "react-dom";
+import "./index.css";
+import App from "./App";
+import * as serviceWorker from "./serviceWorker";
ReactDOM.render(
,
- document.getElementById('root')
+ document.getElementById("root")
);
// If you want your app to work offline and load faster, you can change
diff --git a/src/setupProxy.js b/src/setupProxy.js
new file mode 100644
index 0000000..39d0653
--- /dev/null
+++ b/src/setupProxy.js
@@ -0,0 +1,5 @@
+const proxy = require('http-proxy-middleware');
+
+module.exports = function(app) {
+ app.use(proxy('/graphql', { target: 'http://localhost:4000', ws: true }));
+};
\ No newline at end of file
diff --git a/src/utils/indi.js b/src/utils/indi.js
new file mode 100644
index 0000000..4deaaa5
--- /dev/null
+++ b/src/utils/indi.js
@@ -0,0 +1,44 @@
+const INTERFACES = {
+ GENERAL: 0,
+ TELESCOPE: 1 << 0,
+ CCD: 1 << 1,
+ GUIDER: 1 << 2,
+ FOCUSER: 1 << 3,
+};
+/*
+ FILTER
+ DOME
+ GPS
+ WEATHER
+ AO
+ DUSTCAP
+ LIGHTBOX
+ DETECTOR
+ ROTATOR
+ SPECTROGRAPH
+ CORRELATOR
+ AUX
+}
+*/
+export function driversToInterfaces(drivers) {
+ const ret = [];
+ for (const iface in INTERFACES) {
+ if (INTERFACES[iface] & drivers) {
+ ret.push(iface);
+ }
+ }
+ return ret;
+}
+
+export function stateToEmoji(state) {
+ switch (state) {
+ case 0:
+ return "⚪";
+ case 1:
+ return "🟢";
+ case 2:
+ return "🟡";
+ case 3:
+ return "🔴";
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index c246fd3..63e9f62 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,24 @@
# yarn lockfile v1
+"@apollo/react-common@^3.1.4":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@apollo/react-common/-/react-common-3.1.4.tgz#ec13c985be23ea8e799c9ea18e696eccc97be345"
+ integrity sha512-X5Kyro73bthWSCBJUC5XYQqMnG0dLWuDZmVkzog9dynovhfiVCV4kPSdgSIkqnb++cwCzOVuQ4rDKVwo2XRzQA==
+ dependencies:
+ ts-invariant "^0.4.4"
+ tslib "^1.10.0"
+
+"@apollo/react-hooks@^3.1.5":
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/@apollo/react-hooks/-/react-hooks-3.1.5.tgz#7e710be52461255ae7fc0b3b9c2ece64299c10e6"
+ integrity sha512-y0CJ393DLxIIkksRup4nt+vSjxalbZBXnnXxYbviq/woj+zKa431zy0yT4LqyRKpFy9ahMIwxBnBwfwIoupqLQ==
+ dependencies:
+ "@apollo/react-common" "^3.1.4"
+ "@wry/equality" "^0.1.9"
+ ts-invariant "^0.4.4"
+ tslib "^1.10.0"
+
"@babel/code-frame@7.8.3", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
@@ -67,6 +85,13 @@
lodash "^4.17.13"
source-map "^0.5.0"
+"@babel/helper-annotate-as-pure@^7.0.0":
+ version "7.10.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz#f6d08acc6f70bbd59b436262553fb2e259a1a268"
+ integrity sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==
+ dependencies:
+ "@babel/types" "^7.10.1"
+
"@babel/helper-annotate-as-pure@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee"
@@ -222,6 +247,13 @@
dependencies:
"@babel/types" "^7.8.3"
+"@babel/helper-module-imports@^7.0.0":
+ version "7.10.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz#dd331bd45bccc566ce77004e9d05fe17add13876"
+ integrity sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==
+ dependencies:
+ "@babel/types" "^7.10.1"
+
"@babel/helper-module-imports@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498"
@@ -1005,7 +1037,7 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.5.1", "@babel/runtime@^7.7.4":
+"@babel/runtime@^7.5.1", "@babel/runtime@^7.7.4", "@babel/runtime@^7.9.2":
version "7.10.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz#d103f21f2602497d38348a32e008637d506db839"
integrity sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==
@@ -1045,7 +1077,7 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/traverse@^7.10.1":
+"@babel/traverse@^7.10.1", "@babel/traverse@^7.4.5":
version "7.10.1"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27"
integrity sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==
@@ -1096,6 +1128,28 @@
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
+"@emotion/is-prop-valid@^0.8.8":
+ version "0.8.8"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
+ integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
+ dependencies:
+ "@emotion/memoize" "0.7.4"
+
+"@emotion/memoize@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+ integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
+
+"@emotion/stylis@^0.8.4":
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
+ integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
+
+"@emotion/unitless@^0.7.4":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
+
"@hapi/address@2.x.x":
version "2.1.4"
resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
@@ -1541,6 +1595,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz#ace1880c03594cc3e80206d96847157d8e7fa349"
integrity sha512-bnoqK579sAYrQbp73wwglccjJ4sfRdKU7WNEZ5FW4K2U6Kc0/eZ5kvXG0JKsEKFB50zrFmfFt52/cvBbZa7eXg==
+"@types/node@>=6":
+ version "14.0.9"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.9.tgz#43896ab87fc82bda1dfd600cdf44a0c8a64e11d2"
+ integrity sha512-0sCTiXKXELOBxvZLN4krQ0FPOAA7ij+6WwvD0k/PHd9/KAkr4dXel5J9fh6F4x1FwAQILqAWkmpeuS6mjf1iKA==
+
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
@@ -1618,6 +1677,11 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/zen-observable@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d"
+ integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==
+
"@typescript-eslint/eslint-plugin@^2.10.0":
version "2.24.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68"
@@ -1807,6 +1871,21 @@
"@webassemblyjs/wast-parser" "1.8.5"
"@xtuc/long" "4.2.2"
+"@wry/context@^0.4.0":
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8"
+ integrity sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==
+ dependencies:
+ "@types/node" ">=6"
+ tslib "^1.9.3"
+
+"@wry/equality@^0.1.2", "@wry/equality@^0.1.9":
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790"
+ integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==
+ dependencies:
+ tslib "^1.9.3"
+
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -1990,6 +2069,94 @@ anymatch@~3.1.1:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+apollo-cache-inmemory@^1.6.6:
+ version "1.6.6"
+ resolved "https://registry.yarnpkg.com/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz#56d1f2a463a6b9db32e9fa990af16d2a008206fd"
+ integrity sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==
+ dependencies:
+ apollo-cache "^1.3.5"
+ apollo-utilities "^1.3.4"
+ optimism "^0.10.0"
+ ts-invariant "^0.4.0"
+ tslib "^1.10.0"
+
+apollo-cache@1.3.5, apollo-cache@^1.3.5:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461"
+ integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==
+ dependencies:
+ apollo-utilities "^1.3.4"
+ tslib "^1.10.0"
+
+apollo-client@^2.6.10:
+ version "2.6.10"
+ resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-2.6.10.tgz#86637047b51d940c8eaa771a4ce1b02df16bea6a"
+ integrity sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==
+ dependencies:
+ "@types/zen-observable" "^0.8.0"
+ apollo-cache "1.3.5"
+ apollo-link "^1.0.0"
+ apollo-utilities "1.3.4"
+ symbol-observable "^1.0.2"
+ ts-invariant "^0.4.0"
+ tslib "^1.10.0"
+ zen-observable "^0.8.0"
+
+apollo-link-error@^1.1.13:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/apollo-link-error/-/apollo-link-error-1.1.13.tgz#c1a1bb876ffe380802c8df0506a32c33aad284cd"
+ integrity sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==
+ dependencies:
+ apollo-link "^1.2.14"
+ apollo-link-http-common "^0.2.16"
+ tslib "^1.9.3"
+
+apollo-link-http-common@^0.2.16:
+ version "0.2.16"
+ resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc"
+ integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==
+ dependencies:
+ apollo-link "^1.2.14"
+ ts-invariant "^0.4.0"
+ tslib "^1.9.3"
+
+apollo-link-http@^1.5.17:
+ version "1.5.17"
+ resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz#499e9f1711bf694497f02c51af12d82de5d8d8ba"
+ integrity sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==
+ dependencies:
+ apollo-link "^1.2.14"
+ apollo-link-http-common "^0.2.16"
+ tslib "^1.9.3"
+
+apollo-link-ws@^1.0.20:
+ version "1.0.20"
+ resolved "https://registry.yarnpkg.com/apollo-link-ws/-/apollo-link-ws-1.0.20.tgz#dfad44121f8445c6d7b7f8101a1b24813ba008ed"
+ integrity sha512-mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==
+ dependencies:
+ apollo-link "^1.2.14"
+ tslib "^1.9.3"
+
+apollo-link@^1.0.0, apollo-link@^1.2.14:
+ version "1.2.14"
+ resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9"
+ integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==
+ dependencies:
+ apollo-utilities "^1.3.0"
+ ts-invariant "^0.4.0"
+ tslib "^1.9.3"
+ zen-observable-ts "^0.8.21"
+
+apollo-utilities@1.3.4, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf"
+ integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==
+ dependencies:
+ "@wry/equality" "^0.1.2"
+ fast-json-stable-stringify "^2.0.0"
+ ts-invariant "^0.4.0"
+ tslib "^1.10.0"
+
aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -2092,7 +2259,7 @@ arrify@^1.0.1:
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-asap@~2.0.6:
+asap@~2.0.3, asap@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
@@ -2293,6 +2460,21 @@ babel-plugin-named-asset-import@^0.3.6:
resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz#c9750a1b38d85112c9e166bf3ef7c5dbc605f4be"
integrity sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==
+"babel-plugin-styled-components@>= 1":
+ version "1.10.7"
+ resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz#3494e77914e9989b33cc2d7b3b29527a949d635c"
+ integrity sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.0.0"
+ "@babel/helper-module-imports" "^7.0.0"
+ babel-plugin-syntax-jsx "^6.18.0"
+ lodash "^4.17.11"
+
+babel-plugin-syntax-jsx@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+ integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
+
babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
@@ -2353,6 +2535,11 @@ babylon@^6.18.0:
resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
+backo2@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -2723,6 +2910,11 @@ camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+camelize@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
+ integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
+
caniuse-api@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
@@ -2783,6 +2975,11 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+change-emitter@^0.1.2:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515"
+ integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=
+
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -3149,6 +3346,11 @@ core-js-pure@^3.0.0:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.4.tgz#4bf1ba866e25814f149d4e9aaa08c36173506e3a"
integrity sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==
+core-js@^1.0.0:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+ integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
+
core-js@^2.4.0:
version "2.6.11"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
@@ -3260,6 +3462,11 @@ css-blank-pseudo@^0.1.4:
dependencies:
postcss "^7.0.5"
+css-color-keywords@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
+ integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=
+
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -3331,6 +3538,15 @@ css-select@^2.0.0:
domutils "^1.7.0"
nth-check "^1.0.2"
+css-to-react-native@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756"
+ integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==
+ dependencies:
+ camelize "^1.0.0"
+ css-color-keywords "^1.0.0"
+ postcss-value-parser "^4.0.2"
+
css-tree@1.0.0-alpha.37:
version "1.0.0-alpha.37"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
@@ -3869,6 +4085,13 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+encoding@^0.1.11:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+ integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
+ dependencies:
+ iconv-lite "~0.4.13"
+
end-of-stream@^1.0.0, 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"
@@ -4199,6 +4422,11 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+eventemitter3@^3.1.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
+ integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
+
eventemitter3@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
@@ -4416,6 +4644,19 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
+fbjs@^0.8.1:
+ version "0.8.17"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
+ integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.18"
+
figgy-pudding@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
@@ -4844,6 +5085,44 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+graphql-tag@^2.10.3:
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.3.tgz#ea1baba5eb8fc6339e4c4cf049dabe522b0edf03"
+ integrity sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==
+
+graphql@^14.6.0:
+ version "14.6.0"
+ resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49"
+ integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==
+ dependencies:
+ iterall "^1.2.2"
+
+grommet-icons@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/grommet-icons/-/grommet-icons-4.4.0.tgz#6503a33ca29e3c9d89ba56ef1b2bc786222e62a7"
+ integrity sha512-uOc3rsgIBVOm/iuN8dj2lKuBq0uhIPYxH84zDoY0jrJZLjcVH1bHUQLlv0R/e9oB/pCFYEBse1mnvps+f3ylmw==
+ dependencies:
+ grommet-styles "^0.2.0"
+
+grommet-styles@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/grommet-styles/-/grommet-styles-0.2.0.tgz#b2eac2b7e2747cb523434d21728ce5234f8ce4f4"
+ integrity sha512-0OMSYuGeyifYKpg4Gv2HzL8rUdd0ddnJ5LbCBKgDuloC71XIwr9g/Fxa6rs737MbPV7OZ4pEm4wvrjH4epzf1A==
+
+grommet@^2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/grommet/-/grommet-2.13.0.tgz#588f2d64358e9edb629e4e3fc3365b0cd5cc7db4"
+ integrity sha512-C2asZEacDjr9stnVw2XoYVezPdbLM3qxQrxdLfnfdlj1pTb/JNfwqpQZatMW5G8NU3S596juVAnTPefmMXcwyQ==
+ dependencies:
+ css "^2.2.3"
+ grommet-icons "^4.2.0"
+ hoist-non-react-statics "^3.2.0"
+ markdown-to-jsx "^6.9.1"
+ polished "^3.4.1"
+ prop-types "^15.7.2"
+ react-desc "^4.1.2"
+ recompose "^0.30.0"
+
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
@@ -4975,6 +5254,18 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
+hoist-non-react-statics@^2.3.1:
+ version "2.5.5"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
+ integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
+
+hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.2.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
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"
@@ -5134,7 +5425,7 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-iconv-lite@0.4.24, iconv-lite@^0.4.24:
+iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -5610,7 +5901,7 @@ is-root@2.1.0:
resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
-is-stream@^1.1.0:
+is-stream@^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=
@@ -5676,6 +5967,14 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+isomorphic-fetch@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
+ dependencies:
+ node-fetch "^1.0.1"
+ whatwg-fetch ">=0.10.0"
+
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -5726,6 +6025,11 @@ istanbul-reports@^2.2.6:
dependencies:
html-escaper "^2.0.0"
+iterall@^1.2.1, iterall@^1.2.2:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea"
+ integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==
+
jest-changed-files@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
@@ -6573,6 +6877,14 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
+markdown-to-jsx@^6.9.1:
+ version "6.11.4"
+ resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5"
+ integrity sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw==
+ dependencies:
+ prop-types "^15.6.2"
+ unquote "^1.1.0"
+
md5.js@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@@ -6921,6 +7233,19 @@ no-case@^3.0.3:
lower-case "^2.0.1"
tslib "^1.10.0"
+node-fetch@^1.0.1:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
+ integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
+ dependencies:
+ encoding "^0.1.11"
+ is-stream "^1.0.1"
+
+node-fetch@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
+ integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
+
node-forge@0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579"
@@ -7206,6 +7531,13 @@ opn@^5.5.0:
dependencies:
is-wsl "^1.1.0"
+optimism@^0.10.0:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.10.3.tgz#163268fdc741dea2fb50f300bedda80356445fd7"
+ integrity sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==
+ dependencies:
+ "@wry/context" "^0.4.0"
+
optimize-css-assets-webpack-plugin@5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572"
@@ -7615,6 +7947,13 @@ pnp-webpack-plugin@1.6.4:
dependencies:
ts-pnp "^1.1.6"
+polished@^3.4.1:
+ version "3.6.4"
+ resolved "https://registry.yarnpkg.com/polished/-/polished-3.6.4.tgz#cec6bc0fbffc5d6ce5799c85bcc1bca5e63f1dee"
+ integrity sha512-21moJXCm/7EvjeKQz5w89QDDKNPCoimc83CqwZZGJluFdMXsFlMQl9lPA/OMRkoceZ19kU0anKlMgZmY7LJSJw==
+ dependencies:
+ "@babel/runtime" "^7.9.2"
+
portfinder@^1.0.25:
version "1.0.25"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca"
@@ -8358,6 +8697,13 @@ promise-inflight@^1.0.1:
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
+ dependencies:
+ asap "~2.0.3"
+
promise@^8.0.3:
version "8.1.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
@@ -8539,6 +8885,11 @@ react-app-polyfill@^1.0.6:
regenerator-runtime "^0.13.3"
whatwg-fetch "^3.0.0"
+react-desc@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/react-desc/-/react-desc-4.1.2.tgz#83fc4ede66b2d45ae4ef63c18421474d55972966"
+ integrity sha512-JAVe89uaLr0HZ0IKodnpTPNgNyJ/SPDQnl3VJPVwI+SpebmHvJiBNZEOwX201QmSbsVGqRY8ql/VFPlAx85WzA==
+
react-dev-utils@^10.2.1:
version "10.2.1"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19"
@@ -8584,11 +8935,16 @@ react-error-overlay@^6.0.7:
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108"
integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==
-react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4:
+react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-lifecycles-compat@^3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+ integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+
react-scripts@3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.1.tgz#f551298b5c71985cc491b9acf3c8e8c0ae3ada0a"
@@ -8737,6 +9093,18 @@ realpath-native@^1.1.0:
dependencies:
util.promisify "^1.0.0"
+recompose@^0.30.0:
+ version "0.30.0"
+ resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0"
+ integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==
+ dependencies:
+ "@babel/runtime" "^7.0.0"
+ change-emitter "^0.1.2"
+ fbjs "^0.8.1"
+ hoist-non-react-statics "^2.3.1"
+ react-lifecycles-compat "^3.0.2"
+ symbol-observable "^1.0.4"
+
recursive-readdir@2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f"
@@ -9255,7 +9623,7 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setimmediate@^1.0.4:
+setimmediate@^1.0.4, setimmediate@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
@@ -9295,6 +9663,11 @@ shallow-clone@^3.0.0:
dependencies:
kind-of "^6.0.2"
+shallowequal@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
+ integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -9798,6 +10171,22 @@ style-loader@0.23.1:
loader-utils "^1.1.0"
schema-utils "^1.0.0"
+styled-components@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.1.1.tgz#96dfb02a8025794960863b9e8e365e3b6be5518d"
+ integrity sha512-1ps8ZAYu2Husx+Vz8D+MvXwEwvMwFv+hqqUwhNlDN5ybg6A+3xyW1ECrAgywhvXapNfXiz79jJyU0x22z0FFTg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/traverse" "^7.4.5"
+ "@emotion/is-prop-valid" "^0.8.8"
+ "@emotion/stylis" "^0.8.4"
+ "@emotion/unitless" "^0.7.4"
+ babel-plugin-styled-components ">= 1"
+ css-to-react-native "^3.0.0"
+ hoist-non-react-statics "^3.0.0"
+ shallowequal "^1.1.0"
+ supports-color "^5.5.0"
+
stylehacks@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
@@ -9807,12 +10196,23 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
+subscriptions-transport-ws@^0.9.16:
+ version "0.9.16"
+ resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec"
+ integrity sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==
+ dependencies:
+ backo2 "^1.0.2"
+ eventemitter3 "^3.1.0"
+ iterall "^1.2.1"
+ symbol-observable "^1.0.4"
+ ws "^5.2.0"
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-supports-color@^5.3.0:
+supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -9857,6 +10257,11 @@ svgo@^1.0.0, svgo@^1.2.2:
unquote "~1.1.1"
util.promisify "~1.0.0"
+symbol-observable@^1.0.2, symbol-observable@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+ integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+
symbol-tree@^3.2.2:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -10040,6 +10445,13 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
+ts-invariant@^0.4.0, ts-invariant@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86"
+ integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==
+ dependencies:
+ tslib "^1.9.3"
+
ts-pnp@1.1.6, ts-pnp@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a"
@@ -10050,6 +10462,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
+tslib@^1.9.3:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
+ integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
+
tsutils@^3.17.1:
version "3.17.1"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
@@ -10114,6 +10531,11 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+ua-parser-js@^0.7.18:
+ version "0.7.21"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"
+ integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==
+
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -10181,7 +10603,7 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-unquote@~1.1.1:
+unquote@^1.1.0, unquote@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
@@ -10505,7 +10927,7 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5:
dependencies:
iconv-lite "0.4.24"
-whatwg-fetch@^3.0.0:
+whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
@@ -10851,3 +11273,16 @@ yargs@^13.3.0:
which-module "^2.0.0"
y18n "^4.0.0"
yargs-parser "^13.1.2"
+
+zen-observable-ts@^0.8.21:
+ version "0.8.21"
+ resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d"
+ integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==
+ dependencies:
+ tslib "^1.9.3"
+ zen-observable "^0.8.0"
+
+zen-observable@^0.8.0:
+ version "0.8.15"
+ resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15"
+ integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==