From 64438929dce9366ce364f3477b36297c05e705a5 Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Wed, 26 May 2021 14:36:23 +0200 Subject: [PATCH 01/11] remove old chainsafe x package --- packages/chainsafex/.env.example | 9 -- packages/chainsafex/.gitignore | 26 ---- packages/chainsafex/.sentryclirc | 3 - packages/chainsafex/README.md | 29 ---- packages/chainsafex/craco.config.js | 44 ------ packages/chainsafex/package.json | 48 ------ packages/chainsafex/public/ChainSafe-logo.png | Bin 4267 -> 0 bytes packages/chainsafex/public/_redirects | 1 - packages/chainsafex/public/favicon.ico | Bin 1150 -> 0 bytes packages/chainsafex/public/index.html | 43 ------ packages/chainsafex/public/manifest.json | 15 -- packages/chainsafex/public/robots.txt | 3 - packages/chainsafex/scripts/sentry.js | 37 ----- packages/chainsafex/src/App.tsx | 71 --------- .../src/Components/Layouts/AppWrapper.tsx | 21 --- .../src/Components/Pages/HomePage.tsx | 8 - packages/chainsafex/src/Components/Routes.tsx | 23 --- packages/chainsafex/src/Themes/DarkTheme.ts | 14 -- packages/chainsafex/src/Themes/LightTheme.ts | 21 --- packages/chainsafex/src/Utils/Constants.ts | 1 - packages/chainsafex/src/index.css | 37 ----- packages/chainsafex/src/index.tsx | 12 -- packages/chainsafex/src/react-app-env.d.ts | 1 - packages/chainsafex/src/serviceWorker.ts | 146 ------------------ packages/chainsafex/src/setupTests.ts | 5 - packages/chainsafex/tsconfig.json | 22 --- 26 files changed, 640 deletions(-) delete mode 100644 packages/chainsafex/.env.example delete mode 100644 packages/chainsafex/.gitignore delete mode 100644 packages/chainsafex/.sentryclirc delete mode 100644 packages/chainsafex/README.md delete mode 100644 packages/chainsafex/craco.config.js delete mode 100644 packages/chainsafex/package.json delete mode 100644 packages/chainsafex/public/ChainSafe-logo.png delete mode 100644 packages/chainsafex/public/_redirects delete mode 100644 packages/chainsafex/public/favicon.ico delete mode 100644 packages/chainsafex/public/index.html delete mode 100644 packages/chainsafex/public/manifest.json delete mode 100644 packages/chainsafex/public/robots.txt delete mode 100644 packages/chainsafex/scripts/sentry.js delete mode 100644 packages/chainsafex/src/App.tsx delete mode 100644 packages/chainsafex/src/Components/Layouts/AppWrapper.tsx delete mode 100644 packages/chainsafex/src/Components/Pages/HomePage.tsx delete mode 100644 packages/chainsafex/src/Components/Routes.tsx delete mode 100644 packages/chainsafex/src/Themes/DarkTheme.ts delete mode 100644 packages/chainsafex/src/Themes/LightTheme.ts delete mode 100644 packages/chainsafex/src/Utils/Constants.ts delete mode 100644 packages/chainsafex/src/index.css delete mode 100644 packages/chainsafex/src/index.tsx delete mode 100644 packages/chainsafex/src/react-app-env.d.ts delete mode 100644 packages/chainsafex/src/serviceWorker.ts delete mode 100644 packages/chainsafex/src/setupTests.ts delete mode 100644 packages/chainsafex/tsconfig.json diff --git a/packages/chainsafex/.env.example b/packages/chainsafex/.env.example deleted file mode 100644 index 5134d7e8f0..0000000000 --- a/packages/chainsafex/.env.example +++ /dev/null @@ -1,9 +0,0 @@ -PORT=3000 -HTTPS=true - -REACT_APP_API_URL= -REACT_APP_STRIPE_PK= -REACT_APP_SENTRY_DSN_URL= -REACT_APP_SENTRY_RELEASE=development -REACT_APP_HOTJAR_ID= -SENTRY_AUTH_TOKEN= diff --git a/packages/chainsafex/.gitignore b/packages/chainsafex/.gitignore deleted file mode 100644 index 708492af74..0000000000 --- a/packages/chainsafex/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -.env -src/locales \ No newline at end of file diff --git a/packages/chainsafex/.sentryclirc b/packages/chainsafex/.sentryclirc deleted file mode 100644 index 8e1c713c07..0000000000 --- a/packages/chainsafex/.sentryclirc +++ /dev/null @@ -1,3 +0,0 @@ -[defaults] -org=chainsafe -project=files-ui diff --git a/packages/chainsafex/README.md b/packages/chainsafex/README.md deleted file mode 100644 index 86c1291e07..0000000000 --- a/packages/chainsafex/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# ChainSafeX Repo - - - -## Run development (.env) - -``` -yarn install -yarn start -``` - -## Build production (.env) - -``` -yarn build -``` - -## Run test and test coverage - -``` -yarn test -yarn coverage -``` - -**Visit**: `http://localhost:3000` diff --git a/packages/chainsafex/craco.config.js b/packages/chainsafex/craco.config.js deleted file mode 100644 index 63043ad78a..0000000000 --- a/packages/chainsafex/craco.config.js +++ /dev/null @@ -1,44 +0,0 @@ -const TerserPlugin = require("terser-webpack-plugin") - -module.exports = { - babel: { - plugins: ["macros"], - }, - webpack: { - configure: (webpackConfig) => ({ - ...webpackConfig, - optimization: { - ...webpackConfig.optimization, - minimizer: [ - new TerserPlugin({ - terserOptions: { - parse: { - ecma: 8, - }, - compress: { - ecma: 5, - warnings: false, - comparisons: false, - inline: 2, - drop_console: true, - }, - mangle: { - safari10: true, - }, - output: { - ecma: 5, - comments: false, - ascii_only: true, - }, - }, - parallel: 2, - cache: true, - sourceMap: true, - extractComments: false, - }), - ], - }, - devtool: "source-map", - }), - }, -} diff --git a/packages/chainsafex/package.json b/packages/chainsafex/package.json deleted file mode 100644 index 39d7ac3516..0000000000 --- a/packages/chainsafex/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "chainsafex", - "version": "1.0.0", - "private": true, - "dependencies": { - "@sentry/react": "^5.28.0", - "clsx": "^1.1.1", - "ethers": "^5.0.24", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "react-scripts": "3.4.4", - "yup": "^0.32.8" - }, - "devDependencies": { - "@craco/craco": "^5.9.0", - "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^11.2.2", - "@testing-library/user-event": "^12.5.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "@types/react-pdf": "^5.0.0" - }, - "scripts": { - "start": "craco --max_old_space_size=4096 start", - "build": "craco --max_old_space_size=4096 build", - "sentry": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); node scripts/sentry.js)", - "release": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); yarn build && node scripts/sentry.js)", - "test": "react-scripts test", - "analyze": "source-map-explorer 'build/static/js/*.js'" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/packages/chainsafex/public/ChainSafe-logo.png b/packages/chainsafex/public/ChainSafe-logo.png deleted file mode 100644 index 95ee5385b99548f0438c4cded9217266d0687986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4267 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 N002ovPDHLkV1nclQ*i(Q diff --git a/packages/chainsafex/public/_redirects b/packages/chainsafex/public/_redirects deleted file mode 100644 index 50a463356b..0000000000 --- a/packages/chainsafex/public/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /index.html 200 \ No newline at end of file diff --git a/packages/chainsafex/public/favicon.ico b/packages/chainsafex/public/favicon.ico deleted file mode 100644 index 0c72c7154d722498119d3024c9d3a86a63795c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYHS0;t;9_H%M_GLvezqN+xU z$KQYd9nN3)@A3ctf0Lg6JH(j5$H%Yl{_`hTkNM)IVA}2T=l>4p&V$*8bq$xXnZwV| z&tZT13|Nib$x~q3_VAJaY(StBoA4Io2It35{yRT;@?X`;IuzLq^M#8af#j{$Zvg9a zegFQy01(K^D%iRI`~?=X-nJb~+w9)+6(LUcdhD_URK?UR+u>iH(h2!0jW1 zZ+HASSlsR7N1&O4y2yG#Y>z5nnRCI@m0(4PMufB%B@3Q0)^gX9DRgxs|g zQ;xvYfoPb1_ix`(^n=VWsHuAoQUmgf!{sYrvmCEp`!8#35&;qi0c`s1&Yb;kd*s-E zk3WC@J3V*^)@QwSE10$i#sfqrgaqj~?&*W7+5Q70%F4>l4)eFgvK3%CkpG1Qg$Im^w?VX!|>ESIQb%R0vKQJc#?+0Rj28KVt9QwhTf#F~?14A2--(wBL$v_Mg S2k{Ts1Lf-(7=D8EKrsN#G%CaZ diff --git a/packages/chainsafex/public/index.html b/packages/chainsafex/public/index.html deleted file mode 100644 index 730b118b13..0000000000 --- a/packages/chainsafex/public/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - ChainSafe X - - - -
- - - diff --git a/packages/chainsafex/public/manifest.json b/packages/chainsafex/public/manifest.json deleted file mode 100644 index 6d00931386..0000000000 --- a/packages/chainsafex/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "ChainSafe-logo.png", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/packages/chainsafex/public/robots.txt b/packages/chainsafex/public/robots.txt deleted file mode 100644 index e9e57dc4d4..0000000000 --- a/packages/chainsafex/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/packages/chainsafex/scripts/sentry.js b/packages/chainsafex/scripts/sentry.js deleted file mode 100644 index efa38ef60a..0000000000 --- a/packages/chainsafex/scripts/sentry.js +++ /dev/null @@ -1,37 +0,0 @@ -const SentryCli = require("@sentry/cli") -const dotenv = require("dotenv") -dotenv.config() - -async function createReleaseAndUpload() { - const release = process.env.REACT_APP_SENTRY_RELEASE - const environment = process.env.REACT_APP_SENTRY_ENV - - if (!release || !environment) { - console.warn("REACT_APP_SENTRY_RELEASE or REACT_APP_SENTRY_ENV is not set") - return - } - - const cli = new SentryCli() - - try { - console.log("Creating sentry release " + release) - await cli.releases.new(release) - - console.log("Uploading source maps") - await cli.releases.uploadSourceMaps(release, { - include: ["build/static/js"], - rewrite: true, - validate: true, - }) - - console.log("Finalizing release") - // await cli.releases.setCommits(release, {auto: true}) - await cli.releases.newDeploy(release, { env: environment }) - - await cli.releases.finalize(release) - } catch (e) { - console.error("Creating a release on Sentry failed.", e) - } -} - -createReleaseAndUpload() diff --git a/packages/chainsafex/src/App.tsx b/packages/chainsafex/src/App.tsx deleted file mode 100644 index fee246b00b..0000000000 --- a/packages/chainsafex/src/App.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { useEffect } from "react" -import { - init as initSentry, - ErrorBoundary, - showReportDialog -} from "@sentry/react" -import { ThemeSwitcher } from "@chainsafe/common-theme" -import { CssBaseline, Router } from "@chainsafe/common-components" -import AppWrapper from "./Components/Layouts/AppWrapper" -import { lightTheme } from "./Themes/LightTheme" -import { darkTheme } from "./Themes/DarkTheme" -import { useHotjar } from "react-use-hotjar" -import Routes from "./Components/Routes" - -if ( - process.env.NODE_ENV === "production" && - process.env.REACT_APP_SENTRY_DSN_URL && - process.env.REACT_APP_SENTRY_RELEASE -) { - initSentry({ - dsn: process.env.REACT_APP_SENTRY_DSN_URL, - release: process.env.REACT_APP_SENTRY_RELEASE - }) -} - -const App: React.FC<{}> = () => { - const { initHotjar } = useHotjar() - const hotjarId = process.env.REACT_APP_HOTJAR_ID - - // const apiUrl = - // process.env.REACT_APP_API_URL || "http://3.236.79.100:8000/api/v1" - - useEffect(() => { - if (hotjarId && process.env.NODE_ENV === "production") { - initHotjar(hotjarId, "6", () => console.log("Hotjar initialized")) - } - }, [hotjarId, initHotjar]) - - return ( - ( -
-

- An error occurred and has been logged. If you would like to provide - additional info to help us debug and resolve the issue, click the - "Provide Additional Details" button -

-

{error?.message.toString()}

-

{componentStack}

-

{eventId}

- - -
- )} - onReset={() => window.location.reload()} - > - - - - - - - - -
- ) -} - -export default App diff --git a/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx b/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx deleted file mode 100644 index 9edf14e8e9..0000000000 --- a/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { createStyles, makeStyles } from "@chainsafe/common-theme" -import React from "react" -import { ReactNode } from "react" - -interface IAppWrapper { - children: ReactNode | ReactNode[] -} - -const useStyles = makeStyles(() => { - return createStyles({ - root: {} - }) -}) - -const AppWrapper: React.FC = ({ children }: IAppWrapper) => { - const classes = useStyles() - - return
{children}
-} - -export default AppWrapper diff --git a/packages/chainsafex/src/Components/Pages/HomePage.tsx b/packages/chainsafex/src/Components/Pages/HomePage.tsx deleted file mode 100644 index cf47bb8c6d..0000000000 --- a/packages/chainsafex/src/Components/Pages/HomePage.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Typography } from "@chainsafe/common-components" -import React from "react" - -const HomePage = () => { - return Home Page -} - -export default HomePage diff --git a/packages/chainsafex/src/Components/Routes.tsx b/packages/chainsafex/src/Components/Routes.tsx deleted file mode 100644 index fa81c00e51..0000000000 --- a/packages/chainsafex/src/Components/Routes.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react" -import { Switch, ConditionalRoute } from "@chainsafe/common-components" -import HomePage from "./Pages/HomePage" - -export const ROUTE_LINKS = { - Landing: "/" -} - -const Routes = () => { - return ( - - - - ) -} - -export default Routes diff --git a/packages/chainsafex/src/Themes/DarkTheme.ts b/packages/chainsafex/src/Themes/DarkTheme.ts deleted file mode 100644 index 7045bbe126..0000000000 --- a/packages/chainsafex/src/Themes/DarkTheme.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createTheme } from "@chainsafe/common-theme" - -export const darkTheme = createTheme({ - themeConfig: { - palette: { - primary: { - main: "#FFF" - }, - secondary: { - main: "#000" - } - } - } -}) diff --git a/packages/chainsafex/src/Themes/LightTheme.ts b/packages/chainsafex/src/Themes/LightTheme.ts deleted file mode 100644 index 2bb193e537..0000000000 --- a/packages/chainsafex/src/Themes/LightTheme.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createTheme } from "@chainsafe/common-theme" - -export const lightTheme = createTheme({ - themeConfig: { - palette: { - primary: { - main: "#262626", - hover: "#FFF" - }, - secondary: { - main: "#FFF", - hover: "#000" - } - }, - constants: {}, - overrides: { - Typography: {}, - Button: {} - } - } -}) diff --git a/packages/chainsafex/src/Utils/Constants.ts b/packages/chainsafex/src/Utils/Constants.ts deleted file mode 100644 index 7c13663893..0000000000 --- a/packages/chainsafex/src/Utils/Constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const placeholder = "" diff --git a/packages/chainsafex/src/index.css b/packages/chainsafex/src/index.css deleted file mode 100644 index 27d7e1d0f8..0000000000 --- a/packages/chainsafex/src/index.css +++ /dev/null @@ -1,37 +0,0 @@ -/* h1, -h2, -h3, -h4, -h5, -h6 { - color: rgba(255, 255, 255, 1); -} */ - -/* .bn-onboard-custom.bn-onboard-modal { - font-family: 'Montserrat'; - border-radius: 5px; -} - -.bn-onboard-custom.bn-onboard-modal-content { - background: #424242 !important; -} - -.bn-onboard-prepare-button { - border-color: #FFE500 !important; - color: #FFE500 !important; -} - -.bn-onboard-custom.bn-onboard-select-info-container > span { - color: #FFE500 !important; -} */ -/* Chrome, Safari, Edge, Opera */ -/* input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -/* Firefox */ -/* input[type="number"] { - -moz-appearance: textfield; -} */ diff --git a/packages/chainsafex/src/index.tsx b/packages/chainsafex/src/index.tsx deleted file mode 100644 index 32e15e9972..0000000000 --- a/packages/chainsafex/src/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -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")) - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: https://bit.ly/CRA-PWA -serviceWorker.unregister() diff --git a/packages/chainsafex/src/react-app-env.d.ts b/packages/chainsafex/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc6..0000000000 --- a/packages/chainsafex/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/chainsafex/src/serviceWorker.ts b/packages/chainsafex/src/serviceWorker.ts deleted file mode 100644 index dfbfce7590..0000000000 --- a/packages/chainsafex/src/serviceWorker.ts +++ /dev/null @@ -1,146 +0,0 @@ -// This optional code is used to register a service worker. -// register() is not called by default. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on subsequent visits to a page, after all the -// existing tabs open on the page have been closed, since previously cached -// resources are updated in the background. - -// To learn more about the benefits of this model and instructions on how to -// opt-in, read https://bit.ly/CRA-PWA - -const isLocalhost = Boolean( - window.location.hostname === "localhost" || - // [::1] is the IPv6 localhost address. - window.location.hostname === "[::1]" || - // 127.0.0.0/8 are considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -) - -type Config = { - onSuccess?: (registration: ServiceWorkerRegistration) => void - onUpdate?: (registration: ServiceWorkerRegistration) => void -} - -export function register(config?: Config) { - if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return - } - - window.addEventListener("load", () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config) - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - "This web app is being served cache-first by a service " + - "worker. To learn more, visit https://bit.ly/CRA-PWA" - ) - }) - } else { - // Is not localhost. Just register service worker - registerValidSW(swUrl, config) - } - }) - } -} - -function registerValidSW(swUrl: string, config?: Config) { - navigator.serviceWorker - .register(swUrl) - .then((registration) => { - registration.onupdatefound = () => { - const installingWorker = registration.installing - if (installingWorker == null) { - return - } - installingWorker.onstatechange = () => { - if (installingWorker.state === "installed") { - if (navigator.serviceWorker.controller) { - // At this point, the updated precached content has been fetched, - // but the previous service worker will still serve the older - // content until all client tabs are closed. - console.log( - "New content is available and will be used when all " + - "tabs for this page are closed. See https://bit.ly/CRA-PWA." - ) - - // Execute callback - if (config && config.onUpdate) { - config.onUpdate(registration) - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log("Content is cached for offline use.") - - // Execute callback - if (config && config.onSuccess) { - config.onSuccess(registration) - } - } - } - } - } - }) - .catch((error) => { - console.error("Error during service worker registration:", error) - }) -} - -function checkValidServiceWorker(swUrl: string, config?: Config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl, { - headers: { "Service-Worker": "script" } - }) - .then((response) => { - // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get("content-type") - if ( - response.status === 404 || - (contentType != null && contentType.indexOf("javascript") === -1) - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then((registration) => { - registration.unregister().then(() => { - window.location.reload() - }) - }) - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config) - } - }) - .catch(() => { - console.log( - "No internet connection found. App is running in offline mode." - ) - }) -} - -export function unregister() { - if ("serviceWorker" in navigator) { - navigator.serviceWorker.ready - .then((registration) => { - registration.unregister() - }) - .catch((error) => { - console.error(error.message) - }) - } -} diff --git a/packages/chainsafex/src/setupTests.ts b/packages/chainsafex/src/setupTests.ts deleted file mode 100644 index 3f9fc64cfc..0000000000 --- a/packages/chainsafex/src/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import "@testing-library/jest-dom/extend-expect" diff --git a/packages/chainsafex/tsconfig.json b/packages/chainsafex/tsconfig.json deleted file mode 100644 index 3c63d24041..0000000000 --- a/packages/chainsafex/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react", - "sourceMap": true, - "inlineSources": true, - "sourceRoot": "/" - }, - "include": ["src"] -} From 872c0529f095185450ec9e74279e5e3643105aea Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Thu, 27 May 2021 00:57:11 +0200 Subject: [PATCH 02/11] initial app skeleton and refactor --- package.json | 8 +- packages/common-components/rollup.config.js | 2 +- packages/common-contexts/.gitignore | 49 - packages/common-contexts/.npmignore | 6 - packages/common-contexts/.npmrc | 6 - packages/common-contexts/LICENSE | 165 - packages/common-contexts/README.md | 3 - packages/common-contexts/package.json | 62 - packages/common-contexts/rollup.config.js | 29 - .../src/BillingContext/index.ts | 1 - .../src/FilesApiContext/index.ts | 7 - .../src/FilesApiContext/utils.ts | 6 - .../common-contexts/src/UserContext/index.ts | 1 - packages/common-contexts/src/helpers/index.ts | 1 - packages/common-contexts/src/index.ts | 4 - packages/common-contexts/tsconfig.json | 25 - packages/common-contexts/yarn.lock | 5225 ----------------- packages/common-modules/.gitignore | 49 - packages/common-modules/.npmignore | 6 - packages/common-modules/LICENSE | 165 - packages/common-modules/README.md | 3 - packages/common-modules/package.json | 44 - packages/common-modules/rollup.config.js | 29 - packages/common-modules/src/index.ts | 1 - packages/common-modules/tsconfig.json | 25 - packages/common-modules/yarn.lock | 5225 ----------------- packages/files-ui/package.json | 2 + packages/files-ui/src/App.tsx | 4 +- .../files-ui/src/Components/FilesRoutes.tsx | 2 +- .../src/Components/Layouts/AppHeader.tsx | 3 +- .../src/Components/Layouts/AppNav.tsx | 4 +- .../src/Components/Layouts/AppWrapper.tsx | 2 +- .../Modules/FileBrowsers/BinFileBrowser.tsx | 2 +- .../Modules/FileBrowsers/CSFFileBrowser.tsx | 3 +- .../FileBrowsers/CreateFolderModal.tsx | 3 +- .../Modules/FileBrowsers/FileInfoModal.tsx | 2 +- .../Modules/FileBrowsers/MoveFileModal.tsx | 3 +- .../FileBrowsers/SearchFileBrowser.tsx | 2 +- .../Modules/LoginModule/InitialScreen.tsx | 2 +- .../Modules/LoginModule/MigrateAccount.tsx | 2 +- .../src/Components/Modules/SearchModule.tsx | 3 +- .../Components/Modules/Settings/Profile.tsx | 2 +- .../Modules/Settings/PurchasePlan/index.tsx | 3 +- .../src/Components/Pages/LoginPage.tsx | 2 +- .../src/Contexts}/BillingContext.tsx | 2 +- .../src/Contexts}/FilesApiContext.tsx | 4 +- .../files-ui/src/Contexts/FilesContext.tsx | 4 +- .../src/Contexts/ThresholdKeyContext.tsx | 4 +- .../src/Contexts}/UserContext.tsx | 2 +- .../src/Utils}/encryption.ts | 0 packages/storage-ui/.env.example | 20 + packages/storage-ui/.gitignore | 29 + packages/storage-ui/.linguirc | 14 + packages/storage-ui/.sentryclirc | 3 + packages/storage-ui/README.md | 28 + packages/storage-ui/craco.config.js | 48 + packages/storage-ui/cypress.json | 1 + .../storage-ui/cypress/fixtures/loginData.ts | 4 + .../cypress/fixtures/uploadedFiles/logo.png | Bin 0 -> 180586 bytes .../fixtures/uploadedFiles/text-file.txt | 1 + .../cypress/integration/file-management.ts | 26 + .../cypress/integration/settings.ts | 30 + packages/storage-ui/cypress/plugins/index.ts | 33 + .../storage-ui/cypress/support/commands.ts | 207 + packages/storage-ui/cypress/support/index.ts | 31 + .../cypress/support/utils/CustomBridge.ts | 82 + packages/storage-ui/cypress/tsconfig.json | 10 + packages/storage-ui/package.json | 97 + packages/storage-ui/public/_redirects | 1 + .../public/abstract-image-large.png | Bin 0 -> 166672 bytes .../public/android-chrome-192x192.png | Bin 0 -> 15961 bytes .../public/android-chrome-512x512.png | Bin 0 -> 34082 bytes .../storage-ui/public/apple-touch-icon.png | Bin 0 -> 15961 bytes packages/storage-ui/public/favicon-16x16.png | Bin 0 -> 2513 bytes packages/storage-ui/public/favicon-32x32.png | Bin 0 -> 4019 bytes packages/storage-ui/public/favicon.ico | Bin 0 -> 4286 bytes packages/storage-ui/public/index.html | 58 + packages/storage-ui/public/manifest.json | 15 + packages/storage-ui/public/pdf.worker.min.js | 22 + packages/storage-ui/public/robots.txt | 3 + .../public/serviceworker/redirect.html | 316 + .../storage-ui/public/serviceworker/sw.js | 312 + packages/storage-ui/public/site.webmanifest | 19 + packages/storage-ui/scripts/sentry.js | 37 + packages/storage-ui/src/App.tsx | 132 + .../src/Components/Elements/CustomButton.tsx | 56 + .../src/Components/Elements/CustomModal.tsx | 61 + .../src/Components/Layouts/AppHeader.tsx | 233 + .../src/Components/Layouts/AppNav.tsx | 346 ++ .../src/Components/Layouts/AppWrapper.tsx | 91 + .../Modules/LoginModule/InitialScreen.tsx | 421 ++ .../src/Components/Pages/LoginPage.tsx | 166 + .../src/Components/Pages/PinsPage.tsx | 26 + .../src/Components/StorageRoutes.tsx | 41 + .../src/Contexts/FilesApiContext.tsx | 399 ++ .../storage-ui/src/Contexts/FilesReducers.tsx | 119 + .../src/Contexts/LanguageContext.tsx | 140 + .../src/Contexts/StorageContext.tsx | 312 + packages/storage-ui/src/Media/Empty.svg.tsx | 3 + packages/storage-ui/src/Media/devices.png | Bin 0 -> 81819 bytes .../Media/landing/layers/ForegroundSVG.tsx | 16 + .../landing/layers/dark/Bottom.dark.svg.tsx | 3 + .../landing/layers/dark/Top.dark.svg.tsx | 3 + .../Media/landing/layers/dark/bottom-bg.svg | 1 + .../src/Media/landing/layers/dark/top-bg.svg | 1 + .../Media/landing/layers/desktop-mobile.png | Bin 0 -> 98840 bytes .../src/Media/landing/layers/foreground.svg | 1 + .../landing/layers/light/Bottom.light.svg.tsx | 3 + .../landing/layers/light/Top.light.svg.tsx | 3 + .../Media/landing/layers/light/bottom-bg.svg | 1 + .../src/Media/landing/layers/light/top-bg.svg | 1 + .../src/Media/landing/layers/password-key.png | Bin 0 -> 42006 bytes .../landing/layers/peaceful-succotash.png | Bin 0 -> 69979 bytes .../storage-ui/src/Media/svgs/complete.svg | 1611 +++++ packages/storage-ui/src/Media/svgs/empty.svg | 5 + packages/storage-ui/src/Themes/Constants.ts | 161 + packages/storage-ui/src/Themes/DarkTheme.ts | 599 ++ packages/storage-ui/src/Themes/LightTheme.ts | 196 + packages/storage-ui/src/Themes/types.ts | 4 + packages/storage-ui/src/Utils/Constants.ts | 12 + packages/storage-ui/src/Utils/Helpers.tsx | 46 + packages/storage-ui/src/Utils/MimeMatcher.ts | 95 + .../src/Utils/contentTypeGuesser.ts | 26 + packages/storage-ui/src/Utils/encryption.ts | 94 + packages/storage-ui/src/Utils/pathUtils.ts | 50 + packages/storage-ui/src/index.css | 27 + packages/storage-ui/src/index.tsx | 12 + .../storage-ui/src/locales/en/messages.po | 110 + .../storage-ui/src/locales/fr/messages.po | 101 + packages/storage-ui/src/react-app-env.d.ts | 1 + packages/storage-ui/src/serviceWorker.ts | 146 + packages/storage-ui/src/setupTests.ts | 5 + packages/storage-ui/tsconfig.json | 23 + yarn.lock | 692 +-- 134 files changed, 7636 insertions(+), 11615 deletions(-) delete mode 100644 packages/common-contexts/.gitignore delete mode 100644 packages/common-contexts/.npmignore delete mode 100644 packages/common-contexts/.npmrc delete mode 100644 packages/common-contexts/LICENSE delete mode 100644 packages/common-contexts/README.md delete mode 100644 packages/common-contexts/package.json delete mode 100644 packages/common-contexts/rollup.config.js delete mode 100644 packages/common-contexts/src/BillingContext/index.ts delete mode 100644 packages/common-contexts/src/FilesApiContext/index.ts delete mode 100644 packages/common-contexts/src/FilesApiContext/utils.ts delete mode 100644 packages/common-contexts/src/UserContext/index.ts delete mode 100644 packages/common-contexts/src/helpers/index.ts delete mode 100644 packages/common-contexts/src/index.ts delete mode 100644 packages/common-contexts/tsconfig.json delete mode 100644 packages/common-contexts/yarn.lock delete mode 100644 packages/common-modules/.gitignore delete mode 100644 packages/common-modules/.npmignore delete mode 100644 packages/common-modules/LICENSE delete mode 100644 packages/common-modules/README.md delete mode 100644 packages/common-modules/package.json delete mode 100644 packages/common-modules/rollup.config.js delete mode 100644 packages/common-modules/src/index.ts delete mode 100644 packages/common-modules/tsconfig.json delete mode 100644 packages/common-modules/yarn.lock rename packages/{common-contexts/src/BillingContext => files-ui/src/Contexts}/BillingContext.tsx (97%) rename packages/{common-contexts/src/FilesApiContext => files-ui/src/Contexts}/FilesApiContext.tsx (99%) rename packages/{common-contexts/src/UserContext => files-ui/src/Contexts}/UserContext.tsx (98%) rename packages/{common-contexts/src/helpers => files-ui/src/Utils}/encryption.ts (100%) create mode 100644 packages/storage-ui/.env.example create mode 100644 packages/storage-ui/.gitignore create mode 100644 packages/storage-ui/.linguirc create mode 100644 packages/storage-ui/.sentryclirc create mode 100644 packages/storage-ui/README.md create mode 100644 packages/storage-ui/craco.config.js create mode 100644 packages/storage-ui/cypress.json create mode 100644 packages/storage-ui/cypress/fixtures/loginData.ts create mode 100644 packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png create mode 100644 packages/storage-ui/cypress/fixtures/uploadedFiles/text-file.txt create mode 100644 packages/storage-ui/cypress/integration/file-management.ts create mode 100644 packages/storage-ui/cypress/integration/settings.ts create mode 100644 packages/storage-ui/cypress/plugins/index.ts create mode 100644 packages/storage-ui/cypress/support/commands.ts create mode 100644 packages/storage-ui/cypress/support/index.ts create mode 100644 packages/storage-ui/cypress/support/utils/CustomBridge.ts create mode 100644 packages/storage-ui/cypress/tsconfig.json create mode 100644 packages/storage-ui/package.json create mode 100644 packages/storage-ui/public/_redirects create mode 100644 packages/storage-ui/public/abstract-image-large.png create mode 100644 packages/storage-ui/public/android-chrome-192x192.png create mode 100644 packages/storage-ui/public/android-chrome-512x512.png create mode 100644 packages/storage-ui/public/apple-touch-icon.png create mode 100644 packages/storage-ui/public/favicon-16x16.png create mode 100644 packages/storage-ui/public/favicon-32x32.png create mode 100644 packages/storage-ui/public/favicon.ico create mode 100644 packages/storage-ui/public/index.html create mode 100644 packages/storage-ui/public/manifest.json create mode 100644 packages/storage-ui/public/pdf.worker.min.js create mode 100644 packages/storage-ui/public/robots.txt create mode 100644 packages/storage-ui/public/serviceworker/redirect.html create mode 100644 packages/storage-ui/public/serviceworker/sw.js create mode 100644 packages/storage-ui/public/site.webmanifest create mode 100644 packages/storage-ui/scripts/sentry.js create mode 100644 packages/storage-ui/src/App.tsx create mode 100644 packages/storage-ui/src/Components/Elements/CustomButton.tsx create mode 100644 packages/storage-ui/src/Components/Elements/CustomModal.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppHeader.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppNav.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppWrapper.tsx create mode 100644 packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx create mode 100644 packages/storage-ui/src/Components/Pages/LoginPage.tsx create mode 100644 packages/storage-ui/src/Components/Pages/PinsPage.tsx create mode 100644 packages/storage-ui/src/Components/StorageRoutes.tsx create mode 100644 packages/storage-ui/src/Contexts/FilesApiContext.tsx create mode 100644 packages/storage-ui/src/Contexts/FilesReducers.tsx create mode 100644 packages/storage-ui/src/Contexts/LanguageContext.tsx create mode 100644 packages/storage-ui/src/Contexts/StorageContext.tsx create mode 100644 packages/storage-ui/src/Media/Empty.svg.tsx create mode 100644 packages/storage-ui/src/Media/devices.png create mode 100644 packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/desktop-mobile.png create mode 100644 packages/storage-ui/src/Media/landing/layers/foreground.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/light/top-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/password-key.png create mode 100644 packages/storage-ui/src/Media/landing/layers/peaceful-succotash.png create mode 100644 packages/storage-ui/src/Media/svgs/complete.svg create mode 100644 packages/storage-ui/src/Media/svgs/empty.svg create mode 100644 packages/storage-ui/src/Themes/Constants.ts create mode 100644 packages/storage-ui/src/Themes/DarkTheme.ts create mode 100644 packages/storage-ui/src/Themes/LightTheme.ts create mode 100644 packages/storage-ui/src/Themes/types.ts create mode 100644 packages/storage-ui/src/Utils/Constants.ts create mode 100644 packages/storage-ui/src/Utils/Helpers.tsx create mode 100644 packages/storage-ui/src/Utils/MimeMatcher.ts create mode 100644 packages/storage-ui/src/Utils/contentTypeGuesser.ts create mode 100644 packages/storage-ui/src/Utils/encryption.ts create mode 100644 packages/storage-ui/src/Utils/pathUtils.ts create mode 100644 packages/storage-ui/src/index.css create mode 100644 packages/storage-ui/src/index.tsx create mode 100644 packages/storage-ui/src/locales/en/messages.po create mode 100644 packages/storage-ui/src/locales/fr/messages.po create mode 100644 packages/storage-ui/src/react-app-env.d.ts create mode 100644 packages/storage-ui/src/serviceWorker.ts create mode 100644 packages/storage-ui/src/setupTests.ts create mode 100644 packages/storage-ui/tsconfig.json diff --git a/package.json b/package.json index c02314dbba..a0300fab5c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "scripts": { "postinstall": "yarn build:common && yarn wsrun -p files-ui -c compile", - "build:common": "yarn build:theme && yarn build:components && yarn build:contexts", + "build:common": "yarn build:theme && yarn build:components", "build:contexts": "yarn wsrun -t -p @chainsafe/common-contexts -c build", "build:components": "yarn wsrun -t -p @chainsafe/common-components -c build", "build:theme": "yarn wsrun -t -p @chainsafe/common-theme -c build", @@ -31,9 +31,9 @@ "build:files-ui": "yarn wsrun -p files-ui -c build", "release:files-ui": "yarn wsrun -p files-ui -c release", "start:files-ui": "yarn wsrun -p files-ui -c start", - "build:chainsafex": "yarn wsrun -p chainsafex -c build", - "release:chainsafex": "yarn wsrun -p chainsafex -c release", - "start:chainsafex": "yarn wsrun -p chainsafex -c start", + "build:storage-ui": "yarn wsrun -p storage-ui -c build", + "release:storage-ui": "yarn wsrun -p storage-ui -c release", + "start:storage-ui": "yarn wsrun -p storage-ui -c start", "clean:dependencies": "rm -rf ./node_modules && rm -rf ./*/**/node_modules", "clean:dist": "rm -rf ./*/**/dist && rm -rf ./*/**/build && rm -rf ./*/**/storybook-static", "clean": "yarn clean:dependencies && yarn clean:dist", diff --git a/packages/common-components/rollup.config.js b/packages/common-components/rollup.config.js index a9cfaf3ae7..cf32c5eaa8 100644 --- a/packages/common-components/rollup.config.js +++ b/packages/common-components/rollup.config.js @@ -18,8 +18,8 @@ export default { strict: true }, plugins: [ - image(), peerDepsExternal(), + image(), resolve(), commonjs(), typescript(), diff --git a/packages/common-contexts/.gitignore b/packages/common-contexts/.gitignore deleted file mode 100644 index 3ae30aa8fb..0000000000 --- a/packages/common-contexts/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# generate output -dist -build diff --git a/packages/common-contexts/.npmignore b/packages/common-contexts/.npmignore deleted file mode 100644 index 37392c3699..0000000000 --- a/packages/common-contexts/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -dist -.babelrc -.storybook -.gitignore -rollup.config.js -tsconfig.json diff --git a/packages/common-contexts/.npmrc b/packages/common-contexts/.npmrc deleted file mode 100644 index df9588e268..0000000000 --- a/packages/common-contexts/.npmrc +++ /dev/null @@ -1,6 +0,0 @@ -registry=https://registry.yarnpkg.com/ - -@chainsafe:registry=https://npm.pkg.github.com -//npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES_AUTH_TOKEN} -//registry.npmjs.org -always-auth=true \ No newline at end of file diff --git a/packages/common-contexts/LICENSE b/packages/common-contexts/LICENSE deleted file mode 100644 index efc5d950ff..0000000000 --- a/packages/common-contexts/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/packages/common-contexts/README.md b/packages/common-contexts/README.md deleted file mode 100644 index 44e1c525b3..0000000000 --- a/packages/common-contexts/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Imploy Contexts - -This is a collection of commonly used contexts diff --git a/packages/common-contexts/package.json b/packages/common-contexts/package.json deleted file mode 100644 index 1ced8ff24f..0000000000 --- a/packages/common-contexts/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "@chainsafe/common-contexts", - "version": "1.0.0", - "description": "Common contexts", - "author": "Chainsafe Products Team", - "license": "GPL-3.0", - "main": "dist/index.js", - "engines": { - "node": ">=8", - "yarn": ">=1" - }, - "scripts": { - "build": "rollup -c", - "start": "rollup -c -w" - }, - "dependencies": { - "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client": "1.11.2", - "axios": "^0.21.1", - "uuid": "^8.3.1" - }, - "peerDependencies": { - "@chainsafe/web3-context": ">1.1.0", - "axios": "^0.21.1", - "ethers": "5.0.24", - "jwt-decode": "^3.1.2", - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - }, - "devDependencies": { - "@chainsafe/web3-context": "1.1.4", - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^10.0.0", - "@types/jwt-decode": "^2.2.1", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "@types/styled-components": "^5.1.4", - "@types/uuid": "^8.3.0", - "axios": "^0.21.1", - "babel-core": "^6.26.3", - "babel-plugin-styled-components": "^1.12.0", - "babel-runtime": "^6.26.0", - "ethers": "5.0.24", - "jwt-decode": "^3.1.2", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "rollup": "2.34.2", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-typescript2": "^0.29.0", - "styled-components": "^5.2.1", - "typescript": "^4.0.5" - }, - "files": [ - "dist" - ], - "keywords": [ - "react", - "typescript" - ] -} diff --git a/packages/common-contexts/rollup.config.js b/packages/common-contexts/rollup.config.js deleted file mode 100644 index bbaa8a2681..0000000000 --- a/packages/common-contexts/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import typescript from "rollup-plugin-typescript2" -import resolve from "@rollup/plugin-node-resolve" -import commonjs from "@rollup/plugin-commonjs" -import json from "@rollup/plugin-json" -import nodePolyfills from "rollup-plugin-node-polyfills" -import peerDepsExternal from "rollup-plugin-peer-deps-external" - -export default { - input: "src/index.ts", - output: { - format: "esm", // needs to be esm format as Onboard.js contains code-splitting - dir: "dist/", - exports: "named", - sourcemap: true, - strict: false, - }, - plugins: [ - peerDepsExternal(), - typescript(), - json(), - resolve({ - browser: true, - preferBuiltins: true, - }), - commonjs(), - nodePolyfills(), - ], - external: ["react", "react-dom", "bnc-onboard"], -} diff --git a/packages/common-contexts/src/BillingContext/index.ts b/packages/common-contexts/src/BillingContext/index.ts deleted file mode 100644 index 90b1a5dedd..0000000000 --- a/packages/common-contexts/src/BillingContext/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { useBilling, BillingProvider } from "./BillingContext" diff --git a/packages/common-contexts/src/FilesApiContext/index.ts b/packages/common-contexts/src/FilesApiContext/index.ts deleted file mode 100644 index 985ca76041..0000000000 --- a/packages/common-contexts/src/FilesApiContext/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { - FilesApiProvider, - useFilesApi, - OAuthProvider -} from "./FilesApiContext" - -export { signMessage } from "./utils" diff --git a/packages/common-contexts/src/FilesApiContext/utils.ts b/packages/common-contexts/src/FilesApiContext/utils.ts deleted file mode 100644 index 938b4ed342..0000000000 --- a/packages/common-contexts/src/FilesApiContext/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Signer } from "ethers" - -export const signMessage = async (message: string, signer: Signer) => { - const sig = await signer.signMessage(message) - return sig -} diff --git a/packages/common-contexts/src/UserContext/index.ts b/packages/common-contexts/src/UserContext/index.ts deleted file mode 100644 index 4804b09fc8..0000000000 --- a/packages/common-contexts/src/UserContext/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Profile, useUser, UserProvider } from "./UserContext" diff --git a/packages/common-contexts/src/helpers/index.ts b/packages/common-contexts/src/helpers/index.ts deleted file mode 100644 index 40c8a307bc..0000000000 --- a/packages/common-contexts/src/helpers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./encryption" diff --git a/packages/common-contexts/src/index.ts b/packages/common-contexts/src/index.ts deleted file mode 100644 index 00a833aece..0000000000 --- a/packages/common-contexts/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./FilesApiContext" -export * from "./UserContext" -export * from "./BillingContext" -export * from "./helpers" diff --git a/packages/common-contexts/tsconfig.json b/packages/common-contexts/tsconfig.json deleted file mode 100644 index 4182e72cab..0000000000 --- a/packages/common-contexts/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "outDir": "dist", - "module": "esnext", - "target": "es5", - "lib": ["es6", "dom", "es2016", "es2017"], - "sourceMap": true, - "allowJs": false, - "jsx": "react", - "strict": true, - "declaration": true, - "moduleResolution": "node", - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noImplicitAny": true, - "strictNullChecks": true, - "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "allowSyntheticDefaultImports": true - }, - "include": ["src"], - "exclude": ["node_modules", "dist", "example", "rollup.config.js"] -} diff --git a/packages/common-contexts/yarn.lock b/packages/common-contexts/yarn.lock deleted file mode 100644 index 7949caf249..0000000000 --- a/packages/common-contexts/yarn.lock +++ /dev/null @@ -1,5225 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@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/plugin-transform-runtime@^7.5.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/types@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@chaitanyapotti/random-id@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@chaitanyapotti/random-id/-/random-id-1.0.3.tgz#f52f647cfe9f79fc7723ea2b01b0ad3889204002" - integrity sha512-xiVWA2vTL3jQeuZ+yebXAtwIeEbh/13RAFxvRq0YxeUc02RBOGyC9eyDKXjwlN0uxPtnEwWxsELkSwnaH5kxjg== - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abi@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.2.tgz#7fe8f080aa1483fe32cd27bb5b8f2019266af1e2" - integrity sha512-Z+5f7xOgtRLu/W2l9Ry5xF7ehh9QVQ0m1vhynmTcS7DMfHgqTd1/PDFC62aw91ZPRCRZsYdZJu8ymokC5e1JSw== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/abstract-provider@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.2.tgz#9b4e8f4870f0691463e8d5b092c95dd5275c635d" - integrity sha512-U1s60+nG02x8FKNMoVNI6MG8SguWCoG9HJtwOqWZ38LBRMsDV4c0w4izKx98kcsN3wXw4U2/YAyJ9LlH7+/hkg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - -"@ethersproject/abstract-signer@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.2.tgz#5776f888fda816de1d08ddb0e74778ecb9590f69" - integrity sha512-CzzXbeqKlgayE4YTnvvreGBG3n+HxakGXrxaGM6LjBZnOOIVSYi6HMFG8ZXls7UspRY4hvMrtnKEJKDCOngSBw== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.2.tgz#80d0ddfb7d4bd0d32657747fa4bdd2defef2e00a" - integrity sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/base64@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.2.tgz#48b3bb8d640a963bd8ee196cfeacd592155a0ca8" - integrity sha512-0FE5RH5cUDddOiQEDpWtyHjkSW4D5/rdJzA3KTZo8Fk5ab/Y8vdzqbamsXPyPsXU3gS+zCE5Qq4EKVOWlWLLTA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - -"@ethersproject/basex@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.2.tgz#13029ce0ad63674f4d4dbebf6763181fb22f0e6d" - integrity sha512-p4m2CeQqI9vma3XipRbP2iDf6zTsbroE0MEXBAYXidsoJQSvePKrC6MVRKfTzfcHej1b9wfmjVBzqhqn3FRhIA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.5.tgz#31bd7e75aad46ace345fae69b1f5bb120906af1b" - integrity sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.3.tgz#b3769963ae0188a35713d343890a903bda20af9c" - integrity sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.2.tgz#f7ac0b320e2bbec1a5950da075015f8bc4e8fed1" - integrity sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - -"@ethersproject/contracts@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.2.tgz#f19ed8335ceeb6abb60f5d45641f0a2a62b6fbc5" - integrity sha512-Ud3oW8mBNIWE+WHRjvwVEwfvshn7lfYWSSKG0fPSb6baRN9mLOoNguX+VIv3W5Sne9w2utnBmxLF2ESXitw64A== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.2.tgz#6d69558786961836d530b8b4a8714eac5388aec7" - integrity sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/hdnode@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.2.tgz#c4f2152590a64822d0c0feb90f09cc247af657e0" - integrity sha512-QAUI5tfseTFqv00Vnbwzofqse81wN9TaL+x5GufTHIHJXgVdguxU+l39E3VYDCmO+eVAA6RCn5dJgeyra+PU2g== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/json-wallets@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.4.tgz#e09bf2d34279c6dd2b4a4d4c44db65471bacc68b" - integrity sha512-jqtb+X3rJXWG/w+Qyr7vq1V+fdc5jiLlyc6akwI3SQIHTfcuuyF+eZRd9u2/455urNwV3nuCsnrgxs2NrtHHIw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.2.tgz#7ed4a95bb45ee502cf4532223833740a83602797" - integrity sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - js-sha3 "0.5.7" - -"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.4.tgz#09fa4765b5691233e3afb6617cb38a700f9dd2e4" - integrity sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw== - -"@ethersproject/networks@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.2.tgz#a49e82cf071e3618e87e3c5d69fdbcf54dc6766c" - integrity sha512-T7HVd62D4izNU2tDHf6xUDo7k4JOGX4Lk7vDmVcDKrepSWwL2OmGWrqSlkRe2a1Dnz4+1VPE6fb6+KsmSRe82g== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/pbkdf2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.2.tgz#d12c5f434bbdf6f52401eddb7d753a713dd9e4ea" - integrity sha512-OJFxdX/VtGI5M04lAzXKEOb76XBzjCOzGyko3/bMWat3ePAw7RveBOLyhm79SBs2fh21MSYgdG6JScEMHoSImw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - -"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.2.tgz#2facb62d2f2d968c7b3d0befa5bcc884cc565d3b" - integrity sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/providers@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.5.tgz#fa28498ce9683d1d99f6cb11e1a7fe8d4886e0ce" - integrity sha512-ZR3yFg/m8qDl7317yXOHE7tKeGfoyZIZ/imhVC4JqAH+SX1rb6bdZcSjhJfet7rLmnJSsnYLTgIiVIT85aVLgg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - ws "7.2.3" - -"@ethersproject/random@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.2.tgz#bb58aca69a85e8de506686117f050d03dac69023" - integrity sha512-kLeS+6bwz37WR2zbe69gudyoGVoUzljQO0LhifnATsZ7rW0JZ9Zgt0h5aXY7tqFDo9TvdqeCwUFdp1t3T5Fkhg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/rlp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.2.tgz#d6b550a2ac5e484f15f0f63337e522004d2e78cd" - integrity sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/sha2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.2.tgz#baefc78c071be8729b180759eb29267129314252" - integrity sha512-VFl4qSStjQZaygpqoAHswaCY59qBm1Sm0rf8iv0tmgVsRf0pBg2nJaNf9NXXvcuJ9AYPyXl57dN8kozdC4z5Cg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - hash.js "1.1.3" - -"@ethersproject/signing-key@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.3.tgz#adb84360e147bfd336cb2fe114100120732dc10a" - integrity sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - elliptic "6.5.3" - -"@ethersproject/solidity@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.2.tgz#431cee341ec51e022bd897b93fef04521f414756" - integrity sha512-RygurUe1hPW1LDYAPXy4471AklGWNnxgFWc3YUE6H11gzkit26jr6AyZH4Yyjw38eBBL6j0AOfQzMWm+NhxZ9g== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.2.tgz#1753408c3c889813fd0992abd76393e3e47a2619" - integrity sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.2.tgz#590ede71fc87b45be7bd46002e18ae52246a2347" - integrity sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - -"@ethersproject/units@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.2.tgz#de1461ff3ad2587e57bf367d056b6b72cfceda78" - integrity sha512-PSuzycBA1zmRysTtKtp+XYZ3HIJfbmfRdZchOUxdyeGo5siUi9H6mYQcxdJHv82oKp/FniMj8qS8qtLQThhOEg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/wallet@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.2.tgz#714ca8324c1b3b66e51b9b4e0358c882e88caf1d" - integrity sha512-gg86ynLV5k5caNnYpJoYc6WyIUHKMTjOITCk5zXGyVbbkXE07y/fGql4A51W0C6mWkeb5Mzz8AKqzHZECdH30w== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/web@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.3.tgz#f5673923009bb855302f0296ddb932da8e42f0a1" - integrity sha512-9WoIWNxbFOk+8TiWqQMQbYJUIFeC1Z7zNr7oCHpVyhxF0EY54ZVXlP/Y7VJ7KzK++A/iMGOuTIGeL5sMqa2QMg== - dependencies: - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/wordlists@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.2.tgz#eded47314509c8608373fc2b22879ee2b71b7c7c" - integrity sha512-6vKDQcjjpnfdSCr0+jNxpFH3ieKxUPkm29tQX2US7a3zT/sJU/BGlKBR7D8oOpwdE0hpkHhJyMlypRBK+A2avA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ledgerhq/devices@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49" - integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - rxjs "^6.6.0" - -"@ledgerhq/errors@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02" - integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q== - -"@ledgerhq/hw-app-eth@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.21.0.tgz#a6857df45cddf29b5e7623237171d7ffba42a44c" - integrity sha512-FKwwqp7IDgCq9ToL/JwO4S3HXr4LSI+Vr6KqeCtpCwRGNdvtiUHF3S9g2LtUroCcGXx9HTr2XL4hZzfrj+2jfg== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - bignumber.js "^9.0.0" - rlp "^2.2.6" - -"@ledgerhq/hw-transport-u2f@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.21.0.tgz#7bb14e6a334eccff0e51c3346702561cebc99941" - integrity sha512-D9bbi0ubvNmHbqTAcaxtbgrXRRnoc6qW34m+IO/FRqdPrJTYw3o9y2f0udv8WQZkbNnBvXEksROEvADkr4dj+Q== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b" - integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ== - dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" - events "^3.2.0" - -"@ledgerhq/logs@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830" - integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw== - -"@portis/eth-json-rpc-middleware@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@portis/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.1.2.tgz#391e392da03dea348c8111a8111ce4550aa24a02" - integrity sha512-LUV0JgV6jphhfmYyElpFYfEzKhxaW2VYB/trWJK7+68s4PNyMMYR94hheXRh9T2lBomSVpdbySfYxjWVLAMKwA== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "2.2.2" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.0.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -"@portis/web3-provider-engine@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@portis/web3-provider-engine/-/web3-provider-engine-1.1.0.tgz#4e502fe363dd5156505ea54a5c902537944b9cf5" - integrity sha512-443QwQqgO/D0gEn7voMfo/dBc0SNzvJ4vVSOUJj1r2W9MsN3f5HeU2wDeXLc8bQryGsmemBxmghK/G+XQTXA6w== - dependencies: - "@portis/eth-json-rpc-middleware" "^4.1.2" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -"@portis/web3@^2.0.0-beta.57": - version "2.0.0-beta.57" - resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.57.tgz#45692bffc07687d50fa5204d514590d438b759de" - integrity sha512-OYmt0a171AJECYT/vTkPb4uc1x7xFASMfn+MN3EAjo7DRhY8WfTAMNoMJDhuFARRLC7an2HrRIsT7D4q9GNrnQ== - dependencies: - "@portis/web3-provider-engine" "1.1.0" - ethereumjs-util "5.2.0" - penpal "3.0.7" - pocket-js-core "0.0.3" - -"@restless/sanitizers@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec" - integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w== - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@toruslabs/eccrypto@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.4.tgz#2b32e0da10b28a316d08984afcda303536954cd8" - integrity sha512-AQYcd7AM6ePb+V6CZTb6Lb/iaZ/BKpZ66AFdF1YLvMnyBeRY1JgdFOnjQfhtrUAYRMdcc8pBfvjFoWWK7EcggA== - dependencies: - acorn "^7.4.0" - elliptic "^6.5.3" - es6-promise "^4.2.8" - nan "^2.14.1" - optionalDependencies: - secp256k1 "^3.8.0" - -"@toruslabs/fetch-node-details@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@toruslabs/fetch-node-details/-/fetch-node-details-2.3.0.tgz#55ca927814812a029bb29816ace3d60d27fcd0b1" - integrity sha512-QWfYxBel+XUnUgkyPnjTLZpWiYJVl3Nz6I5MwSRJ/t3GteJvvGuq93zbsIzRmyhxK5C+e+FufnEUsKFwiXtPmA== - dependencies: - web3-eth-contract "^1.2.9" - web3-utils "^1.2.9" - -"@toruslabs/http-helpers@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.4.tgz#8811cff562fb792267f79ca5cb5c1bf1bc517e34" - integrity sha512-2Hm34F3GOwg41jEaZs1rVF4b+SGwC2mPeR7WhkkkM1cQNlXyCtcgLNLqlCVrww9e6pfBCZ2h3aEQVw+p4cT4fw== - dependencies: - deepmerge "^4.2.2" - loglevel "^1.6.8" - -"@toruslabs/torus-embed@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.8.2.tgz#6652b8f751c5f041749ccbfcaa0c08ced5f4f278" - integrity sha512-SlApK4BavoQYNenoQxjUs9/rrqrGDK5+Z9coABA6J7pLcbSL7QnBl8bKwTTYhI9Hri2GRbUM8XzNNpZfy5RiIQ== - dependencies: - "@chaitanyapotti/random-id" "^1.0.3" - "@toruslabs/fetch-node-details" "^2.3.0" - "@toruslabs/http-helpers" "^1.3.4" - "@toruslabs/torus.js" "^2.2.4" - create-hash "^1.2.0" - deepmerge "^4.2.2" - eth-json-rpc-errors "^2.0.2" - fast-deep-equal "^3.1.3" - is-stream "^2.0.0" - json-rpc-engine "^5.1.8" - json-rpc-middleware-stream "^2.1.1" - loglevel "^1.6.8" - obj-multiplex "^1.0.0" - obs-store "^4.0.3" - post-message-stream "^3.0.0" - pump "^3.0.0" - safe-event-emitter "^1.0.1" - web3 "^0.20.7" - -"@toruslabs/torus.js@^2.2.4": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.5.tgz#8994ae7727d980e2c0600b1154d547260ea52ec4" - integrity sha512-fxrIQmtNo4p3uEy5KdiIrZiB32KGPtaV70PoPg/vQB4IL/gjrQSYSIcC0VyP04yBfjHLccJe/HKOhlofpKcjAg== - dependencies: - "@toruslabs/eccrypto" "^1.1.4" - "@toruslabs/http-helpers" "^1.3.4" - bn.js "^5.1.2" - elliptic "^6.5.3" - json-stable-stringify "^1.0.1" - loglevel "^1.6.8" - memory-cache "^0.2.0" - web3-utils "^1.2.11" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -"@types/node@^12.12.6": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/react-dom@^16.0.5": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^16.3.13": - version "16.9.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.45.tgz#b43ccf3d8a3d2020e6a48c8c8492e5a4bc10f097" - integrity sha512-vv950slTF5UZ5eDOf13b8qC1SD4rTvkqg3HfaUKzr17U97oeJZAa+dUaIHn0QoOJflNTIt6Pem9MmapULs9dkA== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" - integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== - dependencies: - "@types/node" "*" - -"@unilogin/provider@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.6.1.tgz#427247f0cb0899d8b0d00c04a4b90ae2a3c2cb40" - integrity sha512-S96uBfoh+/nk8L6Yr+YgEV+FwQgtRnozWhgJpOhmRz128ri5Qv2SXLx5Sac33NGbs8g27PgKOyHX3dKJCvcP3g== - dependencies: - "@restless/sanitizers" "^0.2.5" - reactive-properties "^0.1.11" - -"@walletconnect/client@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.1.0.tgz#f2454cba82da3d8c7375b2a5d9d47f34ed7348ec" - integrity sha512-pHxvUDCkD4oP3AFxYLU7yeE+qDZtcHF20b2K8/HNvyuyu3eWFX4jpHgx6FdvcIcFcAXGs5nk24zBUEO8p+axWg== - dependencies: - "@walletconnect/core" "^1.1.0" - "@walletconnect/iso-crypto" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/core@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.1.0.tgz#053f08b0ccfdfb14ccd27b7fd425d9849cedba14" - integrity sha512-Bhe4gnR6Az11u7OAOw0UDZKM6emUjIQtQ2PVdPDWke6ryC0DWMg9vTYbVPf3lDHBv5hy5eAyDst30N5E91SuYw== - dependencies: - "@walletconnect/socket-transport" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/http-connection@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.1.0.tgz#c6650c12a07244d30f20647420cdcd8c69c6daca" - integrity sha512-ugxDW/NaSgn7rmdPZhrpJIS79gASLvzBnGHScMs8zpYDHwcFxh2DP3HTspC8o5FyMqjRlEGtNi4zSGKY6EOrkw== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - xhr2-cookies "1.1.0" - -"@walletconnect/iso-crypto@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.1.0.tgz#a8235049c1b239adcf9fc6a6c38b7e9ad13004a6" - integrity sha512-ttWLj4rTy2NGQnSAKnAar1LSrsJuCQ2JnQUl8hsgc9oTwXKgnRvtxGy2Kajoih/tNKnK959Ilj4WI2HaSJ9G1g== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - eccrypto-js "5.2.0" - -"@walletconnect/mobile-registry@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.1.0.tgz#72173a4fcee61f4f8819f6d9fc7cfbf824ed3548" - integrity sha512-OOHQa4NeK2lbfI9WD2d+hTHGwSDzBLoTCeofdLNO2ibaTltQ6S+WNDAVuho6U8CkUTzs5cHPFgLJ6nxYZ8sr/g== - -"@walletconnect/qrcode-modal@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.1.0.tgz#4cd0c2c2c713be3f49ef00293a1b23a079d4c7b7" - integrity sha512-vYsu1MBE0D+kx1+xdXmaCs7JqhhWPw8orKk9Br64YIPF5pv/48i+Yi/m28/0myJm54YPlVcgzTnuf8PzAH7jgA== - dependencies: - "@walletconnect/mobile-registry" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/socket-transport@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.1.0.tgz#d80b5e6b3b904f131961259ca16de816ae2b003b" - integrity sha512-plo5WHjL3RTDENH7MTgs7D/ePGHfSuc/HLzkVGvgZSOtoPlRR916nSZNeL4bStYF1ZRJCrds10x36C0DlZjpQg== - dependencies: - "@walletconnect/types" "^1.1.0" - ws "7.3.0" - -"@walletconnect/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.1.0.tgz#1e4efbf033ad89910cbb86f1f381cd5fe7e764fd" - integrity sha512-cgDEuYHZZTiaXFRwQs3Zhhar+l2T58/YjhWrfZTMKWuc77geIbF7682i9lE9bNEQqQvQ76jjKxJfSLGjCu++sA== - -"@walletconnect/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.1.0.tgz#7b0bcf5c77e8079ac055013537a9620244db2da9" - integrity sha512-y5v8PCmd/2kASOncYaz5QJiAzwBRT5MK398PmIkImX9tNEeBh00ifeQGZKkCGi6JYXbde0UC5jsGTGkH8hdxeg== - dependencies: - "@walletconnect/types" "^1.1.0" - detect-browser "5.1.0" - enc-utils "2.1.0" - js-sha3 "0.8.0" - -"@walletconnect/web3-provider@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.1.0.tgz#c8a30c4121d3ade159022b10d3a18ecd804c8993" - integrity sha512-1DaYG+aK2pjCBKXrB0c2JKeFk27ObUsu09LlZN1VvIi1+zvHftaubNsSGViLmrq25w72yPle/SDjhgmxvKVMQQ== - dependencies: - "@walletconnect/client" "^1.1.0" - "@walletconnect/http-connection" "^1.1.0" - "@walletconnect/qrcode-modal" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - web3-provider-engine "15.0.12" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -aes-js@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - 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-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0: - 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" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -authereum@^0.0.4-beta.157: - version "0.0.4-beta.164" - resolved "https://registry.yarnpkg.com/authereum/-/authereum-0.0.4-beta.164.tgz#c095fe0abb961f3d6a748ffcec763460d1e31756" - integrity sha512-oRIZhOQCPaKtOYyl3TqLQ5JcPy1ptJWxGilDhNjCMRebxQnItCWWf3nZ4YmS39RGBZqwqZA22sdw/sfPb4VYCA== - dependencies: - async "3.2.0" - ethereum-private-key-to-address "0.0.3" - ethers "4.0.47" - eventemitter3 "4.0.0" - is-buffer "2.0.4" - moment "2.24.0" - penpal "4.1.1" - pify "4.0.1" - querystring "0.2.0" - store "2.0.12" - to-hex "0.0.11" - uuidv4 "6.0.6" - web3-provider-engine "15.0.4" - web3-utils "1.2.1" - -await-semaphore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/await-semaphore/-/await-semaphore-0.1.3.tgz#2b88018cc8c28e06167ae1cdff02504f1f9688d3" - integrity sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= - dependencies: - precond "0.2" - -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= - -base-x@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== - -"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": - version "2.0.7" - resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" - -bind-decorator@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha1-5BvAah9l3ZzsR2yRxdrzl4SIJS8= - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -blakejs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bnc-onboard@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.11.0.tgz#cb3d79b702a15d12114aa649beddb2ec5ea83e70" - integrity sha512-hHB+xb6SULRxQh/Bm5DBEfg/4/QLI/B9q/h3AyMf+21FMmJ66DUODDsoIwbiq1fh3IrwHpoSmNLdb2nTeN0Wog== - dependencies: - "@ledgerhq/hw-app-eth" "^5.21.0" - "@ledgerhq/hw-transport-u2f" "^5.21.0" - "@portis/web3" "^2.0.0-beta.57" - "@toruslabs/torus-embed" "^1.8.2" - "@unilogin/provider" "^0.6.1" - "@walletconnect/web3-provider" "^1.1.0" - authereum "^0.0.4-beta.157" - bignumber.js "^9.0.0" - bnc-sdk "^2.1.4" - bowser "^2.10.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^7.0.3" - fortmatic "^2.2.1" - hdkey "^2.0.1" - regenerator-runtime "^0.13.7" - squarelink "^1.1.4" - trezor-connect "^8.1.9" - walletlink "^2.0.2" - web3-provider-engine "^15.0.4" - -bnc-sdk@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/bnc-sdk/-/bnc-sdk-2.1.5.tgz#7f40bcf98eb0238882f5436c0e860e60be2867c0" - integrity sha512-rtwOGKjal1LQyYrdESdOfCK5L2ocS3tjoWtNacm3rkb+xjDusVnUpF/NgudJpCnv3Mwu9YDWjsLKIPKjwbJL7A== - dependencies: - crypto-es "^1.2.2" - sturdy-websocket "^0.1.12" - -bowser@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198" - integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg== - -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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.6, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-sha3@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.4.tgz#086c47b8c82316c9d47022c26185954576dd8e26" - integrity sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY= - dependencies: - js-sha3 "^0.6.1" - safe-buffer "^5.1.1" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - 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== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.4.3: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30000844: - version "1.0.30001112" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz#0fffc3b934ff56ff0548c37bc9dad7d882bcf672" - integrity sha512-J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -clsx@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -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-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= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -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= - -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, 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= - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - integrity sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw== - dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" - -crypto-es@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c" - integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA== - -crypto-js@^3.1.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" - integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== - -csstype@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7" - integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -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" - -debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -define-properties@^1.1.2, 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" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-browser@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.0.tgz#0c51c66b747ad8f98a6832bf3026a5a23a7850ff" - integrity sha512-WKa9p+/MNwmTiS+V2AS6eGxic+807qvnV3hC+4z2GTY+F42h1n8AynVTMMc4EJBC32qMs6yjOTpeDEQQt/AVqQ== - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -eccrypto-js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eccrypto-js/-/eccrypto-js-5.2.0.tgz#eb3b36e9978d316fedf50be46492bb0d3e240cf5" - integrity sha512-pPb6CMapJ1LIzjLWxMqlrnfaEFap7qkk9wcO/b4AVSdxBQYlpOqvlPpq5SpUI4FdmfdhVD34AjN47fM8fryC4A== - dependencies: - aes-js "3.1.2" - enc-utils "2.1.0" - hash.js "1.1.7" - js-sha3 "0.8.0" - randombytes "2.1.0" - secp256k1 "3.8.0" - -electron-to-chromium@^1.3.47: - version "1.3.526" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz#0e004899edf75afc172cce1b8189aac5dca646aa" - integrity sha512-HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg== - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -enc-utils@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-2.1.0.tgz#f6c28c3d4bb38fb409a93185848cf361f4fde142" - integrity sha512-VD0eunGDyzhojePzkORWDnW88gi6tIeGb5Z6QVHugux6mMAPiXyw94fb/7WdDQEWhKMSoYRyzFFUebCqeH20PA== - dependencies: - bn.js "4.11.8" - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.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" - -errno@~0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -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.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - 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.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - 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" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.1, eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-errors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz#c1965de0301fe941c058e928bebaba2e1285e3c4" - integrity sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@^4.0.2, eth-json-rpc-filters@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.1.tgz#15277c66790236d85f798f4d7dc6bab99a798cd2" - integrity sha512-GkXb2h6STznD+AmMzblwXgm1JMvjdK9PTIXG7BvIkTlXQ9g0QOxuU1iQRYHoslF9S30BYBSoLSisAYPdLggW+A== - dependencies: - await-semaphore "^0.1.3" - eth-json-rpc-middleware "^4.1.4" - eth-query "^2.1.2" - json-rpc-engine "^5.1.3" - lodash.flatmap "^4.5.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz#8af1a1a2e9a0a82aaa302bbc96fb1a4c15d69b83" - integrity sha512-dvgOrci9lZqpjpp0hoC3Zfedhg3aIpLFVDH0TdlKxRlkhR75hTrKTwxghDrQwE0bn3eKrC8RsN1m/JdnIWltpw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-middleware "^4.1.4" - json-rpc-engine "^5.1.3" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.1, eth-json-rpc-middleware@^4.1.4, eth-json-rpc-middleware@^4.1.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - integrity sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-bloom-filters@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" - integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== - dependencies: - js-sha3 "^0.8.0" - -ethereum-checksum-address@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-checksum-address/-/ethereum-checksum-address-0.0.2.tgz#46fcb2d962dacd1ed49d7b464408ec26fd183209" - integrity sha512-GAb7mPvGgcfi1j+Bsnwm9af9Z7dLUKp+5cFm88+kMrKACfh9gLatGLVVK5pSGEG2pOGfrmqCRcuh3RtMjIg8GQ== - dependencies: - keccak256 "^1.0.0" - meow "^5.0.0" - -ethereum-common@0.0.18, ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= - -ethereum-common@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.1.0.tgz#874dd0fae5e962a56c50ebf28efa6fe39492b0e7" - integrity sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc= - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereum-private-key-to-address@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-address/-/ethereum-private-key-to-address-0.0.3.tgz#1f1dccaefd1198c2dcde55501f331a846bd0aad0" - integrity sha512-P+z9eFlgOezxogEpY1sQR155U4xFmQUWVxKzIJa5BL05Gs7zL0sYuyQuSAme8LBYGQ6p6AwconiMDauf4LbqyA== - dependencies: - ethereum-private-key-to-public-key "0.0.2" - ethereum-public-key-to-address "0.0.1" - meow "^5.0.0" - -ethereum-private-key-to-public-key@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-public-key/-/ethereum-private-key-to-public-key-0.0.2.tgz#bb5803aad43df2692e0d7b4c9eaa224eec2a39cb" - integrity sha512-WKwFspLS5IdpV1rBUmWSG2xtIDV7YMpAG/uSjtV9kDzBU6hpSzoqg6R/e1iEfHkOr/eae+NtDTpwzXRtSMDvhw== - dependencies: - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereum-public-key-to-address@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ethereum-public-key-to-address/-/ethereum-public-key-to-address-0.0.1.tgz#3f0237687d9c2217234dc5683f3eb580abf3f6ce" - integrity sha512-X78x/VBluHUdrYpZunoXJ48luXTaUiUK4ImPjTjI+XiS24+jUR5WFCpm9wCNbLYP6/ZCJ+lwuYormXSjt8rrbw== - dependencies: - ethereum-checksum-address "0.0.2" - keccak256 "^1.0.0" - meow "^5.0.0" - secp256k1 "^3.7.1" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz#cded4962deaca1eef17372b4d290e84b35c84372" - integrity sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I= - dependencies: - async "^2.0.1" - ethereum-common "0.0.18" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" - integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y= - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - keccakjs "^0.2.0" - rlp "^2.0.0" - secp256k1 "^3.0.1" - -ethereumjs-util@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f" - integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-vm@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262" - integrity sha512-sAus9UxYjUnA42G91Q1/hR7ff35IJRpcLrUfbaIH7V4cl8qKsNs3wqf3dHvtj3wRqy12ke2Wd0tYdARyGKdD6g== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereum-common "0.1.0" - ethereumjs-account "^2.0.3" - ethereumjs-block "~1.6.0" - ethereumjs-util "4.5.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethers@4.0.47: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.8.tgz#c13d0fdf5e66db8085e2036d3309ed2f8a17ed89" - integrity sha512-of/rPgJ7E3yyBADUv5A7Gtkd7EB8ta/T9NS5CCG9tj9cifnXcI3KIdYQ7d8AS+9vm38pR1g6S5I+Q/mRnlQZlg== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -eventemitter3@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0, events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - 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== - -fast-safe-stringify@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-cache-dir@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -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" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fortmatic@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86" - integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ== - -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.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= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1, 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== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.2, glob@~7.1.6: - 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" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -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== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-symbols@^1.0.0, 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, 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" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hdkey@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.0.1.tgz#0a211d0c510bfc44fa3ec9d44b13b634641cad74" - integrity sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA== - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^4.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.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-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -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-buffer@2.0.4, is-buffer@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -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-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.4, is-regex@^1.1.0: - 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-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -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" - -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" - integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= - -"js-tokens@^3.0.0 || ^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== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -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-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.0.0, json-rpc-engine@^5.1.3, json-rpc-engine@^5.1.8: - version "5.3.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz#7dc7291766b28766ebda33eb6d3f4c6301c44ff4" - integrity sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" - -json-rpc-middleware-stream@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-2.1.1.tgz#06e5409e201e7ddeae47bef29f7059eafd4d5325" - integrity sha512-WZheufPN+/RKkjXQP3lK5tFYblqG0n+oYv5qpammwwY2vsJRB7mM4Txhr4ajzvYEZi1UkENnplrmaYiqaqafaA== - dependencies: - readable-stream "^2.3.3" - safe-event-emitter "^1.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= - -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== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak256@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.0.tgz#1ba55ce78ed3d63fb7091d045469007da984171d" - integrity sha512-8qv2vJdQk+Aa2tFXo8zYodm+6DgXqUOqvNJhj1p1V2pxQJT1oNKxNF+zWfhtKXNLZdLvyxjB/dvd9GwcvTHSQQ== - dependencies: - bn.js "^4.11.8" - keccak "^1.4.0" - -keccak@^1.0.2, keccak@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccakjs@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" - integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg== - dependencies: - browserify-sha3 "^0.0.4" - sha3 "^1.2.2" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^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" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= - -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - -magic-string@^0.25.2, magic-string@^0.25.3: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memory-cache@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a" - integrity sha1-eJCwHVLADI68nVM+H46xfjA0hxo= - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -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.12, mime-types@~2.1.19: - 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== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -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" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -nan@^2.14.0, nan@^2.14.1, nan@^2.2.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - -node-fetch@~1.7.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-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - -normalize-hex@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/normalize-hex/-/normalize-hex-0.0.2.tgz#5491c43759db2f06b7168d8419f4925c271ab27e" - integrity sha512-E2dx7XJQnjsm6SkS4G6GGvIXRHaLeWAZE2D2N3aia+OpIif2UT8y4S0KCjrX3WmFDSeFnlNOp0FSHFjLeJ4SJw== - dependencies: - bn.js "^4.11.8" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - 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" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -obj-multiplex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/obj-multiplex/-/obj-multiplex-1.0.0.tgz#2f2ae6bfd4ae11befe742ea9ea5b36636eabffc1" - integrity sha1-Lyrmv9SuEb7+dC6p6ls2Y26r/8E= - dependencies: - end-of-stream "^1.4.0" - once "^1.4.0" - readable-stream "^2.3.3" - -object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, 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-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= - dependencies: - http-https "^1.0.0" - -obs-store@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/obs-store/-/obs-store-4.0.3.tgz#b632ec7814baa604fae084a4c97e87c0b7a6d14c" - integrity sha512-+mm13kCRDv6IcvUDKTw0LIy5+dQhIktYaR/RwwZUFzOTi/fjMaNBnk42Adb94qZqJ00qWkjhQSZH7MXlKnTi8A== - dependencies: - readable-stream "^2.2.2" - safe-event-emitter "^1.0.1" - through2 "^2.0.3" - xtend "^4.0.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" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.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-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -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== - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -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" - -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-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - 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-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" - -pbkdf2@^3.0.17: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -penpal@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" - integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ== - -penpal@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-4.1.1.tgz#c96ccfdac441682acf617f6dcbc177a614e8302b" - integrity sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -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-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pocket-js-core@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pocket-js-core/-/pocket-js-core-0.0.3.tgz#1ab278b9a6a5775e2bdc3c2c2e218057774061e4" - integrity sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg== - dependencies: - axios "^0.18.0" - -post-message-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/post-message-stream/-/post-message-stream-3.0.0.tgz#90d9f54bd209e6b6f5d74795b87588205b547048" - integrity sha1-kNn1S9IJ5rb110eVuHWIIFtUcEg= - dependencies: - readable-stream "^2.1.4" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== - -preact@^10.3.3: - version "10.4.7" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.7.tgz#5a530d34b4ba45f38234be8b1b3fe910098a165f" - integrity sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw== - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= - -prettier@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -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, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -randombytes@2.1.0, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - -react-dom@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.8.1: - 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@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -reactive-properties@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reactive-properties/-/reactive-properties-0.1.12.tgz#35000ddb9b516bf5ea5b4c41154a45a7a38fdedf" - integrity sha512-jPpTyoAZOvMhq3pt87X/kZ1zT4j1aad8iafSRHOziYfhBYVYTiUjmIYAxZPmcFziF/4JbEsA7DXA91ZzdosQyQ== - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.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@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.8.1, resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= - dependencies: - through "~2.3.4" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" - integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== - dependencies: - bn.js "^4.11.1" - -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-plugin-peer-deps-external@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" - integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== - -rollup-plugin-typescript2@^0.25.3: - version "0.25.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" - integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== - dependencies: - find-cache-dir "^3.0.0" - fs-extra "8.1.0" - resolve "1.12.0" - rollup-pluginutils "2.8.1" - tslib "1.10.0" - -rollup-pluginutils@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" - integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== - dependencies: - estree-walker "^0.6.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@2.23.1: - version "2.23.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20" - integrity sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A== - optionalDependencies: - fsevents "~2.1.2" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - -rxjs@^6.5.4, rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -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-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@3.8.0, secp256k1@^3.0.1, secp256k1@^3.7.1, secp256k1@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.0, secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -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= - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha3@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.6.tgz#102aa3e47dc793e2357902c3cce8760822f9e905" - integrity sha512-KgLGmJGrmNB4JWVsAV11Yk6KbvsAiygWJc7t5IebWva/0NukNrjJqhtKhzy3Eiv2AKuGvhZZt7dt1mDo7HkoiQ== - dependencies: - nan "2.13.2" - -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== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -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.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -squarelink-provider-engine@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/squarelink-provider-engine/-/squarelink-provider-engine-15.0.5.tgz#93a440c5daec517b1b494424d1c279f195cd781c" - integrity sha512-rl9586BLpN/ldujibbMsCfq+lEyY/YMkmWqYcbmKs6VUvB56fsIG23HvVFl1mPRUu7XIq4dOt+V+4G6+GcKTtQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.1" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^4.1.1" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -squarelink@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/squarelink/-/squarelink-1.1.4.tgz#5303abf1f4a2765accf0b0de7d8b45ba19c270f8" - integrity sha512-VOLwNWhz/QgrGg5INvd7y/TddKDdS6/6FfjqtMys6nLVJA8h+h05WW5/YJLidHCSD0A+2VnPuL8m/lkP1bUk2g== - dependencies: - bignumber.js "^9.0.0" - squarelink-provider-engine "^15.0.5" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -store@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -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@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.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-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -sturdy-websocket@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/sturdy-websocket/-/sturdy-websocket-0.1.12.tgz#84bb779f948b585a695f76961dc7d1c4a5e87629" - integrity sha512-PA7h8LdjaMoIlC5HAwLVzae4raGWgyroscV4oUpEiTtEFINcNa47/CKYT3e98o+FfsJgrclI2pYpaJrz0aaoew== - dependencies: - lodash.defaults "^4.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= - -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - integrity sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -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= - -to-hex@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/to-hex/-/to-hex-0.0.11.tgz#22355e09e5b56f5ae2b32502c493320f021171ac" - integrity sha512-3FSU8sfjrVc9fWowwP9xrdhxbp5Wco8uVZLhMhfsNuCFo9Fu8ecD2MgJV/2iAw+755W3AcGSQYVZGOpBmJtNcA== - dependencies: - normalize-hex "0.0.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trezor-connect@^8.1.9: - version "8.1.10" - resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.10.tgz#1f80525c91684e7dc062f2e5eb6d93502e61172b" - integrity sha512-q1Hscxjyr1PtZj02yRu9rKps9VrSZ4koXgE8DM1QES2Sc7buhNqHwvRZQLQopUDXSoZh2vgObQNBrJsNHbWBpg== - dependencies: - "@babel/runtime" "^7.11.0" - events "^3.2.0" - whatwg-fetch "^3.3.1" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.9.6: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= - -util-deprecate@^1.0.1, 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= - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" - integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuidv4@6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" - integrity sha512-10YcruyGJtsG5SJnPG+8atr8toJa7xAOrcO7B7plYYiwpH1mQ8UZHjNSa2MrwGi6KWuyVrXGHr+Rce22F9UAiw== - dependencies: - uuid "7.0.2" - -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" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walletlink@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.0.2.tgz#8640e42d3df49b4661019287ab9789e94b72db98" - integrity sha512-4MIctCHAjcPHSQUHpHuU9leUAvYqRF+/4kCq7x9AngZQ2Jd74dbpC8dfZ55uOwW8TXc7z9XYeSyzRrGHbv5ZXg== - dependencies: - bind-decorator "^1.0.11" - bn.js "^5.1.1" - clsx "^1.1.0" - preact "^10.3.3" - rxjs "^6.5.4" - -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - -web3-core-method@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" - -web3-core-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - -web3-eth-contract@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" - -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - -web3-provider-engine@15.0.12, web3-provider-engine@^15.0.4: - version "15.0.12" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.12.tgz#24d7f2f6fb6de856824c7306291018c4fc543ac3" - integrity sha512-/OfhQalKPND1iB5ggvGuYF0+SIb2Qj5OFTrT2VrZWP79UhMTdP7T+L2FtblmRdCeOetoAzZHdBaIwLOZsmIX+w== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^2.0.2" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.4.tgz#5c336bcad2274dff5218bc8db003fa4e9e464c24" - integrity sha512-Ob9oK0TUZfVC7NXkB7CQSWAiCdCD/Xnlh2zTnV8NdJR8LCrMAy2i6JedU70JHaxw59y7mM4GnsYOTTGkquFnNQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.11, web3-utils@^1.2.11, web3-utils@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3@^0.20.7: - version "0.20.7" - resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.7.tgz#1605e6d81399ed6f85a471a4f3da0c8be57df2f7" - integrity sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ== - dependencies: - bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" - crypto-js "^3.1.4" - utf8 "^2.1.1" - xhr2-cookies "^1.1.0" - xmlhttprequest "*" - -websocket@^1.0.31: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^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.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - -ws@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@*, xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/packages/common-modules/.gitignore b/packages/common-modules/.gitignore deleted file mode 100644 index 3ae30aa8fb..0000000000 --- a/packages/common-modules/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# generate output -dist -build diff --git a/packages/common-modules/.npmignore b/packages/common-modules/.npmignore deleted file mode 100644 index 37392c3699..0000000000 --- a/packages/common-modules/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -dist -.babelrc -.storybook -.gitignore -rollup.config.js -tsconfig.json diff --git a/packages/common-modules/LICENSE b/packages/common-modules/LICENSE deleted file mode 100644 index efc5d950ff..0000000000 --- a/packages/common-modules/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/packages/common-modules/README.md b/packages/common-modules/README.md deleted file mode 100644 index b6641e22f5..0000000000 --- a/packages/common-modules/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Imploy Modules - -This is a collection of commonly used modules diff --git a/packages/common-modules/package.json b/packages/common-modules/package.json deleted file mode 100644 index f90b315a48..0000000000 --- a/packages/common-modules/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@imploy/common-modules", - "version": "1.0.0", - "description": "Common Modules", - "author": "Michael Yankelev ", - "license": "GPL-3.0", - "main": "dist/index.js", - "engines": { - "node": ">=8", - "yarn": ">=1" - }, - "scripts": { - "build": "rollup -c", - "start": "rollup -c -w" - }, - "dependencies": {}, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^10.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "babel-core": "^6.26.3", - "babel-runtime": "^6.26.0", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "rollup": "2.34.2", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-typescript2": "^0.29.0", - "typescript": "^4.0.5" - }, - "files": [ - "dist" - ], - "keywords": [ - "react", - "typescript" - ] -} diff --git a/packages/common-modules/rollup.config.js b/packages/common-modules/rollup.config.js deleted file mode 100644 index 01753038f3..0000000000 --- a/packages/common-modules/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import typescript from 'rollup-plugin-typescript2' -import resolve from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' -import json from '@rollup/plugin-json' -import nodePolyfills from 'rollup-plugin-node-polyfills' -import peerDepsExternal from 'rollup-plugin-peer-deps-external' - -export default { - input: 'src/index.ts', - output: { - format: 'esm', // needs to be esm format as Onboard.js contains code-splitting - dir: 'dist/', - exports: 'named', - sourcemap: true, - strict: false - }, - plugins: [ - peerDepsExternal(), - typescript(), - json(), - resolve({ - browser: true, - preferBuiltins: true - }), - commonjs(), - nodePolyfills() - ], - external: ['react', 'react-dom', 'bnc-onboard'] -} diff --git a/packages/common-modules/src/index.ts b/packages/common-modules/src/index.ts deleted file mode 100644 index 336ce12bb9..0000000000 --- a/packages/common-modules/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {} diff --git a/packages/common-modules/tsconfig.json b/packages/common-modules/tsconfig.json deleted file mode 100644 index f8652eca7a..0000000000 --- a/packages/common-modules/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "outDir": "dist", - "module": "esnext", - "target": "es5", - "lib": ["es6", "dom", "es2016", "es2017"], - "sourceMap": true, - "allowJs": false, - "jsx": "react", - "strict": true, - "declaration": true, - "moduleResolution": "node", - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noImplicitAny": true, - "strictNullChecks": true, - "allowSyntheticDefaultImports": true, - "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, - "noUnusedParameters": true - }, - "include": ["src"], - "exclude": ["node_modules", "dist", "example", "rollup.config.js"] -} diff --git a/packages/common-modules/yarn.lock b/packages/common-modules/yarn.lock deleted file mode 100644 index 7949caf249..0000000000 --- a/packages/common-modules/yarn.lock +++ /dev/null @@ -1,5225 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@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/plugin-transform-runtime@^7.5.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/types@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@chaitanyapotti/random-id@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@chaitanyapotti/random-id/-/random-id-1.0.3.tgz#f52f647cfe9f79fc7723ea2b01b0ad3889204002" - integrity sha512-xiVWA2vTL3jQeuZ+yebXAtwIeEbh/13RAFxvRq0YxeUc02RBOGyC9eyDKXjwlN0uxPtnEwWxsELkSwnaH5kxjg== - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abi@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.2.tgz#7fe8f080aa1483fe32cd27bb5b8f2019266af1e2" - integrity sha512-Z+5f7xOgtRLu/W2l9Ry5xF7ehh9QVQ0m1vhynmTcS7DMfHgqTd1/PDFC62aw91ZPRCRZsYdZJu8ymokC5e1JSw== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/abstract-provider@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.2.tgz#9b4e8f4870f0691463e8d5b092c95dd5275c635d" - integrity sha512-U1s60+nG02x8FKNMoVNI6MG8SguWCoG9HJtwOqWZ38LBRMsDV4c0w4izKx98kcsN3wXw4U2/YAyJ9LlH7+/hkg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - -"@ethersproject/abstract-signer@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.2.tgz#5776f888fda816de1d08ddb0e74778ecb9590f69" - integrity sha512-CzzXbeqKlgayE4YTnvvreGBG3n+HxakGXrxaGM6LjBZnOOIVSYi6HMFG8ZXls7UspRY4hvMrtnKEJKDCOngSBw== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.2.tgz#80d0ddfb7d4bd0d32657747fa4bdd2defef2e00a" - integrity sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/base64@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.2.tgz#48b3bb8d640a963bd8ee196cfeacd592155a0ca8" - integrity sha512-0FE5RH5cUDddOiQEDpWtyHjkSW4D5/rdJzA3KTZo8Fk5ab/Y8vdzqbamsXPyPsXU3gS+zCE5Qq4EKVOWlWLLTA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - -"@ethersproject/basex@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.2.tgz#13029ce0ad63674f4d4dbebf6763181fb22f0e6d" - integrity sha512-p4m2CeQqI9vma3XipRbP2iDf6zTsbroE0MEXBAYXidsoJQSvePKrC6MVRKfTzfcHej1b9wfmjVBzqhqn3FRhIA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.5.tgz#31bd7e75aad46ace345fae69b1f5bb120906af1b" - integrity sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.3.tgz#b3769963ae0188a35713d343890a903bda20af9c" - integrity sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.2.tgz#f7ac0b320e2bbec1a5950da075015f8bc4e8fed1" - integrity sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - -"@ethersproject/contracts@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.2.tgz#f19ed8335ceeb6abb60f5d45641f0a2a62b6fbc5" - integrity sha512-Ud3oW8mBNIWE+WHRjvwVEwfvshn7lfYWSSKG0fPSb6baRN9mLOoNguX+VIv3W5Sne9w2utnBmxLF2ESXitw64A== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.2.tgz#6d69558786961836d530b8b4a8714eac5388aec7" - integrity sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/hdnode@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.2.tgz#c4f2152590a64822d0c0feb90f09cc247af657e0" - integrity sha512-QAUI5tfseTFqv00Vnbwzofqse81wN9TaL+x5GufTHIHJXgVdguxU+l39E3VYDCmO+eVAA6RCn5dJgeyra+PU2g== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/json-wallets@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.4.tgz#e09bf2d34279c6dd2b4a4d4c44db65471bacc68b" - integrity sha512-jqtb+X3rJXWG/w+Qyr7vq1V+fdc5jiLlyc6akwI3SQIHTfcuuyF+eZRd9u2/455urNwV3nuCsnrgxs2NrtHHIw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.2.tgz#7ed4a95bb45ee502cf4532223833740a83602797" - integrity sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - js-sha3 "0.5.7" - -"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.4.tgz#09fa4765b5691233e3afb6617cb38a700f9dd2e4" - integrity sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw== - -"@ethersproject/networks@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.2.tgz#a49e82cf071e3618e87e3c5d69fdbcf54dc6766c" - integrity sha512-T7HVd62D4izNU2tDHf6xUDo7k4JOGX4Lk7vDmVcDKrepSWwL2OmGWrqSlkRe2a1Dnz4+1VPE6fb6+KsmSRe82g== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/pbkdf2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.2.tgz#d12c5f434bbdf6f52401eddb7d753a713dd9e4ea" - integrity sha512-OJFxdX/VtGI5M04lAzXKEOb76XBzjCOzGyko3/bMWat3ePAw7RveBOLyhm79SBs2fh21MSYgdG6JScEMHoSImw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - -"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.2.tgz#2facb62d2f2d968c7b3d0befa5bcc884cc565d3b" - integrity sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/providers@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.5.tgz#fa28498ce9683d1d99f6cb11e1a7fe8d4886e0ce" - integrity sha512-ZR3yFg/m8qDl7317yXOHE7tKeGfoyZIZ/imhVC4JqAH+SX1rb6bdZcSjhJfet7rLmnJSsnYLTgIiVIT85aVLgg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - ws "7.2.3" - -"@ethersproject/random@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.2.tgz#bb58aca69a85e8de506686117f050d03dac69023" - integrity sha512-kLeS+6bwz37WR2zbe69gudyoGVoUzljQO0LhifnATsZ7rW0JZ9Zgt0h5aXY7tqFDo9TvdqeCwUFdp1t3T5Fkhg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/rlp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.2.tgz#d6b550a2ac5e484f15f0f63337e522004d2e78cd" - integrity sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/sha2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.2.tgz#baefc78c071be8729b180759eb29267129314252" - integrity sha512-VFl4qSStjQZaygpqoAHswaCY59qBm1Sm0rf8iv0tmgVsRf0pBg2nJaNf9NXXvcuJ9AYPyXl57dN8kozdC4z5Cg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - hash.js "1.1.3" - -"@ethersproject/signing-key@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.3.tgz#adb84360e147bfd336cb2fe114100120732dc10a" - integrity sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - elliptic "6.5.3" - -"@ethersproject/solidity@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.2.tgz#431cee341ec51e022bd897b93fef04521f414756" - integrity sha512-RygurUe1hPW1LDYAPXy4471AklGWNnxgFWc3YUE6H11gzkit26jr6AyZH4Yyjw38eBBL6j0AOfQzMWm+NhxZ9g== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.2.tgz#1753408c3c889813fd0992abd76393e3e47a2619" - integrity sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.2.tgz#590ede71fc87b45be7bd46002e18ae52246a2347" - integrity sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - -"@ethersproject/units@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.2.tgz#de1461ff3ad2587e57bf367d056b6b72cfceda78" - integrity sha512-PSuzycBA1zmRysTtKtp+XYZ3HIJfbmfRdZchOUxdyeGo5siUi9H6mYQcxdJHv82oKp/FniMj8qS8qtLQThhOEg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/wallet@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.2.tgz#714ca8324c1b3b66e51b9b4e0358c882e88caf1d" - integrity sha512-gg86ynLV5k5caNnYpJoYc6WyIUHKMTjOITCk5zXGyVbbkXE07y/fGql4A51W0C6mWkeb5Mzz8AKqzHZECdH30w== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/web@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.3.tgz#f5673923009bb855302f0296ddb932da8e42f0a1" - integrity sha512-9WoIWNxbFOk+8TiWqQMQbYJUIFeC1Z7zNr7oCHpVyhxF0EY54ZVXlP/Y7VJ7KzK++A/iMGOuTIGeL5sMqa2QMg== - dependencies: - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/wordlists@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.2.tgz#eded47314509c8608373fc2b22879ee2b71b7c7c" - integrity sha512-6vKDQcjjpnfdSCr0+jNxpFH3ieKxUPkm29tQX2US7a3zT/sJU/BGlKBR7D8oOpwdE0hpkHhJyMlypRBK+A2avA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ledgerhq/devices@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49" - integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - rxjs "^6.6.0" - -"@ledgerhq/errors@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02" - integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q== - -"@ledgerhq/hw-app-eth@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.21.0.tgz#a6857df45cddf29b5e7623237171d7ffba42a44c" - integrity sha512-FKwwqp7IDgCq9ToL/JwO4S3HXr4LSI+Vr6KqeCtpCwRGNdvtiUHF3S9g2LtUroCcGXx9HTr2XL4hZzfrj+2jfg== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - bignumber.js "^9.0.0" - rlp "^2.2.6" - -"@ledgerhq/hw-transport-u2f@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.21.0.tgz#7bb14e6a334eccff0e51c3346702561cebc99941" - integrity sha512-D9bbi0ubvNmHbqTAcaxtbgrXRRnoc6qW34m+IO/FRqdPrJTYw3o9y2f0udv8WQZkbNnBvXEksROEvADkr4dj+Q== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b" - integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ== - dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" - events "^3.2.0" - -"@ledgerhq/logs@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830" - integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw== - -"@portis/eth-json-rpc-middleware@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@portis/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.1.2.tgz#391e392da03dea348c8111a8111ce4550aa24a02" - integrity sha512-LUV0JgV6jphhfmYyElpFYfEzKhxaW2VYB/trWJK7+68s4PNyMMYR94hheXRh9T2lBomSVpdbySfYxjWVLAMKwA== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "2.2.2" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.0.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -"@portis/web3-provider-engine@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@portis/web3-provider-engine/-/web3-provider-engine-1.1.0.tgz#4e502fe363dd5156505ea54a5c902537944b9cf5" - integrity sha512-443QwQqgO/D0gEn7voMfo/dBc0SNzvJ4vVSOUJj1r2W9MsN3f5HeU2wDeXLc8bQryGsmemBxmghK/G+XQTXA6w== - dependencies: - "@portis/eth-json-rpc-middleware" "^4.1.2" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -"@portis/web3@^2.0.0-beta.57": - version "2.0.0-beta.57" - resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.57.tgz#45692bffc07687d50fa5204d514590d438b759de" - integrity sha512-OYmt0a171AJECYT/vTkPb4uc1x7xFASMfn+MN3EAjo7DRhY8WfTAMNoMJDhuFARRLC7an2HrRIsT7D4q9GNrnQ== - dependencies: - "@portis/web3-provider-engine" "1.1.0" - ethereumjs-util "5.2.0" - penpal "3.0.7" - pocket-js-core "0.0.3" - -"@restless/sanitizers@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec" - integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w== - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@toruslabs/eccrypto@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.4.tgz#2b32e0da10b28a316d08984afcda303536954cd8" - integrity sha512-AQYcd7AM6ePb+V6CZTb6Lb/iaZ/BKpZ66AFdF1YLvMnyBeRY1JgdFOnjQfhtrUAYRMdcc8pBfvjFoWWK7EcggA== - dependencies: - acorn "^7.4.0" - elliptic "^6.5.3" - es6-promise "^4.2.8" - nan "^2.14.1" - optionalDependencies: - secp256k1 "^3.8.0" - -"@toruslabs/fetch-node-details@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@toruslabs/fetch-node-details/-/fetch-node-details-2.3.0.tgz#55ca927814812a029bb29816ace3d60d27fcd0b1" - integrity sha512-QWfYxBel+XUnUgkyPnjTLZpWiYJVl3Nz6I5MwSRJ/t3GteJvvGuq93zbsIzRmyhxK5C+e+FufnEUsKFwiXtPmA== - dependencies: - web3-eth-contract "^1.2.9" - web3-utils "^1.2.9" - -"@toruslabs/http-helpers@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.4.tgz#8811cff562fb792267f79ca5cb5c1bf1bc517e34" - integrity sha512-2Hm34F3GOwg41jEaZs1rVF4b+SGwC2mPeR7WhkkkM1cQNlXyCtcgLNLqlCVrww9e6pfBCZ2h3aEQVw+p4cT4fw== - dependencies: - deepmerge "^4.2.2" - loglevel "^1.6.8" - -"@toruslabs/torus-embed@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.8.2.tgz#6652b8f751c5f041749ccbfcaa0c08ced5f4f278" - integrity sha512-SlApK4BavoQYNenoQxjUs9/rrqrGDK5+Z9coABA6J7pLcbSL7QnBl8bKwTTYhI9Hri2GRbUM8XzNNpZfy5RiIQ== - dependencies: - "@chaitanyapotti/random-id" "^1.0.3" - "@toruslabs/fetch-node-details" "^2.3.0" - "@toruslabs/http-helpers" "^1.3.4" - "@toruslabs/torus.js" "^2.2.4" - create-hash "^1.2.0" - deepmerge "^4.2.2" - eth-json-rpc-errors "^2.0.2" - fast-deep-equal "^3.1.3" - is-stream "^2.0.0" - json-rpc-engine "^5.1.8" - json-rpc-middleware-stream "^2.1.1" - loglevel "^1.6.8" - obj-multiplex "^1.0.0" - obs-store "^4.0.3" - post-message-stream "^3.0.0" - pump "^3.0.0" - safe-event-emitter "^1.0.1" - web3 "^0.20.7" - -"@toruslabs/torus.js@^2.2.4": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.5.tgz#8994ae7727d980e2c0600b1154d547260ea52ec4" - integrity sha512-fxrIQmtNo4p3uEy5KdiIrZiB32KGPtaV70PoPg/vQB4IL/gjrQSYSIcC0VyP04yBfjHLccJe/HKOhlofpKcjAg== - dependencies: - "@toruslabs/eccrypto" "^1.1.4" - "@toruslabs/http-helpers" "^1.3.4" - bn.js "^5.1.2" - elliptic "^6.5.3" - json-stable-stringify "^1.0.1" - loglevel "^1.6.8" - memory-cache "^0.2.0" - web3-utils "^1.2.11" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -"@types/node@^12.12.6": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/react-dom@^16.0.5": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^16.3.13": - version "16.9.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.45.tgz#b43ccf3d8a3d2020e6a48c8c8492e5a4bc10f097" - integrity sha512-vv950slTF5UZ5eDOf13b8qC1SD4rTvkqg3HfaUKzr17U97oeJZAa+dUaIHn0QoOJflNTIt6Pem9MmapULs9dkA== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" - integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== - dependencies: - "@types/node" "*" - -"@unilogin/provider@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.6.1.tgz#427247f0cb0899d8b0d00c04a4b90ae2a3c2cb40" - integrity sha512-S96uBfoh+/nk8L6Yr+YgEV+FwQgtRnozWhgJpOhmRz128ri5Qv2SXLx5Sac33NGbs8g27PgKOyHX3dKJCvcP3g== - dependencies: - "@restless/sanitizers" "^0.2.5" - reactive-properties "^0.1.11" - -"@walletconnect/client@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.1.0.tgz#f2454cba82da3d8c7375b2a5d9d47f34ed7348ec" - integrity sha512-pHxvUDCkD4oP3AFxYLU7yeE+qDZtcHF20b2K8/HNvyuyu3eWFX4jpHgx6FdvcIcFcAXGs5nk24zBUEO8p+axWg== - dependencies: - "@walletconnect/core" "^1.1.0" - "@walletconnect/iso-crypto" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/core@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.1.0.tgz#053f08b0ccfdfb14ccd27b7fd425d9849cedba14" - integrity sha512-Bhe4gnR6Az11u7OAOw0UDZKM6emUjIQtQ2PVdPDWke6ryC0DWMg9vTYbVPf3lDHBv5hy5eAyDst30N5E91SuYw== - dependencies: - "@walletconnect/socket-transport" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/http-connection@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.1.0.tgz#c6650c12a07244d30f20647420cdcd8c69c6daca" - integrity sha512-ugxDW/NaSgn7rmdPZhrpJIS79gASLvzBnGHScMs8zpYDHwcFxh2DP3HTspC8o5FyMqjRlEGtNi4zSGKY6EOrkw== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - xhr2-cookies "1.1.0" - -"@walletconnect/iso-crypto@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.1.0.tgz#a8235049c1b239adcf9fc6a6c38b7e9ad13004a6" - integrity sha512-ttWLj4rTy2NGQnSAKnAar1LSrsJuCQ2JnQUl8hsgc9oTwXKgnRvtxGy2Kajoih/tNKnK959Ilj4WI2HaSJ9G1g== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - eccrypto-js "5.2.0" - -"@walletconnect/mobile-registry@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.1.0.tgz#72173a4fcee61f4f8819f6d9fc7cfbf824ed3548" - integrity sha512-OOHQa4NeK2lbfI9WD2d+hTHGwSDzBLoTCeofdLNO2ibaTltQ6S+WNDAVuho6U8CkUTzs5cHPFgLJ6nxYZ8sr/g== - -"@walletconnect/qrcode-modal@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.1.0.tgz#4cd0c2c2c713be3f49ef00293a1b23a079d4c7b7" - integrity sha512-vYsu1MBE0D+kx1+xdXmaCs7JqhhWPw8orKk9Br64YIPF5pv/48i+Yi/m28/0myJm54YPlVcgzTnuf8PzAH7jgA== - dependencies: - "@walletconnect/mobile-registry" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/socket-transport@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.1.0.tgz#d80b5e6b3b904f131961259ca16de816ae2b003b" - integrity sha512-plo5WHjL3RTDENH7MTgs7D/ePGHfSuc/HLzkVGvgZSOtoPlRR916nSZNeL4bStYF1ZRJCrds10x36C0DlZjpQg== - dependencies: - "@walletconnect/types" "^1.1.0" - ws "7.3.0" - -"@walletconnect/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.1.0.tgz#1e4efbf033ad89910cbb86f1f381cd5fe7e764fd" - integrity sha512-cgDEuYHZZTiaXFRwQs3Zhhar+l2T58/YjhWrfZTMKWuc77geIbF7682i9lE9bNEQqQvQ76jjKxJfSLGjCu++sA== - -"@walletconnect/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.1.0.tgz#7b0bcf5c77e8079ac055013537a9620244db2da9" - integrity sha512-y5v8PCmd/2kASOncYaz5QJiAzwBRT5MK398PmIkImX9tNEeBh00ifeQGZKkCGi6JYXbde0UC5jsGTGkH8hdxeg== - dependencies: - "@walletconnect/types" "^1.1.0" - detect-browser "5.1.0" - enc-utils "2.1.0" - js-sha3 "0.8.0" - -"@walletconnect/web3-provider@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.1.0.tgz#c8a30c4121d3ade159022b10d3a18ecd804c8993" - integrity sha512-1DaYG+aK2pjCBKXrB0c2JKeFk27ObUsu09LlZN1VvIi1+zvHftaubNsSGViLmrq25w72yPle/SDjhgmxvKVMQQ== - dependencies: - "@walletconnect/client" "^1.1.0" - "@walletconnect/http-connection" "^1.1.0" - "@walletconnect/qrcode-modal" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - web3-provider-engine "15.0.12" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -aes-js@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - 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-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0: - 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" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -authereum@^0.0.4-beta.157: - version "0.0.4-beta.164" - resolved "https://registry.yarnpkg.com/authereum/-/authereum-0.0.4-beta.164.tgz#c095fe0abb961f3d6a748ffcec763460d1e31756" - integrity sha512-oRIZhOQCPaKtOYyl3TqLQ5JcPy1ptJWxGilDhNjCMRebxQnItCWWf3nZ4YmS39RGBZqwqZA22sdw/sfPb4VYCA== - dependencies: - async "3.2.0" - ethereum-private-key-to-address "0.0.3" - ethers "4.0.47" - eventemitter3 "4.0.0" - is-buffer "2.0.4" - moment "2.24.0" - penpal "4.1.1" - pify "4.0.1" - querystring "0.2.0" - store "2.0.12" - to-hex "0.0.11" - uuidv4 "6.0.6" - web3-provider-engine "15.0.4" - web3-utils "1.2.1" - -await-semaphore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/await-semaphore/-/await-semaphore-0.1.3.tgz#2b88018cc8c28e06167ae1cdff02504f1f9688d3" - integrity sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= - dependencies: - precond "0.2" - -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= - -base-x@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== - -"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": - version "2.0.7" - resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" - -bind-decorator@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha1-5BvAah9l3ZzsR2yRxdrzl4SIJS8= - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -blakejs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bnc-onboard@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.11.0.tgz#cb3d79b702a15d12114aa649beddb2ec5ea83e70" - integrity sha512-hHB+xb6SULRxQh/Bm5DBEfg/4/QLI/B9q/h3AyMf+21FMmJ66DUODDsoIwbiq1fh3IrwHpoSmNLdb2nTeN0Wog== - dependencies: - "@ledgerhq/hw-app-eth" "^5.21.0" - "@ledgerhq/hw-transport-u2f" "^5.21.0" - "@portis/web3" "^2.0.0-beta.57" - "@toruslabs/torus-embed" "^1.8.2" - "@unilogin/provider" "^0.6.1" - "@walletconnect/web3-provider" "^1.1.0" - authereum "^0.0.4-beta.157" - bignumber.js "^9.0.0" - bnc-sdk "^2.1.4" - bowser "^2.10.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^7.0.3" - fortmatic "^2.2.1" - hdkey "^2.0.1" - regenerator-runtime "^0.13.7" - squarelink "^1.1.4" - trezor-connect "^8.1.9" - walletlink "^2.0.2" - web3-provider-engine "^15.0.4" - -bnc-sdk@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/bnc-sdk/-/bnc-sdk-2.1.5.tgz#7f40bcf98eb0238882f5436c0e860e60be2867c0" - integrity sha512-rtwOGKjal1LQyYrdESdOfCK5L2ocS3tjoWtNacm3rkb+xjDusVnUpF/NgudJpCnv3Mwu9YDWjsLKIPKjwbJL7A== - dependencies: - crypto-es "^1.2.2" - sturdy-websocket "^0.1.12" - -bowser@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198" - integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg== - -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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.6, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-sha3@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.4.tgz#086c47b8c82316c9d47022c26185954576dd8e26" - integrity sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY= - dependencies: - js-sha3 "^0.6.1" - safe-buffer "^5.1.1" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - 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== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.4.3: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30000844: - version "1.0.30001112" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz#0fffc3b934ff56ff0548c37bc9dad7d882bcf672" - integrity sha512-J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -clsx@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -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-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= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -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= - -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, 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= - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - integrity sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw== - dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" - -crypto-es@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c" - integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA== - -crypto-js@^3.1.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" - integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== - -csstype@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7" - integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -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" - -debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -define-properties@^1.1.2, 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" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-browser@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.0.tgz#0c51c66b747ad8f98a6832bf3026a5a23a7850ff" - integrity sha512-WKa9p+/MNwmTiS+V2AS6eGxic+807qvnV3hC+4z2GTY+F42h1n8AynVTMMc4EJBC32qMs6yjOTpeDEQQt/AVqQ== - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -eccrypto-js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eccrypto-js/-/eccrypto-js-5.2.0.tgz#eb3b36e9978d316fedf50be46492bb0d3e240cf5" - integrity sha512-pPb6CMapJ1LIzjLWxMqlrnfaEFap7qkk9wcO/b4AVSdxBQYlpOqvlPpq5SpUI4FdmfdhVD34AjN47fM8fryC4A== - dependencies: - aes-js "3.1.2" - enc-utils "2.1.0" - hash.js "1.1.7" - js-sha3 "0.8.0" - randombytes "2.1.0" - secp256k1 "3.8.0" - -electron-to-chromium@^1.3.47: - version "1.3.526" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz#0e004899edf75afc172cce1b8189aac5dca646aa" - integrity sha512-HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg== - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -enc-utils@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-2.1.0.tgz#f6c28c3d4bb38fb409a93185848cf361f4fde142" - integrity sha512-VD0eunGDyzhojePzkORWDnW88gi6tIeGb5Z6QVHugux6mMAPiXyw94fb/7WdDQEWhKMSoYRyzFFUebCqeH20PA== - dependencies: - bn.js "4.11.8" - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.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" - -errno@~0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -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.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - 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.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - 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" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.1, eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-errors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz#c1965de0301fe941c058e928bebaba2e1285e3c4" - integrity sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@^4.0.2, eth-json-rpc-filters@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.1.tgz#15277c66790236d85f798f4d7dc6bab99a798cd2" - integrity sha512-GkXb2h6STznD+AmMzblwXgm1JMvjdK9PTIXG7BvIkTlXQ9g0QOxuU1iQRYHoslF9S30BYBSoLSisAYPdLggW+A== - dependencies: - await-semaphore "^0.1.3" - eth-json-rpc-middleware "^4.1.4" - eth-query "^2.1.2" - json-rpc-engine "^5.1.3" - lodash.flatmap "^4.5.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz#8af1a1a2e9a0a82aaa302bbc96fb1a4c15d69b83" - integrity sha512-dvgOrci9lZqpjpp0hoC3Zfedhg3aIpLFVDH0TdlKxRlkhR75hTrKTwxghDrQwE0bn3eKrC8RsN1m/JdnIWltpw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-middleware "^4.1.4" - json-rpc-engine "^5.1.3" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.1, eth-json-rpc-middleware@^4.1.4, eth-json-rpc-middleware@^4.1.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - integrity sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-bloom-filters@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" - integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== - dependencies: - js-sha3 "^0.8.0" - -ethereum-checksum-address@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-checksum-address/-/ethereum-checksum-address-0.0.2.tgz#46fcb2d962dacd1ed49d7b464408ec26fd183209" - integrity sha512-GAb7mPvGgcfi1j+Bsnwm9af9Z7dLUKp+5cFm88+kMrKACfh9gLatGLVVK5pSGEG2pOGfrmqCRcuh3RtMjIg8GQ== - dependencies: - keccak256 "^1.0.0" - meow "^5.0.0" - -ethereum-common@0.0.18, ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= - -ethereum-common@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.1.0.tgz#874dd0fae5e962a56c50ebf28efa6fe39492b0e7" - integrity sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc= - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereum-private-key-to-address@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-address/-/ethereum-private-key-to-address-0.0.3.tgz#1f1dccaefd1198c2dcde55501f331a846bd0aad0" - integrity sha512-P+z9eFlgOezxogEpY1sQR155U4xFmQUWVxKzIJa5BL05Gs7zL0sYuyQuSAme8LBYGQ6p6AwconiMDauf4LbqyA== - dependencies: - ethereum-private-key-to-public-key "0.0.2" - ethereum-public-key-to-address "0.0.1" - meow "^5.0.0" - -ethereum-private-key-to-public-key@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-public-key/-/ethereum-private-key-to-public-key-0.0.2.tgz#bb5803aad43df2692e0d7b4c9eaa224eec2a39cb" - integrity sha512-WKwFspLS5IdpV1rBUmWSG2xtIDV7YMpAG/uSjtV9kDzBU6hpSzoqg6R/e1iEfHkOr/eae+NtDTpwzXRtSMDvhw== - dependencies: - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereum-public-key-to-address@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ethereum-public-key-to-address/-/ethereum-public-key-to-address-0.0.1.tgz#3f0237687d9c2217234dc5683f3eb580abf3f6ce" - integrity sha512-X78x/VBluHUdrYpZunoXJ48luXTaUiUK4ImPjTjI+XiS24+jUR5WFCpm9wCNbLYP6/ZCJ+lwuYormXSjt8rrbw== - dependencies: - ethereum-checksum-address "0.0.2" - keccak256 "^1.0.0" - meow "^5.0.0" - secp256k1 "^3.7.1" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz#cded4962deaca1eef17372b4d290e84b35c84372" - integrity sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I= - dependencies: - async "^2.0.1" - ethereum-common "0.0.18" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" - integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y= - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - keccakjs "^0.2.0" - rlp "^2.0.0" - secp256k1 "^3.0.1" - -ethereumjs-util@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f" - integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-vm@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262" - integrity sha512-sAus9UxYjUnA42G91Q1/hR7ff35IJRpcLrUfbaIH7V4cl8qKsNs3wqf3dHvtj3wRqy12ke2Wd0tYdARyGKdD6g== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereum-common "0.1.0" - ethereumjs-account "^2.0.3" - ethereumjs-block "~1.6.0" - ethereumjs-util "4.5.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethers@4.0.47: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.8.tgz#c13d0fdf5e66db8085e2036d3309ed2f8a17ed89" - integrity sha512-of/rPgJ7E3yyBADUv5A7Gtkd7EB8ta/T9NS5CCG9tj9cifnXcI3KIdYQ7d8AS+9vm38pR1g6S5I+Q/mRnlQZlg== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -eventemitter3@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0, events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - 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== - -fast-safe-stringify@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-cache-dir@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -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" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fortmatic@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86" - integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ== - -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.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= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1, 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== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.2, glob@~7.1.6: - 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" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -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== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-symbols@^1.0.0, 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, 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" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hdkey@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.0.1.tgz#0a211d0c510bfc44fa3ec9d44b13b634641cad74" - integrity sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA== - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^4.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.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-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -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-buffer@2.0.4, is-buffer@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -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-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.4, is-regex@^1.1.0: - 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-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -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" - -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" - integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= - -"js-tokens@^3.0.0 || ^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== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -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-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.0.0, json-rpc-engine@^5.1.3, json-rpc-engine@^5.1.8: - version "5.3.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz#7dc7291766b28766ebda33eb6d3f4c6301c44ff4" - integrity sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" - -json-rpc-middleware-stream@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-2.1.1.tgz#06e5409e201e7ddeae47bef29f7059eafd4d5325" - integrity sha512-WZheufPN+/RKkjXQP3lK5tFYblqG0n+oYv5qpammwwY2vsJRB7mM4Txhr4ajzvYEZi1UkENnplrmaYiqaqafaA== - dependencies: - readable-stream "^2.3.3" - safe-event-emitter "^1.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= - -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== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak256@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.0.tgz#1ba55ce78ed3d63fb7091d045469007da984171d" - integrity sha512-8qv2vJdQk+Aa2tFXo8zYodm+6DgXqUOqvNJhj1p1V2pxQJT1oNKxNF+zWfhtKXNLZdLvyxjB/dvd9GwcvTHSQQ== - dependencies: - bn.js "^4.11.8" - keccak "^1.4.0" - -keccak@^1.0.2, keccak@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccakjs@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" - integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg== - dependencies: - browserify-sha3 "^0.0.4" - sha3 "^1.2.2" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^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" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= - -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - -magic-string@^0.25.2, magic-string@^0.25.3: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memory-cache@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a" - integrity sha1-eJCwHVLADI68nVM+H46xfjA0hxo= - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -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.12, mime-types@~2.1.19: - 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== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -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" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -nan@^2.14.0, nan@^2.14.1, nan@^2.2.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - -node-fetch@~1.7.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-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - -normalize-hex@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/normalize-hex/-/normalize-hex-0.0.2.tgz#5491c43759db2f06b7168d8419f4925c271ab27e" - integrity sha512-E2dx7XJQnjsm6SkS4G6GGvIXRHaLeWAZE2D2N3aia+OpIif2UT8y4S0KCjrX3WmFDSeFnlNOp0FSHFjLeJ4SJw== - dependencies: - bn.js "^4.11.8" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - 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" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -obj-multiplex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/obj-multiplex/-/obj-multiplex-1.0.0.tgz#2f2ae6bfd4ae11befe742ea9ea5b36636eabffc1" - integrity sha1-Lyrmv9SuEb7+dC6p6ls2Y26r/8E= - dependencies: - end-of-stream "^1.4.0" - once "^1.4.0" - readable-stream "^2.3.3" - -object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, 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-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= - dependencies: - http-https "^1.0.0" - -obs-store@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/obs-store/-/obs-store-4.0.3.tgz#b632ec7814baa604fae084a4c97e87c0b7a6d14c" - integrity sha512-+mm13kCRDv6IcvUDKTw0LIy5+dQhIktYaR/RwwZUFzOTi/fjMaNBnk42Adb94qZqJ00qWkjhQSZH7MXlKnTi8A== - dependencies: - readable-stream "^2.2.2" - safe-event-emitter "^1.0.1" - through2 "^2.0.3" - xtend "^4.0.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" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.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-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -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== - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -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" - -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-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - 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-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" - -pbkdf2@^3.0.17: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -penpal@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" - integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ== - -penpal@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-4.1.1.tgz#c96ccfdac441682acf617f6dcbc177a614e8302b" - integrity sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -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-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pocket-js-core@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pocket-js-core/-/pocket-js-core-0.0.3.tgz#1ab278b9a6a5775e2bdc3c2c2e218057774061e4" - integrity sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg== - dependencies: - axios "^0.18.0" - -post-message-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/post-message-stream/-/post-message-stream-3.0.0.tgz#90d9f54bd209e6b6f5d74795b87588205b547048" - integrity sha1-kNn1S9IJ5rb110eVuHWIIFtUcEg= - dependencies: - readable-stream "^2.1.4" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== - -preact@^10.3.3: - version "10.4.7" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.7.tgz#5a530d34b4ba45f38234be8b1b3fe910098a165f" - integrity sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw== - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= - -prettier@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -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, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -randombytes@2.1.0, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - -react-dom@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.8.1: - 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@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -reactive-properties@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reactive-properties/-/reactive-properties-0.1.12.tgz#35000ddb9b516bf5ea5b4c41154a45a7a38fdedf" - integrity sha512-jPpTyoAZOvMhq3pt87X/kZ1zT4j1aad8iafSRHOziYfhBYVYTiUjmIYAxZPmcFziF/4JbEsA7DXA91ZzdosQyQ== - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.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@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.8.1, resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= - dependencies: - through "~2.3.4" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" - integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== - dependencies: - bn.js "^4.11.1" - -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-plugin-peer-deps-external@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" - integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== - -rollup-plugin-typescript2@^0.25.3: - version "0.25.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" - integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== - dependencies: - find-cache-dir "^3.0.0" - fs-extra "8.1.0" - resolve "1.12.0" - rollup-pluginutils "2.8.1" - tslib "1.10.0" - -rollup-pluginutils@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" - integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== - dependencies: - estree-walker "^0.6.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@2.23.1: - version "2.23.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20" - integrity sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A== - optionalDependencies: - fsevents "~2.1.2" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - -rxjs@^6.5.4, rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -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-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@3.8.0, secp256k1@^3.0.1, secp256k1@^3.7.1, secp256k1@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.0, secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -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= - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha3@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.6.tgz#102aa3e47dc793e2357902c3cce8760822f9e905" - integrity sha512-KgLGmJGrmNB4JWVsAV11Yk6KbvsAiygWJc7t5IebWva/0NukNrjJqhtKhzy3Eiv2AKuGvhZZt7dt1mDo7HkoiQ== - dependencies: - nan "2.13.2" - -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== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -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.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -squarelink-provider-engine@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/squarelink-provider-engine/-/squarelink-provider-engine-15.0.5.tgz#93a440c5daec517b1b494424d1c279f195cd781c" - integrity sha512-rl9586BLpN/ldujibbMsCfq+lEyY/YMkmWqYcbmKs6VUvB56fsIG23HvVFl1mPRUu7XIq4dOt+V+4G6+GcKTtQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.1" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^4.1.1" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -squarelink@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/squarelink/-/squarelink-1.1.4.tgz#5303abf1f4a2765accf0b0de7d8b45ba19c270f8" - integrity sha512-VOLwNWhz/QgrGg5INvd7y/TddKDdS6/6FfjqtMys6nLVJA8h+h05WW5/YJLidHCSD0A+2VnPuL8m/lkP1bUk2g== - dependencies: - bignumber.js "^9.0.0" - squarelink-provider-engine "^15.0.5" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -store@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -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@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.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-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -sturdy-websocket@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/sturdy-websocket/-/sturdy-websocket-0.1.12.tgz#84bb779f948b585a695f76961dc7d1c4a5e87629" - integrity sha512-PA7h8LdjaMoIlC5HAwLVzae4raGWgyroscV4oUpEiTtEFINcNa47/CKYT3e98o+FfsJgrclI2pYpaJrz0aaoew== - dependencies: - lodash.defaults "^4.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= - -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - integrity sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -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= - -to-hex@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/to-hex/-/to-hex-0.0.11.tgz#22355e09e5b56f5ae2b32502c493320f021171ac" - integrity sha512-3FSU8sfjrVc9fWowwP9xrdhxbp5Wco8uVZLhMhfsNuCFo9Fu8ecD2MgJV/2iAw+755W3AcGSQYVZGOpBmJtNcA== - dependencies: - normalize-hex "0.0.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trezor-connect@^8.1.9: - version "8.1.10" - resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.10.tgz#1f80525c91684e7dc062f2e5eb6d93502e61172b" - integrity sha512-q1Hscxjyr1PtZj02yRu9rKps9VrSZ4koXgE8DM1QES2Sc7buhNqHwvRZQLQopUDXSoZh2vgObQNBrJsNHbWBpg== - dependencies: - "@babel/runtime" "^7.11.0" - events "^3.2.0" - whatwg-fetch "^3.3.1" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.9.6: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= - -util-deprecate@^1.0.1, 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= - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" - integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuidv4@6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" - integrity sha512-10YcruyGJtsG5SJnPG+8atr8toJa7xAOrcO7B7plYYiwpH1mQ8UZHjNSa2MrwGi6KWuyVrXGHr+Rce22F9UAiw== - dependencies: - uuid "7.0.2" - -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" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walletlink@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.0.2.tgz#8640e42d3df49b4661019287ab9789e94b72db98" - integrity sha512-4MIctCHAjcPHSQUHpHuU9leUAvYqRF+/4kCq7x9AngZQ2Jd74dbpC8dfZ55uOwW8TXc7z9XYeSyzRrGHbv5ZXg== - dependencies: - bind-decorator "^1.0.11" - bn.js "^5.1.1" - clsx "^1.1.0" - preact "^10.3.3" - rxjs "^6.5.4" - -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - -web3-core-method@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" - -web3-core-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - -web3-eth-contract@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" - -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - -web3-provider-engine@15.0.12, web3-provider-engine@^15.0.4: - version "15.0.12" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.12.tgz#24d7f2f6fb6de856824c7306291018c4fc543ac3" - integrity sha512-/OfhQalKPND1iB5ggvGuYF0+SIb2Qj5OFTrT2VrZWP79UhMTdP7T+L2FtblmRdCeOetoAzZHdBaIwLOZsmIX+w== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^2.0.2" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.4.tgz#5c336bcad2274dff5218bc8db003fa4e9e464c24" - integrity sha512-Ob9oK0TUZfVC7NXkB7CQSWAiCdCD/Xnlh2zTnV8NdJR8LCrMAy2i6JedU70JHaxw59y7mM4GnsYOTTGkquFnNQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.11, web3-utils@^1.2.11, web3-utils@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3@^0.20.7: - version "0.20.7" - resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.7.tgz#1605e6d81399ed6f85a471a4f3da0c8be57df2f7" - integrity sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ== - dependencies: - bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" - crypto-js "^3.1.4" - utf8 "^2.1.1" - xhr2-cookies "^1.1.0" - xmlhttprequest "*" - -websocket@^1.0.31: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^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.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - -ws@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@*, xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/packages/files-ui/package.json b/packages/files-ui/package.json index 18eebef60c..5a94f0b9e0 100644 --- a/packages/files-ui/package.json +++ b/packages/files-ui/package.json @@ -6,6 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", + "@chainsafe/files-api-client": "1.11.4", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -14,6 +15,7 @@ "@tkey/security-questions": "3.12.0", "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", + "@types/uuid": "^8.3.0", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/files-ui/src/App.tsx b/packages/files-ui/src/App.tsx index 6548568ab9..c322b4891e 100644 --- a/packages/files-ui/src/App.tsx +++ b/packages/files-ui/src/App.tsx @@ -1,7 +1,6 @@ import React, { useCallback, useEffect } from "react" import { init as initSentry, ErrorBoundary, showReportDialog } from "@sentry/react" import { Web3Provider } from "@chainsafe/web3-context" -import { FilesApiProvider, UserProvider, BillingProvider } from "@chainsafe/common-contexts" import { ThemeSwitcher } from "@chainsafe/common-theme" import "@chainsafe/common-theme/dist/font-faces.css" import { Button, CssBaseline, Modal, Router, ToasterProvider, Typography } from "@chainsafe/common-components" @@ -14,6 +13,9 @@ import { ThresholdKeyProvider } from "./Contexts/ThresholdKeyContext" import { lightTheme } from "./Themes/LightTheme" import { darkTheme } from "./Themes/DarkTheme" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { UserProvider } from "./Contexts/UserContext" +import { BillingProvider } from "./Contexts/BillingContext" if ( process.env.NODE_ENV === "production" && diff --git a/packages/files-ui/src/Components/FilesRoutes.tsx b/packages/files-ui/src/Components/FilesRoutes.tsx index 32c1347f66..b079beb7a0 100644 --- a/packages/files-ui/src/Components/FilesRoutes.tsx +++ b/packages/files-ui/src/Components/FilesRoutes.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from "react" import { Switch, ConditionalRoute } from "@chainsafe/common-components" import LoginPage from "./Pages/LoginPage" import SettingsPage from "./Pages/SettingsPage" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../Contexts/FilesApiContext" import DrivePage from "./Pages/DrivePage" import SearchPage from "./Pages/SearchPage" import BinPage from "./Pages/BinPage" diff --git a/packages/files-ui/src/Components/Layouts/AppHeader.tsx b/packages/files-ui/src/Components/Layouts/AppHeader.tsx index 3e3ccb65de..e4002ab5af 100644 --- a/packages/files-ui/src/Components/Layouts/AppHeader.tsx +++ b/packages/files-ui/src/Components/Layouts/AppHeader.tsx @@ -1,5 +1,4 @@ import React, { useCallback, useState } from "react" -import { useFilesApi, useUser } from "@chainsafe/common-contexts" import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" import clsx from "clsx" import { @@ -16,6 +15,8 @@ import SearchModule from "../Modules/SearchModule" import { Trans } from "@lingui/macro" import { useThresholdKey } from "../../Contexts/ThresholdKeyContext" import { CSFTheme } from "../../Themes/types" +import { useUser } from "../../Contexts/UserContext" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Layouts/AppNav.tsx b/packages/files-ui/src/Components/Layouts/AppNav.tsx index 62efe83803..1f7aca7adb 100644 --- a/packages/files-ui/src/Components/Layouts/AppNav.tsx +++ b/packages/files-ui/src/Components/Layouts/AppNav.tsx @@ -1,4 +1,3 @@ -import { useFilesApi, useUser } from "@chainsafe/common-contexts" import { useFiles } from "../../Contexts/FilesContext" import { createStyles, @@ -23,7 +22,8 @@ import { FREE_PLAN_LIMIT } from "../../Utils/Constants" import { Trans } from "@lingui/macro" import { useThresholdKey } from "../../Contexts/ThresholdKeyContext" import { CSFTheme } from "../../Themes/types" - +import { useUser } from "../../Contexts/UserContext" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { return createStyles({ diff --git a/packages/files-ui/src/Components/Layouts/AppWrapper.tsx b/packages/files-ui/src/Components/Layouts/AppWrapper.tsx index c6a116046c..e9da33b95c 100644 --- a/packages/files-ui/src/Components/Layouts/AppWrapper.tsx +++ b/packages/files-ui/src/Components/Layouts/AppWrapper.tsx @@ -1,4 +1,4 @@ -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../Contexts/FilesApiContext" import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" import React, { useState } from "react" import { ReactNode } from "react" diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx index 74cce9dd58..6a129dc4b7 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx @@ -10,7 +10,7 @@ import { useHistory, useLocation, useToaster } from "@chainsafe/common-component import { extractDrivePath, getPathWithFile } from "../../../Utils/pathUtils" import { ROUTE_LINKS } from "../../FilesRoutes" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { parseFileContentResponse } from "../../../Utils/Helpers" const BinFileBrowser: React.FC = ({ controls = false }: IFileBrowserModuleProps) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx index 1fcdfba736..9c115df847 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx @@ -9,7 +9,8 @@ import DragAndDrop from "../../../Contexts/DnDContext" import { t } from "@lingui/macro" import { ROUTE_LINKS } from "../../FilesRoutes" import dayjs from "dayjs" -import { useUser, useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" +import { useUser } from "../../../Contexts/UserContext" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" import { DISMISSED_SURVEY_KEY } from "../../SurveyBanner" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx index 7843d76297..8f3170ebf1 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx @@ -17,7 +17,8 @@ import CustomButton from "../../Elements/CustomButton" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../../Themes/types" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" + const useStyles = makeStyles( ({ breakpoints, constants, typography, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx index 4f70115ad7..381322594e 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx @@ -18,7 +18,7 @@ import { import clsx from "clsx" import { CSFTheme } from "../../../Themes/types" import dayjs from "dayjs" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" const useStyles = makeStyles( diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx index db0f6432f1..fc15b0fe62 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx @@ -7,7 +7,8 @@ import { DirectoryContentResponse, FileSystemItem } from "../../../Contexts/File import { Button, FolderIcon, Grid, ITreeNodeProps, ScrollbarWrapper, TreeView, Typography } from "@chainsafe/common-components" import { CSFTheme } from "../../../Themes/types" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" + const useStyles = makeStyles( ({ breakpoints, constants, palette, typography, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx index 6f4b4f1e62..fe07f64e4e 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx @@ -9,7 +9,7 @@ import { getParentPathFromFilePath } from "../../../Utils/pathUtils" import { ROUTE_LINKS } from "../../FilesRoutes" import { t } from "@lingui/macro" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" const SearchFileBrowser: React.FC = ({ controls = false }: IFileBrowserModuleProps) => { const { pathname } = useLocation() diff --git a/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx b/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx index ab454167e2..81ef8f91ac 100644 --- a/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx +++ b/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx @@ -3,7 +3,7 @@ import { Button, FacebookLogoIcon, GithubLogoIcon, GoogleLogoIcon, Loading, Typo import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" import { CSFTheme } from "../../../Themes/types" import { t, Trans } from "@lingui/macro" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useWeb3 } from "@chainsafe/web3-context" import { useThresholdKey } from "../../../Contexts/ThresholdKeyContext" import { LOGIN_TYPE } from "@toruslabs/torus-direct-web-sdk" diff --git a/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx b/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx index 1965afe09e..64cb8718ad 100644 --- a/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx +++ b/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx @@ -7,7 +7,7 @@ import { } from "@chainsafe/common-components" import clsx from "clsx" import { useFiles } from "../../../Contexts/FilesContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useThresholdKey } from "../../../Contexts/ThresholdKeyContext" import ConciseExplainer from "./ConciseExplainer" import { CSFTheme } from "../../../Themes/types" diff --git a/packages/files-ui/src/Components/Modules/SearchModule.tsx b/packages/files-ui/src/Components/Modules/SearchModule.tsx index 08d95fdef5..e6f5edf6ed 100644 --- a/packages/files-ui/src/Components/Modules/SearchModule.tsx +++ b/packages/files-ui/src/Components/Modules/SearchModule.tsx @@ -22,7 +22,8 @@ import { CONTENT_TYPES } from "../../Utils/Constants" import { getParentPathFromFilePath } from "../../Utils/pathUtils" import { t, Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../Contexts/FilesApiContext" + export interface SearchParams { bucketType: BucketType diff --git a/packages/files-ui/src/Components/Modules/Settings/Profile.tsx b/packages/files-ui/src/Components/Modules/Settings/Profile.tsx index d8a48e6b28..2caf84c759 100644 --- a/packages/files-ui/src/Components/Modules/Settings/Profile.tsx +++ b/packages/files-ui/src/Components/Modules/Settings/Profile.tsx @@ -16,7 +16,7 @@ import { } from "@chainsafe/common-theme" import { LockIcon, CopyIcon } from "@chainsafe/common-components" import { Formik, Form } from "formik" -import { useUser } from "@chainsafe/common-contexts" +import { useUser } from "../../../Contexts/UserContext" import { t, Trans } from "@lingui/macro" import { centerEllipsis } from "../../../Utils/Helpers" import { CSFTheme } from "../../../Themes/types" diff --git a/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx b/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx index 579c4fe655..baacd03ec2 100644 --- a/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx +++ b/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx @@ -17,7 +17,8 @@ import { } from "@chainsafe/common-components" import { ROUTE_LINKS } from "../../../FilesRoutes" import { Form, Formik } from "formik" -import { useBilling, useUser } from "@chainsafe/common-contexts" +import { useBilling } from "../../../../Contexts/BillingContext" +import { useUser }from "../../../../Contexts/UserContext" import * as yup from "yup" import countryList from "./countryList" import CardInputs from "../../../Elements/CardInputs" diff --git a/packages/files-ui/src/Components/Pages/LoginPage.tsx b/packages/files-ui/src/Components/Pages/LoginPage.tsx index bb5c74d3f6..2bab6cf70c 100644 --- a/packages/files-ui/src/Components/Pages/LoginPage.tsx +++ b/packages/files-ui/src/Components/Pages/LoginPage.tsx @@ -13,9 +13,9 @@ import TopDarkSVG from "../../Media/landing/layers/dark/Top.dark.svg" import BottomLightSVG from "../../Media/landing/layers/light/Bottom.light.svg" import TopLightSVG from "../../Media/landing/layers/light/Top.light.svg" // import { ForegroundSVG } from "../../Media/landing/layers/ForegroundSVG" -import { useFilesApi } from "@chainsafe/common-contexts" import MigrateAccount from "../Modules/LoginModule/MigrateAccount" import InitializeAccount from "../Modules/LoginModule/InitializeAccount" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ constants, breakpoints, typography, zIndex }: CSFTheme) => diff --git a/packages/common-contexts/src/BillingContext/BillingContext.tsx b/packages/files-ui/src/Contexts/BillingContext.tsx similarity index 97% rename from packages/common-contexts/src/BillingContext/BillingContext.tsx rename to packages/files-ui/src/Contexts/BillingContext.tsx index 662ea9ef5d..d18f1e8967 100644 --- a/packages/common-contexts/src/BillingContext/BillingContext.tsx +++ b/packages/files-ui/src/Contexts/BillingContext.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { useFilesApi } from "../FilesApiContext" +import { useFilesApi } from "./FilesApiContext" import axios, { AxiosResponse } from "axios" type BillingContextProps = { diff --git a/packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx b/packages/files-ui/src/Contexts/FilesApiContext.tsx similarity index 99% rename from packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx rename to packages/files-ui/src/Contexts/FilesApiContext.tsx index 7587aa0103..0da97898a8 100644 --- a/packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx +++ b/packages/files-ui/src/Contexts/FilesApiContext.tsx @@ -4,9 +4,9 @@ import { useState, useEffect, useMemo, useCallback } from "react" import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" import jwtDecode from "jwt-decode" import axios from "axios" -import { decryptFile } from "../helpers" +import { decryptFile } from "../Utils/encryption" import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" -export { IdentityProvider as OAuthProvider } +export type { IdentityProvider as OAuthProvider } const tokenStorageKey = "csf.refreshToken" const isReturningUserStorageKey = "csf.isReturningUser" diff --git a/packages/files-ui/src/Contexts/FilesContext.tsx b/packages/files-ui/src/Contexts/FilesContext.tsx index 3cf2feb37a..8c20129396 100644 --- a/packages/files-ui/src/Contexts/FilesContext.tsx +++ b/packages/files-ui/src/Contexts/FilesContext.tsx @@ -8,7 +8,7 @@ import { } from "@chainsafe/files-api-client" import React, { useCallback, useEffect, useReducer } from "react" import { useState } from "react" -import { decryptFile, encryptFile, useFilesApi, useUser } from "@chainsafe/common-contexts" +import { decryptFile, encryptFile } from "../Utils/encryption" import { v4 as uuidv4 } from "uuid" import { useToaster } from "@chainsafe/common-components" import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesReducers" @@ -17,6 +17,8 @@ import { t } from "@lingui/macro" import { readFileAsync } from "../Utils/Helpers" import { useBeforeunload } from "react-beforeunload" import { useThresholdKey } from "./ThresholdKeyContext" +import { useFilesApi } from "./FilesApiContext" +import { useUser } from "./UserContext" type FilesContextProps = { children: React.ReactNode | React.ReactNode[] diff --git a/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx b/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx index e0a3509546..3c220a4de8 100644 --- a/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx +++ b/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx @@ -9,7 +9,7 @@ import ShareSerializationModule, { SHARE_SERIALIZATION_MODULE_NAME } from "@tkey import { ServiceProviderBase } from "@tkey/service-provider-base" import { TorusStorageLayer } from "@tkey/storage-layer-torus" import bowser from "bowser" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../Contexts/FilesApiContext" import { utils, Wallet } from "ethers" import EthCrypto from "eth-crypto" import { useWeb3 } from "@chainsafe/web3-context" @@ -342,7 +342,7 @@ const ThresholdKeyProvider = ({ children, network = "mainnet", enableLogging = f } } - let poller: number + let poller: NodeJS.Timeout if (TKeySdk && keyDetails && keyDetails.requiredShares <= 0) { handler() poller = setInterval(handler, 5000) diff --git a/packages/common-contexts/src/UserContext/UserContext.tsx b/packages/files-ui/src/Contexts/UserContext.tsx similarity index 98% rename from packages/common-contexts/src/UserContext/UserContext.tsx rename to packages/files-ui/src/Contexts/UserContext.tsx index 20a0ac3c6c..1840f93e2a 100644 --- a/packages/common-contexts/src/UserContext/UserContext.tsx +++ b/packages/files-ui/src/Contexts/UserContext.tsx @@ -1,6 +1,6 @@ import * as React from "react" import { useCallback, useEffect } from "react" -import { useFilesApi } from "../FilesApiContext" +import { useFilesApi } from "./FilesApiContext" import { useState } from "react" type UserContextProps = { diff --git a/packages/common-contexts/src/helpers/encryption.ts b/packages/files-ui/src/Utils/encryption.ts similarity index 100% rename from packages/common-contexts/src/helpers/encryption.ts rename to packages/files-ui/src/Utils/encryption.ts diff --git a/packages/storage-ui/.env.example b/packages/storage-ui/.env.example new file mode 100644 index 0000000000..1f7b0ff808 --- /dev/null +++ b/packages/storage-ui/.env.example @@ -0,0 +1,20 @@ +PORT=3000 +HTTPS=false + +REACT_APP_API_URL=https://stage.imploy.site/api/v1 + +REACT_APP_STRIPE_PK= +REACT_APP_SENTRY_DSN_URL= +REACT_APP_SENTRY_ENV=development +REACT_APP_HOTJAR_ID= +# Get your ID on Blocknative: https://explorer.blocknative.com/account +REACT_APP_BLOCKNATIVE_ID= +REACT_APP_GOOGLE_CLIENT_ID=939164021653-lb5eiquuatf877em98bpi8v360p5vcs4.apps.googleusercontent.com +REACT_APP_FACEBOOK_CLIENT_ID=1102948430103109 +REACT_APP_AUTH0_DOMAIN=https://chainsafe-files.us.auth0.com +REACT_APP_AUTH0_CLIENT_ID=kkdDcP8aE1O3qGdwjAV9ybu75nl1afVv +REACT_APP_FILES_UUID_VERIFIER_NAME=chainsafe-uuid-testnet +# Set to `mainnet` if required +REACT_APP_DIRECT_AUTH_NETWORK=testnet +SENTRY_AUTH_TOKEN= +REACT_APP_TEST=true \ No newline at end of file diff --git a/packages/storage-ui/.gitignore b/packages/storage-ui/.gitignore new file mode 100644 index 0000000000..9532771241 --- /dev/null +++ b/packages/storage-ui/.gitignore @@ -0,0 +1,29 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +.env + +src/locales/*/messages.js +src/locales/_build + diff --git a/packages/storage-ui/.linguirc b/packages/storage-ui/.linguirc new file mode 100644 index 0000000000..1b7ae61f54 --- /dev/null +++ b/packages/storage-ui/.linguirc @@ -0,0 +1,14 @@ +{ + "catalogs": [{ + "path": "/src/locales/{locale}/messages", + "include": ["/src/**"], + "exclude": ["**/node_modules/**", "/src/locales/**"] + }], + "compileNamespace": "cjs", + "format": "po", + "formatOptions": { + "origins": false + }, + "locales": ["en"], + "sourceLocale": "en" +} \ No newline at end of file diff --git a/packages/storage-ui/.sentryclirc b/packages/storage-ui/.sentryclirc new file mode 100644 index 0000000000..8e1c713c07 --- /dev/null +++ b/packages/storage-ui/.sentryclirc @@ -0,0 +1,3 @@ +[defaults] +org=chainsafe +project=files-ui diff --git a/packages/storage-ui/README.md b/packages/storage-ui/README.md new file mode 100644 index 0000000000..6c42e1b7d2 --- /dev/null +++ b/packages/storage-ui/README.md @@ -0,0 +1,28 @@ +# ChainSafe Files UI Repo + +![Dev](https://github.com/imploy/files-ui/workflows/Dev/badge.svg?branch=dev) +[![Netlify Status](https://api.netlify.com/api/v1/badges/cb6afc46-ec5d-4cac-91c2-dbd0d866b89a/deploy-status)](https://app.netlify.com/sites/angry-lewin-719dd6/deploys) +[![Maintainability](https://api.codeclimate.com/v1/badges/6a9b1984bc9622792d3e/maintainability)](https://codeclimate.com/repos/5f0224802dfa0b018f0021b0/maintainability) +[![Test Coverage](https://api.codeclimate.com/v1/badges/6a9b1984bc9622792d3e/test_coverage)](https://codeclimate.com/repos/5f0224802dfa0b018f0021b0/test_coverage) + +## Run development (.env) + +``` +yarn install +yarn start +``` + +## Build production (.env) + +``` +yarn build +``` + +## Run test and test coverage + +``` +yarn test +yarn coverage +``` + +**Visit**: `http://localhost:3000` diff --git a/packages/storage-ui/craco.config.js b/packages/storage-ui/craco.config.js new file mode 100644 index 0000000000..16c3b8144d --- /dev/null +++ b/packages/storage-ui/craco.config.js @@ -0,0 +1,48 @@ +const TerserPlugin = require("terser-webpack-plugin") + +module.exports = { + babel: { + presets: [], + plugins: ["macros"], + loaderOptions: (babelLoaderOptions, { env, paths }) => { + return babelLoaderOptions + } + }, + webpack: { + configure: (webpackConfig) => ({ + ...webpackConfig, + optimization: { + ...webpackConfig.optimization, + minimizer: [ + new TerserPlugin({ + terserOptions: { + parse: { + ecma: 8 + }, + compress: { + ecma: 5, + warnings: false, + comparisons: false, + inline: 2, + drop_console: true + }, + mangle: { + safari10: true + }, + output: { + ecma: 5, + comments: false, + ascii_only: true + } + }, + parallel: 2, + cache: true, + sourceMap: true, + extractComments: false + }) + ] + }, + devtool: "source-map" + }) + } +} diff --git a/packages/storage-ui/cypress.json b/packages/storage-ui/cypress.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/packages/storage-ui/cypress.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/storage-ui/cypress/fixtures/loginData.ts b/packages/storage-ui/cypress/fixtures/loginData.ts new file mode 100644 index 0000000000..784ffd7688 --- /dev/null +++ b/packages/storage-ui/cypress/fixtures/loginData.ts @@ -0,0 +1,4 @@ +export const testPrivateKey = "0x4fd9a44c051834e28a919096f154e3f805f58d8f2d90a1ab9a29b0b46a6ac363" +export const testAddress = "0xDa1f70D176E0F7F16f2a3bB509cD37Bd36aFD902" +export const testAccountPassword = "correct horse" +export const localHost = "http://localhost:3000" \ No newline at end of file diff --git a/packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png b/packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfc70aca1df0d82ed6d99355be2b0dc24dc62d3 GIT binary patch literal 180586 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

WF-<4wEGJxyJQqc0r@ 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 { + it("can add files and cancel", () => { + cy.web3Login() + cy.get("[data-cy=upload-modal-button").click() + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-cancel-button").click() + cy.get("[data-cy=files-app-header").should("be.visible") + }) + + it("can add/remove files and upload", () => { + cy.web3Login({ clearCSFBucket: true }) + cy.get("[data-cy=upload-modal-button").click() + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/logo.png") + cy.get(".scrollbar li").should("have.length", 2) + cy.get(".removeFileIcon").first().click() + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 2) + cy.get("[data-cy=upload-ok-button").click() + cy.get("[data-cy=files-app-header").should("be.visible") + cy.get("[data-cy=file-item-row]").should("have.length", 2) + }) +}) diff --git a/packages/storage-ui/cypress/integration/settings.ts b/packages/storage-ui/cypress/integration/settings.ts new file mode 100644 index 0000000000..755944da7e --- /dev/null +++ b/packages/storage-ui/cypress/integration/settings.ts @@ -0,0 +1,30 @@ +describe("Settings", () => { + it("can navigate to the settings profile page", () => { + cy.web3Login() + cy.get("[data-cy=settings-nav]").click() + cy.get("[data-cy=settings-profile-header").should("be.visible") + cy.url().should("include", "/settings") + cy.get(".profile").click() + cy.url().should("include", "/settings/profile") + cy.get("[data-cy=settings-profile-header]").should("be.visible") + cy.get(".security").click() + cy.url().should("include", "/settings/security") + cy.get("[data-cy=settings-security-header").should("be.visible") + }) + + it("can navigate to the settings security page on a phone", () => { + cy.viewport("iphone-6") + cy.web3Login() + cy.get(".hamburger-menu").click() + cy.get("[data-cy=settings-nav]").click() + cy.get("[data-cy=settings-profile-header]").should("not.exist") + cy.url().should("include", "/settings") + cy.get(".profile").click() + cy.url().should("include", "/settings/profile") + cy.get("[data-cy=settings-profile-header").should("be.visible") + cy.go("back") + cy.get(".security").click() + cy.url().should("include", "/settings/security") + cy.get("[data-cy=settings-security-header").should("be.visible") + }) +}) diff --git a/packages/storage-ui/cypress/plugins/index.ts b/packages/storage-ui/cypress/plugins/index.ts new file mode 100644 index 0000000000..e03152c9d8 --- /dev/null +++ b/packages/storage-ui/cypress/plugins/index.ts @@ -0,0 +1,33 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** +import { existsSync, readFileSync } from "fs" + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ + +export default (on: any) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config + + on("task", { + readFileMaybe(filename: string) { + if (existsSync(filename)) { + return readFileSync(filename, "utf8") + } + + return null + } + }) +} diff --git a/packages/storage-ui/cypress/support/commands.ts b/packages/storage-ui/cypress/support/commands.ts new file mode 100644 index 0000000000..8d439ccb19 --- /dev/null +++ b/packages/storage-ui/cypress/support/commands.ts @@ -0,0 +1,207 @@ +/* eslint-disable @typescript-eslint/no-namespace */ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) + +import { ethers, Wallet } from "ethers" +import { testPrivateKey, testAccountPassword, localHost } from "../fixtures/loginData" +import { CustomizedBridge } from "./utils/CustomBridge" +import "cypress-file-upload" + +export type Storage = Record[] + +export interface Web3LoginOptions { + url?: string + apiUrlBase?: string + saveBrowser?: boolean + useLocalAndSessionStorage?: boolean + clearCSFBucket?: boolean +} + +const SESSION_FILE = "cypress/fixtures/storage/sessionStorage.json" +const LOCAL_FILE = "cypress/fixtures/storage/localStorage.json" +const REFRESH_TOKEN_KEY = "csf.refreshToken" + +Cypress.Commands.add("clearCsfBucket", (apiUrlBase: string) => { + cy.window().then((win) => { + cy.request("POST", `${apiUrlBase}/user/refresh`, { "refresh": win.sessionStorage.getItem(REFRESH_TOKEN_KEY) }) + .then((res) => res.body.access_token.token) + .then((accessToken) => { + cy.request({ + method: "POST", + url: `${apiUrlBase}/files/ls`, + body: { "path": "/", "source": { "type": "csf" } }, + auth: { "bearer": accessToken } + }).then((res) => { + const toDelete = res.body.map(({ name }: { name: string }) => `/${name}`) + cy.request({ + method: "POST", + url: `${apiUrlBase}/files/rm`, + body: { "paths": toDelete, "source": { "type": "csf" } }, + auth: { "bearer": accessToken } + }).then(res => { + if(!res.isOkStatusCode){ + throw new Error(`unexpected answer when deleting files: ${JSON.stringify(res, null, 2)}`) + } + }) + }) + }) + }) +}) + +Cypress.Commands.add("saveLocalAndSession", () => { + // save local and session storage in files + cy.window().then((win) => { + const newLocal: Storage = [] + const newSession: Storage = [] + + Object.keys(win.localStorage).forEach((key) => { + newLocal.push({ key, value: win.localStorage.getItem(key) || "" }) + }) + + Object.keys(win.sessionStorage).forEach((key) => { + newSession.push({ key, value: win.sessionStorage.getItem(key) || "" }) + }) + + const newLocalString = JSON.stringify(newLocal) + const newSessionString = JSON.stringify(newSession) + + cy.writeFile(SESSION_FILE, newSessionString) + cy.writeFile(LOCAL_FILE, newLocalString) + }) +}) + +Cypress.Commands.add("web3Login", ({ + saveBrowser = false, + url = localHost, + apiUrlBase = "https://stage.imploy.site/api/v1", + useLocalAndSessionStorage = true, + clearCSFBucket = false +}: Web3LoginOptions = {}) => { + let session: Storage = [] + let local: Storage = [] + + cy.task("readFileMaybe", SESSION_FILE) + .then((unparsedSession) => { + session = unparsedSession && JSON.parse(unparsedSession) || [] + }) + + cy.task("readFileMaybe", LOCAL_FILE) + .then((unparsedLocal) => { + local = unparsedLocal && JSON.parse(unparsedLocal) || [] + }) + + cy.on("window:before:load", (win) => { + const provider = new ethers.providers.JsonRpcProvider("https://rinkeby.infura.io/v3/4bf032f2d38a4ed6bb975b80d6340847", 4) + const signer = new Wallet(testPrivateKey, provider) + // inject ethereum object in the global window + Object.defineProperty(win, "ethereum", { + get: () => new CustomizedBridge(signer as any, provider as any) + }) + + // clear session storage in any case, if previous session storage should be + // kept will be decided after. + // Note that Cypress keep the session storage between test but clears localStorage + win.sessionStorage.clear() + win.localStorage.clear() + + if (useLocalAndSessionStorage) { + session.forEach(({ key, value }) => { + win.sessionStorage.setItem(key, value) + }) + + local.forEach(({ key, value }) => { + win.localStorage.setItem(key, value) + }) + } + }) + + cy.visit(url) + + // with nothing in localstorage (and in session storage) + // the whole login flow should kick in + cy.then(() => { + cy.log("Logging in", local.length > 0 && "there is something in session storage ---> direct login") + + if (local.length === 0) { + cy.log("nothing in session storage, --> click on web3 button") + cy.get("[data-cy=web3]").click() + cy.get(".bn-onboard-modal-select-wallets > :nth-child(1) > .bn-onboard-custom").click() + cy.get("[data-cy=sign-in-with-web3-button]").click() + cy.get("[data-cy=login-password-button]", { timeout: 20000 }).click() + cy.get("[data-cy=login-password-input]").type(`${testAccountPassword}{enter}`) + + if (saveBrowser) { + // this is taking forever for test accounts + cy.get("[data-cy=save-browser-button]").click() + } else { + cy.get("[data-cy=do-not-save-browser-button]").click() + } + } + }) + + cy.get("[data-cy=files-app-header", { timeout: 20000 }).should("be.visible") + + cy.saveLocalAndSession() + + if (clearCSFBucket) { + cy.clearCsfBucket(apiUrlBase) + } +}) + +// Must be declared global to be detected by typescript (allows import/export) +// eslint-disable @typescript/interface-name +declare global { + namespace Cypress { + interface Chainable { + /** + * Login using Metamask to an instance of Files. + * @param {String} options.url - (default: "http://localhost:3000") - what url to visit. + * @param {String} apiUrlBase - (default: "https://stage.imploy.site/api/v1") - what url to call for the api. + * @param {Boolean} options.saveBrowser - (default: false) - save the browser to localstorage. + * @param {Boolean} options.useLocalAndSessionStorage - (default: true) - use what could have been stored before to speedup login + * @param {Boolean} options.clearCSFBucket - (default: false) - whether any file in the csf bucket should be deleted. + * @example cy.web3Login({saveBrowser: true, url: 'http://localhost:8080'}) + */ + web3Login: (options?: Web3LoginOptions) => Chainable + + /** + * Removed any file or folder at the root + * @param {String} apiUrlBase - what url to call for the api. + * @example cy.clearCsfBucket("https://stage.imploy.site/api/v1") + */ + clearCsfBucket: (apiUrlBase: string) => Chainable + + /** + * Save local and session storage to local files + * @example cy.saveLocalAndSession() + */ + saveLocalAndSession: () => Chainable + } + } +} + +// Convert this to a module instead of script (allows import/export) +export { } diff --git a/packages/storage-ui/cypress/support/index.ts b/packages/storage-ui/cypress/support/index.ts new file mode 100644 index 0000000000..9fd31b5693 --- /dev/null +++ b/packages/storage-ui/cypress/support/index.ts @@ -0,0 +1,31 @@ +/// +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** +// Import commands.js using ES2015 syntax: +import "./commands" + +// the following gets rid of the exception "ResizeObserver loop limit exceeded" +// which someone on the internet says we can safely ignore +// source https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded +const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/ +Cypress.on("uncaught:exception", (err) => { + /* returning false here prevents Cypress from failing the test */ + if (resizeObserverLoopErrRe.test(err.message)) { + return false + } +}) + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/packages/storage-ui/cypress/support/utils/CustomBridge.ts b/packages/storage-ui/cypress/support/utils/CustomBridge.ts new file mode 100644 index 0000000000..4924ecbbff --- /dev/null +++ b/packages/storage-ui/cypress/support/utils/CustomBridge.ts @@ -0,0 +1,82 @@ +import { Eip1193Bridge } from "@ethersproject/experimental/lib/eip1193-bridge" +import { toUtf8String } from "ethers/lib/utils" +import { testAddress } from "../../fixtures/loginData" + +export class CustomizedBridge extends Eip1193Bridge { + async sendAsync(...args: Array) { + return this.send(...args) + } + + async isMetaMask() { + return true + } + + async send(...args: Array) { + const isCallbackForm = typeof args[0] === "object" && typeof args[1] === "function" + let callback + let method + let params + if (isCallbackForm) { + callback = args[1] + method = args[0].method + params = args[0].params + } else { + method = args[0] + params = args[1] + } + + if (method === "personal_sign") { + const addr = params[1] + const message = params[0] + + if ( + (addr as string).toLowerCase() !== testAddress.toLowerCase() + ) { + return Promise.reject( + `Wrong address, expected ${testAddress}, but got ${addr}` + ) + } + + try { + const sig = await this.signer.signMessage(toUtf8String(message)) + return sig + } catch (e) { + return Promise.reject( + `Error in CustomizedBridge for personal_sign: ${e.message}` + ) + } + } + + if (method === "eth_requestAccounts" || method === "eth_accounts") { + if (isCallbackForm) { + callback({ result: [testAddress] }) + } else { + return Promise.resolve([testAddress]) + } + } + + if (method === "eth_chainId") { + if (isCallbackForm) { + callback(null, { result: "0x4" }) + } else { + return Promise.resolve("0x4") + } + } + + try { + const result = await super.send(method, params) + + if (isCallbackForm) { + callback(null, { result }) + } else { + return result + } + } catch (error) { + if (isCallbackForm) { + callback(error, null) + } else { + throw error + } + } + } +} \ No newline at end of file diff --git a/packages/storage-ui/cypress/tsconfig.json b/packages/storage-ui/cypress/tsconfig.json new file mode 100644 index 0000000000..c58896952f --- /dev/null +++ b/packages/storage-ui/cypress/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "strict": true, + "target": "es5", + "jsx": "react", + "lib": ["es5", "dom"], + "types": ["cypress", "cypress-file-upload"] + }, + "include": ["**/*.ts"] + } \ No newline at end of file diff --git a/packages/storage-ui/package.json b/packages/storage-ui/package.json new file mode 100644 index 0000000000..822de85fb4 --- /dev/null +++ b/packages/storage-ui/package.json @@ -0,0 +1,97 @@ +{ + "name": "storage-ui", + "version": "1.0.0", + "private": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/runtime": "^7.0.0", + "@chainsafe/browser-storage-hooks": "^1.0.1", + "@chainsafe/files-api-client":"1.11.4", + "@chainsafe/web3-context": "1.1.4", + "@lingui/core": "^3.7.2", + "@lingui/react": "^3.7.2", + "@sentry/react": "^5.28.0", + "@tkey/default": "3.12.0", + "@tkey/security-questions": "3.12.0", + "@tkey/web-storage": "3.12.0", + "@toruslabs/torus-direct-web-sdk": "4.10.0", + "babel-loader": "8.1.0", + "babel-plugin-macros": "^2.8.0", + "babel-preset-env": "^1.7.0", + "babel-preset-react": "^6.24.1", + "bnc-onboard": "1.19.1", + "clsx": "^1.1.1", + "dayjs": "^1.9.7", + "eth-crypto": "^1.8.0", + "ethers": "^5.1.4", + "formik": "^2.2.5", + "mime-matcher": "^1.0.5", + "react": "^16.14.0", + "react-beforeunload": "^2.4.0", + "react-dnd": "14.0.2", + "react-dnd-html5-backend": "14.0.0", + "react-dom": "^16.14.0", + "react-h5-audio-player": "^3.5.0", + "react-hotkeys-hook": "^2.4.0", + "react-markdown": "^5.0.3", + "react-pdf": "5.3.0", + "react-scripts": "3.4.4", + "react-swipeable": "^6.0.1", + "react-toast-notifications": "^2.4.0", + "react-use-hotjar": "1.0.8", + "react-zoom-pan-pinch": "^1.6.1", + "remark-gfm": "^1.0.0", + "typescript": "~4.0.5", + "yup": "^0.32.8", + "zxcvbn": "^4.4.2" + }, + "devDependencies": { + "@craco/craco": "^5.9.0", + "@ethersproject/experimental": "^5.1.2", + "@lingui/babel-preset-react": "^2.9.2", + "@lingui/cli": "^3.7.2", + "@lingui/macro": "3.7.2", + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "@types/jest": "^26.0.16", + "@types/node": "^14.14.10", + "@types/react": "^17.0.0", + "@types/react-beforeunload": "^2.1.0", + "@types/react-dom": "^16.9.10", + "@types/react-pdf": "^5.0.0", + "@types/react-toast-notifications": "^2.4.0", + "@types/yup": "^0.29.9", + "@types/zxcvbn": "^4.4.0", + "babel-plugin-macros": "^2.8.0", + "cypress": "^7.3.0", + "cypress-file-upload": "^5.0.7", + "eslint-plugin-cypress": "^2.11.3" + }, + "scripts": { + "postinstall": "yarn compile", + "start": "craco --max_old_space_size=4096 start", + "build": "craco --max_old_space_size=4096 build", + "sentry": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); node scripts/sentry.js)", + "release": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); yarn compile && yarn build && node scripts/sentry.js)", + "test": "cypress open", + "test:ci": "cypress run", + "analyze": "source-map-explorer 'build/static/js/*.js'", + "extract": "lingui extract", + "compile": "lingui compile", + "lingui-version": "lingui --version", + "lint": "eslint './{src, cypress}/**/*.{js,jsx,ts,tsx}'" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/packages/storage-ui/public/_redirects b/packages/storage-ui/public/_redirects new file mode 100644 index 0000000000..50a463356b --- /dev/null +++ b/packages/storage-ui/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 \ No newline at end of file diff --git a/packages/storage-ui/public/abstract-image-large.png b/packages/storage-ui/public/abstract-image-large.png new file mode 100644 index 0000000000000000000000000000000000000000..8780e05d66e8d3d954c6d5437692bf32f5f8f99b GIT binary patch literal 166672 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 z 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

xfb6zKp>C>+&_vuIgx!sCf8- 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�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 CMxy)x literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/android-chrome-512x512.png b/packages/storage-ui/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..7a884ae88d8853027c4ced9d6b17e94ac8ca03da GIT binary patch literal 34082 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 literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/apple-touch-icon.png b/packages/storage-ui/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b70a32799632697b8bbd5154bf4cbc3b9ea9ab GIT binary patch literal 15961 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 CMxy)x literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/favicon-16x16.png b/packages/storage-ui/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..977cea724aad4b0bffe0bf2eb9ae50a12fc71c51 GIT binary patch literal 2513 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 Z>tFl;P5(j!>-GQu002ovPDHLkV1oGl&&vP+ literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/favicon.ico b/packages/storage-ui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee2819a2e79779d2f5065548ddedf68f2b6963eb GIT binary patch literal 4286 zcmds*Sx^*L6oy;N(v+1-rF`&JAM>0C#f@MT1sr5|0NF$s5fyPqiBYLahzf2Yi5eCm z#w8Y|QBXj|VNnU9q7oOPhy)Q45fNs3W_sr2{LOSbL6!g}4;kxs*1qSv|2g-ZRzVoS ze+2g^|vG-p(0plir)+SxVCKvx1jr*i+9ROaVG;9xK4lFTt(W-9RkTc2v+YvTCY zu>*133UwcSGsG?GM)2H+%s|%yU8zz#n<|*$Dl@PbDo2T(gT0YI1K$8@;_KJ)UOw!} zaW_IUwkBK?cPGrFff=Ye#GP&~bffFRb4lS~FaFM9_X7TaZxCv!(9ZgT*W*qh2oDx} z#ov#d-+XtGC;c9wp*!L8=ysR~b#u7UjfHbn4$cWF9LNd$fJZ}8kZT+7E$)vf@5b6F zZ(cpDzDS|Ha(2?A?Bc3W?(Pq9(%z#A?`S z4kafz6X?s=gXeJXbCvrZdN1~km_3D=fx5w-ux3AM>Dmw}cCKGU9qS_KH8Zrsi#4G# zN864Bx&F});W>I7<`UM&9KcLOAL>i!jU7oVsl&cLV)Rg(abuKdNLWnFL2vLo)|-9X z$WVBa45fu~PlBiDiReS{0qdgYUtfS- z1M?R(i9Ufd+neCM65E!QO16xhWczVD*$yUm*wVJ`z&(gqSvp><(0|RIx6Au3DYo3&2k5>JFznt; zU7KU5bHgH8vfsRKYeq_=Eq%vo-upZEe~t`zZPMp|WGc=}Fc;=Fo0C?M$n{~)KgK#P zdkp`Pf1JlUevLV$$ijJ+e)^UyX-Q<^Ypt27wbslO9q)b6_u=M~Ib%6yy!qUTM#MIs zIl{dmOs<7ziA$;L&|VU`zFzSee-Yo^JEfexO1`UYS-S#l87ag5cL>M+z?^q9)_nSK zy)h|H_QR5!Nz#dQl8zrF>F9p4r0*p0t5qar? + + + + + + + + + + + + + + + + ChainSafe Files + + + +

+ + + diff --git a/packages/storage-ui/public/manifest.json b/packages/storage-ui/public/manifest.json new file mode 100644 index 0000000000..6d00931386 --- /dev/null +++ b/packages/storage-ui/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "ChainSafe-logo.png", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/packages/storage-ui/public/pdf.worker.min.js b/packages/storage-ui/public/pdf.worker.min.js new file mode 100644 index 0000000000..ba03f4776e --- /dev/null +++ b/packages/storage-ui/public/pdf.worker.min.js @@ -0,0 +1,22 @@ +/** + * @licstart The following is the entire license notice for the + * Javascript code in this page + * + * Copyright 2020 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * Javascript code in this page + */ +!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(function(){return function(e){var t={};function __w_pdfjs_require__(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};e[r].call(a.exports,a,a.exports,__w_pdfjs_require__);a.l=!0;return a.exports}__w_pdfjs_require__.m=e;__w_pdfjs_require__.c=t;__w_pdfjs_require__.d=function(e,t,r){__w_pdfjs_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})};__w_pdfjs_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};__w_pdfjs_require__.t=function(e,t){1&t&&(e=__w_pdfjs_require__(e));if(8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);__w_pdfjs_require__.r(r);Object.defineProperty(r,"default",{enumerable:!0,value:e});if(2&t&&"string"!=typeof e)for(var a in e)__w_pdfjs_require__.d(r,a,function(t){return e[t]}.bind(null,a));return r};__w_pdfjs_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};__w_pdfjs_require__.d(t,"a",t);return t};__w_pdfjs_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};__w_pdfjs_require__.p="";return __w_pdfjs_require__(__w_pdfjs_require__.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"WorkerMessageHandler",{enumerable:!0,get:function(){return a.WorkerMessageHandler}});var a=r(1)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.WorkerMessageHandler=t.WorkerTask=void 0;var a=r(2),i=r(5),n=r(6),s=r(27),o=r(4),c=r(46),l=r(47),h=r(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,a.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){var r=!1;e.on("test",(function wphSetupTest(t){if(r)return;r=!0;if(!(t instanceof Uint8Array)){e.send("test",null);return}const a=255===t[0];e.postMessageTransfers=a;e.send("test",{supportTransfers:a})}));e.on("configure",(function wphConfigure(e){(0,a.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){var r,o=!1,u=null,d=[];const f=(0,a.getVerbosityLevel)(),g=e.apiVersion;if("2.6.347"!==g)throw new Error(`The API version "${g}" does not match the Worker version "2.6.347".`);const m=[];for(const e in[])m.push(e);if(m.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+m.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream||void 0===Promise.allSettled)throw new Error("The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.");var p=e.docId,b=e.docBaseUrl,y=e.docId+"_worker",v=new c.MessageHandler(y,p,t);v.postMessageTransfers=e.postMessageTransfers;function ensureNotTerminated(){if(o)throw new Error("Worker was terminated")}function startWorkerTask(e){d.push(e)}function finishWorkerTask(e){e.finish();var t=d.indexOf(e);d.splice(t,1)}async function loadDocument(e){await r.ensureDoc("checkHeader");await r.ensureDoc("parseStartXRef");await r.ensureDoc("parse",[e]);e||await r.ensureDoc("checkFirstPage");const[t,a]=await Promise.all([r.ensureDoc("numPages"),r.ensureDoc("fingerprint")]);return{numPages:t,fingerprint:a}}function getPdfManager(e,t){var r=(0,a.createPromiseCapability)();let i;var s=e.source;if(s.data){try{i=new n.LocalPdfManager(p,s.data,s.password,t,b);r.resolve(i)}catch(e){r.reject(e)}return r.promise}var o,c=[];try{o=new l.PDFWorkerStream(v)}catch(e){r.reject(e);return r.promise}var h=o.getFullReader();h.headersReady.then((function(){if(h.isRangeSupported){var e=s.disableAutoFetch||h.isStreamingSupported;i=new n.NetworkPdfManager(p,o,{msgHandler:v,password:s.password,length:h.contentLength,disableAutoFetch:e,rangeChunkSize:s.rangeChunkSize},t,b);for(let e=0;e{let r=[];for(const e of t)r=e.filter(e=>null!==e).reduce((e,t)=>e.concat(t),r);if(0===r.length)return e.bytes;const n=o.xref;let c=Object.create(null);if(n.trailer){const e=Object.create(null),t=n.trailer.get("Info")||null;t&&t.forEach((t,r)=>{(0,a.isString)(t)&&(0,a.isString)(r)&&(e[t]=(0,a.stringToPDFString)(r))});c={rootRef:n.trailer.getRaw("Root")||null,encrypt:n.trailer.getRaw("Encrypt")||null,newRef:n.getNewRef(),infoRef:n.trailer.getRaw("Info")||null,info:e,fileIds:n.trailer.getRaw("ID")||null,startXRef:o.startXRef,filename:i}}n.resetNewRef();return(0,s.incrementalUpdate)(e.bytes,c,r)})}));v.on("GetOperatorList",(function wphSetupRenderPage(e,t){var i=e.pageIndex;r.getPage(i).then((function(r){var n=new WorkerTask("GetOperatorList: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.getOperatorList({handler:v,sink:t,task:n,intent:e.intent,renderInteractiveForms:e.renderInteractiveForms,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(n);if(!n.terminated){v.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}),this);v.on("GetTextContent",(function wphExtractText(e,t){var i=e.pageIndex;t.onPull=function(e){};t.onCancel=function(e){};r.getPage(i).then((function(r){var n=new WorkerTask("GetTextContent: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.extractTextContent({handler:v,task:n,sink:t,normalizeWhitespace:e.normalizeWhitespace,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(n);n.terminated||t.error(e)}))}))}));v.on("FontFallback",(function(e){return r.fontFallback(e.id,v)}));v.on("Cleanup",(function wphCleanup(e){return r.cleanup(!0)}));v.on("Terminate",(function wphTerminate(e){o=!0;const t=[];if(r){r.terminate(new a.AbortException("Worker was terminated."));const e=r.cleanup();t.push(e);r=null}else(0,i.clearPrimitiveCaches)();u&&u(new a.AbortException("Worker was terminated."));d.forEach((function(e){t.push(e.finished);e.terminate()}));return Promise.all(t).then((function(){v.destroy();v=null}))}));v.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();v.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof a.PasswordException){var t=new WorkerTask("PasswordException: response "+e.code);startWorkerTask(t);v.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);r.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);v.send("DocException",e)}))}else e instanceof a.InvalidPDFException||e instanceof a.MissingPDFException||e instanceof a.UnexpectedResponseException||e instanceof a.UnknownErrorException?v.send("DocException",e):v.send("DocException",new a.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof h.XRefParseException){r.requestLoadedStream();r.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties}).then((function(e){if(o){e.terminate(new a.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(r=e).onLoadedStream().then((function(e){v.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return y}static initializeFromPort(e){var t=new c.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!o.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let r=0;for(let a=0;at});e.promise=new Promise((function(r,a){e.resolve=function(e){t=!0;r(e)};e.reject=function(e){t=!0;a(e)}}));return e};t.escapeString=function escapeString(e){return e.replace(/([\(\)\\])/g,"\\$1")};t.getModificationDate=function getModificationDate(e=new Date(Date.now())){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),(e.getUTCDate()+1).toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return i};t.info=function info(e){i>=a.INFOS&&console.log("Info: "+e)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;return e.every((function(e,r){return e===t[r]}))};t.isBool=function isBool(e){return"boolean"==typeof e};t.isNum=function isNum(e){return"number"==typeof e};t.isString=function isString(e){return"string"==typeof e};t.isSameOrigin=function isSameOrigin(e,t){let r;try{r=new URL(e);if(!r.origin||"null"===r.origin)return!1}catch(e){return!1}const a=new URL(t,r);return r.origin===a.origin};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t){if(!e)return null;try{const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.removeNullCharacters=function removeNullCharacters(e){if("string"!=typeof e){warn("The argument for removeNullCharacters must be a string.");return e}return e.replace(s,"")};t.setVerbosityLevel=function setVerbosityLevel(e){Number.isInteger(e)&&(i=e)};t.shadow=shadow;t.string32=function string32(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){const t=e.length,r=[];if("þ"===e[0]&&"ÿ"===e[1])for(let a=2;a=a.WARNINGS&&console.log("Warning: "+e)}function unreachable(e){throw new Error(e)}function assert(e,t){e||unreachable(t)}function shadow(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!1});return r}const n=function BaseExceptionClosure(){function BaseException(e){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=this.constructor.name}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=n;t.PasswordException=class PasswordException extends n{constructor(e,t){super(e);this.code=t}};t.UnknownErrorException=class UnknownErrorException extends n{constructor(e,t){super(e);this.details=t}};t.InvalidPDFException=class InvalidPDFException extends n{};t.MissingPDFException=class MissingPDFException extends n{};t.UnexpectedResponseException=class UnexpectedResponseException extends n{constructor(e,t){super(e);this.status=t}};t.FormatError=class FormatError extends n{};t.AbortException=class AbortException extends n{};const s=/\x00/g;function stringToBytes(e){assert("string"==typeof e,"Invalid argument for stringToBytes");const t=e.length,r=new Uint8Array(t);for(let a=0;ae[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){function compare(e,t){return e-t}const r=[e[0],e[2],t[0],t[2]].sort(compare),a=[e[1],e[3],t[1],t[3]].sort(compare),i=[];e=Util.normalizeRect(e);t=Util.normalizeRect(t);if(!(r[0]===e[0]&&r[1]===t[0]||r[0]===t[0]&&r[1]===e[0]))return null;i[0]=r[1];i[2]=r[2];if(!(a[0]===e[1]&&a[1]===t[1]||a[0]===t[1]&&a[1]===e[1]))return null;i[1]=a[1];i[3]=a[2];return i}}t.Util=Util;const h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];const u=function createObjectURLClosure(){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function createObjectURL(t,r,a=!1){if(!a&&URL.createObjectURL){const e=new Blob([t],{type:r});return URL.createObjectURL(e)}let i=`data:${r};base64,`;for(let r=0,a=t.length;r>2]+e[(3&n)<<4|s>>4]+e[r+1>6:64]+e[r+20?a:Dict.empty}const i=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=i.get(t);if(void 0===e){e=[];i.set(t,e)}e.push(r)}for(const[t,r]of i){if(1===r.length||!(r[0]instanceof Dict)){a._map[t]=r[0];continue}const i=new Dict(e);for(const e of r)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map))void 0===i._map[t]&&(i._map[t]=r);i.size>0&&(a._map[t]=i)}i.clear();return a.size>0?a:Dict.empty};return Dict}();t.Dict=s;var o=function RefClosure(){let e=Object.create(null);function Ref(e,t){this.num=e;this.gen=t}Ref.prototype={toString:function Ref_toString(){return 0===this.gen?this.num+"R":`${this.num}R${this.gen}`}};Ref.get=function(t,r){const a=0===r?t+"R":`${t}R${r}`,i=e[a];return i||(e[a]=new Ref(t,r))};Ref._clearCache=function(){e=Object.create(null)};return Ref}();t.Ref=o;t.RefSet=class RefSet{constructor(){this._set=new Set}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}};t.RefSetCache=class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}forEach(e){for(const t of this._map.values())e(t)}clear(){this._map.clear()}};function isName(e,t){return e instanceof i&&(void 0===t||e.name===t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var a=r(2),i=r(7),n=r(8),s=r(9),o=r(12);class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,a.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){let e=null;if(this._docBaseUrl){const t=(0,a.createValidAbsoluteUrl)(this._docBaseUrl);t?e=t.href:(0,a.warn)(`Invalid absolute docBaseUrl: "${this._docBaseUrl}".`)}return(0,a.shadow)(this,"docBaseUrl",e)}onLoadedStream(){(0,a.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,r){(0,a.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,a.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,a.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,a.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,a.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,r,a,i){super();this._docId=e;this._password=r;this._docBaseUrl=i;this.evaluatorOptions=a;const n=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,n);this._loadedStreamPromise=Promise.resolve(n)}async ensure(e,t,r){const a=e[t];return"function"==typeof a?a.apply(e,r):a}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,r,a,n){super();this._docId=e;this._password=r.password;this._docBaseUrl=n;this.msgHandler=r.msgHandler;this.evaluatorOptions=a;this.streamManager=new i.ChunkedStreamManager(t,{msgHandler:r.msgHandler,length:r.length,disableAutoFetch:r.disableAutoFetch,rangeChunkSize:r.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,r){try{const a=e[t];return"function"==typeof a?a.apply(e,r):a}catch(a){if(!(a instanceof n.MissingDataException))throw a;await this.requestRange(a.begin,a.end);return this.ensure(e,t,r)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var a=r(2),i=r(8);class ChunkedStream{constructor(e,t,r){this.bytes=new Uint8Array(e);this.start=0;this.pos=0;this.end=e;this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=r;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,r=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=r;e=t)return;if(t<=this.progressiveDataLength)return;const r=this.chunkSize,a=Math.floor(e/r),n=Math.floor((t-1)/r)+1;for(let r=a;r=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getBytes(e,t=!1){const r=this.bytes,a=this.pos,i=this.end;if(!e){i>this.progressiveDataLength&&this.ensureRange(a,i);const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}let n=a+e;n>i&&(n=i);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e,t=!1){const r=this.getBytes(e,t);this.pos-=r.length;return r}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}skip(e){e||(e=1);this.pos+=e}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,r){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),r=Math.floor((this.end-1)/e)+1,a=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;i.push(e);n+=(0,a.arrayByteLength)(e);r.isStreamingSupported&&this.onProgress({loaded:n});r.read().then(readChunk,t);return}const o=(0,a.arraysToBytes)(i);i=null;e(o)}catch(e){t(e)}};r.read().then(readChunk,t)}).then(t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})})}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,r=new Set;this._chunksNeededByRequest.set(t,r);for(const t of e)this.stream.hasChunk(t)||r.add(t);if(0===r.size)return Promise.resolve();const i=(0,a.createPromiseCapability)();this._promisesByRequest.set(t,i);const n=[];for(const e of r){let r=this._requestsByChunk.get(e);if(!r){r=[];this._requestsByChunk.set(e,r);n.push(e)}r.push(t)}if(n.length>0){const e=this.groupChunks(n);for(const t of e){const e=t.beginChunk*this.chunkSize,r=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,r)}}return i.promise.catch(e=>{if(!this.aborted)throw e})}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const r=this.getBeginChunk(e),a=this.getEndChunk(t),i=[];for(let e=r;e=0&&a+1!==n){t.push({beginChunk:r,endChunk:a+1});r=n}i+1===e.length&&t.push({beginChunk:r,endChunk:n+1});a=n}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,r=void 0===e.begin,a=r?this.progressiveDataLength:e.begin,i=a+t.byteLength,n=Math.floor(a/this.chunkSize),s=i0||o.push(r)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getLookupTableFactory=function getLookupTableFactory(e){let t;return function(){if(e){t=Object.create(null);e(t);e=null}return t}};t.getInheritableProperty=function getInheritableProperty({dict:e,key:t,getArray:r=!1,stopWhenFound:i=!0}){let n,s=0;for(;e;){const o=r?e.getArray(t):e.get(t);if(void 0!==o){if(i)return o;n||(n=[]);n.push(o)}if(++s>100){(0,a.warn)(`getInheritableProperty: maximum loop count exceeded for "${t}"`);break}e=e.get("Parent")}return n};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,a.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const r=[];let n;for(;e>=1e3;){e-=1e3;r.push("M")}n=e/100|0;e%=100;r.push(i[n]);n=e/10|0;e%=10;r.push(i[10+n]);r.push(i[20+e]);const s=r.join("");return t?s.toLowerCase():s};t.log2=function log2(e){if(e<=0)return 0;return Math.ceil(Math.log2(e))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.isWhiteSpace=function isWhiteSpace(e){return 32===e||9===e||13===e||10===e};t.XRefParseException=t.XRefEntryException=t.MissingDataException=void 0;var a=r(2);class MissingDataException extends a.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`);this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class XRefEntryException extends a.BaseException{}t.XRefEntryException=XRefEntryException;class XRefParseException extends a.BaseException{}t.XRefParseException=XRefParseException;const i=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFDocument=t.Page=void 0;var a=r(2),i=r(10),n=r(5),s=r(8),o=r(12),c=r(25),l=r(22),h=r(11),u=r(26),d=r(28);const f=[0,0,612,792];function isAnnotationRenderable(e,t){return"display"===t&&e.viewable||"print"===t&&e.printable}class Page{constructor({pdfManager:e,xref:t,pageIndex:r,pageDict:a,ref:i,globalIdFactory:n,fontCache:s,builtInCMapCache:o,globalImageCache:c}){this.pdfManager=e;this.pageIndex=r;this.pageDict=a;this.xref=t;this.ref=i;this.fontCache=s;this.builtInCMapCache=o;this.globalImageCache=c;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;const l={obj:0};this._localIdFactory=class extends n{static createObjId(){return`p${r}_${++l.obj}`}}}_getInheritableProperty(e,t=!1){const r=(0,s.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(r)?1!==r.length&&(0,n.isDict)(r[0])?n.Dict.merge({xref:this.xref,dictArray:r}):r[0]:r}get content(){return this.pageDict.get("Contents")}get resources(){return(0,a.shadow)(this,"resources",this._getInheritableProperty("Resources")||n.Dict.empty)}_getBoundingBox(e){const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,a.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,a.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||f)}get cropBox(){return(0,a.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");(!(0,a.isNum)(e)||e<=0)&&(e=1);return(0,a.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let r;if(e===t||(0,a.isArrayEqual)(e,t))r=t;else{const i=a.Util.intersect(e,t);i&&i[2]-i[0]!=0&&i[3]-i[1]!=0?r=i:(0,a.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,a.shadow)(this,"view",r||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,a.shadow)(this,"rotate",e)}getContentStream(){const e=this.content;let t;if(Array.isArray(e)){const r=this.xref,a=[];for(const t of e)a.push(r.fetchIfRef(t));t=new o.StreamsSequenceStream(a)}else t=(0,n.isStream)(e)?e:new o.NullStream;return t}save(e,t,r){const i=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const n=[];for(const s of e)isAnnotationRenderable(s,"print")&&n.push(s.save(i,t,r).catch((function(e){(0,a.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(n)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then(()=>new i.ObjectLoader(this.resources,e,this.xref).load())}getOperatorList({handler:e,sink:t,task:r,intent:i,renderInteractiveForms:n,annotationStorage:s}){const o=this.pdfManager.ensure(this,"getContentStream"),c=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),l=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),h=Promise.all([o,c]).then(([a])=>{const n=new u.OperatorList(i,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources),pageIndex:this.pageIndex,intent:i});return l.getOperatorList({stream:a,task:r,resources:this.resources,operatorList:n}).then((function(){return n}))});return Promise.all([h,this._parsedAnnotations]).then((function([e,t]){if(0===t.length){e.flush(!0);return{length:e.totalLength}}const o=[];for(const e of t)isAnnotationRenderable(e,i)&&o.push(e.getOperatorList(l,r,n,s).catch((function(e){(0,a.warn)(`getOperatorList - ignoring annotation data during "${r.name}" task: "${e}".`);return null})));return Promise.all(o).then((function(t){e.addOp(a.OPS.beginAnnotations,[]);for(const r of t)e.addOpList(r);e.addOp(a.OPS.endAnnotations,[]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,normalizeWhitespace:r,sink:a,combineTextItems:i}){const n=this.pdfManager.ensure(this,"getContentStream"),s=this.loadResources(["ExtGState","XObject","Font"]);return Promise.all([n,s]).then(([n])=>new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:n,task:t,resources:this.resources,normalizeWhitespace:r,combineTextItems:i,sink:a}))}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const r=[];for(let a=0,i=t.length;a{const e=[];for(const t of this.annotations)e.push(c.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory).catch((function(e){(0,a.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter(e=>!!e)}))});return(0,a.shadow)(this,"_parsedAnnotations",e)}}t.Page=Page;const g=new Uint8Array([37,80,68,70,45]),m=new Uint8Array([115,116,97,114,116,120,114,101,102]),p=new Uint8Array([101,110,100,111,98,106]),b=/^[1-9]\.[0-9]$/;function find(e,t,r=1024,a=!1){const i=t.length,n=e.peekBytes(r),s=n.length-i;if(s<=0)return!1;if(a){const r=i-1;let a=n.length-1;for(;a>=r;){let s=0;for(;s=i){e.pos+=a-r;return!0}a--}}else{let r=0;for(;r<=s;){let a=0;for(;a=i){e.pos+=r;return!0}r++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){let r;if((0,n.isStream)(t))r=t;else{if(!(0,a.isArrayBuffer)(t))throw new Error("PDFDocument: Unknown argument type");r=new o.Stream(t)}if(r.length<=0)throw new a.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=r;this.xref=new i.XRef(r,e);this._pagePromises=[];this._version=null;const s={font:0};this._globalIdFactory=class{static getDocId(){return"g_"+e.docId}static createFontId(){return"f"+ ++s.font}static createObjId(){(0,a.unreachable)("Abstract method `createObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new i.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=h.Linearization.create(this.stream)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)(e)}return(0,a.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,p)&&(t=e.pos+6-e.start)}else{const r=1024,a=m.length;let i=!1,n=e.end;for(;!i&&n>0;){n-=r-a;n<0&&(n=0);e.pos=n;i=find(e,m,r,!0)}if(i){e.skip(9);let r;do{r=e.getByte()}while((0,s.isWhiteSpace)(r));let a="";for(;r>=32&&r<=57;){a+=String.fromCharCode(r);r=e.getByte()}t=parseInt(a,10);isNaN(t)&&(t=0)}}return(0,a.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,g))return;e.moveStart();let t,r="";for(;(t=e.getByte())>32&&!(r.length>=12);)r+=String.fromCharCode(t);this._version||(this._version=r.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){const e=this.linearization,t=e?e.numPages:this.catalog.numPages;return(0,a.shadow)(this,"numPages",t)}_hasOnlyDocumentSignatures(e,t=0){return e.every(e=>{if((e=this.xref.fetchIfRef(e)).has("Kids")){if(++t>10){(0,a.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const r=(0,n.isName)(e.get("FT"),"Sig"),i=e.get("Rect"),s=Array.isArray(i)&&i.every(e=>0===e);return r&&s})}get formInfo(){const e={hasAcroForm:!1,hasXfa:!1},t=this.catalog.acroForm;if(!t)return(0,a.shadow)(this,"formInfo",e);try{const r=t.get("XFA"),a=Array.isArray(r)&&r.length>0||(0,n.isStream)(r)&&!r.isEmpty;e.hasXfa=a;const i=t.get("Fields"),s=Array.isArray(i)&&i.length>0,o=!!(1&t.get("SigFlags"))&&this._hasOnlyDocumentSignatures(i);e.hasAcroForm=s&&!o}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch form information.")}return(0,a.shadow)(this,"formInfo",e)}get documentInfo(){const e={Title:a.isString,Author:a.isString,Subject:a.isString,Keywords:a.isString,Creator:a.isString,Producer:a.isString,CreationDate:a.isString,ModDate:a.isString,Trapped:n.isName};let t=this._version;if("string"!=typeof t||!b.test(t)){(0,a.warn)("Invalid PDF header version number: "+t);t=null}const r={PDFFormatVersion:t,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection};let i;try{i=this.xref.trailer.get("Info")}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("The document information dictionary is invalid.")}if((0,n.isDict)(i))for(const t of i.getKeys()){const s=i.get(t);if(e[t])e[t](s)?r[t]="string"!=typeof s?s:(0,a.stringToPDFString)(s):(0,a.info)(`Bad value in document info for "${t}".`);else if("string"==typeof t){let e;if((0,a.isString)(s))e=(0,a.stringToPDFString)(s);else{if(!((0,n.isName)(s)||(0,a.isNum)(s)||(0,a.isBool)(s))){(0,a.info)(`Unsupported value in document info for (custom) "${t}".`);continue}e=s}r.Custom||(r.Custom=Object.create(null));r.Custom[t]=e}}return(0,a.shadow)(this,"documentInfo",r)}get fingerprint(){let e;const t=this.xref.trailer.get("ID");e=Array.isArray(t)&&t[0]&&(0,a.isString)(t[0])&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==t[0]?(0,a.stringToBytes)(t[0]):(0,l.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);const r=[];for(let t=0,a=e.length;t{if((0,n.isDict)(e,"Page")||(0,n.isDict)(e)&&!e.has("Type")&&e.has("Contents")){i&&!t.pageKidsCountCache.has(i)&&t.pageKidsCountCache.put(i,1);return[e,i]}throw new a.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}).catch(r=>{(0,a.info)(r);return t.getPageDict(e)})}getPage(e){if(void 0!==this._pagePromises[e])return this._pagePromises[e];const{catalog:t,linearization:r}=this,a=r&&r.pageFirst===e?this._getLinearizationPage(e):t.getPageDict(e);return this._pagePromises[e]=a.then(([r,a])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:r,ref:a,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,globalImageCache:t.globalImageCache}))}checkFirstPage(){return this.getPage(0).catch(async e=>{if(e instanceof s.XRefEntryException){this._pagePromises.length=0;await this.cleanup();throw new s.XRefParseException}})}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,n.clearPrimitiveCaches)()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=t.XRef=t.ObjectLoader=t.Catalog=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(22),c=r(23),l=r(24);function fetchDestination(e){return(0,i.isDict)(e)?e.get("D"):e}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(0,i.isDict)(this._catDict))throw new a.FormatError("Catalog object is not a dictionary.");this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.globalImageCache=new l.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache}get version(){const e=this._catDict.get("Version");return(0,i.isName)(e)?(0,a.shadow)(this,"version",e.name):(0,a.shadow)(this,"version",null)}get collection(){let e=null;try{const t=this._catDict.get("Collection");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,a.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,a.shadow)(this,"acroForm",e)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(0,i.isRef)(e))return(0,a.shadow)(this,"metadata",null);const t=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,t);let n;if(r&&(0,i.isDict)(r.dict)){const e=r.dict.get("Type"),t=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(t,"XML"))try{n=(0,a.stringToUTF8String)((0,a.bytesToString)(r.getBytes()))}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Skipping invalid metadata.")}}return(0,a.shadow)(this,"metadata",n)}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(0,i.isDict)(e))throw new a.FormatError("Invalid top-level pages dictionary.");return(0,a.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read document outline.")}return(0,a.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(0,i.isDict)(e))return null;e=e.getRaw("First");if(!(0,i.isRef)(e))return null;const t={items:[]},r=[{obj:e,parent:t}],n=new i.RefSet;n.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;r.length>0;){const t=r.shift(),l=s.fetchIfRef(t.obj);if(null===l)continue;if(!l.has("Title"))throw new a.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:l,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=l.get("Title"),d=l.get("F")||0,f=l.getArray("C"),g=l.get("Count");let m=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(m=c.ColorSpace.singletons.rgb.getRgb(f,0));const p={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,a.stringToPDFString)(u),color:m,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(p);e=l.getRaw("First");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:p});n.put(e)}e=l.getRaw("Next");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:t.parent});n.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read permissions.")}return(0,a.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(0,i.isDict)(e))return null;let t=e.get("P");if(!(0,a.isNum)(t))return null;t+=2**32;const r=[];for(const e in a.PermissionFlag){const i=a.PermissionFlag[e];t&i&&r.push(i)}return r}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,a.shadow)(this,"optionalContentConfig",null);const r=t.get("D");if(!r)return(0,a.shadow)(this,"optionalContentConfig",null);const n=t.get("OCGs");if(!Array.isArray(n))return(0,a.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of n){if(!(0,i.isRef)(e))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:(0,a.isString)(t.get("Name"))?(0,a.stringToPDFString)(t.get("Name")):null,intent:(0,a.isString)(t.get("Intent"))?(0,a.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(r,o);e.groups=s}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read optional content config: "+e)}return(0,a.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const r=[];if(Array.isArray(e))for(const a of e)(0,i.isRef)(a)&&t.includes(a)&&r.push(a.toString());return r}function parseOrder(e,r=0){if(!Array.isArray(e))return null;const a=[];for(const s of e){if((0,i.isRef)(s)&&t.includes(s)){n.put(s);a.push(s.toString());continue}const e=parseNestedOrder(s,r);e&&a.push(e)}if(r>0)return a;const s=[];for(const e of t)n.has(e)||s.push(e.toString());s.length&&a.push({name:null,order:s});return a}function parseNestedOrder(e,t){if(++t>s){(0,a.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const i=r.fetchIfRef(e);if(!Array.isArray(i))return null;const n=r.fetchIfRef(i[0]);if("string"!=typeof n)return null;const o=parseOrder(i.slice(1),t);return o&&o.length?{name:(0,a.stringToPDFString)(n),order:o}:null}const r=this.xref,n=new i.RefSet,s=10;return{name:(0,a.isString)(e.get("Name"))?(0,a.stringToPDFString)(e.get("Name")):null,creator:(0,a.isString)(e.get("Creator"))?(0,a.stringToPDFString)(e.get("Creator")):null,baseState:(0,i.isName)(e.get("BaseState"))?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}get numPages(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new a.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,a.shadow)(this,"numPages",e)}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof NameTree){const r=e.getAll();for(const e in r)t[e]=fetchDestination(r[e])}else e instanceof i.Dict&&e.forEach((function(e,r){r&&(t[e]=fetchDestination(r))}));return(0,a.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();return t instanceof NameTree||t instanceof i.Dict?fetchDestination(t.get(e)||null):null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read page labels.")}return(0,a.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let r=null,n="";const o=new NumberTree(e,this.xref).getAll();let c="",l=1;for(let e=0,h=this.numPages;e=1))throw new a.FormatError("Invalid start in PageLabel dictionary.");l=e}else l=1}switch(r){case"D":c=l;break;case"R":case"r":c=(0,s.toRomanNumerals)(l,"r"===r);break;case"A":case"a":const e=26,t=65,i=97,n="a"===r?i:t,o=l-1,h=String.fromCharCode(n+o%e),u=[];for(let t=0,r=o/e|0;t<=r;t++)u.push(h);c=u.join("");break;default:if(r)throw new a.FormatError(`Invalid style "${r}" in PageLabel dictionary.`);c=""}t[e]=n+c;l++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if((0,i.isName)(e))switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,a.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if((0,i.isName)(e))switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,a.shadow)(this,"pageMode",t)}get viewerPreferences(){const e={HideToolbar:a.isBool,HideMenubar:a.isBool,HideWindowUI:a.isBool,FitWindow:a.isBool,CenterWindow:a.isBool,DisplayDocTitle:a.isBool,NonFullScreenPageMode:i.isName,Direction:i.isName,ViewArea:i.isName,ViewClip:i.isName,PrintArea:i.isName,PrintClip:i.isName,PrintScaling:i.isName,Duplex:i.isName,PickTrayByPDFSize:a.isBool,PrintPageRange:Array.isArray,NumCopies:Number.isInteger},t=this._catDict.get("ViewerPreferences");let r=null;if((0,i.isDict)(t))for(const i in e){if(!t.has(i))continue;const n=t.get(i);if(!e[i](n)){(0,a.info)(`Bad value in ViewerPreferences for "${i}".`);continue}let s;switch(i){case"NonFullScreenPageMode":switch(n.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=n.name;break;default:s="UseNone"}break;case"Direction":switch(n.name){case"L2R":case"R2L":s=n.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":switch(n.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=n.name;break;default:s="CropBox"}break;case"PrintScaling":switch(n.name){case"None":case"AppDefault":s=n.name;break;default:s="AppDefault"}break;case"Duplex":switch(n.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=n.name;break;default:s="None"}break;case"PrintPageRange":if(n.length%2!=0)break;n.every((e,t,r)=>Number.isInteger(e)&&e>0&&(0===t||e>=r[t-1])&&e<=this.numPages)&&(s=n);break;case"NumCopies":n>0&&(s=n);break;default:if("boolean"!=typeof n)throw new a.FormatError("viewerPreferences - expected a boolean value for: "+i);s=n}if(void 0!==s){r||(r=Object.create(null));r[i]=s}else(0,a.info)(`Bad value in ViewerPreferences for "${i}".`)}return(0,a.shadow)(this,"viewerPreferences",r)}get openAction(){const e=this._catDict.get("OpenAction");let t=null;if((0,i.isDict)(e)){const r=new i.Dict(this.xref);r.set("A",e);const a={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:r,resultObj:a});if(Array.isArray(a.dest)){t||(t=Object.create(null));t.dest=a.dest}else if(a.action){t||(t=Object.create(null));t.action=a.action}}else if(Array.isArray(e)){t||(t=Object.create(null));t.dest=e}return(0,a.shadow)(this,"openAction",t)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e&&e.has("EmbeddedFiles")){const r=new NameTree(e.getRaw("EmbeddedFiles"),this.xref).getAll();for(const e in r){const i=new u(r[e],this.xref);t||(t=Object.create(null));t[(0,a.stringToPDFString)(e)]=i.serializable}}return(0,a.shadow)(this,"attachments",t)}get javaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e){const r=e.get("S");if(!(0,i.isName)(r,"JavaScript"))return;let n=e.get("JS");if((0,i.isStream)(n))n=(0,a.bytesToString)(n.getBytes());else if(!(0,a.isString)(n))return;t||(t=[]);t.push((0,a.stringToPDFString)(n))}if(e&&e.has("JavaScript")){const t=new NameTree(e.getRaw("JavaScript"),this.xref).getAll();for(const e in t){const r=t[e];(0,i.isDict)(r)&&appendIfJavaScriptDict(r)}}const r=this._catDict.get("OpenAction");(0,i.isDict)(r)&&(0,i.isName)(r.get("S"),"JavaScript")&&appendIfJavaScriptDict(r);return(0,a.shadow)(this,"javaScript",t)}fontFallback(e,t){const r=[];this.fontCache.forEach((function(e){r.push(e)}));return Promise.all(r).then(r=>{for(const a of r)if(a.loadedName===e){a.fallback(t);return}})}cleanup(e=!1){(0,i.clearPrimitiveCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();const t=[];this.fontCache.forEach((function(e){t.push(e)}));return Promise.all(t).then(e=>{for(const{dict:t}of e)delete t.translated;this.fontCache.clear();this.builtInCMapCache.clear()})}getPageDict(e){const t=(0,a.createPromiseCapability)(),r=[this._catDict.getRaw("Pages")],n=new i.RefSet,s=this.xref,o=this.pageKidsCountCache;let c,l=0;!function next(){for(;r.length;){const h=r.pop();if((0,i.isRef)(h)){c=o.get(h);if(c>0&&l+c=0){const t=h.objId;t&&!o.has(t)&&o.put(t,c);if(l+c<=e){l+=c;continue}}const u=h.get("Kids");if(!Array.isArray(u)){if((0,i.isName)(h.get("Type"),"Page")||!h.has("Type")&&h.has("Contents")){if(l===e){t.resolve([h,null]);return}l++;continue}t.reject(new a.FormatError("Page dictionary kids object is not an array."));return}for(let e=u.length-1;e>=0;e--)r.push(u[e])}t.reject(new Error(`Page index ${e} not found.`))}();return t.promise}getPageIndex(e){const t=this.xref;let r=0;return function next(n){return function pagesBeforeRef(r){let n,s=0;return t.fetchAsync(r).then((function(t){if((0,i.isRefsEqual)(r,e)&&!(0,i.isDict)(t,"Page")&&(!(0,i.isDict)(t)||t.has("Type")||!t.has("Contents")))throw new a.FormatError("The reference does not point to a /Page dictionary.");if(!t)return null;if(!(0,i.isDict)(t))throw new a.FormatError("Node must be a dictionary.");n=t.getRaw("Parent");return t.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(0,i.isDict)(e))throw new a.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let n=0,l=e.length;n0;){var h=l[0],u=l[1];if(!Number.isInteger(h)||!Number.isInteger(u))throw new a.FormatError(`Invalid XRef range fields: ${h}, ${u}`);if(!Number.isInteger(s)||!Number.isInteger(o)||!Number.isInteger(c))throw new a.FormatError(`Invalid XRef entry fields length: ${h}, ${u}`);for(t=i.entryNum;t=e.length);){r+=String.fromCharCode(a);a=e[t]}return r}function skipUntil(e,t,r){for(var a=r.length,i=e.length,n=0;t=a)break;t++;n++}return n}var e=/^(\d+)\s+(\d+)\s+obj\b/;const t=/\bendobj[\b\s]$/,r=/\s+(\d+\s+\d+\s+obj[\b\s<])$/;var o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]);const l=new Uint8Array([111,98,106]);var h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var u=this.stream;u.pos=0;for(var d,f,g=u.getBytes(),m=u.start,p=g.length,b=[],y=[];m=p)break;v=g[m]}while(10!==v&&13!==v);else++m}for(d=0,f=y.length;d0;){const s=t.fetchIfRef(n.shift());if(!(0,i.isDict)(s))continue;if(s.has("Kids")){const e=s.get("Kids");for(let t=0,i=e.length;t10){(0,a.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const n=r.get("Kids");if(!Array.isArray(n))return null;let s=0,o=n.length-1;for(;s<=o;){const a=s+o>>1,i=t.fetchIfRef(n[a]).get("Limits");if(et.fetchIfRef(i[1]))){r=t.fetchIfRef(n[a]);break}s=a+1}}if(s>o)return null}const n=r.get(this._type);if(Array.isArray(n)){let r=0,i=n.length-2;for(;r<=i;){const a=r+i>>1,s=a+(1&a),o=t.fetchIfRef(n[s]);if(eo))return t.fetchIfRef(n[s+1]);r=s+2}}(0,a.info)(`Falling back to an exhaustive search, for key "${e}", in "${this._type}" tree.`);for(let r=0,i=n.length;r>")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1)){(0,i.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}if((0,n.isEOF)(this.buf1)){if(!this.recoveryMode)throw new i.FormatError("End of file inside dictionary");return a}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(a,e):a;this.shift();return a;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,r=e.pos;let a,o,c=0;for(;-1!==(a=e.getByte());)if(0===c)c=69===a?1:0;else if(1===c)c=73===a?2:0;else{(0,i.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===a||10===a||13===a){o=e.pos;const r=e.peekBytes(10);for(let e=0,t=r.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,i.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===a){(0,i.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,i.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);a=e.peekByte();e.skip(l);(0,s.isWhiteSpace)(a)||l--;return e.pos-l-r}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let r,a,n=!1;for(;-1!==(r=e.getByte());)if(255===r){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:n=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:a=e.getUint16();a>2?e.skip(a-2):e.skip(-2)}if(n)break}const s=e.pos-t;if(-1===r){(0,i.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte());)if(126===r){const t=e.pos;r=e.peekByte();for(;(0,s.isWhiteSpace)(r);){e.skip();r=e.peekByte()}if(62===r){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte())&&62!==r;);const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}inlineStreamSkipEI(e){let t,r=0;for(;-1!==(t=e.getByte());)if(0===r)r=69===t?1:0;else if(1===r)r=73===t?2:0;else if(2===r)break}makeInlineImage(e){const t=this.lexer,r=t.stream,a=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1))throw new i.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=r.pos-t.beginInlineImagePos);const o=a.get("Filter","F");let c;if((0,n.isName)(o))c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);(0,n.isName)(e)&&(c=e.name)}const l=r.pos;let h;h="DCTDecode"===c||"DCT"===c?this.findDCTDecodeInlineStreamEnd(r):"ASCII85Decode"===c||"A85"===c?this.findASCII85DecodeInlineStreamEnd(r):"ASCIIHexDecode"===c||"AHx"===c?this.findASCIIHexDecodeInlineStreamEnd(r):this.findDefaultInlineStreamEnd(r);let u,d=r.makeSubStream(l,h,a);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const a=r.pos;r.pos=t.beginInlineImagePos;const i=r.getBytes(s);r.pos=a;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,a,h);d.dict=a;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:r}=this.lexer;r.pos=e;const a=t.length;for(;r.pos=a){r.pos+=s;return r.pos-e}s++}r.pos+=n}return-1}makeStream(e,t){const r=this.lexer;let a=r.stream;r.skipToNextLine();const o=a.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,i.info)(`Bad length "${c}" in stream`);c=0}a.pos=o+c;r.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const r=1;for(let n=1;n<=r;n++){const r=e.length-n,c=e.slice(0,r),l=this._findStreamLength(o,c);if(l>=0){const e=a.peekBytes(r+1)[r];if(!(0,s.isWhiteSpace)(e))break;(0,i.info)(`Found "${(0,i.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new i.FormatError("Missing endstream command.")}c=t;r.nextChar();this.shift();this.shift()}this.shift();a=a.makeSubStream(o,c,e);t&&(a=t.createStream(a,c));a=this.filter(a,e,c);a.dict=e;return a}filter(e,t,r){let a=t.get("Filter","F"),s=t.get("DecodeParms","DP");if((0,n.isName)(a)){Array.isArray(s)&&(0,i.warn)("/DecodeParms should not contain an Array, when /Filter contains a Name.");return this.makeFilter(e,a.name,r,s)}let o=r;if(Array.isArray(a)){const t=a,r=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,r=0,a=0;if(45===e){a=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){a=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){r=10;e=this.nextChar()}if(e<48||e>57){if(10===r&&0===a&&((0,s.isWhiteSpace)(e)||-1===e)){(0,i.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}throw new i.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}a=a||1;let n=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const a=e-48;if(t)o=10*o+a;else{0!==r&&(r*=10);n=10*n+a}}else if(46===e){if(0!==r)break;r=1}else if(45===e)(0,i.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==r&&(n/=r);t&&(n*=10**(c*o));return a*n}getString(){let e=1,t=!1;const r=this.strBuf;r.length=0;let a=this.nextChar();for(;;){let n=!1;switch(0|a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 40:++e;r.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else r.push(")");break;case 92:a=this.nextChar();switch(a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 110:r.push("\n");break;case 114:r.push("\r");break;case 116:r.push("\t");break;case 98:r.push("\b");break;case 102:r.push("\f");break;case 92:case 40:case 41:r.push(String.fromCharCode(a));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&a;a=this.nextChar();n=!0;if(a>=48&&a<=55){e=(e<<3)+(15&a);a=this.nextChar();if(a>=48&&a<=55){n=!1;e=(e<<3)+(15&a)}}r.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:r.push(String.fromCharCode(a))}break;default:r.push(String.fromCharCode(a))}if(t)break;n||(a=this.nextChar())}return r.join("")}getName(){let e,t;const r=this.strBuf;r.length=0;for(;(e=this.nextChar())>=0&&!u[e];)if(35===e){e=this.nextChar();if(u[e]){(0,i.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");r.push("#");break}const a=toHexDigit(e);if(-1!==a){t=e;e=this.nextChar();const n=toHexDigit(e);if(-1===n){(0,i.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);r.push("#",String.fromCharCode(t));if(u[e])break;r.push(String.fromCharCode(e));continue}r.push(String.fromCharCode(a<<4|n))}else r.push("#",String.fromCharCode(e))}else r.push(String.fromCharCode(e));r.length>127&&(0,i.warn)("Name token is longer than allowed by the spec: "+r.length);return n.Name.get(r.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,i.warn)("getHexString - ignoring invalid character: "+e):(0,i.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,r,a=this.currentChar,n=!0;this._hexStringNumWarn=0;for(;;){if(a<0){(0,i.warn)("Unterminated hex string");break}if(62===a){this.nextChar();break}if(1!==u[a]){if(n){t=toHexDigit(a);if(-1===t){this._hexStringWarn(a);a=this.nextChar();continue}}else{r=toHexDigit(a);if(-1===r){this._hexStringWarn(a);a=this.nextChar();continue}e.push(String.fromCharCode(t<<4|r))}n=!n;a=this.nextChar()}else a=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==u[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new i.FormatError("Illegal character: "+t)}let r=String.fromCharCode(t);const a=this.knownCommands;let s=a&&void 0!==a[r];for(;(t=this.nextChar())>=0&&!u[t];){const e=r+String.fromCharCode(t);if(s&&void 0===a[e])break;if(128===r.length)throw new i.FormatError("Command token too long: "+r.length);r=e;s=a&&void 0!==a[r]}if("true"===r)return!0;if("false"===r)return!1;if("null"===r)return null;"BI"===r&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(r)}peekObj(){const e=this.stream.pos,t=this.currentChar,r=this.beginInlineImagePos;let a;try{a=this.getObj()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,i.warn)("peekObj: "+e)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=r;return a}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,r=!1){const a=e.get(t);if(Number.isInteger(a)&&(r?a>=0:a>0))return a;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),r=t.getObj(),a=t.getObj(),s=t.getObj(),o=t.getObj();let c,l;if(!(Number.isInteger(r)&&Number.isInteger(a)&&(0,n.isCmd)(s,"obj")&&(0,n.isDict)(o)&&(0,i.isNum)(c=o.get("Linearized"))&&c>0))return null;if((l=getInt(o,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:l,hints:function getHints(e){const t=e.get("H");let r;if(Array.isArray(t)&&(2===(r=t.length)||4===r)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(o),objectNumberFirst:getInt(o,"O"),endFirst:getInt(o,"E"),numPages:getInt(o,"N"),mainXRefEntriesOffset:getInt(o,"T"),pageFirst:o.has("P")?getInt(o,"P",!0):0}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=t.StringStream=t.StreamsSequenceStream=t.Stream=t.RunLengthStream=t.PredictorStream=t.NullStream=t.FlateStream=t.DecodeStream=t.DecryptStream=t.AsciiHexStream=t.Ascii85Stream=void 0;var a=r(2),i=r(5),n=r(8),s=function StreamClosure(){function Stream(e,t,r,a){this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+r||this.bytes.length;this.dict=a}Stream.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function Stream_getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function Stream_getUint16(){var e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t},getInt32:function Stream_getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()},getBytes(e,t=!1){var r=this.bytes,a=this.pos,i=this.end;if(!e){const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}var n=a+e;n>i&&(n=i);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s},peekByte:function Stream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)},skip:function Stream_skip(e){e||(e=1);this.pos+=e},reset:function Stream_reset(){this.pos=this.start},moveStart:function Stream_moveStart(){this.start=this.pos},makeSubStream:function Stream_makeSubStream(e,t,r){return new Stream(this.bytes.buffer,e,t,r)}};return Stream}();t.Stream=s;var o=function StringStreamClosure(){function StringStream(e){const t=(0,a.stringToBytes)(e);s.call(this,t)}StringStream.prototype=s.prototype;return StringStream}();t.StringStream=o;var c=function DecodeStreamClosure(){var e=new Uint8Array(0);function DecodeStream(t){this._rawMinBufferLength=t||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=e;this.minBufferLength=512;if(t)for(;this.minBufferLengthi&&(r=i)}else{for(;!this.eof;)this.readBlock();r=this.bufferLength}this.pos=r;const n=this.buffer.subarray(a,r);return!t||n instanceof Uint8ClampedArray?n:new Uint8ClampedArray(n)},peekByte:function DecodeStream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},makeSubStream:function DecodeStream_makeSubStream(e,t,r){for(var a=e+t;this.bufferLength<=a&&!this.eof;)this.readBlock();return new s(this.buffer,e,t,r)},getByteRange(e,t){(0,a.unreachable)("Should not call DecodeStream.getByteRange")},skip:function DecodeStream_skip(e){e||(e=1);this.pos+=e},reset:function DecodeStream_reset(){this.pos=0},getBaseStreams:function DecodeStream_getBaseStreams(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}};return DecodeStream}();t.DecodeStream=c;var l=function StreamsSequenceStreamClosure(){function StreamsSequenceStream(e){this.streams=e;let t=0;for(let r=0,a=e.length;r>e;this.codeSize=i-=e;return t};FlateStream.prototype.getCode=function FlateStream_getCode(e){for(var t,r=this.str,i=e[0],n=e[1],s=this.codeSize,o=this.codeBuf;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h};FlateStream.prototype.generateHuffmanTable=function flateStreamGenerateHuffmanTable(e){var t,r=e.length,a=0;for(t=0;ta&&(a=e[t]);for(var i=1<>=1}for(t=h;t>=1)){var h,u;if(1===l){h=i;u=n}else{if(2!==l)throw new a.FormatError("Unknown block type in flate stream");var d,f=this.getBits(5)+257,g=this.getBits(5)+1,m=this.getBits(4)+4,p=new Uint8Array(e.length);for(d=0;d0;)S[d++]=w}h=this.generateHuffmanTable(S.subarray(0,f));u=this.generateHuffmanTable(S.subarray(f,k))}for(var A=(s=this.buffer)?s.length:0,T=this.bufferLength;;){var I=this.getCode(h);if(I<256){T+1>=A&&(A=(s=this.ensureBuffer(T+1)).length);s[T++]=I}else{if(256===I){this.bufferLength=T;return}var F=(I=t[I-=257])>>16;F>0&&(F=this.getBits(F));o=(65535&I)+F;I=this.getCode(u);(F=(I=r[I])>>16)>0&&(F=this.getBits(F));var P=(65535&I)+F;T+o>=A&&(A=(s=this.ensureBuffer(T+o)).length);for(var E=0;E15))throw new a.FormatError("Unsupported predictor: "+n);this.readBlock=2===n?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;var s=this.colors=r.get("Colors")||1,o=this.bits=r.get("BitsPerComponent")||8,l=this.columns=r.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=l*s*o+7>>3;c.call(this,t);return this}PredictorStream.prototype=Object.create(c.prototype);PredictorStream.prototype.readBlockTiff=function predictorStreamReadBlockTiff(){var e=this.rowBytes,t=this.bufferLength,r=this.ensureBuffer(t+e),a=this.bits,i=this.colors,n=this.str.getBytes(e);this.eof=!n.length;if(!this.eof){var s,o=0,c=0,l=0,h=0,u=t;if(1===a&&1===i)for(s=0;s>1;d^=d>>2;o=(1&(d^=d>>4))<<7;r[u++]=d}else if(8===a){for(s=0;s>8&255;r[u++]=255&g}}else{var m=new Uint8Array(i+1),p=(1<>l-a)&p;l-=a;c=c<=8){r[y++]=c>>h-8&255;h-=8}}h>0&&(r[y++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}};PredictorStream.prototype.readBlockPng=function predictorStreamReadBlockPng(){var e=this.rowBytes,t=this.pixBytes,r=this.str.getByte(),i=this.str.getBytes(e);this.eof=!i.length;if(!this.eof){var n=this.bufferLength,s=this.ensureBuffer(n+e),o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));var c,l,h,u=n;switch(r){case 0:for(c=0;c>1)+i[c];for(;c>1)+i[c]&255;u++}break;case 4:for(c=0;c0;e=(0,this.decrypt)(e,!t);var r,a=this.bufferLength,i=e.length,n=this.ensureBuffer(a+i);for(r=0;r=0;--a){r[i+a]=255&o;o>>=8}}}else this.eof=!0};return Ascii85Stream}();t.Ascii85Stream=f;var g=function AsciiHexStreamClosure(){function AsciiHexStream(e,t){this.str=e;this.dict=e.dict;this.firstDigit=-1;t&&(t*=.5);c.call(this,t)}AsciiHexStream.prototype=Object.create(c.prototype);AsciiHexStream.prototype.readBlock=function AsciiHexStream_readBlock(){var e=this.str.getBytes(8e3);if(e.length){for(var t=e.length+1>>1,r=this.ensureBuffer(this.bufferLength+t),a=this.bufferLength,i=this.firstDigit,n=0,s=e.length;n=48&&c<=57)o=15&c;else{if(!(c>=65&&c<=70||c>=97&&c<=102)){if(62===c){this.eof=!0;break}continue}o=9+(15&c)}if(i<0)i=o;else{r[a++]=i<<4|o;i=-1}}if(i>=0&&this.eof){r[a++]=i<<4;i=-1}this.firstDigit=i;this.bufferLength=a}else this.eof=!0};return AsciiHexStream}();t.AsciiHexStream=g;var m=function RunLengthStreamClosure(){function RunLengthStream(e,t){this.str=e;this.dict=e.dict;c.call(this,t)}RunLengthStream.prototype=Object.create(c.prototype);RunLengthStream.prototype.readBlock=function RunLengthStream_readBlock(){var e=this.str.getBytes(2);if(!e||e.length<2||128===e[0])this.eof=!0;else{var t,r=this.bufferLength,a=e[0];if(a<128){(t=this.ensureBuffer(r+a+1))[r++]=e[1];if(a>0){var i=this.str.getBytes(a);t.set(i,r);r+=a}}else{a=257-a;var n=e[1];t=this.ensureBuffer(r+a+1);for(var s=0;s>>t&(1<0;if(b<256){d[0]=b;f=1}else{if(!(b>=258)){if(256===b){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(b=0;t--){d[t]=o[r];r=l[r]}else d[f++]=d[0]}if(y){l[s]=u;c[s]=c[u]+1;o[s]=d[0];h=++s+n&s+n-1?h:0|Math.min(Math.log(s+n)/.6931471805599453+1,12)}u=b;if(a<(g+=f)){do{a+=512}while(ae.getByte()};this.ccittFaxDecoder=new i.CCITTFaxDecoder(s,{K:r.get("K"),EndOfLine:r.get("EndOfLine"),EncodedByteAlign:r.get("EncodedByteAlign"),Columns:r.get("Columns"),Rows:r.get("Rows"),EndOfBlock:r.get("EndOfBlock"),BlackIs1:r.get("BlackIs1")});n.DecodeStream.call(this,t)}CCITTFaxStream.prototype=Object.create(n.DecodeStream.prototype);CCITTFaxStream.prototype.readBlock=function(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}};return CCITTFaxStream}();t.CCITTFaxStream=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var a=r(2);const i=function CCITTFaxDecoder(){const e=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],t=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],i=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],n=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],s=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];function CCITTFaxDecoder(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let r,a=t.EndOfBlock;null==a&&(a=!0);this.eoblock=a;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(r=this._lookBits(12));)this._eatBits(1);1===r&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}CCITTFaxDecoder.prototype={readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,r=this.columns;let i,n,s,o,c;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let s,c,l;if(this.nextLine2D){for(o=0;t[o]=64);do{c+=l=this._getWhiteCode()}while(l>=64)}else{do{s+=l=this._getWhiteCode()}while(l>=64);do{c+=l=this._getBlackCode()}while(l>=64)}this._addPixels(t[this.codingPos]+s,n);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{s+=l=this._getWhiteCode()}while(l>=64);this._addPixels(t[this.codingPos]+s,n);n^=1}}let h=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){s=this._lookBits(12);if(this.eoline)for(;-1!==s&&1!==s;){this._eatBits(1);s=this._lookBits(12)}else for(;0===s;){this._eatBits(1);s=this._lookBits(12)}if(1===s){this._eatBits(12);h=!0}else-1===s&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&h&&this.byteAlign){s=this._lookBits(12);if(1===s){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(o=0;o<4;++o){s=this._lookBits(12);1!==s&&(0,a.info)("bad rtc code: "+s);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){s=this._lookBits(13);if(-1===s){this.eof=!0;return-1}if(s>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&s)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){c=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]s){c<<=s;1&this.codingPos||(c|=255>>8-s);this.outputBits-=s;s=0}else{c<<=this.outputBits;1&this.codingPos||(c|=255>>8-this.outputBits);s-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){c<<=s;s=0}}}while(s)}this.black&&(c^=255);return c},_addPixels(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}this.codingPos=i},_addPixelsNeg(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}else if(e0&&e=i){const t=r[e-i];if(t[0]===a){this._eatBits(a);return[!0,t[1],!0]}}}return[!1,0,!1]},_getTwoDimCode(){let t,r=0;if(this.eoblock){r=this._lookBits(7);t=e[r];if(t&&t[0]>0){this._eatBits(t[0]);return t[1]}}else{const t=this._findTableCode(1,7,e);if(t[0]&&t[2])return t[1]}(0,a.info)("Bad two dim code");return-1},_getWhiteCode(){let e,i=0;if(this.eoblock){i=this._lookBits(12);if(-1===i)return 1;e=i>>5==0?t[i]:r[i>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,r);if(e[0])return e[1];e=this._findTableCode(11,12,t);if(e[0])return e[1]}(0,a.info)("bad white code");this._eatBits(1);return 1},_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(-1===e)return 1;t=e>>7==0?i[e]:e>>9==0&&e>>7!=0?n[(e>>1)-64]:s[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,s);if(e[0])return e[1];e=this._findTableCode(7,12,n,64);if(e[0])return e[1];e=this._findTableCode(10,13,i);if(e[0])return e[1]}(0,a.info)("bad black code");this._eatBits(1);return 1},_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e},_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}};return CCITTFaxDecoder}();t.CCITTFaxDecoder=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var a=r(5),i=r(12),n=r(16),s=r(2);const o=function Jbig2StreamClosure(){function Jbig2Stream(e,t,r,a){this.stream=e;this.maybeLength=t;this.dict=r;this.params=a;i.DecodeStream.call(this,t)}Jbig2Stream.prototype=Object.create(i.DecodeStream.prototype);Object.defineProperty(Jbig2Stream.prototype,"bytes",{get(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});Jbig2Stream.prototype.ensureBuffer=function(e){};Jbig2Stream.prototype.readBlock=function(){if(this.eof)return;const e=new n.Jbig2Image,t=[];if((0,a.isDict)(this.params)){const e=this.params.get("JBIG2Globals");if((0,a.isStream)(e)){const r=e.getBytes();t.push({data:r,start:0,end:r.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const r=e.parseChunks(t),i=r.length;for(let e=0;e>>0}var n=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===n?s:s>0?-s:null}function decodeIAID(e,t,r){for(var a=e.getContexts("IAID"),i=1,n=0;n=B&&T=O){q=q<<1&y;for(f=0;f=0&&F=0&&(P=N[I][F])&&(q|=P<=e?O<<=1:O=O<<1|C[E][B]}for(d=0;d=k||B<0||B>=w?O<<=1:O=O<<1|i[E][B]}var M=x.readBit(A,O);F[P]=M}}return C}function decodeTextRegion(e,t,r,a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");var v,w,k=[];for(v=0;v1&&(a=e?y.readBits(b):decodeInteger(x,"IAIT",C));var F=s*A+a,P=e?f.symbolIDTable.decode(y):decodeIAID(x,C,c),E=t&&(e?y.readBit():decodeInteger(x,"IARI",C)),B=o[P],O=B[0].length,M=B.length;if(E){var D=decodeInteger(x,"IARDW",C),R=decodeInteger(x,"IARDH",C);B=decodeRefinement(O+=D,M+=R,g,B,(D>>1)+decodeInteger(x,"IARDX",C),(R>>1)+decodeInteger(x,"IARDY",C),!1,m,p)}var N,L,_,U=F-(1&u?0:M-1),q=I-(2&u?O-1:0);if(l){for(N=0;N>5&7,u=[31&c],d=r+6;if(7===c){h=536870911&(0,i.readUint32)(t,d-1);d+=3;var f=h+7>>3;u[0]=t[d++];for(;--f>0;)u.push(t[d++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=u;let g=4;a.number<=256?g=1:a.number<=65536&&(g=2);var m,p,b=[];for(m=0;m>>24&255;w[3]=y.height>>16&255;w[4]=y.height>>8&255;w[5]=255&y.height;for(m=d,p=t.length;m>2&3;d.huffmanDWSelector=f>>4&3;d.bitmapSizeSelector=f>>6&1;d.aggregationInstancesSelector=f>>7&1;d.bitmapCodingContextUsed=!!(256&f);d.bitmapCodingContextRetained=!!(512&f);d.template=f>>10&3;d.refinementTemplate=f>>12&1;h+=2;if(!d.huffman){s=0===d.template?4:1;a=[];for(n=0;n>2&3;g.stripSize=1<>4&3;g.transposed=!!(64&m);g.combinationOperator=m>>7&3;g.defaultPixelValue=m>>9&1;g.dsOffset=m<<17>>27;g.refinementTemplate=m>>15&1;if(g.huffman){var p=(0,i.readUint16)(c,h);h+=2;g.huffmanFS=3&p;g.huffmanDS=p>>2&3;g.huffmanDT=p>>4&3;g.huffmanRefinementDW=p>>6&3;g.huffmanRefinementDH=p>>8&3;g.huffmanRefinementDX=p>>10&3;g.huffmanRefinementDY=p>>12&3;g.huffmanRefinementSizeSelector=!!(16384&p)}if(g.refinement&&!g.refinementTemplate){a=[];for(n=0;n<2;n++){a.push({x:(0,i.readInt8)(c,h),y:(0,i.readInt8)(c,h+1)});h+=2}g.refinementAt=a}g.numberOfSymbolInstances=(0,i.readUint32)(c,h);h+=4;r=[g,o.referredTo,c,h,u];break;case 16:const e={},t=c[h++];e.mmr=!!(1&t);e.template=t>>1&3;e.patternWidth=c[h++];e.patternHeight=c[h++];e.maxPatternIndex=(0,i.readUint32)(c,h);h+=4;r=[e,o.number,c,h,u];break;case 22:case 23:const k={};k.info=readRegionSegmentInformation(c,h);h+=l;const S=c[h++];k.mmr=!!(1&S);k.template=S>>1&3;k.enableSkip=!!(8&S);k.combinationOperator=S>>4&7;k.defaultPixelValue=S>>7&1;k.gridWidth=(0,i.readUint32)(c,h);h+=4;k.gridHeight=(0,i.readUint32)(c,h);h+=4;k.gridOffsetX=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridOffsetY=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridVectorX=(0,i.readUint16)(c,h);h+=2;k.gridVectorY=(0,i.readUint16)(c,h);h+=2;r=[k,o.referredTo,c,h,u];break;case 38:case 39:var b={};b.info=readRegionSegmentInformation(c,h);h+=l;var y=c[h++];b.mmr=!!(1&y);b.template=y>>1&3;b.prediction=!!(8&y);if(!b.mmr){s=0===b.template?4:1;a=[];for(n=0;n>2&1;v.combinationOperator=w>>3&3;v.requiresBuffer=!!(32&w);v.combinationOperatorOverride=!!(64&w);r=[v];break;case 49:case 50:case 51:break;case 53:r=[o.number,c,h,u];break;case 62:break;default:throw new Jbig2Error(`segment type ${o.typeName}(${o.type}) is not implemented`)}var k="on"+o.typeName;k in t&&t[k].apply(t,r)}function processSegments(e,t){for(var r=0,a=e.length;r>3,r=new Uint8ClampedArray(t*e.height);if(e.defaultPixelValue)for(var a=0,i=r.length;a>3,h=s.combinationOperatorOverride?e.combinationOperator:s.combinationOperator,u=this.buffer,d=128>>(7&e.x),f=e.y*l+(e.x>>3);switch(h){case 0:for(r=0;r>=1)){i=128;n++}}f+=l}break;case 2:for(r=0;r>=1)){i=128;n++}}f+=l}break;default:throw new Jbig2Error(`operator ${h} is not supported`)}},onImmediateGenericRegion:function SimpleSegmentVisitor_onImmediateGenericRegion(e,t,r,a){var i=e.info,n=new DecodingContext(t,r,a),s=decodeBitmap(e.mmr,i.width,i.height,e.template,e.prediction,null,e.at,n);this.drawBitmap(i,s)},onImmediateLosslessGenericRegion:function SimpleSegmentVisitor_onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function SimpleSegmentVisitor_onSymbolDictionary(e,t,r,a,n,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,r){let a,i,n,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:a=getStandardTable(e.huffmanDHSelector+4);break;case 3:a=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:i=getStandardTable(e.huffmanDWSelector+2);break;case 3:i=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){n=getCustomHuffmanTable(o,t,r);o++}else n=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,r):getStandardTable(1);return{tableDeltaHeight:a,tableDeltaWidth:i,tableBitmapSize:n,tableAggregateInstances:s}}(e,r,this.customTables);c=new Reader(a,n,s)}var l=this.symbols;l||(this.symbols=l={});for(var h=[],u=0,d=r.length;u1)w=decodeTextRegion(e,t,a,g,0,S,1,r.concat(f),m,0,0,1,0,s,l,h,u,0,d);else{var C=decodeIAID(b,p,m),x=decodeInteger(b,"IARDX",p),A=decodeInteger(b,"IARDY",p);w=decodeRefinement(a,g,l,C=32){let r,a,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");a=i.readBits(2)+3;r=n[e-1].prefixLength;break;case 33:a=i.readBits(3)+3;r=0;break;case 34:a=i.readBits(7)+11;r=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){F=e?decodeMMRBitmap(I,l,h,!0):decodeBitmap(!1,l,h,r,!1,null,A,m);T[b]=F}for(P=0;P=0;y--){B=T[y][P][E]^B;O|=B<>8;R=d+P*f-E*g>>8;if(D>=0&&D+S<=a&&R>=0&&R+C<=n)for(b=0;b=n)){L=p[t];N=M[b];for(y=0;y=0&&e>1&7),l=1+(a>>4&7),h=[];let u,d,f=n;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[r]=new HuffmanTreeNode(e);else{let a=this.children[r];a||(this.children[r]=a=new HuffmanTreeNode(null));a.buildTree(e,t-1)}},decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}};function HuffmanTable(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,r=e.length;t0&&this.rootNode.buildTree(r,r.prefixLength-1)}}HuffmanTable.prototype={decode(e){return this.rootNode.decodeNode(e)},assignPrefixCodes(e){const t=e.length;let r=0;for(let a=0;a=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e},readBits(e){let t,r=0;for(t=e-1;t>=0;t--)r|=this.readBit()<=this.end?-1:this.data[this.position++]}};function getCustomHuffmanTable(e,t,r){let a=0;for(let i=0,n=t.length;i>r&1;r--}}if(a&&!l){const e=5;for(let t=0;tfunction parseJbig2Chunks(e){for(var t=new SimpleSegmentVisitor,r=0,a=e.length;r>=1}}return{imgData:u,width:c,height:l}}(e);this.width=r;this.height=a;return t}};return Jbig2Image}();t.Jbig2Image=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,r){this.data=e;this.bp=t;this.dataEnd=r;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,i=1&e[t];const n=a[r],s=n.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|i;return o}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var a=r(12),i=r(5),n=r(19),s=r(2);const o=function JpegStreamClosure(){function JpegStream(e,t,r,i){let n;for(;-1!==(n=e.getByte());)if(255===n){e.skip(-1);break}this.stream=e;this.maybeLength=t;this.dict=r;this.params=i;a.DecodeStream.call(this,t)}JpegStream.prototype=Object.create(a.DecodeStream.prototype);Object.defineProperty(JpegStream.prototype,"bytes",{get:function JpegStream_bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});JpegStream.prototype.ensureBuffer=function(e){};JpegStream.prototype.readBlock=function(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("Decode","D");if(this.forceRGB&&Array.isArray(t)){const r=this.dict.get("BitsPerComponent")||8,a=t.length,i=new Int32Array(a);let n=!1;const s=(1<0&&!e[s-1];)s--;n.push({children:[],index:0});var o,c=n[0];for(r=0;r0;)c=n.pop();c.index++;n.push(c);for(;n.length<=r;){n.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}i++}if(r+10){b--;return p>>b&1}p=t[r++];if(255===p){var e=t[r++];if(e){if(220===e&&d){r+=2;const e=(0,i.readUint16)(t,r);r+=2;if(e>0&&e!==n.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",e)}else if(217===e){if(d){const e=k*(8===n.precision?8:0);if(e>0&&Math.round(n.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError("unexpected marker "+(p<<8|e).toString(16))}}b=7;return p>>>7}function decodeHuffman(e){for(var t=e;;){switch(typeof(t=t[readBit()])){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){for(var t=0;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;var t=receive(e);return t>=1<0)y--;else for(var a=c,i=l;a<=i;){var n=decodeHuffman(t.huffmanTableAC),s=15&n,o=n>>4;if(0!==s){var h=e[a+=o];t.blockData[r+h]=receiveAndExtend(s)*(1<>4;if(0===(a=15&i))if(o<15){y=receive(o)+(1<>4;if(0!==o){var l=e[n+=c];t.blockData[r+l]=receiveAndExtend(o);n++}else{if(c<15)break;n+=16}}};var P,E,B,O,M=0;E=1===F?s[0].blocksPerLine*s[0].blocksPerColumn:f*n.mcusPerColumn;for(;M<=E;){var D=o?Math.min(E-M,o):E;if(D>0){for(C=0;C0?"unexpected":"excessive";(0,a.warn)(`decodeScan - ${e} MCU data, current marker is: ${P.invalid}`);r=P.offset}if(!(P.marker>=65488&&P.marker<=65495))break;r+=2}return r-m}function quantizeAndInverse(e,t,r){var a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y,v,w=e.quantizationTable,k=e.blockData;if(!w)throw new JpegError("missing required Quantization Table.");for(var S=0;S<64;S+=8){u=k[t+S];d=k[t+S+1];f=k[t+S+2];g=k[t+S+3];m=k[t+S+4];p=k[t+S+5];b=k[t+S+6];y=k[t+S+7];u*=w[S];if(0!=(d|f|g|m|p|b|y)){d*=w[S+1];f*=w[S+2];g*=w[S+3];m*=w[S+4];p*=w[S+5];i=(a=(a=5793*u+128>>8)+(i=5793*m+128>>8)+1>>1)-i;v=3784*(n=f)+1567*(s=b*=w[S+6])+128>>8;n=1567*n-3784*s+128>>8;l=(o=(o=2896*(d-(y*=w[S+7]))+128>>8)+(l=p<<4)+1>>1)-l;c=(h=(h=2896*(d+y)+128>>8)+(c=g<<4)+1>>1)-c;s=(a=a+(s=v)+1>>1)-s;n=(i=i+n+1>>1)-n;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;l=v;r[S]=a+h;r[S+7]=a-h;r[S+1]=i+l;r[S+6]=i-l;r[S+2]=n+c;r[S+5]=n-c;r[S+3]=s+o;r[S+4]=s-o}else{v=5793*u+512>>10;r[S]=v;r[S+1]=v;r[S+2]=v;r[S+3]=v;r[S+4]=v;r[S+5]=v;r[S+6]=v;r[S+7]=v}}for(var C=0;C<8;++C){u=r[C];if(0!=((d=r[C+8])|(f=r[C+16])|(g=r[C+24])|(m=r[C+32])|(p=r[C+40])|(b=r[C+48])|(y=r[C+56]))){i=(a=4112+((a=5793*u+2048>>12)+(i=5793*m+2048>>12)+1>>1))-i;v=3784*(n=f)+1567*(s=b)+2048>>12;n=1567*n-3784*s+2048>>12;s=v;l=(o=(o=2896*(d-y)+2048>>12)+(l=p)+1>>1)-l;c=(h=(h=2896*(d+y)+2048>>12)+(c=g)+1>>1)-c;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;(u=(a=a+s+1>>1)+h)<16?u=0:u>=4080?u=255:u>>=4;(d=(i=i+n+1>>1)+(l=v))<16?d=0:d>=4080?d=255:d>>=4;(f=(n=i-n)+c)<16?f=0:f>=4080?f=255:f>>=4;(g=(s=a-s)+o)<16?g=0:g>=4080?g=255:g>>=4;(m=s-o)<16?m=0:m>=4080?m=255:m>>=4;(p=n-c)<16?p=0:p>=4080?p=255:p>>=4;(b=i-l)<16?b=0:b>=4080?b=255:b>>=4;(y=a-h)<16?y=0:y>=4080?y=255:y>>=4;k[t+C]=u;k[t+C+8]=d;k[t+C+16]=f;k[t+C+24]=g;k[t+C+32]=m;k[t+C+40]=p;k[t+C+48]=b;k[t+C+56]=y}else{v=(v=5793*u+8192>>14)<-2040?0:v>=2024?255:v+2056>>4;k[t+C]=v;k[t+C+8]=v;k[t+C+16]=v;k[t+C+24]=v;k[t+C+32]=v;k[t+C+40]=v;k[t+C+48]=v;k[t+C+56]=v}}}function buildComponentData(e,t){for(var r=t.blocksPerLine,a=t.blocksPerColumn,i=new Int16Array(64),n=0;n=a)return null;var s=(0,i.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};for(var o=(0,i.readUint16)(e,n);!(o>=65472&&o<=65534);){if(++n>=a)return null;o=(0,i.readUint16)(e,n)}return{invalid:s.toString(16),marker:o,offset:n}}JpegImage.prototype={parse(t,{dnlScanLines:r=null}={}){function readDataBlock(){const e=(0,i.readUint16)(t,o);let r=(o+=2)+e-2;var n=findNextFileMarker(t,r,o);if(n&&n.invalid){(0,a.warn)("readDataBlock - incorrect length, current marker is: "+n.invalid);r=n.offset}var s=t.subarray(o,r);o+=s.length;return s}function prepareComponents(e){for(var t=Math.ceil(e.samplesPerLine/8/e.maxH),r=Math.ceil(e.scanLines/8/e.maxV),a=0;a>4==0)for(p=0;p<64;p++)k[e[p]]=t[o++];else{if(w>>4!=1)throw new JpegError("DQT - invalid table spec");for(p=0;p<64;p++){k[e[p]]=(0,i.readUint16)(t,o);o+=2}}u[15&w]=k}break;case 65472:case 65473:case 65474:if(n)throw new JpegError("Only single frame JPEGs supported");o+=2;(n={}).extended=65473===g;n.progressive=65474===g;n.precision=t[o++];const H=(0,i.readUint16)(t,o);o+=2;n.scanLines=r||H;n.samplesPerLine=(0,i.readUint16)(t,o);o+=2;n.components=[];n.componentIds={};var S,C=t[o++],x=0,A=0;for(m=0;m>4,I=15&t[o+1];x>4==0?f:d)[15&P]=buildHuffmanTable(E,O)}break;case 65501:o+=2;s=(0,i.readUint16)(t,o);o+=2;break;case 65498:const G=1==++h&&!r;o+=2;var M,D=t[o++],R=[];for(m=0;m>4];M.huffmanTableAC=d[15&L];R.push(M)}var _=t[o++],U=t[o++],q=t[o++];try{var j=decodeScan(t,o,n,R,s,_,U,q>>4,15&q,G);o+=j}catch(e){if(e instanceof DNLMarkerError){(0,a.warn)(e.message+" -- attempting to re-parse the JPEG image.");return this.parse(t,{dnlScanLines:e.scanLines})}if(e instanceof EOIMarkerError){(0,a.warn)(e.message+" -- ignoring the rest of the image data.");break e}throw e}break;case 65500:o+=4;break;case 65535:255!==t[o]&&o--;break;default:const W=findNextFileMarker(t,o-2,o-3);if(W&&W.invalid){(0,a.warn)("JpegImage.parse - unexpected data, current marker is: "+W.invalid);o=W.offset;break}if(o>=t.length-1){(0,a.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,i.readUint16)(t,o);o+=2}this.width=n.samplesPerLine;this.height=n.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(m=0;m>8)+S[u+1];return v},get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform},_convertYccToRgb:function convertYccToRgb(e){for(var t,r,a,i=0,n=e.length;i4)throw new JpegError("Unsupported color mode");var i=this._getLinearizedBlockData(e,t,a);if(1===this.numComponents&&r){for(var n=i.length,s=new Uint8ClampedArray(3*n),o=0,c=0;c>24&255,o>>16&255,o>>8&255,255&o);(0,a.warn)("Unsupported header type "+o+" ("+d+")")}l&&(t+=c)}else this.parseCodestream(e,0,e.length)},parseImageProperties:function JpxImage_parseImageProperties(e){for(var t=e.getByte();t>=0;){if(65361===(t<<8|(t=e.getByte()))){e.skip(4);var r=e.getInt32()>>>0,a=e.getInt32()>>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);var s=e.getUint16();this.width=r-i;this.height=a-n;this.componentsCount=s;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")},parseCodestream:function JpxImage_parseCodestream(e,t,r){var n={},s=!1;try{for(var o=t;o+1>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}k.SPqcds=u;if(n.mainHeader)n.QCD=k;else{n.currentTile.QCD=k;n.currentTile.QCC=[]}break;case 65373:m=(0,i.readUint16)(e,o);var C,x={};l=o+2;if(n.SIZ.Csiz<257)C=e[l++];else{C=(0,i.readUint16)(e,l);l+=2}switch(31&(h=e[l++])){case 0:d=8;f=!0;break;case 1:d=16;f=!1;break;case 2:d=16;f=!0;break;default:throw new Error("Invalid SQcd value "+h)}x.noQuantization=8===d;x.scalarExpounded=f;x.guardBits=h>>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}x.SPqcds=u;n.mainHeader?n.QCC[C]=x:n.currentTile.QCC[C]=x;break;case 65362:m=(0,i.readUint16)(e,o);var A={};l=o+2;var T=e[l++];A.entropyCoderWithCustomPrecincts=!!(1&T);A.sopMarkerUsed=!!(2&T);A.ephMarkerUsed=!!(4&T);A.progressionOrder=e[l++];A.layersCount=(0,i.readUint16)(e,l);l+=2;A.multipleComponentTransform=e[l++];A.decompositionLevelsCount=e[l++];A.xcb=2+(15&e[l++]);A.ycb=2+(15&e[l++]);var I=e[l++];A.selectiveArithmeticCodingBypass=!!(1&I);A.resetContextProbabilities=!!(2&I);A.terminationOnEachCodingPass=!!(4&I);A.verticallyStripe=!!(8&I);A.predictableTermination=!!(16&I);A.segmentationSymbolUsed=!!(32&I);A.reversibleTransformation=e[l++];if(A.entropyCoderWithCustomPrecincts){for(var F=[];l>4})}A.precinctsSizes=F}var E=[];A.selectiveArithmeticCodingBypass&&E.push("selectiveArithmeticCodingBypass");A.resetContextProbabilities&&E.push("resetContextProbabilities");A.terminationOnEachCodingPass&&E.push("terminationOnEachCodingPass");A.verticallyStripe&&E.push("verticallyStripe");A.predictableTermination&&E.push("predictableTermination");if(E.length>0){s=!0;throw new Error("Unsupported COD options ("+E.join(", ")+")")}if(n.mainHeader)n.COD=A;else{n.currentTile.COD=A;n.currentTile.COC=[]}break;case 65424:m=(0,i.readUint16)(e,o);(g={}).index=(0,i.readUint16)(e,o+2);g.length=(0,i.readUint32)(e,o+4);g.dataEnd=g.length+o-2;g.partIndex=e[o+8];g.partsCount=e[o+9];n.mainHeader=!1;if(0===g.partIndex){g.COD=n.COD;g.COC=n.COC.slice(0);g.QCD=n.QCD;g.QCC=n.QCC.slice(0)}n.currentTile=g;break;case 65427:if(0===(g=n.currentTile).partIndex){initializeTile(n,g.index);buildPackets(n)}parseTilePackets(n,e,o,m=g.dataEnd-o);break;case 65365:case 65367:case 65368:case 65380:m=(0,i.readUint16)(e,o);break;case 65363:throw new Error("Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("Unknown codestream code: "+c.toString(16))}o+=m}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,a.warn)("JPX: Trying to recover from: "+e.message)}this.tiles=function transformComponents(e){for(var t=e.SIZ,r=e.components,a=t.Csiz,i=[],n=0,s=e.tiles.length;n>2);y[w++]=e+p>>h;y[w++]=e>>h;y[w++]=e+m>>h}else for(d=0;d>h;y[w++]=g-.34413*m-.71414*p>>h;y[w++]=g+1.772*m>>h}if(k)for(d=0,w=3;d>h}else for(o=0;o>h;w+=a}}i.push(v)}return i}(n);this.width=n.SIZ.Xsiz-n.SIZ.XOsiz;this.height=n.SIZ.Ysiz-n.SIZ.YOsiz;this.componentsCount=n.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){for(var r,a=e.SIZ,i=[],n=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz),o=0;o0?Math.min(a.xcb,i.PPx-1):Math.min(a.xcb,i.PPx);i.ycb_=r>0?Math.min(a.ycb,i.PPy-1):Math.min(a.ycb,i.PPy);return i}function buildPrecincts(e,t,r){var a=1<t.trx0?Math.ceil(t.trx1/a)-Math.floor(t.trx0/a):0,l=t.try1>t.try0?Math.ceil(t.try1/i)-Math.floor(t.try0/i):0,h=c*l;t.precinctParameters={precinctWidth:a,precinctHeight:i,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,r){var a,i,n,s,o=r.xcb_,c=r.ycb_,l=1<>o,d=t.tby0>>c,f=t.tbx1+l-1>>o,g=t.tby1+h-1>>c,m=t.resolution.precinctParameters,p=[],b=[];for(i=d;iy.cbxMax&&(y.cbxMax=a);iy.cbyMax&&(y.cbyMax=i)}else b[s]=y={cbxMin:a,cbyMin:i,cbxMax:a,cbyMax:i};n.precinct=y}}t.codeblockParameters={codeblockWidth:o,codeblockHeight:c,numcodeblockwide:f-u+1,numcodeblockhigh:g-d+1};t.codeblocks=p;t.precincts=b}function createPacket(e,t,r){for(var a=[],i=e.subbands,n=0,s=i.length;ne.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[l],r=t.precinctParameters.numprecincts;ue.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[c],r=t.precinctParameters.numprecincts;ul.codingStyleParameters.decompositionLevelsCount)){var e=l.resolutions[r],n=e.precinctParameters.numprecincts;if(!(i>=n)){for(;t=0;--p){var b=c.resolutions[p],y=m*b.precinctParameters.precinctWidth,v=m*b.precinctParameters.precinctHeight;u=Math.min(u,y);d=Math.min(d,v);f=Math.max(f,b.precinctParameters.numprecinctswide);g=Math.max(g,b.precinctParameters.numprecinctshigh);h[p]={width:y,height:v};m<<=1}r=Math.min(r,u);a=Math.min(a,d);i=Math.max(i,f);n=Math.max(n,g);s[o]={resolutions:h,minWidth:u,minHeight:d,maxNumWide:f,maxNumHigh:g}}return{components:s,minWidth:r,minHeight:a,maxNumWide:i,maxNumHigh:n}}function buildPackets(e){for(var t=e.SIZ,r=e.currentTile.index,a=e.tiles[r],i=t.Csiz,n=0;n>>(l-=e)&(1<0;){var D=v.shift();void 0===(b=D.codeblock).data&&(b.data=[]);b.data.push({data:a,start:n+c,end:n+c+D.dataLength,codingpasses:D.codingpasses});c+=D.dataLength}}}return c}function copyCoefficients(e,t,r,a,i,o,c,l){for(var h=a.tbx0,u=a.tby0,d=a.tbx1-a.tbx0,f=a.codeblocks,g="H"===a.type.charAt(0)?1:0,m="H"===a.type.charAt(1)?t:0,p=0,b=f.length;p=o?D:D*(1<0?1-v:0)}var F=w.subbands[x],P=e[F.type];copyCoefficients(C,k,0,F,m?1:2**(g+P-I)*(1+T/2048),d+I-1,m,f)}b.push({width:k,height:S,items:C})}var E=p.calculate(b,i.tcx0,i.tcy0);return{left:i.tcx0,top:i.tcy0,width:E.width,height:E.height,items:E.items}}function initializeTile(e,t){for(var r=e.SIZ.Csiz,a=e.tiles[t],i=0;i>=1;t>>=1;a++}a--;(r=this.levels[a]).items[r.index]=i;this.currentLevel=a;delete this.value},incrementValue:function TagTree_incrementValue(){var e=this.levels[this.currentLevel];e.items[e.index]++},nextLevel:function TagTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];if(--e<0){this.value=r;return!1}this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return TagTree}(),r=function InclusionTreeClosure(){function InclusionTree(e,t,r){var a=(0,i.log2)(Math.max(e,t))+1;this.levels=[];for(var n=0;nr){this.currentLevel=a;this.propagateValues();return!1}e>>=1;t>>=1;a++}this.currentLevel=a-1;return!0},incrementValue:function InclusionTree_incrementValue(e){var t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()},propagateValues:function InclusionTree_propagateValues(){for(var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];--e>=0;)(t=this.levels[e]).items[t.index]=r},nextLevel:function InclusionTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];t.items[t.index]=255;if(--e<0)return!1;this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return InclusionTree}(),s=function BitModelClosure(){var e=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),t=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(a,i,n,s,o){this.width=a;this.height=i;let c;c="HH"===n?r:"HL"===n?t:e;this.contextLabelTable=c;var l=a*i;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);var u=new Uint8Array(l);if(0!==s)for(var d=0;d0,c=t+10){a=r-n;o&&(i[a-1]+=16);c&&(i[a+1]+=16);i[a]+=4}if(e+1=r)break;s[d]&=-2;if(!a[d]&&n[d]){var m=c[n[d]];if(e.readBit(o,m)){var p=this.decodeSignBit(g,u,d);i[d]=p;a[d]=1;this.setNeighborsSignificance(g,u,d);s[d]|=2}l[d]++;s[d]|=1}}},decodeSignBit:function BitModel_decodeSignBit(e,t,r){var a,i,n,s,o,c,l=this.width,h=this.height,u=this.coefficentsMagnitude,d=this.coefficentsSign;s=t>0&&0!==u[r-1];if(t+10&&0!==u[r-l];if(e+1=0){o=9+a;c=this.decoder.readBit(this.contexts,o)}else{o=9-a;c=1^this.decoder.readBit(this.contexts,o)}return c},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){for(var e,t=this.decoder,r=this.width,a=this.height,i=this.coefficentsMagnitude,n=this.neighborsSignificance,s=this.contexts,o=this.bitsDecoded,c=this.processingFlags,l=r*a,h=4*r,u=0;u>1,c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;a=(t|=0)-3;for(i=o+4;i--;a+=2)e[a]*=.8128930661159609;n=u*e[(a=t-2)-1];for(i=o+3;i--;a+=2){s=u*e[a+1];e[a]=d*e[a]-n-s;if(!i--)break;n=u*e[(a+=2)+1];e[a]=d*e[a]-n-s}n=h*e[(a=t-1)-1];for(i=o+2;i--;a+=2){s=h*e[a+1];e[a]-=n+s;if(!i--)break;n=h*e[(a+=2)+1];e[a]-=n+s}n=l*e[(a=t)-1];for(i=o+1;i--;a+=2){s=l*e[a+1];e[a]-=n+s;if(!i--)break;n=l*e[(a+=2)+1];e[a]-=n+s}if(0!==o){n=c*e[(a=t+1)-1];for(i=o;i--;a+=2){s=c*e[a+1];e[a]-=n+s;if(!i--)break;n=c*e[(a+=2)+1];e[a]-=n+s}}};return IrreversibleTransform}(),l=function ReversibleTransformClosure(){function ReversibleTransform(){o.call(this)}ReversibleTransform.prototype=Object.create(o.prototype);ReversibleTransform.prototype.filter=function reversibleTransformFilter(e,t,r){var a,i,n=r>>1;for(a=t|=0,i=n+1;i--;a+=2)e[a]-=e[a-1]+e[a+1]+2>>2;for(a=t+1,i=n;i--;a+=2)e[a]+=e[a-1]+e[a+1]>>1};return ReversibleTransform}();return JpxImage}();t.JpxImage=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA512=t.calculateSHA384=t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;var a=r(2),i=r(5),n=r(12),s=function ARCFourCipherClosure(){function ARCFourCipher(e){this.a=0;this.b=0;var t,r,a=new Uint8Array(256),i=0,n=e.length;for(t=0;t<256;++t)a[t]=t;for(t=0;t<256;++t){i=i+(r=a[t])+e[t%n]&255;a[t]=a[i];a[i]=r}this.s=a}ARCFourCipher.prototype={encryptBlock:function ARCFourCipher_encryptBlock(e){var t,r,a,i=e.length,n=this.a,s=this.b,o=this.s,c=new Uint8Array(i);for(t=0;t>5&255;f[n++]=i>>13&255;f[n++]=i>>21&255;f[n++]=i>>>29&255;f[n++]=0;f[n++]=0;f[n++]=0;var g=new Int32Array(16);for(n=0;n>>32-C)|0;b=k}c=c+b|0;l=l+y|0;h=h+v|0;u=u+w|0}return new Uint8Array([255&c,c>>8&255,c>>16&255,c>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255,255&h,h>>8&255,h>>16&255,h>>>24&255,255&u,u>>8&255,u>>16&255,u>>>24&255])}}();t.calculateMD5=o;var c=function Word64Closure(){function Word64(e,t){this.high=0|e;this.low=0|t}Word64.prototype={and:function Word64_and(e){this.high&=e.high;this.low&=e.low},xor:function Word64_xor(e){this.high^=e.high;this.low^=e.low},or:function Word64_or(e){this.high|=e.high;this.low|=e.low},shiftRight:function Word64_shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}},shiftLeft:function Word64_shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low=this.low<>>e|r<<32-e;this.high=r>>>e|t<<32-e},not:function Word64_not(){this.high=~this.high;this.low=~this.low},add:function Word64_add(e){var t=(this.low>>>0)+(e.low>>>0),r=(this.high>>>0)+(e.high>>>0);t>4294967295&&(r+=1);this.low=0|t;this.high=0|r},copyTo:function Word64_copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low},assign:function Word64_assign(e){this.high=e.high;this.low=e.low}};return Word64}(),l=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,r){return e&t^~e&r}function maj(e,t,r){return e&t^e&r^t&r}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}var e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,r,a){var i,n,s,o=1779033703,c=3144134277,l=1013904242,h=2773480762,u=1359893119,d=2600822924,f=528734635,g=1541459225,m=64*Math.ceil((a+9)/64),p=new Uint8Array(m);for(i=0;i>>29&255;p[i++]=a>>21&255;p[i++]=a>>13&255;p[i++]=a>>5&255;p[i++]=a<<3&255;var b,y=new Uint32Array(64);for(i=0;i>>10)+y[n-7]+littleSigma(y[n-15])+y[n-16]|0;var v,w,k=o,S=c,C=l,x=h,A=u,T=d,I=f,F=g;for(n=0;n<64;++n){v=F+sigmaPrime(A)+ch(A,T,I)+e[n]+y[n];w=sigma(k)+maj(k,S,C);F=I;I=T;T=A;A=x+v|0;x=C;C=S;S=k;k=v+w|0}o=o+k|0;c=c+S|0;l=l+C|0;h=h+x|0;u=u+A|0;d=d+T|0;f=f+I|0;g=g+F|0}return new Uint8Array([o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u,d>>24&255,d>>16&255,d>>8&255,255&d,f>>24&255,f>>16&255,f>>8&255,255&f,g>>24&255,g>>16&255,g>>8&255,255&g])}}();t.calculateSHA256=l;var h=function calculateSHA512Closure(){function ch(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.not();i.and(a);e.xor(i)}function maj(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.and(a);e.xor(i);i.assign(r);i.and(a);e.xor(i)}function sigma(e,t,r){e.assign(t);e.rotateRight(28);r.assign(t);r.rotateRight(34);e.xor(r);r.assign(t);r.rotateRight(39);e.xor(r)}function sigmaPrime(e,t,r){e.assign(t);e.rotateRight(14);r.assign(t);r.rotateRight(18);e.xor(r);r.assign(t);r.rotateRight(41);e.xor(r)}function littleSigma(e,t,r){e.assign(t);e.rotateRight(1);r.assign(t);r.rotateRight(8);e.xor(r);r.assign(t);r.shiftRight(7);e.xor(r)}function littleSigmaPrime(e,t,r){e.assign(t);e.rotateRight(19);r.assign(t);r.rotateRight(61);e.xor(r);r.assign(t);r.shiftRight(6);e.xor(r)}var e=[new c(1116352408,3609767458),new c(1899447441,602891725),new c(3049323471,3964484399),new c(3921009573,2173295548),new c(961987163,4081628472),new c(1508970993,3053834265),new c(2453635748,2937671579),new c(2870763221,3664609560),new c(3624381080,2734883394),new c(310598401,1164996542),new c(607225278,1323610764),new c(1426881987,3590304994),new c(1925078388,4068182383),new c(2162078206,991336113),new c(2614888103,633803317),new c(3248222580,3479774868),new c(3835390401,2666613458),new c(4022224774,944711139),new c(264347078,2341262773),new c(604807628,2007800933),new c(770255983,1495990901),new c(1249150122,1856431235),new c(1555081692,3175218132),new c(1996064986,2198950837),new c(2554220882,3999719339),new c(2821834349,766784016),new c(2952996808,2566594879),new c(3210313671,3203337956),new c(3336571891,1034457026),new c(3584528711,2466948901),new c(113926993,3758326383),new c(338241895,168717936),new c(666307205,1188179964),new c(773529912,1546045734),new c(1294757372,1522805485),new c(1396182291,2643833823),new c(1695183700,2343527390),new c(1986661051,1014477480),new c(2177026350,1206759142),new c(2456956037,344077627),new c(2730485921,1290863460),new c(2820302411,3158454273),new c(3259730800,3505952657),new c(3345764771,106217008),new c(3516065817,3606008344),new c(3600352804,1432725776),new c(4094571909,1467031594),new c(275423344,851169720),new c(430227734,3100823752),new c(506948616,1363258195),new c(659060556,3750685593),new c(883997877,3785050280),new c(958139571,3318307427),new c(1322822218,3812723403),new c(1537002063,2003034995),new c(1747873779,3602036899),new c(1955562222,1575990012),new c(2024104815,1125592928),new c(2227730452,2716904306),new c(2361852424,442776044),new c(2428436474,593698344),new c(2756734187,3733110249),new c(3204031479,2999351573),new c(3329325298,3815920427),new c(3391569614,3928383900),new c(3515267271,566280711),new c(3940187606,3454069534),new c(4118630271,4000239992),new c(116418474,1914138554),new c(174292421,2731055270),new c(289380356,3203993006),new c(460393269,320620315),new c(685471733,587496836),new c(852142971,1086792851),new c(1017036298,365543100),new c(1126000580,2618297676),new c(1288033470,3409855158),new c(1501505948,4234509866),new c(1607167915,987167468),new c(1816402316,1246189591)];return function hash(t,r,a,i){var n,s,o,l,h,u,d,f;if(i=!!i){n=new c(3418070365,3238371032);s=new c(1654270250,914150663);o=new c(2438529370,812702999);l=new c(355462360,4144912697);h=new c(1731405415,4290775857);u=new c(2394180231,1750603025);d=new c(3675008525,1694076839);f=new c(1203062813,3204075428)}else{n=new c(1779033703,4089235720);s=new c(3144134277,2227873595);o=new c(1013904242,4271175723);l=new c(2773480762,1595750129);h=new c(1359893119,2917565137);u=new c(2600822924,725511199);d=new c(528734635,4215389547);f=new c(1541459225,327033209)}var g,m,p,b=128*Math.ceil((a+17)/128),y=new Uint8Array(b);for(g=0;g>>29&255;y[g++]=a>>21&255;y[g++]=a>>13&255;y[g++]=a>>5&255;y[g++]=a<<3&255;var v=new Array(80);for(g=0;g<80;g++)v[g]=new c(0,0);var w,k,S=new c(0,0),C=new c(0,0),x=new c(0,0),A=new c(0,0),T=new c(0,0),I=new c(0,0),F=new c(0,0),P=new c(0,0),E=new c(0,0),B=new c(0,0),O=new c(0,0),M=new c(0,0);for(g=0;g=1;--e){r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e)n[e]=this._inv_s[n[e]];for(let r=0,a=16*e;r<16;++r,++a)n[r]^=t[a];for(let e=0;e<16;e+=4){const t=this._mix[n[e]],a=this._mix[n[e+1]],i=this._mix[n[e+2]],s=this._mix[n[e+3]];r=t^a>>>8^a<<24^i>>>16^i<<16^s>>>24^s<<8;n[e]=r>>>24&255;n[e+1]=r>>16&255;n[e+2]=r>>8&255;n[e+3]=255&r}}r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e){n[e]=this._inv_s[n[e]];n[e]^=t[e]}return n}_encrypt(e,t){const r=this._s;let a,i,n;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=a;--r)if(e[r]!==t){t=0;break}o-=t;n[n.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,r=n.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){r[e]=a^=r[e-32];e++;r[e]=i^=r[e-32];e++;r[e]=n^=r[e-32];e++;r[e]=s^=r[e-32];e++}}return r}}t.AES256Cipher=AES256Cipher;var f=function PDF17Closure(){function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;rn-32;){var s=e.length+a.length+r.length,o=new Uint8Array(64*s),c=concatArrays(e,a);c=concatArrays(c,r);for(var d=0,f=0;d<64;d++,f+=s)o.set(c,f);i=new AES128Cipher(a.subarray(0,16)).encrypt(o,a.subarray(16,32));for(var g=0,m=0;m<16;m++){g*=1;g%=3;g+=(i[m]>>>0)%3;g%=3}0===g?a=l(i,0,i.length):1===g?a=u(i,0,i.length):2===g&&(a=h(i,0,i.length));n++}return a.subarray(0,32)}function PDF20(){}function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;r>8&255;g[m++]=n>>16&255;g[m++]=n>>>24&255;for(u=0,d=t.length;u=4&&!h){g[m++]=255;g[m++]=255;g[m++]=255;g[m++]=255}var p=o(g,0,m),b=l>>3;if(c>=3)for(u=0;u<50;++u)p=o(p,0,b);var y,v=p.subarray(0,b);if(c>=3){for(m=0;m<32;++m)g[m]=e[m];for(u=0,d=t.length;u>3;if(a>=3)for(n=0;n<50;++n)d=o(d,0,d.length);if(a>=3){u=r;var g,m=new Uint8Array(f);for(n=19;n>=0;n--){for(g=0;g=4){var O=r.get("CF");(0,i.isDict)(O)&&(O.suppressEncryption=!0);this.cf=O;this.stmf=r.get("StmF")||t;this.strf=r.get("StrF")||t;this.eff=r.get("EFF")||this.stmf}}function buildObjectKey(e,t,r,a){var i,n,s=new Uint8Array(r.length+9);for(i=0,n=r.length;i>8&255;s[i++]=e>>16&255;s[i++]=255&t;s[i++]=t>>8&255;if(a){s[i++]=115;s[i++]=65;s[i++]=108;s[i++]=84}return o(s,0,i).subarray(0,Math.min(r.length+5,16))}function buildCipherConstructor(e,t,r,n,o){if(!(0,i.isName)(t))throw new a.FormatError("Invalid crypt filter name.");var c,l=e.get(t.name);null!=l&&(c=l.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new d};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new s(buildObjectKey(r,n,o,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(r,n,o,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(o)};throw new a.FormatError("Unknown crypto method")}CipherTransformFactory.prototype={createCipherTransform:function CipherTransformFactory_createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new m(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));var r=buildObjectKey(e,t,this.encryptionKey,!1),a=function buildCipherCipherConstructor(){return new s(r)};return new m(a,a)}};return CipherTransformFactory}();t.CipherTransformFactory=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var a=r(2),i=r(5),n=r(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,a.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const r=new Uint8ClampedArray(3);this.getRgbItem(e,t,r,0);return r}getRgbItem(e,t,r,i){(0,a.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,r,i,n,s,o){(0,a.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,a.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,r,a,i,n,s,o,c){const l=t*r;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,r){return Math.max(e,Math.min(t,r))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:e*((24/116)**3/8)}function convertToRgb(a,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),m=adjustToRange(0,1,c[l+2]*d),p=1===f?1:f**a.GR,b=1===g?1:g**a.GG,y=1===m?1:m**a.GB,v=a.MXA*p+a.MXB*b+a.MXC*y,w=a.MYA*p+a.MYB*b+a.MYC*y,k=a.MZA*p+a.MZB*b+a.MZC*y,S=s;S[0]=v;S[1]=w;S[2]=k;const C=o;!function normalizeWhitePointToFlat(r,a,i){if(1===r[0]&&1===r[2]){i[0]=a[0];i[1]=a[1];i[2]=a[2];return}const s=i;matrixProduct(e,a,s);const o=n;!function convertToFlat(e,t,r){r[0]=1*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(a.whitePoint,S,C);const x=s;!function compensateBlackPoint(e,t,r){if(0===e[0]&&0===e[1]&&0===e[2]){r[0]=t[0];r[1]=t[1];r[2]=t[2];return}const a=decodeL(0),i=(1-a)/(1-decodeL(e[0])),n=1-i,s=(1-a)/(1-decodeL(e[1])),o=1-s,c=(1-a)/(1-decodeL(e[2])),l=1-c;r[0]=t[0]*i+n;r[1]=t[1]*s+o;r[2]=t[2]*c+l}(a.blackPoint,C,x);const A=o;!function normalizeWhitePointToD65(r,a,i){const s=i;matrixProduct(e,a,s);const o=n;!function convertToD65(e,t,r){r[0]=.95047*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1.08883*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(i,x,A);const T=s;matrixProduct(r,A,T);h[u]=255*sRGBTransferFunction(T[0]);h[u+1]=255*sRGBTransferFunction(T[1]);h[u+2]=255*sRGBTransferFunction(T[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,r,i){super("CalRGB",3);if(!e)throw new a.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);r=r||new Float32Array([1,1,1]);i=i||new Float32Array([1,0,0,0,1,0,0,0,1]);const n=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=r[0];this.GG=r[1];this.GB=r[2];this.MXA=i[0];this.MYA=i[1];this.MZA=i[2];this.MXB=i[3];this.MYB=i[4];this.MZB=i[5];this.MXC=i[6];this.MYC=i[7];this.MZC=i[8];if(n<0||o<0||1!==s)throw new a.FormatError("Invalid WhitePoint components for "+this.name+", no fallback available");if(c<0||l<0||h<0){(0,a.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,a.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for `+this.name+", falling back to default.");this.GR=this.GG=this.GB=1}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,r,a,1)}getRgbBuffer(e,t,r,a,i,n,s){const o=1/((1<=6/29?e*e*e:108/841*(e-4/29);return t}function decode(e,t,r,a){return r+e*(a-r)/t}function convertToRgb(e,t,r,a,i,n){let s=t[r],o=t[r+1],c=t[r+2];if(!1!==a){s=decode(s,a,0,100);o=decode(o,a,e.amin,e.amax);c=decode(c,a,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,a.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,!1,r,a)}getRgbBuffer(e,t,r,a,i,n,s){const o=(1<=GlobalImageCache.MAX_IMAGES_TO_CACHE)}addPageIndex(e,t){let r=this._refCache.get(e);if(!r){r=new Set;this._refCache.put(e,r)}r.add(t)}getData(e,t){const r=this._refCache.get(e);if(!r)return null;if(r.size=GlobalImageCache.MAX_IMAGES_TO_CACHE?(0,a.info)("GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE."):this._imageCache.put(e,t))}clear(e=!1){e||this._refCache.clear();this._imageCache.clear()}}t.GlobalImageCache=GlobalImageCache},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getQuadPoints=getQuadPoints;t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;var a=r(2),i=r(10),n=r(5),s=r(23),o=r(8),c=r(26),l=r(12),h=r(27);t.AnnotationFactory=class AnnotationFactory{static create(e,t,r,a){return r.ensureCatalog("acroForm").then(i=>r.ensure(this,"_create",[e,t,r,a,i]))}static _create(e,t,r,i,s){const c=e.fetchIfRef(t);if(!(0,n.isDict)(c))return;const l=(0,n.isRef)(t)?t.toString():"annot_"+i.createObjId();let h=c.get("Subtype");h=(0,n.isName)(h)?h.name:null;const u={xref:e,ref:t,dict:c,subtype:h,id:l,pdfManager:r,acroForm:s instanceof n.Dict?s:n.Dict.empty};switch(h){case"Link":return new LinkAnnotation(u);case"Text":return new TextAnnotation(u);case"Widget":let e=(0,o.getInheritableProperty)({dict:c,key:"FT"});e=(0,n.isName)(e)?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(u);case"Btn":return new ButtonWidgetAnnotation(u);case"Ch":return new ChoiceWidgetAnnotation(u)}(0,a.warn)('Unimplemented widget field type "'+e+'", falling back to base field type.');return new WidgetAnnotation(u);case"Popup":return new PopupAnnotation(u);case"FreeText":return new FreeTextAnnotation(u);case"Line":return new LineAnnotation(u);case"Square":return new SquareAnnotation(u);case"Circle":return new CircleAnnotation(u);case"PolyLine":return new PolylineAnnotation(u);case"Polygon":return new PolygonAnnotation(u);case"Caret":return new CaretAnnotation(u);case"Ink":return new InkAnnotation(u);case"Highlight":return new HighlightAnnotation(u);case"Underline":return new UnderlineAnnotation(u);case"Squiggly":return new SquigglyAnnotation(u);case"StrikeOut":return new StrikeOutAnnotation(u);case"Stamp":return new StampAnnotation(u);case"FileAttachment":return new FileAttachmentAnnotation(u);default:h?(0,a.warn)('Unimplemented annotation type "'+h+'", falling back to base annotation.'):(0,a.warn)("Annotation is missing the required /Subtype.");return new Annotation(u)}}};function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const r=e.getArray("QuadPoints");if(!Array.isArray(r)||r.length%8>0)return null;const a=[];for(let e=0,i=r.length/8;et[2]||st[3])return null;a[e].push({x:n,y:s})}}return a}function getTransformMatrix(e,t,r){const[i,n,s,o]=a.Util.getAxialAlignedBoundingBox(t,r);if(i===s||n===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-i),l=(e[3]-e[1])/(o-n);return[c,0,0,l,e[0]-i*c,e[1]-n*l]}class Annotation{constructor(e){const t=e.dict;this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,contents:this.contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype}}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)&&!this._hasFlag(e,a.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,a.AnnotationFlag.PRINT)&&!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)}get viewable(){return 0===this.flags||this._isViewable(this.flags)}get printable(){return 0!==this.flags&&this._isPrintable(this.flags)}setContents(e){this.contents=(0,a.stringToPDFString)(e||"")}setModificationDate(e){this.modificationDate=(0,a.isString)(e)?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=a.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){const t=new Uint8ClampedArray(3);if(Array.isArray(e))switch(e.length){case 0:this.color=null;break;case 1:s.ColorSpace.singletons.gray.getRgbItem(e,0,t,0);this.color=t;break;case 3:s.ColorSpace.singletons.rgb.getRgbItem(e,0,t,0);this.color=t;break;case 4:s.ColorSpace.singletons.cmyk.getRgbItem(e,0,t,0);this.color=t;break;default:this.color=t}else this.color=t}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if((0,n.isDict)(e))if(e.has("BS")){const t=e.get("BS"),r=t.get("Type");if(!r||(0,n.isName)(r,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3])}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(0,n.isDict)(t))return;const r=t.get("N");if((0,n.isStream)(r)){this.appearance=r;return}if(!(0,n.isDict)(r))return;const a=e.get("AS");(0,n.isName)(a)&&r.has(a.name)&&(this.appearance=r.get(a.name))}loadResources(e){return this.appearance.dict.getAsync("Resources").then(t=>{if(!t)return;return new i.ObjectLoader(t,e,t.xref).load().then((function(){return t}))})}getOperatorList(e,t,r,i){if(!this.appearance)return Promise.resolve(new c.OperatorList);const n=this.appearance,s=this.data,o=n.dict,l=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=o.getArray("BBox")||[0,0,1,1],u=o.getArray("Matrix")||[1,0,0,1,0,0],d=getTransformMatrix(s.rect,h,u);return l.then(r=>{const i=new c.OperatorList;i.addOp(a.OPS.beginAnnotation,[s.rect,d,u]);return e.getOperatorList({stream:n,task:t,resources:r,operatorList:i}).then(()=>{i.addOp(a.OPS.endAnnotation,[]);n.reset();return i})})}async save(e,t,r){return null}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=a.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if((0,n.isName)(e))this.width=0;else if(Number.isInteger(e)){if(e>0){const r=(t[2]-t[0])/2,i=(t[3]-t[1])/2;if(r>0&&i>0&&(e>r||e>i)){(0,a.warn)("AnnotationBorderStyle.setWidth - ignoring width: "+e);e=1}}this.width=e}}setStyle(e){if((0,n.isName)(e))switch(e.name){case"S":this.style=a.AnnotationBorderStyleType.SOLID;break;case"D":this.style=a.AnnotationBorderStyleType.DASHED;break;case"B":this.style=a.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=a.AnnotationBorderStyleType.INSET;break;case"U":this.style=a.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e){if(Array.isArray(e)&&e.length>0){let t=!0,r=!0;for(const a of e){if(!(+a>=0)){t=!1;break}a>0&&(r=!1)}t&&!r?this.dashArray=e:this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=(0,n.isRef)(e)?e.toString():null;const r=t.get("RT");this.data.replyType=(0,n.isName)(r)?r.name:a.AnnotationReplyType.REPLY}if(this.data.replyType===a.AnnotationReplyType.GROUP){const e=t.get("IRT");this.data.title=(0,a.stringToPDFString)(e.get("T")||"");this.setContents(e.get("Contents"));this.data.contents=this.contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.title=(0,a.stringToPDFString)(t.get("T")||"");this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}}setCreationDate(e){this.creationDate=(0,a.isString)(e)?e:null}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,r=this.data;this.ref=e.ref;r.annotationType=a.AnnotationType.WIDGET;r.fieldName=this._constructFieldName(t);const i=(0,o.getInheritableProperty)({dict:t,key:"V",getArray:!0});r.fieldValue=this._decodeFormValue(i);r.alternativeText=(0,a.stringToPDFString)(t.get("TU")||"");r.defaultAppearance=(0,o.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA")||"";const s=(0,o.getInheritableProperty)({dict:t,key:"FT"});r.fieldType=(0,n.isName)(s)?s.name:null;this.fieldResources=(0,o.getInheritableProperty)({dict:t,key:"DR"})||e.acroForm.get("DR")||n.Dict.empty;r.fieldFlags=(0,o.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(r.fieldFlags)||r.fieldFlags<0)&&(r.fieldFlags=0);r.readOnly=this.hasFieldFlag(a.AnnotationFieldFlag.READONLY);if("Sig"===r.fieldType){r.fieldValue=null;this.setFlags(a.AnnotationFlag.HIDDEN)}}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,a.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,a.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,a.stringToPDFString)(e.get("T")));let r=e;for(;r.has("Parent");){r=r.get("Parent");if(!(0,n.isDict)(r))break;r.has("T")&&t.unshift((0,a.stringToPDFString)(r.get("T")))}return t.join(".")}_decodeFormValue(e){return Array.isArray(e)?e.filter(e=>(0,a.isString)(e)).map(e=>(0,a.stringToPDFString)(e)):(0,n.isName)(e)?(0,a.stringToPDFString)(e.name):(0,a.isString)(e)?(0,a.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,r,i){return r?Promise.resolve(new c.OperatorList):this._hasText?this._getAppearance(e,t,i).then(n=>{if(this.appearance&&null===n)return super.getOperatorList(e,t,r,i);const s=new c.OperatorList;if(!this.data.defaultAppearance||null===n)return s;const o=[1,0,0,1,0,0],h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u=getTransformMatrix(this.data.rect,h,o);s.addOp(a.OPS.beginAnnotation,[this.data.rect,u,o]);const d=new l.StringStream(n);return e.getOperatorList({stream:d,task:t,resources:this.fieldResources,operatorList:s}).then((function(){s.addOp(a.OPS.endAnnotation,[]);return s}))}):super.getOperatorList(e,t,r,i)}async save(e,t,r){if(this.data.fieldValue===r[this.data.id])return null;let i=await this._getAppearance(e,t,r);if(null===i)return null;const s=e.xref.fetchIfRef(this.ref);if(!(0,n.isDict)(s))return null;const o=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],c=e.xref.getNewRef(),l=new n.Dict(e.xref);l.set("N",c);const u=r[this.data.id],d=e.xref.encrypt;let f=null,g=null;if(d){f=d.createCipherTransform(this.ref.num,this.ref.gen);g=d.createCipherTransform(c.num,c.gen);i=g.encryptString(i)}s.set("V",u);s.set("AP",l);s.set("M","D:"+(0,a.getModificationDate)());const m=new n.Dict(e.xref);m.set("Length",i.length);m.set("Subtype",n.Name.get("Form"));m.set("Resources",this.fieldResources);m.set("BBox",o);const p=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,h.writeDict)(s,p,f);p.push("\nendobj\n");const b=[`${c.num} ${c.gen} obj\n`];(0,h.writeDict)(m,b,g);b.push(" stream\n");b.push(i);b.push("\nendstream\nendobj\n");return[{ref:this.ref,data:p.join("")},{ref:c,data:b.join("")}]}async _getAppearance(e,t,r){const i=this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD);if(!r||i)return null;const n=r[this.data.id];if(""===n)return"";const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=await this._getFontData(e,t),[l,h]=c;let u=c[2];u=this._computeFontSize(l,h,u,s);let d=l.descent;isNaN(d)&&(d=0);const f=2+Math.abs(d)*u,g=this.data.defaultAppearance,m=this.data.textAlignment;if(this.data.comb)return this._getCombAppearance(g,n,o,2,f);if(this.data.multiLine)return this._getMultilineAppearance(g,n,l,u,o,s,m,2,f);if(0===m||m>2)return"/Tx BMC q BT "+g+` 1 0 0 1 2 ${f} Tm (${(0,a.escapeString)(n)}) Tj ET Q EMC`;return"/Tx BMC q BT "+g+" 1 0 0 1 0 0 Tm "+this._renderText(n,l,u,o,m,2,f)+" ET Q EMC"}async _getFontData(e,t){const r=new c.OperatorList,a={fontSize:0,font:null,fontName:null,clone(){return this}};await e.getOperatorList({stream:new l.StringStream(this.data.defaultAppearance),task:t,resources:this.fieldResources,operatorList:r,initialState:a});return[a.font,a.fontName,a.fontSize]}_computeFontSize(e,t,r,a){if(null===r||0===r){const i=.7*(e.charsToGlyphs("M",!0)[0].width/1e3);r=Math.max(1,Math.floor(a/(1.5*i)));let n=new RegExp(`/${t}\\s+[0-9.]+\\s+Tf`);-1===this.data.defaultAppearance.search(n)&&(n=new RegExp(`/${t}\\s+Tf`));this.data.defaultAppearance=this.data.defaultAppearance.replace(n,`/${t} ${r} Tf`)}return r}_renderText(e,t,r,i,n,s,o){const c=t.charsToGlyphs(e),l=r/1e3;let h,u=0;for(const e of c)u+=e.width*l;h=1===n?(i-u)/2:2===n?i-u-s:s;h=h.toFixed(2);return`${h} ${o=o.toFixed(2)} Td (${(0,a.escapeString)(e)}) Tj`}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;(0,a.isString)(this.data.fieldValue)||(this.data.fieldValue="");let r=(0,o.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(r)||r<0||r>2)&&(r=null);this.data.textAlignment=r;let i=(0,o.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(a.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(a.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,r,i,n){const s=(r/this.data.maxLen).toFixed(2),o=[];for(const e of t)o.push(`(${(0,a.escapeString)(e)}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${n} Tm ${o.join(` ${s} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,r,a,i,n,s,o,c){const l=t.split(/\r\n|\r|\n/),h=[],u=i-2*o;for(const e of l){const t=this._splitLine(e,r,a,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,r,a,i,s,t,-a))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${n} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,r,a){if(e.length<=1)return[e];const i=r/1e3,n=t.charsToGlyphs(" ",!0)[0].width*i,s=[];let o=-1,c=0,l=0;for(let r=0,h=e.length;ra){s.push(e.substring(c,r));c=r;l=n;o=-1}else{l+=n;o=r}else{const n=t.charsToGlyphs(h,!1)[0].width*i;if(l+n>a)if(-1!==o){s.push(e.substring(c,o+1));c=r=o+1;o=-1;l=0}else{s.push(e.substring(c,r));c=r;l=n}else l+=n}}c1e3){u=Math.max(u,g);m+=f+2;g=0;f=0}d.push({transform:p,x:g,y:m,w:b.width,h:b.height});g+=b.width+2;f=Math.max(f,b.height)}var y=Math.max(u,g)+1,v=m+f+1,w=new Uint8ClampedArray(y*v*4),k=y<<2;for(h=0;h=0;){S[A-4]=S[A];S[A-3]=S[A+1];S[A-2]=S[A+2];S[A-1]=S[A+3];S[A+C]=S[A+C-4];S[A+C+1]=S[A+C-3];S[A+C+2]=S[A+C-2];S[A+C+3]=S[A+C-1];A-=k}}r.splice(s,4*l,a.OPS.paintInlineImageXObjectGroup);i.splice(s,4*l,[{width:y,height:v,kind:a.ImageKind.RGBA_32BPP,data:w},d]);return s+1}));addState(e,[a.OPS.save,a.OPS.transform,a.OPS.paintImageMaskXObject,a.OPS.restore],null,(function iterateImageMaskGroup(e,t){var r=e.fnArray,i=(t-(e.iCurr-3))%4;switch(i){case 0:return r[t]===a.OPS.save;case 1:return r[t]===a.OPS.transform;case 2:return r[t]===a.OPS.paintImageMaskXObject;case 3:return r[t]===a.OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: "+i)}),(function foundImageMaskGroup(e,t){var r,i=e.fnArray,n=e.argsArray,s=e.iCurr,o=s-3,c=s-2,l=s-1,h=Math.floor((t-o)/4);if((h=function handlePaintSolidColorImageMask(e,t,r,i){for(var n=e+2,s=0;s=4&&r[n-4]===r[s]&&r[n-3]===r[o]&&r[n-2]===r[c]&&r[n-1]===r[l]&&a[n-4][0]===h&&a[n-4][1]===u){d++;f-=5}for(var g=f+4,m=1;m=a)break}i=(i||e)[t[r]];if(i&&!Array.isArray(i)){s.iCurr=r;r++;if(!i.checkFn||(0,i.checkFn)(s)){n=i;i=null}else i=null}else r++}this.state=i;this.match=n;this.lastProcessed=r},push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t);this._optimize()},flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}},reset(){this.state=null;this.match=null;this.lastProcessed=0}};return QueueOptimizer}(),n=function NullOptimizerClosure(){function NullOptimizer(e){this.queue=e}NullOptimizer.prototype={push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t)},flush(){},reset(){}};return NullOptimizer}(),s=function OperatorListClosure(){function OperatorList(e,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];this.optimizer=t&&"oplist"!==e?new i(this):new n(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}OperatorList.prototype={get length(){return this.argsArray.length},get ready(){return this._resolved||this._streamSink.ready},get totalLength(){return this._totalLength+this.length},addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=1e3||this.weight>=995&&(e===a.OPS.restore||e===a.OPS.endText))&&this.flush()},addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(a.OPS.dependency,[e])}},addDependencies(e){for(const t of e)this.addDependency(t)},addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(var t=0,r=e.length;te.ref.num-t.ref.num);const u=[[0,1,65535]],d=[0,1];let f=0;for(const{ref:e,data:t}of r){f=Math.max(f,l);u.push([1,l,Math.min(e.gen,65535)]);l+=t.length;d.push(e.num);d.push(1);c.push(t)}s.set("Index",d);if(0!==t.fileIds.length){const e=function computeMD5(e,t){const r=Math.floor(Date.now()/1e3),i=t.filename||"",s=[r.toString(),i,e.toString()];let o=s.reduce((e,t)=>e+t.length,0);for(const e of Object.values(t.info)){s.push(e);o+=e.length}const c=new Uint8Array(o);let l=0;for(const e of s){writeString(e,l,c);l+=e.length}return(0,a.bytesToString)((0,n.calculateMD5)(c))}(l,t);s.set("ID",[t.fileIds[0],e])}const g=[1,Math.ceil(Math.log2(f)/8),2],m=(g[0]+g[1]+g[2])*u.length;s.set("W",g);s.set("Length",m);c.push(`${o.num} ${o.gen} obj\n`);writeDict(s,c,null);c.push(" stream\n");const p=c.reduce((e,t)=>e+t.length,0),b=`\nendstream\nendobj\nstartxref\n${l}\n%%EOF\n`,y=new Uint8Array(e.length+p+m+b.length);y.set(e);let v=e.length;for(const e of c){writeString(e,v,y);v+=e.length}for(const[e,t,r]of u){v=writeInt(e,g[0],v,y);v=writeInt(t,g[1],v,y);v=writeInt(r,g[2],v,y)}writeString(b,v,y);return y};var a=r(2),i=r(5),n=r(22);function writeDict(e,t,r){t.push("<<");for(const a of e.getKeys()){t.push(` /${a} `);writeValue(e.getRaw(a),t,r)}t.push(">>")}function writeValue(e,t,r){if((0,i.isName)(e))t.push("/"+e.name);else if((0,i.isRef)(e))t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,r){t.push("[");let a=!0;for(const i of e){a?a=!1:t.push(" ");writeValue(i,t,r)}t.push("]")}(e,t,r);else if("string"==typeof e){null!==r&&(e=r.encryptString(e));t.push(`(${(0,a.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):(0,i.isDict)(e)?writeDict(e,t,r):(0,i.isStream)(e)&&function writeStream(e,t,r){writeDict(e.dict,t,r);t.push(" stream\n");let i=(0,a.bytesToString)(e.getBytes());null!==r&&(i=r.encryptString(i));t.push(i);t.push("\nendstream\n")}(e,t,r)}function writeInt(e,t,r,a){for(let i=t+r-1;i>r-1;i--){a[i]=255&e;e>>=8}return r+t}function writeString(e,t,r){for(let a=0,i=e.length;ag){(0,a.warn)("Image exceeded maximum allowed size and was removed.");return}if(c.get("ImageMask","IM")||!1){var m=c.get("Width","W"),p=c.get("Height","H"),y=m+7>>3,v=t.getBytes(y*p,!0),w=c.getArray("Decode","D");(d=S.PDFImage.createMask({imgArray:v,width:m,height:p,imageIsFromDecodeStream:t instanceof b.DecodeStream,inverseDecode:!!w&&w[0]>0})).cached=!!n;f=[d];i.addOp(a.OPS.paintImageMaskXObject,f);n&&s.set(n,l,{fn:a.OPS.paintImageMaskXObject,args:f});return}var k=c.get("SMask","SM")||!1,C=c.get("Mask")||!1;if(r&&!k&&!C&&h+u<200){const n=new S.PDFImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});d=n.createImageData(!0);i.addOp(a.OPS.paintInlineImageXObject,[d]);return}let x="img_"+this.idFactory.createObjId(),A=!1;if(this.parsingType3Font)x=`${this.idFactory.getDocId()}_type3_${x}`;else if(l){A=this.globalImageCache.shouldCache(l,this.pageIndex);A&&(x=`${this.idFactory.getDocId()}_${x}`)}i.addDependency(x);f=[x,h,u];S.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then(e=>{d=e.createImageData(!1);return this._sendImgData(x,d,A)}).catch(e=>{(0,a.warn)(`Unable to decode image "${x}": "${e}".`);return this._sendImgData(x,null,A)});i.addOp(a.OPS.paintImageXObject,f);if(n){s.set(n,l,{fn:a.OPS.paintImageXObject,args:f});if(l){(0,a.assert)(!r,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);A&&this.globalImageCache.setData(l,{objId:x,fn:a.OPS.paintImageXObject,args:f})}}}handleSMask(e,t,r,a,i,n){var s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,d.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c);for(var l=new Uint8Array(256),h=new Float32Array(1),u=0;u<256;u++){h[0]=u/255;e(h,0,h,0);l[u]=255*h[0]|0}o.transferMap=l}return this.buildFormXObject(t,s,o,r,a,i.state.clone(),n)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,d.isPDFFunction)(e))return null;t=[e]}const r=[];let a=0,i=0;for(const e of t){const t=this.xref.fetchIfRef(e);a++;if((0,n.isName)(t,"Identity")){r.push(null);continue}if(!(0,d.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}r.push(o);i++}return 1!==a&&4!==a||0===i?null:r}handleTilingType(e,t,r,i,s,o,c){const l=new k.OperatorList,h=n.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),r]});return this.getOperatorList({stream:i,task:c,resources:h,operatorList:l}).then((function(){return(0,u.getTilingPatternIR)({fnArray:l.fnArray,argsArray:l.argsArray},s,t)})).then((function(t){o.addDependencies(l.dependencies);o.addOp(e,t)}),e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorTilingPattern});(0,a.warn)(`handleTilingType - ignoring pattern: "${e}".`)}})}handleSetFont(e,t,r,i,n,o){var c,l=0;if(t){t=t.slice();c=t[0].name;l=t[1]}return this.loadFont(c,r,e).then(t=>t.font.isType3Font?t.loadType3Data(this,e,n).then((function(){i.addDependencies(t.type3Dependencies);return t})).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont("Type3 font load error: "+e),dict:t.font,extraProperties:this.options.fontExtraProperties})}):t).then(e=>{o.font=e.font;o.fontSize=l;o.fontName=c;e.send(this.handler);return e.loadedName})}handleText(e,t){const r=t.font,i=r.charsToGlyphs(e);if(r.data){(!!(t.textRenderingMode&a.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||r.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(r,i,this.handler)}return i}ensureStateFont(e){if(e.font)return;const t=new a.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontState});(0,a.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:r,cacheKey:i,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;for(var d=[],f=t.getKeys(),g=Promise.resolve(),m=0,p=f.length;mthis.handleSetFont(e,null,c[0],r,s,o.state).then((function(e){r.addDependency(e);d.push([i,[e,c[1]]])})));break;case"BM":d.push([i,normalizeBlendMode(c)]);break;case"SMask":if((0,n.isName)(c,"None")){d.push([i,!1]);break}if((0,n.isDict)(c)){u=!1;g=g.then(()=>this.handleSMask(c,e,r,s,o,l));d.push([i,!0])}else(0,a.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(c);d.push([i,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,a.info)("graphic state operator "+i);break;default:(0,a.info)("Unknown graphic state operator "+i)}}return g.then((function(){d.length>0&&r.addOp(a.OPS.setGState,[d]);u&&c.set(i,h,d)}))}loadFont(e,t,r){const errorFont=()=>Promise.resolve(new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,extraProperties:this.options.fontExtraProperties}));var i,o=this.xref;if(t){if(!(0,n.isRef)(t))throw new a.FormatError('The "font" object should be a reference.');i=t}else{var c=r.get("Font");c&&(i=c.getRaw(e))}if(!i){const r=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,a.warn)(r+".");return errorFont()}this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontMissing});(0,a.warn)(r+" -- attempting to fallback to a default font.");i=PartialEvaluator.fallbackFontDict}if(this.fontCache.has(i))return this.fontCache.get(i);t=o.fetchIfRef(i);if(!(0,n.isDict)(t))return errorFont();if(t.translated)return t.translated;var l=(0,a.createPromiseCapability)(),h=this.preEvaluateFont(t);const{descriptor:u,hash:d}=h;var f,g,m=(0,n.isRef)(i);m&&(f="f"+i.toString());if(d&&(0,n.isDict)(u)){u.fontAliases||(u.fontAliases=Object.create(null));var p=u.fontAliases;if(p[d]){var b=p[d].aliasRef;if(m&&b&&this.fontCache.has(b)){this.fontCache.putAlias(i,b);return this.fontCache.get(i)}}else p[d]={fontID:this.idFactory.createFontId()};m&&(p[d].aliasRef=i);f=p[d].fontID}if(m)this.fontCache.put(i,l.promise);else{f||(f=this.idFactory.createFontId());this.fontCache.put("id_"+f,l.promise)}(0,a.assert)(f&&f.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${f}`;t.translated=l.promise;try{g=this.translateFont(h)}catch(e){g=Promise.reject(e)}g.then(e=>{if(void 0!==e.fontType){o.stats.fontTypes[e.fontType]=!0}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,extraProperties:this.options.fontExtraProperties}))}).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontTranslate});try{var r=u&&u.get("FontFile3"),i=r&&r.get("Subtype"),n=(0,s.getFontType)(h.type,i&&i.name);o.stats.fontTypes[n]=!0}catch(e){}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,extraProperties:this.options.fontExtraProperties}))});return l.promise}buildPath(e,t,r,i=!1){var n=e.length-1;r||(r=[]);if(n<0||e.fnArray[n]!==a.OPS.constructPath){if(i){(0,a.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(a.OPS.save,null)}e.addOp(a.OPS.constructPath,[[t],r]);i&&e.addOp(a.OPS.restore,null)}else{var s=e.argsArray[n];s[0].push(t);Array.prototype.push.apply(s[1],r)}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:r}){return p.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:r}).catch(e=>{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorColorSpace});(0,a.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e})}async handleColorN(e,t,r,i,s,o,c,l){var h,d=r[r.length-1];if((0,n.isName)(d)&&(h=s.get(d.name))){var f=(0,n.isStream)(h)?h.dict:h,g=f.get("PatternType");if(g===x){var m=i.base?i.base.getRgb(r,0):null;return this.handleTilingType(t,m,o,h,f,e,c)}if(g===A){var p=f.get("Shading"),b=f.getArray("Matrix");h=u.Pattern.parseShading(p,b,this.xref,o,this.handler,this._pdfFunctionFactory,l);e.addOp(t,h.getIR());return}throw new a.FormatError("Unknown PatternType: "+g)}throw new a.FormatError("Unknown PatternName: "+d)}async parseMarkedContentProps(e,t){let r;if((0,n.isName)(e)){r=t.get("Properties").get(e.name)}else{if(!(0,n.isDict)(e))throw new a.FormatError("Optional content properties malformed.");r=e}const i=r.get("Type").name;if("OCG"===i)return{type:i,id:r.objId};if("OCMD"===i){const e=r.get("OCGs");if(Array.isArray(e)||(0,n.isDict)(e)){const t=[];Array.isArray(e)?r.get("OCGs").forEach(e=>{t.push(e.toString())}):t.push(e.objId);let a=null;r.get("VE")&&(a=!0);return{type:i,ids:t,policy:(0,n.isName)(r.get("P"))?r.get("P").name:null,expression:a}}if((0,n.isRef)(e))return{type:i,id:e.toString()}}return null}getOperatorList({stream:e,task:t,resources:r,operatorList:i,initialState:s=null}){r=r||n.Dict.empty;s=s||new EvalState;if(!i)throw new Error('getOperatorList: missing "operatorList" parameter');var o=this,c=this.xref;let l=!1;const h=new g.LocalImageCache,d=new g.LocalColorSpaceCache,f=new g.LocalGStateCache;var m=r.get("XObject")||n.Dict.empty,b=r.get("Pattern")||n.Dict.empty,y=new StateManager(s),v=new EvaluatorPreprocessor(e,c,y),w=new TimeSlotManager;function closePendingRestoreOPS(e){for(var t=0,r=v.savedStatesDepth;t0&&i.addOp(a.OPS.setGState,[e]);I=null;continue}}next(new Promise((function(e,s){if(!x)throw new a.FormatError("GState must be referred to by name.");const c=r.get("ExtGState");if(!(c instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const l=c.get(x);if(!(l instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");o.setGState({resources:r,gState:l,operatorList:i,cacheKey:x,task:t,stateManager:y,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorExtGState});(0,a.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case a.OPS.moveTo:case a.OPS.lineTo:case a.OPS.curveTo:case a.OPS.curveTo2:case a.OPS.curveTo3:case a.OPS.closePath:case a.OPS.rectangle:o.buildPath(i,F,I,l);continue;case a.OPS.markPoint:case a.OPS.markPointProps:case a.OPS.beginCompat:case a.OPS.endCompat:continue;case a.OPS.beginMarkedContentProps:if(!(0,n.isName)(I[0])){(0,a.warn)("Expected name for beginMarkedContentProps arg0="+I[0]);continue}if("OC"===I[0].name){next(o.parseMarkedContentProps(I[1],r).then(e=>{i.addOp(a.OPS.beginMarkedContentProps,["OC",e])}).catch(e=>{if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorMarkedContent});(0,a.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}}));return}I=[I[0].name];break;case a.OPS.beginMarkedContent:case a.OPS.endMarkedContent:default:if(null!==I){for(k=0,S=I.length;k{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});(0,a.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}})}getTextContent({stream:e,task:t,resources:r,stateManager:i=null,normalizeWhitespace:s=!1,combineTextItems:o=!1,sink:c,seenStyles:h=Object.create(null)}){r=r||n.Dict.empty;i=i||new StateManager(new TextState);var u=/\s/g,d={items:[],styles:Object.create(null)},f={initialized:!1,str:[],width:0,height:0,vertical:!1,lastAdvanceWidth:0,lastAdvanceHeight:0,textAdvanceScale:0,spaceWidth:0,fakeSpaceMin:1/0,fakeMultiSpaceMin:1/0,fakeMultiSpaceMax:-0,textRunBreakAllowed:!1,transform:null,fontName:null},p=this,b=this.xref,y=null;const v=new g.LocalImageCache,w=new g.LocalGStateCache;var k,S=new EvaluatorPreprocessor(e,b,i);function ensureTextContentItem(){if(f.initialized)return f;var e=k.font;if(!(e.loadedName in h)){h[e.loadedName]=!0;d.styles[e.loadedName]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}f.fontName=e.loadedName;var t=[k.fontSize*k.textHScale,0,0,k.fontSize,0,k.textRise];if(e.isType3Font&&k.fontSize<=1&&!(0,a.isArrayEqual)(k.fontMatrix,a.FONT_IDENTITY_MATRIX)){const r=e.bbox[3]-e.bbox[1];r>0&&(t[3]*=r*k.fontMatrix[3])}var r=a.Util.transform(k.ctm,a.Util.transform(k.textMatrix,t));f.transform=r;if(e.vertical){f.width=Math.sqrt(r[0]*r[0]+r[1]*r[1]);f.height=0;f.vertical=!0}else{f.width=0;f.height=Math.sqrt(r[2]*r[2]+r[3]*r[3]);f.vertical=!1}var i=k.textLineMatrix[0],n=k.textLineMatrix[1],s=Math.sqrt(i*i+n*n);i=k.ctm[0];n=k.ctm[1];var o=Math.sqrt(i*i+n*n);f.textAdvanceScale=o*s;f.lastAdvanceWidth=0;f.lastAdvanceHeight=0;var c=e.spaceWidth/1e3*k.fontSize;if(c){f.spaceWidth=c;f.fakeSpaceMin=.3*c;f.fakeMultiSpaceMin=1.5*c;f.fakeMultiSpaceMax=4*c;f.textRunBreakAllowed=!e.isMonospace}else{f.spaceWidth=0;f.fakeSpaceMin=1/0;f.fakeMultiSpaceMin=1/0;f.fakeMultiSpaceMax=0;f.textRunBreakAllowed=!1}f.initialized=!0;return f}function replaceWhitespace(e){for(var t,r=0,a=e.length;r=32&&t<=127;)r++;return r0&&addFakeSpaces(f,r.str)}var g=0,m=0;if(t.vertical){i+=m=c*k.fontMatrix[0]*k.fontSize+d}else{a+=g=(c*k.fontMatrix[0]*k.fontSize+d)*k.textHScale}k.translateTextMatrix(g,m);r.str.push(h)}if(t.vertical){r.lastAdvanceHeight=i;r.height+=Math.abs(i)}else{r.lastAdvanceWidth=a;r.width+=a}return r}function addFakeSpaces(e,t){if(!(e0;)t.push(" ")}function flushTextContentItem(){if(f.initialized){f.vertical?f.height*=f.textAdvanceScale:f.width*=f.textAdvanceScale;d.items.push(function runBidiTransform(e){var t=e.str.join(""),r=(0,m.bidi)(t,-1,e.vertical);return{str:s?replaceWhitespace(r.str):r.str,dir:r.dir,width:e.width,height:e.height,transform:e.transform,fontName:e.fontName}}(f));f.initialized=!1;f.str.length=0}}function enqueueChunk(){const e=d.items.length;if(e>0){c.enqueue(d,e);d.items=[];d.styles=Object.create(null)}}var C=new TimeSlotManager;return new Promise((function promiseBody(e,l){const next=function(t){enqueueChunk();Promise.all([t,c.ready]).then((function(){try{promiseBody(e,l)}catch(e){l(e)}}),l)};t.ensureNotTerminated();C.reset();for(var u,g={},m=[];!(u=C.check());){m.length=0;g.args=m;if(!S.read(g))break;k=i.state;var x,A=g.fn;m=g.args;switch(0|A){case a.OPS.setFont:var I=m[0].name,F=m[1];if(k.font&&I===k.fontName&&F===k.fontSize)break;flushTextContentItem();k.fontName=I;k.fontSize=F;next(handleSetFont(I,null));return;case a.OPS.setTextRise:flushTextContentItem();k.textRise=m[0];break;case a.OPS.setHScale:flushTextContentItem();k.textHScale=m[0]/100;break;case a.OPS.setLeading:flushTextContentItem();k.leading=m[0];break;case a.OPS.moveText:var P=!!k.font&&0===(k.font.vertical?m[0]:m[1]);x=m[0]-m[1];if(o&&P&&f.initialized&&x>0&&x<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(m[0],m[1]);f.width+=m[0]-f.lastAdvanceWidth;f.height+=m[1]-f.lastAdvanceHeight;addFakeSpaces(m[0]-f.lastAdvanceWidth-(m[1]-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.setLeadingMoveText:flushTextContentItem();k.leading=-m[1];k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.nextLine:flushTextContentItem();k.carriageReturn();break;case a.OPS.setTextMatrix:x=k.calcTextLineMatrixAdvance(m[0],m[1],m[2],m[3],m[4],m[5]);if(o&&null!==x&&f.initialized&&x.value>0&&x.value<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(x.width,x.height);f.width+=x.width-f.lastAdvanceWidth;f.height+=x.height-f.lastAdvanceHeight;addFakeSpaces(x.width-f.lastAdvanceWidth-(x.height-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.setTextMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);k.setTextLineMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);break;case a.OPS.setCharSpacing:k.charSpacing=m[0];break;case a.OPS.setWordSpacing:k.wordSpacing=m[0];break;case a.OPS.beginText:flushTextContentItem();k.textMatrix=a.IDENTITY_MATRIX.slice();k.textLineMatrix=a.IDENTITY_MATRIX.slice();break;case a.OPS.showSpacedText:if(!i.state.font){p.ensureStateFont(i.state);continue}for(var E,B=m[0],O=0,M=B.length;Of.fakeMultiSpaceMax)||(f.height+=E)}else{E=(x=-x)*k.textHScale;k.translateTextMatrix(E,0);(D=f.textRunBreakAllowed&&x>f.fakeMultiSpaceMax)||(f.width+=E)}D?flushTextContentItem():x>0&&addFakeSpaces(x,f.str)}break;case a.OPS.showText:if(!i.state.font){p.ensureStateFont(i.state);continue}buildTextContentItem(m[0]);break;case a.OPS.nextLineShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.carriageReturn();buildTextContentItem(m[0]);break;case a.OPS.nextLineSetSpacingShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.wordSpacing=m[0];k.charSpacing=m[1];k.carriageReturn();buildTextContentItem(m[2]);break;case a.OPS.paintXObject:flushTextContentItem();y||(y=r.get("XObject")||n.Dict.empty);var R=m[0].name;if(R&&v.getByName(R))break;next(new Promise((function(e,l){if(!R)throw new a.FormatError("XObject must be referred to by name.");let u=y.getRaw(R);if(u instanceof n.Ref){if(v.getByRef(u)){e();return}u=b.fetch(u)}if(!(0,n.isStream)(u))throw new a.FormatError("XObject should be a stream");const d=u.dict.get("Subtype");if(!(0,n.isName)(d))throw new a.FormatError("XObject should have a Name subtype");if("Form"!==d.name){v.set(R,u.dict.objId,!0);e();return}const f=i.state.clone(),g=new StateManager(f),m=u.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&g.transform(m);enqueueChunk();const w={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};p.getTextContent({stream:u,task:t,resources:u.dict.get("Resources")||r,stateManager:g,normalizeWhitespace:s,combineTextItems:o,sink:w,seenStyles:h}).then((function(){w.enqueueInvoked||v.set(R,u.dict.objId,!0);e()}),l)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case a.OPS.setGState:if((R=m[0].name)&&w.getByName(R))break;next(new Promise((function(e,t){if(!R)throw new a.FormatError("GState must be referred to by name.");const i=r.get("ExtGState");if(!(i instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const s=i.get(R);if(!(s instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();k.fontName=null;k.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{w.set(R,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return}if(d.items.length>=c.desiredSize){u=!0;break}}if(u)next(T);else{flushTextContentItem();enqueueChunk();e()}})).catch(e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}})}extractDataStructures(e,t,r){const i=this.xref;let c;var l=e.get("ToUnicode")||t.get("ToUnicode"),h=l?this.readToUnicode(l):Promise.resolve(void 0);if(r.composite){var u=e.get("CIDSystemInfo");(0,n.isDict)(u)&&(r.cidSystemInfo={registry:(0,a.stringToPDFString)(u.get("Registry")),ordering:(0,a.stringToPDFString)(u.get("Ordering")),supplement:u.get("Supplement")});var d=e.get("CIDToGIDMap");(0,n.isStream)(d)&&(c=d.getBytes())}var f,g=[],m=null;if(e.has("Encoding")){f=e.get("Encoding");if((0,n.isDict)(f)){m=f.get("BaseEncoding");m=(0,n.isName)(m)?m.name:null;if(f.has("Differences"))for(var p=f.get("Differences"),b=0,y=0,v=p.length;y0;r.dict=e;return h.then(e=>{r.toUnicode=e;return this.buildToUnicode(r)}).then(e=>{r.toUnicode=e;c&&(r.cidToGidMap=this.readCidToGidMap(c,e));return r})}_buildSimpleFontToUnicode(e,t=!1){(0,a.assert)(!e.composite,"Must be a simple font.");const r=[],i=e.defaultEncoding.slice(),n=e.baseEncodingName,c=e.differences;for(const e in c){const t=c[e];".notdef"!==t&&(i[e]=t)}const h=(0,y.getGlyphsUnicode)();for(const a in i){let s=i[a];if(""!==s)if(void 0!==h[s])r[a]=String.fromCharCode(h[s]);else{let i=0;switch(s[0]){case"G":3===s.length&&(i=parseInt(s.substring(1),16));break;case"g":5===s.length&&(i=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const r=s.substring(1);if(t){i=parseInt(r,16);break}i=+r;if(Number.isNaN(i)&&Number.isInteger(parseInt(r,16)))return this._buildSimpleFontToUnicode(e,!0)}break;default:const r=(0,l.getUnicodeForGlyph)(s,h);-1!==r&&(i=r)}if(i>0&&i<=1114111&&Number.isInteger(i)){if(n&&i===+a){const e=(0,o.getEncoding)(n);if(e&&(s=e[a])){r[a]=String.fromCharCode(h[s]);continue}}r[a]=String.fromCodePoint(i)}}}return new s.ToUnicodeMap(r)}buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._buildSimpleFontToUnicode(e));return Promise.resolve(e.toUnicode)}if(!e.composite)return Promise.resolve(this._buildSimpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof i.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const t=e.cidSystemInfo.registry,r=e.cidSystemInfo.ordering,o=n.Name.get(t+"-"+r+"-UCS2");return i.CMapFactory.create({encoding:o,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){const r=e.cMap,i=[];r.forEach((function(e,r){if(r>65535)throw new a.FormatError("Max size of CID is 65,535");const n=t.lookup(r);n&&(i[e]=String.fromCharCode((n.charCodeAt(0)<<8)+n.charCodeAt(1)))}));return new s.ToUnicodeMap(i)}))}return Promise.resolve(new s.IdentityToUnicodeMap(e.firstChar,e.lastChar))}readToUnicode(e){var t=e;return(0,n.isName)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof i.IdentityCMap?new s.IdentityToUnicodeMap(0,65535):new s.ToUnicodeMap(e.getMap())})):(0,n.isStream)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof i.IdentityCMap)return new s.IdentityToUnicodeMap(0,65535);var t=new Array(e.length);e.forEach((function(e,r){for(var a=[],i=0;i{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,a.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e}):Promise.resolve(null)}readCidToGidMap(e,t){for(var r=[],a=0,i=e.length;a>1;(0!==n||t.has(i))&&(r[i]=n)}return r}extractWidths(e,t,r){var a,i,o,c,l,h,u,d,f=this.xref,g=[],m=0,p=[];if(r.composite){m=e.has("DW")?e.get("DW"):1e3;if(d=e.get("W"))for(i=0,o=d.length;i{if(e){const r=[];let a=f;for(let t=0,i=e.length;tthis.extractDataStructures(o,r,t)).then(e=>{this.extractWidths(o,l,e);"Type3"===u&&(e.isType3Font=!0);return new s.Font(v.name,x,e)})}static buildFontPaths(e,t,r){function buildPath(t){e.renderer.hasBuiltPath(t)||r.send("commonobj",[`${e.loadedName}_path_${t}`,"FontPath",e.renderer.getPathJs(t)])}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new n.Dict;e.set("BaseFont",n.Name.get("PDFJS-FallbackFont"));e.set("Type",n.Name.get("FallbackType"));e.set("Subtype",n.Name.get("FallbackType"));e.set("Encoding",n.Name.get("WinAnsiEncoding"));return(0,a.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:r,extraProperties:a=!1}){this.loadedName=e;this.font=t;this.dict=r;this._extraProperties=a;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._extraProperties)])}}fallback(e){if(!this.font.data)return;this.font.disableFontFace=!0;const t=this.font.glyphCacheValues;PartialEvaluator.buildFontPaths(this.font,t,e)}loadType3Data(e,t,r){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");var i=Object.create(e.options);i.ignoreErrors=!1;var n=e.clone(i);n.parsingType3Font=!0;const s=this.font,o=this.type3Dependencies;var c=Promise.resolve(),l=this.dict.get("CharProcs"),h=this.dict.get("Resources")||t,u=Object.create(null);for(const e of l.getKeys())c=c.then((function(){var t=l.get(e),i=new k.OperatorList;return n.getOperatorList({stream:t,task:r,resources:h,operatorList:i}).then((function(){u[e]=i.getIR();for(const e of i.dependencies)o.add(e)})).catch((function(t){(0,a.warn)(`Type3 font resource "${e}" is not available.`);const r=new k.OperatorList;u[e]=r.getIR()}))}));this.type3Loaded=c.then((function(){s.charProcOperatorList=u}));return this.type3Loaded}}class StateManager{constructor(e){this.state=e;this.stateStack=[]}save(){var e=this.state;this.stateStack.push(this.state);this.state=e.clone()}restore(){var e=this.stateStack.pop();e&&(this.state=e)}transform(e){this.state.ctm=a.Util.transform(this.state.ctm,e)}}class TextState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=a.FONT_IDENTITY_MATRIX;this.textMatrix=a.IDENTITY_MATRIX.slice();this.textLineMatrix=a.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}setTextMatrix(e,t,r,a,i,n){var s=this.textMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}setTextLineMatrix(e,t,r,a,i,n){var s=this.textLineMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}translateTextMatrix(e,t){var r=this.textMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}translateTextLineMatrix(e,t){var r=this.textLineMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}calcTextLineMatrixAdvance(e,t,r,a,i,n){var s=this.font;if(!s)return null;var o=this.textLineMatrix;if(e!==o[0]||t!==o[1]||r!==o[2]||a!==o[3])return null;var c=i-o[4],l=n-o[5];if(s.vertical&&0!==c||!s.vertical&&0!==l)return null;var h,u,d=e*a-t*r;if(s.vertical){h=-l*r/d;u=l*e/d}else{h=c*a/d;u=-c*t/d}return{width:h,height:u,value:s.vertical?u:h}}calcRenderMatrix(e){var t=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return a.Util.transform(e,a.Util.transform(this.textMatrix,t))}carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()}clone(){var e=Object.create(this);e.textMatrix=this.textMatrix.slice();e.textLineMatrix=this.textLineMatrix.slice();e.fontMatrix=this.fontMatrix.slice();return e}}class EvalState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=a.TextRenderingMode.FILL;this.fillColorSpace=p.ColorSpace.singletons.gray;this.strokeColorSpace=p.ColorSpace.singletons.gray}clone(){return Object.create(this)}}class EvaluatorPreprocessor{static get opMap(){const e=(0,c.getLookupTableFactory)((function(e){e.w={id:a.OPS.setLineWidth,numArgs:1,variableArgs:!1};e.J={id:a.OPS.setLineCap,numArgs:1,variableArgs:!1};e.j={id:a.OPS.setLineJoin,numArgs:1,variableArgs:!1};e.M={id:a.OPS.setMiterLimit,numArgs:1,variableArgs:!1};e.d={id:a.OPS.setDash,numArgs:2,variableArgs:!1};e.ri={id:a.OPS.setRenderingIntent,numArgs:1,variableArgs:!1};e.i={id:a.OPS.setFlatness,numArgs:1,variableArgs:!1};e.gs={id:a.OPS.setGState,numArgs:1,variableArgs:!1};e.q={id:a.OPS.save,numArgs:0,variableArgs:!1};e.Q={id:a.OPS.restore,numArgs:0,variableArgs:!1};e.cm={id:a.OPS.transform,numArgs:6,variableArgs:!1};e.m={id:a.OPS.moveTo,numArgs:2,variableArgs:!1};e.l={id:a.OPS.lineTo,numArgs:2,variableArgs:!1};e.c={id:a.OPS.curveTo,numArgs:6,variableArgs:!1};e.v={id:a.OPS.curveTo2,numArgs:4,variableArgs:!1};e.y={id:a.OPS.curveTo3,numArgs:4,variableArgs:!1};e.h={id:a.OPS.closePath,numArgs:0,variableArgs:!1};e.re={id:a.OPS.rectangle,numArgs:4,variableArgs:!1};e.S={id:a.OPS.stroke,numArgs:0,variableArgs:!1};e.s={id:a.OPS.closeStroke,numArgs:0,variableArgs:!1};e.f={id:a.OPS.fill,numArgs:0,variableArgs:!1};e.F={id:a.OPS.fill,numArgs:0,variableArgs:!1};e["f*"]={id:a.OPS.eoFill,numArgs:0,variableArgs:!1};e.B={id:a.OPS.fillStroke,numArgs:0,variableArgs:!1};e["B*"]={id:a.OPS.eoFillStroke,numArgs:0,variableArgs:!1};e.b={id:a.OPS.closeFillStroke,numArgs:0,variableArgs:!1};e["b*"]={id:a.OPS.closeEOFillStroke,numArgs:0,variableArgs:!1};e.n={id:a.OPS.endPath,numArgs:0,variableArgs:!1};e.W={id:a.OPS.clip,numArgs:0,variableArgs:!1};e["W*"]={id:a.OPS.eoClip,numArgs:0,variableArgs:!1};e.BT={id:a.OPS.beginText,numArgs:0,variableArgs:!1};e.ET={id:a.OPS.endText,numArgs:0,variableArgs:!1};e.Tc={id:a.OPS.setCharSpacing,numArgs:1,variableArgs:!1};e.Tw={id:a.OPS.setWordSpacing,numArgs:1,variableArgs:!1};e.Tz={id:a.OPS.setHScale,numArgs:1,variableArgs:!1};e.TL={id:a.OPS.setLeading,numArgs:1,variableArgs:!1};e.Tf={id:a.OPS.setFont,numArgs:2,variableArgs:!1};e.Tr={id:a.OPS.setTextRenderingMode,numArgs:1,variableArgs:!1};e.Ts={id:a.OPS.setTextRise,numArgs:1,variableArgs:!1};e.Td={id:a.OPS.moveText,numArgs:2,variableArgs:!1};e.TD={id:a.OPS.setLeadingMoveText,numArgs:2,variableArgs:!1};e.Tm={id:a.OPS.setTextMatrix,numArgs:6,variableArgs:!1};e["T*"]={id:a.OPS.nextLine,numArgs:0,variableArgs:!1};e.Tj={id:a.OPS.showText,numArgs:1,variableArgs:!1};e.TJ={id:a.OPS.showSpacedText,numArgs:1,variableArgs:!1};e["'"]={id:a.OPS.nextLineShowText,numArgs:1,variableArgs:!1};e['"']={id:a.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1};e.d0={id:a.OPS.setCharWidth,numArgs:2,variableArgs:!1};e.d1={id:a.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1};e.CS={id:a.OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1};e.cs={id:a.OPS.setFillColorSpace,numArgs:1,variableArgs:!1};e.SC={id:a.OPS.setStrokeColor,numArgs:4,variableArgs:!0};e.SCN={id:a.OPS.setStrokeColorN,numArgs:33,variableArgs:!0};e.sc={id:a.OPS.setFillColor,numArgs:4,variableArgs:!0};e.scn={id:a.OPS.setFillColorN,numArgs:33,variableArgs:!0};e.G={id:a.OPS.setStrokeGray,numArgs:1,variableArgs:!1};e.g={id:a.OPS.setFillGray,numArgs:1,variableArgs:!1};e.RG={id:a.OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1};e.rg={id:a.OPS.setFillRGBColor,numArgs:3,variableArgs:!1};e.K={id:a.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1};e.k={id:a.OPS.setFillCMYKColor,numArgs:4,variableArgs:!1};e.sh={id:a.OPS.shadingFill,numArgs:1,variableArgs:!1};e.BI={id:a.OPS.beginInlineImage,numArgs:0,variableArgs:!1};e.ID={id:a.OPS.beginImageData,numArgs:0,variableArgs:!1};e.EI={id:a.OPS.endInlineImage,numArgs:1,variableArgs:!1};e.Do={id:a.OPS.paintXObject,numArgs:1,variableArgs:!1};e.MP={id:a.OPS.markPoint,numArgs:1,variableArgs:!1};e.DP={id:a.OPS.markPointProps,numArgs:2,variableArgs:!1};e.BMC={id:a.OPS.beginMarkedContent,numArgs:1,variableArgs:!1};e.BDC={id:a.OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1};e.EMC={id:a.OPS.endMarkedContent,numArgs:0,variableArgs:!1};e.BX={id:a.OPS.beginCompat,numArgs:0,variableArgs:!1};e.EX={id:a.OPS.endCompat,numArgs:0,variableArgs:!1};e.BM=null;e.BD=null;e.true=null;e.fa=null;e.fal=null;e.fals=null;e.false=null;e.nu=null;e.nul=null;e.null=null}));return(0,a.shadow)(this,"opMap",e())}static get MAX_INVALID_PATH_OPS(){return(0,a.shadow)(this,"MAX_INVALID_PATH_OPS",20)}constructor(e,t,r){this.parser=new f.Parser({lexer:new f.Lexer(e,EvaluatorPreprocessor.opMap),xref:t});this.stateManager=r;this.nonProcessedArgs=[];this._numInvalidPathOPS=0}get savedStatesDepth(){return this.stateManager.stateStack.length}read(e){for(var t=e.args;;){var r=this.parser.getObj();if(r instanceof n.Cmd){var i=r.cmd,s=EvaluatorPreprocessor.opMap[i];if(!s){(0,a.warn)(`Unknown command "${i}".`);continue}var o=s.id,c=s.numArgs,l=null!==t?t.length:0;if(s.variableArgs)l>c&&(0,a.info)(`Command ${i}: expected [0, ${c}] args, but received ${l} args.`);else{if(l!==c){for(var h=this.nonProcessedArgs;l>c;){h.push(t.shift());l--}for(;l=a.OPS.moveTo&&o<=a.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new a.FormatError("Invalid "+e);(0,a.warn)("Skipping "+e);null!==t&&(t.length=0);continue}}this.preprocessCommand(o,t);e.fn=o;e.args=t;return!0}if(r===n.EOF)return!1;if(null!==r){null===t&&(t=[]);t.push(r);if(t.length>33)throw new a.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case a.OPS.save:this.stateManager.save();break;case a.OPS.restore:this.stateManager.restore();break;case a.OPS.transform:this.stateManager.transform(t)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CMapFactory=t.IdentityCMap=t.CMap=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(12),c=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"];class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,r){this.codespaceRanges[e-1].push(t,r);this.numCodespaceRanges++}mapCidRange(e,t,r){if(t-e>2**24-1)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=r++}mapBfRange(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var a=r.length-1;e<=t;){this._map[e++]=r;r=r.substring(0,a)+String.fromCharCode(r.charCodeAt(a)+1)}}mapBfRangeToArray(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const a=r.length;let i=0;for(;e<=t&&i>>0;const s=i[n];for(let e=0,t=s.length;e=t&&a<=i){r.charcode=a;r.length=n+1;return}}}r.charcode=0;r.length=1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,r){(0,a.unreachable)("should not call mapCidRange")}mapBfRange(e,t,r){(0,a.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,r){(0,a.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,a.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,a.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;var l=function BinaryCMapReaderClosure(){function hexToInt(e,t){for(var r=0,a=0;a<=t;a++)r=r<<8|e[a];return r>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,r){for(var a=0,i=r;i>=0;i--){a+=e[i]+t[i];e[i]=255&a;a>>=8}}function incHex(e,t){for(var r=1,a=t;a>=0&&r>0;a--){r+=e[a];e[a]=255&r;r>>=8}}function BinaryCMapStream(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}BinaryCMapStream.prototype={readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber(){var e,t=0;do{var r=this.readByte();if(r<0)throw new a.FormatError("unexpected EOF in bcmap");e=!(128&r);t=t<<7|127&r}while(!e);return t},readSigned(){var e=this.readNumber();return 1&e?~(e>>>1):e>>>1},readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1},readHexNumber(e,t){var r,i=this.tmpBuf,n=0;do{var s=this.readByte();if(s<0)throw new a.FormatError("unexpected EOF in bcmap");r=!(128&s);i[n++]=127&s}while(!r);for(var o=t,c=0,l=0;o>=0;){for(;l<8&&i.length>0;){c=i[--n]<>=8;l-=8}},readHexSigned(e,t){this.readHexNumber(e,t);for(var r=1&e[t]?255:0,a=0,i=0;i<=t;i++){a=(1&a)<<8|e[i];e[i]=a>>1^r}},readString(){for(var e=this.readNumber(),t="",r=0;r=0;){var m=c>>5;if(7!==m){var p=!!(16&c),b=15&c;if(b+1>16)throw new Error("processBinaryCMap: Invalid dataSize.");var y,v=n.readNumber();switch(m){case 0:n.readHex(h,b);n.readHexNumber(u,b);addHex(u,h,b);t.addCodespaceRange(b+1,hexToInt(h,b),hexToInt(u,b));for(y=1;y>>0}function expectString(e){if(!(0,a.isString)(e))throw new a.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new a.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfchar"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseBfRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfrange"))return;expectString(r);var n=strToInt(r);expectString(r=t.getObj());var s=strToInt(r);r=t.getObj();if(Number.isInteger(r)||(0,a.isString)(r)){var o=Number.isInteger(r)?String.fromCharCode(r):r;e.mapBfRange(n,s,o)}else{if(!(0,i.isCmd)(r,"["))break;r=t.getObj();for(var c=[];!(0,i.isCmd)(r,"]")&&!(0,i.isEOF)(r);){c.push(r);r=t.getObj()}e.mapBfRangeToArray(n,s,c)}}throw new a.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidchar"))return;expectString(r);var a=strToInt(r);expectInt(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseCidRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidrange"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=strToInt(r);expectInt(r=t.getObj());var s=r;e.mapCidRange(a,n,s)}}function parseCodespaceRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcodespacerange"))return;if(!(0,a.isString)(r))break;var n=strToInt(r);r=t.getObj();if(!(0,a.isString)(r))break;var s=strToInt(r);e.addCodespaceRange(r.length,n,s)}throw new a.FormatError("Invalid codespace range.")}function parseWMode(e,t){var r=t.getObj();Number.isInteger(r)&&(e.vertical=!!r)}function parseCMapName(e,t){var r=t.getObj();(0,i.isName)(r)&&(0,a.isString)(r.name)&&(e.name=r.name)}function parseCMap(e,t,r,n){var o,c;e:for(;;)try{var l=t.getObj();if((0,i.isEOF)(l))break;if((0,i.isName)(l)){"WMode"===l.name?parseWMode(e,t):"CMapName"===l.name&&parseCMapName(e,t);o=l}else if((0,i.isCmd)(l))switch(l.cmd){case"endcmap":break e;case"usecmap":(0,i.isName)(o)&&(c=o.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Invalid cMap data: "+e);continue}!n&&c&&(n=c);return n?extendCMap(e,r,n):Promise.resolve(e)}function extendCMap(e,t,r){return createBuiltInCMap(r,t).then((function(t){e.useCMap=t;if(0===e.numCodespaceRanges){for(var r=e.useCMap.codespaceRanges,a=0;a=this.firstChar&&e<=this.lastChar?e:-1},amend(e){(0,a.unreachable)("Should not call amend()")}};return IdentityToUnicodeMap}();t.IdentityToUnicodeMap=k;var S=function OpenTypeFileBuilderClosure(){function writeInt16(e,t,r){e[t]=r>>8&255;e[t+1]=255&r}function writeInt32(e,t,r){e[t]=r>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}function writeData(e,t,r){var a,i;if(r instanceof Uint8Array)e.set(r,t);else if("string"==typeof r)for(a=0,i=r.length;ar;){r<<=1;a++}var i=r*t;return{range:i,entry:a,rangeShift:t*e-i}};OpenTypeFileBuilder.prototype={toArray:function OpenTypeFileBuilder_toArray(){var e=this.sfnt,t=this.tables,r=Object.keys(t);r.sort();var i,n,s,o,c,h=r.length,u=12+16*h,d=[u];for(i=0;i>>0;d.push(u)}var f=new Uint8Array(u);for(i=0;i>>0}writeInt32(f,u+4,m);writeInt32(f,u+8,d[i]);writeInt32(f,u+12,t[c].length);u+=16}return f},addTable:function OpenTypeFileBuilder_addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}};return OpenTypeFileBuilder}(),C=function FontClosure(){function Font(e,t,r){var i;this.name=e;this.loadedName=r.loadedName;this.isType3Font=r.isType3Font;this.missingFile=!1;this.glyphCache=Object.create(null);this.isSerifFont=!!(r.flags&b.Serif);this.isSymbolicFont=!!(r.flags&b.Symbolic);this.isMonospace=!!(r.flags&b.FixedPitch);var n=r.type,s=r.subtype;this.type=n;this.subtype=s;let o="sans-serif";this.isMonospace?o="monospace":this.isSerifFont&&(o="serif");this.fallbackName=o;this.differences=r.differences;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.composite=r.composite;this.cMap=r.cMap;this.ascent=r.ascent/1e3;this.descent=r.descent/1e3;this.fontMatrix=r.fontMatrix;this.bbox=r.bbox;this.defaultEncoding=r.defaultEncoding;this.toUnicode=r.toUnicode;this.fallbackToUnicode=r.fallbackToUnicode||new w;this.toFontChar=[];if("Type3"!==r.type){this.cidEncoding=r.cidEncoding;this.vertical=!!r.vertical;if(this.vertical){this.vmetrics=r.vmetrics;this.defaultVMetrics=r.defaultVMetrics}if(t&&!t.isEmpty){[n,s]=function getFontFileType(e,{type:t,subtype:r,composite:i}){let n,s;if(function isTrueTypeFile(e){var t=e.peekBytes(4);return 65536===(0,l.readUint32)(t,0)||"true"===(0,a.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))n=i?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){var t=e.peekBytes(4);return"OTTO"===(0,a.bytesToString)(t)}(e))n=i?"CIDFontType2":"OpenType";else if(function isType1File(e){var t=e.peekBytes(2);if(37===t[0]&&33===t[1])return!0;if(128===t[0]&&1===t[1])return!0;return!1}(e))n=i?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);if(t[0]>=1&&t[3]>=1&&t[3]<=4)return!0;return!1}(e))if(i){n="CIDFontType0";s="CIDFontType0C"}else{n="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,a.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");n=t;s=r}return[n,s]}(t,r);n===this.type&&s===this.subtype||(0,a.info)(`Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${n}/${s}.`);try{var c;switch(n){case"MMType1":(0,a.info)("MMType1 font ("+e+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var h="Type1C"===s||"CIDFontType0C"===s?new T(t,r):new A(e,t,r);adjustWidths(r);c=this.convert(e,h,r);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";c=this.checkAndRepair(e,t,r);if(this.isOpenType){adjustWidths(r);n="OpenType"}break;default:throw new a.FormatError(`Font ${n} is not supported`)}}catch(e){(0,a.warn)(e);this.fallbackToSystemFont();return}this.data=c;this.fontType=getFontType(n,s);this.fontMatrix=r.fontMatrix;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.toUnicode=r.toUnicode;this.seacMap=r.seacMap}else{t&&(0,a.warn)('Font file is empty in "'+e+'" ('+this.loadedName+")");this.fallbackToSystemFont()}}else{for(i=0;i<256;i++)this.toFontChar[i]=this.differences[i]||r.defaultEncoding[i];this.fontType=a.FontType.TYPE3}}function int16(e,t){return(e<<8)+t}function signedInt16(e,t){var r=(e<<8)+t;return 32768&r?r-65536:r}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,a.bytesToString)(t)}function buildToFontChar(e,t,r){for(var a,i=[],n=0,s=e.length;nc){if(++s>=g.length){(0,a.warn)("Ran out of space in font private use area.");break}o=g[s][0];c=g[s][1]}var u=o++;0===h&&(h=r);i[u]=h;n[l]=u}}return{toFontChar:n,charCodeToGlyphId:i,nextAvailableFontCharCode:o}}function createCmapTable(e,t){var r,i,n,s,o=function getRanges(e,t){var r=[];for(var a in e)e[a]>=t||r.push({fontCharCode:0|a,glyphId:e[a]});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));for(var i=[],n=r.length,s=0;s65535?2:1,l="\0\0"+string16(c)+"\0\0"+(0,a.string32)(4+8*c);for(r=o.length-1;r>=0&&!(o[r][0]<=65535);--r);var h=r+1;o[r][0]<65535&&65535===o[r][1]&&(o[r][1]=65534);var u,d,f,g,m=o[r][1]<65535?1:0,p=h+m,b=S.getSearchParams(p,2),y="",v="",w="",k="",C="",x=0;for(r=0,i=h;r0){v+="ÿÿ";y+="ÿÿ";w+="\0";k+="\0\0"}var I="\0\0"+string16(2*p)+string16(b.range)+string16(b.entry)+string16(b.rangeShift)+v+"\0\0"+y+w+k+C,F="",P="";if(c>1){l+="\0\0\n"+(0,a.string32)(4+8*c+4+I.length);F="";for(r=0,i=o.length;r(u|=0)||!l)&&(l=u);h 123 are reserved for internal usage");o|=1<65535&&(h=65535)}else{l=0;h=255}var f=e.bbox||[0,0,0,0],g=r.unitsPerEm||1/(e.fontMatrix||a.FONT_IDENTITY_MATRIX)[0],m=e.ascentScaled?1:g/1e3,p=r.ascent||Math.round(m*(e.ascent||f[3])),b=r.descent||Math.round(m*(e.descent||f[1]));b>0&&e.descent>0&&f[1]<0&&(b=-b);var y=r.yMax||p,v=-r.yMin||-b;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,a.string32)(i)+(0,a.string32)(n)+(0,a.string32)(s)+(0,a.string32)(o)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(p)+string16(b)+"\0d"+string16(y)+string16(v)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){var t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,a.string32)(t)+"\0\0\0\0"+(0,a.string32)(e.fixedPitch)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createNameTable(e,t){t||(t=[[],[]]);var r,a,i,n,s,o=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||"",t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],c=[];for(r=0,a=o.length;r0;if(u&&"CIDFontType2"===t&&this.cidEncoding.startsWith("Identity-")){const t=(0,o.getGlyphMapForStandardFonts)(),r=[];for(const e in t)r[+e]=t[e];if(/Arial-?Black/i.test(e)){var d=(0,o.getSupplementalGlyphMapForArialBlack)();for(const e in d)r[+e]=d[e]}else if(/Calibri/i.test(e)){const e=(0,o.getSupplementalGlyphMapForCalibri)();for(const t in e)r[+t]=e[t]}this.toUnicode instanceof k||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new w(r)}else if(/Symbol/i.test(i))this.toFontChar=buildToFontChar(s.SymbolSetEncoding,(0,n.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(i)){/Wingdings/i.test(e)&&(0,a.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(s.ZapfDingbatsEncoding,(0,n.getDingbatsGlyphsUnicode)(),this.differences)}else if(u)this.toFontChar=buildToFontChar(this.defaultEncoding,(0,n.getGlyphsUnicode)(),this.differences);else{const t=(0,n.getGlyphsUnicode)(),r=[];this.toUnicode.forEach((e,a)=>{if(!this.composite){var i=this.differences[e]||this.defaultEncoding[e];const r=(0,c.getUnicodeForGlyph)(i,t);-1!==r&&(a=r)}r[+e]=a});if(this.composite&&this.toUnicode instanceof k&&/Verdana/i.test(e)){const e=(0,o.getGlyphMapForStandardFonts)();for(const t in e)r[+t]=e[t]}this.toFontChar=r}this.loadedName=i.split("-")[0];this.fontType=getFontType(t,r)},checkAndRepair:function Font_checkAndRepair(e,t,r){const o=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const r=Object.create(null);r["OS/2"]=null;r.cmap=null;r.head=null;r.hhea=null;r.hmtx=null;r.maxp=null;r.name=null;r.post=null;for(let a=0;a>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0,s=e.pos;e.pos=e.start?e.start:0;e.skip(i);var o=e.getBytes(n);e.pos=s;if("head"===t){o[8]=o[9]=o[10]=o[11]=0;o[17]|=32}return{tag:t,checksum:r,length:n,offset:i,data:o}}function readOpenTypeHeader(e){return{version:(0,a.bytesToString)(e.getBytes(4)),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,r,a,i,n){var s={length:0,sizeOfInstructions:0};if(r-t<=12)return s;var o=e.subarray(t,r),c=signedInt16(o[0],o[1]);if(c<0){!function writeSignedInt16(e,t,r){e[t+1]=r;e[t]=r>>>8}(o,0,c=-1);a.set(o,i);s.length=o.length;return s}var l,h=10,u=0;for(l=0;lo.length)return s;if(!n&&f>0){a.set(o.subarray(0,d),i);a.set([0,0],i+d);a.set(o.subarray(g,y),i+d+2);y-=f;o.length-y>3&&(y=y+3&-4);s.length=y;return s}if(o.length-y>3){y=y+3&-4;a.set(o.subarray(0,y),i);s.length=y;return s}a.set(o,i);s.length=o.length;return s}function readNameTable(e){var r=(t.start?t.start:0)+e.offset;t.pos=r;var i=[[],[]],n=e.length,s=r+n;if(0!==t.getUint16()||n<6)return i;var o,c,l=t.getUint16(),h=t.getUint16(),u=[];for(o=0;os)){t.pos=g;var m=f.name;if(f.encoding){for(var p="",b=0,y=f.length;b0&&(h+=S-1)}}else{if(b||v){(0,a.warn)("TT: nested FDEFs not allowed");p=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:l,i:h}}else if(!b&&!v){s=f[f.length-1];if(isNaN(s))(0,a.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,a.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!m.includes(s)){g.push({data:l,i:h,stackTop:f.length-1});m.push(s);if(!(o=t.functionsDefined[s])){(0,a.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}l=o.data;h=o.i}}}if(!b&&!v){let e=0;k<=142?e=c[k]:k>=192&&k<=223?e=-1:k>=224&&(e=-2);if(k>=113&&k<=117){i=f.pop();isNaN(i)||(e=2*-i)}for(;e<0&&f.length>0;){f.pop();e++}for(;e>0;){f.push(NaN);e--}}}t.tooComplexToFollowFunctions=p;var C=[l];h>l.length&&C.push(new Uint8Array(h-l.length));if(d>u){(0,a.warn)("TT: complementing a missing function tail");C.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){var r,a,i=0;for(r=0,a=t.length;r>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:r,minorVersion:i,numFonts:n,offsetTable:s};switch(r){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new a.FormatError(`Invalid TrueType Collection majorVersion: ${r}.`)}(e);for(let n=0;n0||!(r.cMap instanceof u.IdentityCMap));if("OTTO"===l.version&&!t||!h.head||!h.hhea||!h.maxp||!h.post){g=new d.Stream(h["CFF "].data);f=new T(g,r);adjustWidths(r);return this.convert(e,f,r)}delete h.glyf;delete h.loca;delete h.fpgm;delete h.prep;delete h["cvt "];this.isOpenType=!0}if(!h.maxp)throw new a.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+h.maxp.offset;var p=t.getInt32();const b=t.getUint16();let v=b+1,w=!0;if(v>65535){w=!1;v=b;(0,a.warn)("Not enough space in glyfs to duplicate first glyph.")}var k=0,C=0;if(p>=65536&&h.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){h.maxp.data[14]=0;h.maxp.data[15]=2}t.pos+=4;k=t.getUint16();t.pos+=4;C=t.getUint16()}h.maxp.data[4]=v>>8;h.maxp.data[5]=255&v;var x=function sanitizeTTPrograms(e,t,r,i){var n={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,n);t&&sanitizeTTProgram(t,n);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,a.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(var r=0,i=e.functionsUsed.length;rt){(0,a.warn)("TT: invalid function id: "+r);e.hintsValid=!1;return}if(e.functionsUsed[r]&&!e.functionsDefined[r]){(0,a.warn)("TT: undefined function: "+r);e.hintsValid=!1;return}}}(n,i);if(r&&1&r.length){var s=new Uint8Array(r.length+1);s.set(r.data);r.data=s}return n.hintsValid}(h.fpgm,h.prep,h["cvt "],k);if(!x){delete h.fpgm;delete h.prep;delete h["cvt "]}!function sanitizeMetrics(e,t,r,i,n){if(t){e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=8;e.pos+=2;var s=e.getUint16();if(s>i){(0,a.info)("The numOfMetrics ("+s+") should not be greater than the numGlyphs ("+i+")");s=i;t.data[34]=(65280&s)>>8;t.data[35]=255&s}var o=i-s-(r.length-4*s>>1);if(o>0){var c=new Uint8Array(r.length+2*o);c.set(r.data);if(n){c[r.length]=r.data[2];c[r.length+1]=r.data[3]}r.data=c}}else r&&(r.data=null)}(t,h.hhea,h.hmtx,v,w);if(!h.head)throw new a.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,r){var i=e.data,n=function int32(e,t,r,a){return(e<<24)+(t<<16)+(r<<8)+a}(i[0],i[1],i[2],i[3]);if(n>>16!=1){(0,a.info)("Attempting to fix invalid version in head table: "+n);i[0]=0;i[1]=1;i[2]=0;i[3]=0}var s=int16(i[50],i[51]);if(s<0||s>1){(0,a.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);var o=t+1;if(r===o<<1){i[50]=0;i[51]=0}else{if(r!==o<<2)throw new a.FormatError("Could not fix indexToLocFormat: "+s);i[50]=0;i[51]=1}}}(h.head,b,m?h.loca.length:0);var A=Object.create(null);if(m){var I=int16(h.head.data[50],h.head.data[51]),F=function sanitizeGlyphLocations(e,t,r,a,i,n,s){var o,c,l;if(a){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,r){e[t]=r>>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,r){e[t]=r>>9&255;e[t+1]=r>>1&255}}var h=n?r+1:r,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;var f,g,m=t.data,p=m.length,b=new Uint8Array(p);const y=[];for(f=0,g=0;fp&&(e=p);y.push({index:f,offset:e,endOffset:0})}y.sort((e,t)=>e.offset-t.offset);for(f=0;fe.index-t.index);var v=Object.create(null),w=0;l(d,0,w);for(f=0,g=o;fs&&(s=k.sizeOfInstructions);l(d,g,w+=S)}if(0===w){var C=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(f=0,g=o;fx+w)t.data=b.subarray(0,x+w);else{t.data=new Uint8Array(x+w);t.data.set(b.subarray(0,w))}t.data.set(b.subarray(0,x),w);l(e.data,d.length-o,w+x)}else t.data=b.subarray(0,w);return{missingGlyphs:v,maxSizeOfInstructions:s}}(h.loca,h.glyf,b,I,x,w,C);A=F.missingGlyphs;if(p>=65536&&h.maxp.length>=22){h.maxp.data[26]=F.maxSizeOfInstructions>>8;h.maxp.data[27]=255&F.maxSizeOfInstructions}}if(!h.hhea)throw new a.FormatError('Required "hhea" table is not found');if(0===h.hhea.data[10]&&0===h.hhea.data[11]){h.hhea.data[10]=255;h.hhea.data[11]=255}var P={unitsPerEm:int16(h.head.data[18],h.head.data[19]),yMax:int16(h.head.data[42],h.head.data[43]),yMin:signedInt16(h.head.data[38],h.head.data[39]),ascent:int16(h.hhea.data[4],h.hhea.data[5]),descent:signedInt16(h.hhea.data[6],h.hhea.data[7])};this.ascent=P.ascent/P.unitsPerEm;this.descent=P.descent/P.unitsPerEm;h.post&&function readPostScriptTable(e,r,i){var n=(t.start?t.start:0)+e.offset;t.pos=n;var s,o=n+e.length,c=t.getInt32();t.skip(28);var l,h=!0;switch(c){case 65536:s=y;break;case 131072:var u=t.getUint16();if(u!==i){h=!1;break}var d=[];for(l=0;l=32768){h=!1;break}d.push(f)}if(!h)break;for(var g=[],m=[];t.pos65535)throw new a.FormatError("Max size of CID is 65,535");var r=-1;O?r=t:void 0!==B[t]&&(r=B[t]);r>=0&&r>>0,g=!1;if(!o||o.platformId!==u||o.encodingId!==d){if(0!==u||0!==d&&1!==d&&3!==d)if(1===u&&0===d)g=!0;else if(3!==u||1!==d||!i&&o){if(r&&3===u&&0===d){g=!0;l=!0}}else{g=!0;r||(l=!0)}else g=!0;g&&(o={platformId:u,encodingId:d,offset:f});if(l)break}}o&&(t.pos=s+o.offset);if(!o||-1===t.peekByte()){(0,a.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var m=t.getUint16();t.skip(4);var p,b,y=!1,v=[];if(0===m){for(p=0;p<256;p++){var w=t.getByte();w&&v.push({charCode:p,glyphId:w})}y=!0}else if(4===m){var k=t.getUint16()>>1;t.skip(6);var S,C=[];for(S=0;S>1)-(k-S);n.offsetIndex=T;x=Math.max(x,T+n.end-n.start+1)}else n.offsetIndex=-1}var I=[];for(p=0;p=61440&&t<=61695&&(t&=255);E[t]=N[e].glyphId}if(r.glyphNames&&e.length)for(let t=0;t<256;++t)if(void 0===E[t]&&e[t]){U=e[t];const a=r.glyphNames.indexOf(U);a>0&&hasGlyph(a)&&(E[t]=a)}}0===E.length&&(E[0]=0);let H=v-1;w||(H=0);var z=adjustMapping(E,hasGlyph,H);this.toFontChar=z.toFontChar;h.cmap={tag:"cmap",data:createCmapTable(z.charCodeToGlyphId,v)};h["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;var r=t.getUint16();t.skip(60);var a=t.getUint16();if(r<4&&768&a)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(h["OS/2"],t)||(h["OS/2"]={tag:"OS/2",data:createOS2Table(r,z.charCodeToGlyphId,P)});if(!m)try{g=new d.Stream(h["CFF "].data);f=new i.CFFParser(g,r,!0).parse();f.duplicateFirstGlyph();var G=new i.CFFCompiler(f);h["CFF "].data=G.compile()}catch(e){(0,a.warn)("Failed to compile font "+r.loadedName)}if(h.name){var W=readNameTable(h.name);h.name.data=createNameTable(e,W)}else h.name={tag:"name",data:createNameTable(this.name)};var X=new S(l.version);for(var V in h)X.addTable(V,h[V].data);return X.toArray()},convert:function Font_convert(e,t,r){r.fixedPitch=!1;r.builtInEncoding&&function adjustToUnicode(e,t){if(!e.hasIncludedToUnicodeMap&&!(e.hasEncoding||t===e.defaultEncoding||e.toUnicode instanceof k)){var r=[],a=(0,n.getGlyphsUnicode)();for(var i in t){var s=t[i],o=(0,c.getUnicodeForGlyph)(s,a);-1!==o&&(r[i]=String.fromCharCode(o))}e.toUnicode.amend(r)}}(r,r.builtInEncoding);let i=1;t instanceof T&&(i=t.numGlyphs-1);var o=t.getGlyphMapping(r),l=adjustMapping(o,t.hasGlyphId.bind(t),i);this.toFontChar=l.toFontChar;var h=t.numGlyphs;function getCharCodes(e,t){var r=null;for(var a in e)if(t===e[a]){r||(r=[]);r.push(0|a)}return r}function createCharCode(e,t){for(var r in e)if(t===e[r])return 0|r;l.charCodeToGlyphId[l.nextAvailableFontCharCode]=t;return l.nextAvailableFontCharCode++}var u=t.seacs;if(u&&u.length){var d=r.fontMatrix||a.FONT_IDENTITY_MATRIX,f=t.getCharset(),g=Object.create(null);for(var m in u){var p=u[m|=0],b=s.StandardEncoding[p[2]],y=s.StandardEncoding[p[3]],v=f.indexOf(b),w=f.indexOf(y);if(!(v<0||w<0)){var C={x:p[0]*d[0]+p[1]*d[2]+d[4],y:p[0]*d[1]+p[1]*d[3]+d[5]},x=getCharCodes(o,m);if(x)for(let e=0,t=x.length;e=0?a:0}}else if(l)for(i in t)c[i]=t[i];else{o=s.StandardEncoding;for(i=0;i=0?a:0}}var h,u=e.differences;if(u)for(i in u){var d=u[i];if(-1===(a=r.indexOf(d))){h||(h=(0,n.getGlyphsUnicode)());var f=recoverGlyphName(d,h);f!==d&&(a=r.indexOf(f))}c[i]=a>=0?a:0}return c}var A=function Type1FontClosure(){function findBlock(e,t,r){for(var a,i=e.length,n=t.length,s=i-n,o=r,c=!1;o=n){o+=a;for(;o=0&&(n[s]=r)}return type1FontGlyphMapping(e,n,a)},hasGlyphId:function Type1Font_hasGlyphID(e){return!(e<0||e>=this.numGlyphs)&&(0===e||this.charstrings[e-1].charstring.length>0)},getSeacs:function Type1Font_getSeacs(e){var t,r,a=[];for(t=0,r=e.length;t0;y--)b[y]-=b[y-1];g.setByName(p,b)}}s.topDict.privateDict=g;var v=new i.CFFIndex;for(l=0,h=a.length;l=t)throw new a.FormatError("Invalid CFF header");if(0!==r){(0,a.info)("cff data is shifted");e=e.subarray(r);this.bytes=e}var i=e[0],n=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(i,n,s,o),endPos:s}}parseDict(e){var t=0;function parseOperand(){var r=e[t++];if(30===r)return function parseFloatOperand(){var r="";const a=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];var i=e.length;for(;t>4,o=15&n;if(15===s)break;r+=a[s];if(15===o)break;r+=a[o]}return parseFloat(r)}();if(28===r)return r=((r=e[t++])<<24|e[t++]<<16)>>16;if(29===r)return r=(r=(r=(r=e[t++])<<8|e[t++])<<8|e[t++])<<8|e[t++];if(r>=32&&r<=246)return r-139;if(r>=247&&r<=250)return 256*(r-247)+e[t++]+108;if(r>=251&&r<=254)return-256*(r-251)-e[t++]-108;(0,a.warn)('CFFParser_parseDict: "'+r+'" is a reserved command.');return NaN}var r=[],i=[];t=0;for(var n=e.length;t10)return!1;for(var o=r.stackSize,c=r.stack,l=i.length,h=0;h>16;h+=2;o++}else if(14===u){if(o>=4){o-=4;if(this.seacAnalysisEnabled){r.seac=c.slice(o,o+4);return!1}}d=e[u]}else if(u>=32&&u<=246){c[o]=u-139;o++}else if(u>=247&&u<=254){c[o]=u<251?(u-247<<8)+i[h]+108:-(u-251<<8)-i[h]-108;h++;o++}else if(255===u){c[o]=(i[h]<<24|i[h+1]<<16|i[h+2]<<8|i[h+3])/65536;h+=4;o++}else if(19===u||20===u){r.hints+=o>>1;h+=r.hints+7>>3;o%=2;d=e[u]}else{if(10===u||29===u){var g;if(!(g=10===u?n:s)){d=e[u];(0,a.warn)("Missing subrsIndex for "+d.id);return!1}var m=32768;g.count<1240?m=107:g.count<33900&&(m=1131);var p=c[--o]+m;if(p<0||p>=g.count||isNaN(p)){d=e[u];(0,a.warn)("Out of bounds subrIndex for "+d.id);return!1}r.stackSize=o;r.callDepth++;if(!this.parseCharString(r,g.get(p),n,s))return!1;r.callDepth--;o=r.stackSize;continue}if(11===u){r.stackSize=o;return!0}d=e[u]}if(d){if(d.stem){r.hints+=o>>1;if(3===u||23===u)r.hasVStems=!0;else if(r.hasVStems&&(1===u||18===u)){(0,a.warn)("CFF stem hints are in wrong order");i[h-1]=1===u?3:23}}if("min"in d&&!r.undefStack&&o=2&&d.stem?o%=2:o>1&&(0,a.warn)("Found too many parameters for stack-clearing command");o>0&&c[o-1]>=0&&(r.width=c[o-1])}if("stackDelta"in d){"stackFn"in d&&d.stackFn(c,o);o+=d.stackDelta}else if(d.stackClearing)o=0;else if(d.resetStack){o=0;r.undefStack=!1}else if(d.undefStack){o=0;r.undefStack=!0;r.firstStackClearing=!1}}}r.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:r,fdSelect:i,fdArray:n,privateDict:s}){for(var o=[],c=[],l=e.count,h=0;h=n.length){(0,a.warn)("Invalid fd index for glyph index.");f=!1}f&&(g=(m=n[p].privateDict).subrsIndex)}else t&&(g=t);f&&(f=this.parseCharString(d,u,g,r));if(null!==d.width){const e=m.getByName("nominalWidthX");c[h]=e+d.width}else{const e=m.getByName("defaultWidthX");c[h]=e}null!==d.seac&&(o[h]=d.seac);f||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){var t=this.createDict(l,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(e.hasName("Private")){var t=e.getByName("Private");if(Array.isArray(t)&&2===t.length){var r=t[0],a=t[1];if(0===r||a>=this.bytes.length)this.emptyPrivateDictionary(e);else{var i=a+r,n=this.bytes.subarray(a,i),s=this.parseDict(n),o=this.createDict(l,s,e.strings);e.privateDict=o;if(o.getByName("Subrs")){var c=o.getByName("Subrs"),h=a+c;if(0===c||h>=this.bytes.length)this.emptyPrivateDictionary(e);else{var u=this.parseIndex(h);o.subrsIndex=u.obj}}}}else e.removeByName("Private")}else this.emptyPrivateDictionary(e)}parseCharsets(e,t,r,n){if(0===e)return new CFFCharset(!0,h.ISO_ADOBE,i.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,h.EXPERT,i.ExpertCharset);if(2===e)return new CFFCharset(!0,h.EXPERT_SUBSET,i.ExpertSubsetCharset);var s=this.bytes,o=e,c=s[e++];const l=[n?0:".notdef"];var u,d,f;t-=1;switch(c){case 0:for(f=0;f=65535)(0,a.warn)("Not enough space in charstrings to duplicate first glyph.");else{var e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}hasGlyphId(e){return!(e<0||e>=this.charStrings.count)&&this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,r,a){this.major=e;this.minor=t;this.hdrSize=r;this.offSize=a}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-391<=this.strings.length?this.strings[e-391]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+391:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;var r=t.length;if(0===r)return!0;for(var i=0;i=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new a.FormatError("Already tracking location of "+e);this.offsets[e]=t}offset(e){for(var t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,r){if(!(e in this.offsets))throw new a.FormatError("Not tracking location of "+e);for(var i=r.data,n=this.offsets[e],s=0,o=t.length;s>24&255;i[h]=f>>16&255;i[u]=f>>8&255;i[d]=255&f}}}class CFFCompiler{constructor(e){this.cff=e}compile(){var e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},r=this.compileHeader(e.header);t.add(r);var i=this.compileNameIndex(e.names);t.add(i);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){var n=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(var s=0,o=e.fdArray.length;s=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e]}compileHeader(e){return[e.major,e.minor,e.hdrSize,e.offSize]}compileNameIndex(e){for(var t=new CFFIndex,r=0,i=e.length;r"~"||"["===l||"]"===l||"("===l||")"===l||"{"===l||"}"===l||"<"===l||">"===l||"/"===l||"%"===l)&&(l="_");o[c]=l}""===(o=o.join(""))&&(o="Bad_Font_Name");t.add((0,a.stringToBytes)(o))}return this.compileIndex(t)}compileTopDicts(e,t,r){for(var a=[],i=new CFFIndex,n=0,s=e.length;n>8&255,255&s]);else{n=new Uint8Array(1+2*s);n[0]=0;let t=0;const i=e.charset.length;let o=!1;for(let s=1;s>8&255;n[s+1]=255&c}}return this.compileTypedArray(n)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let r,a;switch(t){case 0:r=new Uint8Array(1+e.fdSelect.length);r[0]=t;for(a=0;a>8&255,255&i,n];for(a=1;a>8&255,255&a,t);n=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(a>>8&255,255&a);r=new Uint8Array(s)}return this.compileTypedArray(r)}compileTypedArray(e){for(var t=[],r=0,a=e.length;r>8&255,255&a],o=1;for(i=0;i>8&255,255&c):3===n?s.push(c>>16&255,c>>8&255,255&c):s.push(c>>>24&255,c>>16&255,c>>8&255,255&c);r[i]&&(c+=r[i].length)}for(i=0;i=65520&&e<=65535?0:e>=62976&&e<=63743?i()[e]||e:173===e?45:e};t.reverseIfRtl=function reverseIfRtl(e){var t=e.length;if(t<=1||!function isRTLRangeFor(e){var t=n[13];return e>=t.begin&&e=(t=n[11]).begin&&e=0;a--)r+=e[a];return r};t.getUnicodeRangeFor=function getUnicodeRangeFor(e){for(var t=0,r=n.length;t=a.begin&&e=5&&i<=7))return-1;a=e.substring(1)}if(a===a.toUpperCase()&&(r=parseInt(a,16))>=0)return r}return-1}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var a=r(2),i=r(31),n=r(34),s=r(33),o=r(12),c=function FontRendererFactoryClosure(){function getLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function getUshort(e,t){return e[t]<<8|e[t+1]}function getSubroutineBias(e){const t=e.length;let r=32768;t<1240?r=107:t<33900&&(r=1131);return r}function parseCmap(e,t,r){var i,n,s,o=1===getUshort(e,t+2)?getLong(e,t+8):getLong(e,t+16),c=getUshort(e,t+o);if(4===c){getUshort(e,t+o+2);var l=getUshort(e,t+o+6)>>1;n=t+o+14;i=[];for(s=0;s>1;r=0&&e>16,s=0,o=0;i+=10;if(n<0)do{a=e[i]<<8|e[i+1];var c,l,h=e[i+2]<<8|e[i+3];i+=4;if(1&a){c=(e[i]<<24|e[i+1]<<16)>>16;l=(e[i+2]<<24|e[i+3]<<16)>>16;i+=4}else{c=e[i++];l=e[i++]}if(2&a){s=c;o=l}else{s=0;o=0}var u=1,d=1,f=0,g=0;if(8&a){u=d=(e[i]<<24|e[i+1]<<16)/1073741824;i+=2}else if(64&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;d=(e[i+2]<<24|e[i+3]<<16)/1073741824;i+=4}else if(128&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;f=(e[i+2]<<24|e[i+3]<<16)/1073741824;g=(e[i+4]<<24|e[i+5]<<16)/1073741824;d=(e[i+6]<<24|e[i+7]<<16)/1073741824;i+=8}var m=r.glyphs[h];if(m){t.push({cmd:"save"});t.push({cmd:"transform",args:[u,f,g,d,s,o]});compileGlyf(m,t,r);t.push({cmd:"restore"})}}while(32&a);else{var p,b,y=[];for(p=0;p0;)w.push({flags:a})}for(p=0;p>16;i+=2;break;case 2:s-=e[i++];break;case 18:s+=e[i++]}w[p].x=s}for(p=0;p>16;i+=2;break;case 4:o-=e[i++];break;case 36:o+=e[i++]}w[p].y=o}var S=0;for(i=0;i>1;v=!0;break;case 4:c+=n.pop();moveTo(o,c);v=!0;break;case 5:for(;n.length>0;){o+=n.shift();c+=n.shift();lineTo(o,c)}break;case 6:for(;n.length>0;){lineTo(o+=n.shift(),c);if(0===n.length)break;c+=n.shift();lineTo(o,c)}break;case 7:for(;n.length>0;){c+=n.shift();lineTo(o,c);if(0===n.length)break;lineTo(o+=n.shift(),c)}break;case 8:for(;n.length>0;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:b=n.pop();y=null;if(r.isCFFCIDFont){const e=r.fdSelect.getFDIndex(i);if(e>=0&&eMath.abs(c-S)?o+=n.shift():c+=n.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new a.FormatError("unknown operator: 12 "+w)}break;case 14:if(n.length>=4){var C=n.pop(),x=n.pop();c=n.pop();o=n.pop();t.push({cmd:"save"});t.push({cmd:"translate",args:[o,c]});var A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[C]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId);t.push({cmd:"restore"});A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[x]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId)}return;case 18:l+=n.length>>1;v=!0;break;case 19:case 20:h+=(l+=n.length>>1)+7>>3;v=!0;break;case 21:c+=n.pop();moveTo(o+=n.pop(),c);v=!0;break;case 22:moveTo(o+=n.pop(),c);v=!0;break;case 23:l+=n.length>>1;v=!0;break;case 24:for(;n.length>2;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}o+=n.shift();c+=n.shift();lineTo(o,c);break;case 25:for(;n.length>6;){o+=n.shift();c+=n.shift();lineTo(o,c)}u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:n.length%2&&(o+=n.shift());for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d;c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:n.length%2&&(c+=n.shift());for(;n.length>0;)bezierCurveTo(u=o+n.shift(),f=c,d=u+n.shift(),g=f+n.shift(),o=d+n.shift(),c=g);break;case 28:n.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:b=n.pop()+r.gsubrsBias;(y=r.gsubrs[b])&&parse(y);break;case 30:for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===n.length)break;u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c)}break;case 31:for(;n.length>0;){u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c);if(0===n.length)break;u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(w<32)throw new a.FormatError("unknown operator: "+w);if(w<247)n.push(w-139);else if(w<251)n.push(256*(w-247)+e[h++]+108);else if(w<255)n.push(256*-(w-251)-e[h++]-108);else{n.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}v&&(n.length=0)}}(e)}(e,t,this,r)}}return{create:function FontRendererFactory_create(e,t){for(var r,i,n,s,o,c,l=new Uint8Array(e.data),h=getUshort(l,4),u=0,d=12;ua)return!0;for(var i=a-e,n=i;n>8&255,255&s);else{s=65536*s|0;this.output.push(255,s>>24&255,s>>16&255,s>>8&255,255&s)}}this.output.push.apply(this.output,t);r?this.stack.splice(i,e):this.stack.length=0;return!1}};return Type1CharString}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,r){if(r>=e.length)return new Uint8Array(0);var a,i,n=0|t;for(a=0;a>8;n=52845*(c+n)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}function Type1Parser(e,t,r){if(t){var a=e.getBytes(),s=!((isHexDigit(a[0])||(0,i.isWhiteSpace)(a[0]))&&isHexDigit(a[1])&&isHexDigit(a[2])&&isHexDigit(a[3])&&isHexDigit(a[4])&&isHexDigit(a[5])&&isHexDigit(a[6])&&isHexDigit(a[7]));e=new n.Stream(s?decrypt(a,55665,4):function decryptAscii(e,t,r){var a,i,n=0|t,s=e.length,o=new Uint8Array(s>>>1);for(a=0,i=0;a>8;n=52845*(h+n)+22719&65535}}}return o.slice(r,i)}(a,55665,4))}this.seacAnalysisEnabled=!!r;this.stream=e;this.nextChar()}Type1Parser.prototype={readNumberArray:function Type1Parser_readNumberArray(){this.getToken();for(var e=[];;){var t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e},readNumber:function Type1Parser_readNumber(){var e=this.getToken();return parseFloat(e||0)},readInt:function Type1Parser_readInt(){var e=this.getToken();return 0|parseInt(e||0,10)},readBoolean:function Type1Parser_readBoolean(){return"true"===this.getToken()?1:0},nextChar:function Type1_nextChar(){return this.currentChar=this.stream.getByte()},getToken:function Type1Parser_getToken(){for(var e=!1,t=this.currentChar;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}var r="";do{r+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,i.isWhiteSpace)(t)&&!isSpecial(t));return r},readCharStrings:function Type1Parser_readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)},extractFontProgram:function Type1Parser_extractFontProgram(e){var t=this.stream,r=[],a=[],i=Object.create(null);i.lenIV=4;for(var n,s,c,l,h,u={subrs:[],charstrings:[],properties:{privateData:i}};null!==(n=this.getToken());)if("/"===n)switch(n=this.getToken()){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;null!==(n=this.getToken())&&"end"!==n;)if("/"===n){var d=this.getToken();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();a.push({glyph:d,encoded:h})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();r[e]=h}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var f=this.readNumberArray();f.length>0&&f.length,0;break;case"StemSnapH":case"StemSnapV":u.properties.privateData[n]=this.readNumberArray();break;case"StdHW":case"StdVW":u.properties.privateData[n]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":u.properties.privateData[n]=this.readNumber();break;case"ForceBold":u.properties.privateData[n]=this.readBoolean()}for(var g=0;g-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=m.width)}}return u},extractFontHeader:function Type1Parser_extractFontHeader(e){for(var t;null!==(t=this.getToken());)if("/"===t)switch(t=this.getToken()){case"FontMatrix":var r=this.readNumberArray();e.fontMatrix=r;break;case"Encoding":var i,n=this.getToken();if(/^\d+$/.test(n)){i=[];var s=0|parseInt(n,10);this.getToken();for(var o=0;o=d||I<=0)(0,a.info)("Bad shading domain.");else{var P,E=new Float32Array(l.numComps),B=new Float32Array(1);for(let e=0;e<=10;e++){B[0]=u+e*I;T(B,0,E,0);P=l.getRgb(E,0);var O=a.Util.makeCssRgb(P[0],P[1],P[2]);F.push([e/10,O])}var M="transparent";if(e.has("Background")){P=l.getRgb(e.get("Background"),0);M=a.Util.makeCssRgb(P[0],P[1],P[2])}if(!m){F.unshift([0,M]);F[1][0]+=g.SMALL_NUMBER}if(!p){F[F.length-1][0]-=g.SMALL_NUMBER;F.push([1,M])}this.colorStops=F}}RadialAxial.prototype={getIR:function RadialAxial_getIR(){var e,t,r,i,n,s=this.coordsArr,l=this.shadingType;if(l===o){t=[s[0],s[1]];r=[s[2],s[3]];i=null;n=null;e="axial"}else if(l===c){t=[s[0],s[1]];r=[s[3],s[4]];i=s[2];n=s[5];e="radial"}else(0,a.unreachable)("getPattern type unknown: "+l);var h=this.matrix;if(h){t=a.Util.applyTransform(t,h);r=a.Util.applyTransform(r,h);if(l===c){var u=a.Util.singularValueDecompose2dScale(h);i*=u[0];n*=u[1]}}return["RadialAxial",e,this.bbox,this.colorStops,t,r,i,n]}};return RadialAxial}();g.Mesh=function MeshClosure(){function MeshStreamReader(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;var r=t.numComps;this.tmpCompsBuf=new Float32Array(r);var a=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(a):this.tmpCompsBuf}MeshStreamReader.prototype={get hasData(){if(this.stream.end)return this.stream.pos0)return!0;var e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0},readBits:function MeshStreamReader_readBits(e){var t=this.buffer,r=this.bufferLength;if(32===e){if(0===r)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var a=this.stream.getByte();this.buffer=a&(1<>r)>>>0}if(8===e&&0===r)return this.stream.getByte();for(;r>r},align:function MeshStreamReader_align(){this.buffer=0;this.bufferLength=0},readFlag:function MeshStreamReader_readFlag(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function MeshStreamReader_readCoordinate(){var e=this.context.bitsPerCoordinate,t=this.readBits(e),r=this.readBits(e),a=this.context.decode,i=e<32?1/((1<o?o:t;r=r>c?c:r;a=a>c)*h;l&=(1<r?e=r:e0&&(d=i[h-1]);var f=a[1];h>1,c=a.length>>1,u=new l(s),d=Object.create(null),f=8192,g=new Float32Array(c);return function constructPostScriptFromIRResult(e,t,r,a){var i,s,l="",h=g;for(i=0;i(v=n[2*i+1]))&&(s=v);p[i]=s}if(f>0){f--;d[l]=p}r.set(p,a)}else r.set(m,a)}}}}();var c=function PostScriptStackClosure(){function PostScriptStack(e){this.stack=e?Array.prototype.slice.call(e,0):[]}PostScriptStack.prototype={push:function PostScriptStack_push(e){if(this.stack.length>=100)throw new Error("PostScript function stack overflow.");this.stack.push(e)},pop:function PostScriptStack_pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()},copy:function PostScriptStack_copy(e){if(this.stack.length+e>=100)throw new Error("PostScript function stack overflow.");for(var t=this.stack,r=t.length-e,a=e-1;a>=0;a--,r++)t.push(t[r])},index:function PostScriptStack_index(e){this.push(this.stack[this.stack.length-e-1])},roll:function PostScriptStack_roll(e,t){var r,a,i,n=this.stack,s=n.length-e,o=n.length-1,c=s+(t-Math.floor(t/e)*e);for(r=s,a=o;r0?n.push(r<>a);break;case"ceiling":r=n.pop();n.push(Math.ceil(r));break;case"copy":r=n.pop();n.copy(r);break;case"cos":r=n.pop();n.push(Math.cos(r));break;case"cvi":r=0|n.pop();n.push(r);break;case"cvr":break;case"div":a=n.pop();r=n.pop();n.push(r/a);break;case"dup":n.copy(1);break;case"eq":a=n.pop();r=n.pop();n.push(r===a);break;case"exch":n.roll(2,1);break;case"exp":a=n.pop();r=n.pop();n.push(r**a);break;case"false":n.push(!1);break;case"floor":r=n.pop();n.push(Math.floor(r));break;case"ge":a=n.pop();r=n.pop();n.push(r>=a);break;case"gt":a=n.pop();r=n.pop();n.push(r>a);break;case"idiv":a=n.pop();r=n.pop();n.push(r/a|0);break;case"index":r=n.pop();n.index(r);break;case"le":a=n.pop();r=n.pop();n.push(r<=a);break;case"ln":r=n.pop();n.push(Math.log(r));break;case"log":r=n.pop();n.push(Math.log(r)/Math.LN10);break;case"lt":a=n.pop();r=n.pop();n.push(r=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}function PostScriptCompiler(){}PostScriptCompiler.prototype={compile:function PostScriptCompiler_compile(e,t,r){var a,i,n,s,o,c,l,h,u=[],d=[],f=t.length>>1,g=r.length>>1,m=0;for(let e=0;ee.min){s.unshift("Math.max(",i,", ");s.push(")")}if(n=0&&(t>=65&&t<=90||t>=97&&t<=122);)r.push(String.fromCharCode(t));const a=r.join("");switch(a.toLowerCase()){case"if":return o.IF;case"ifelse":return o.IFELSE;default:return o.getOperator(a)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const r=parseFloat(t.join(""));if(isNaN(r))throw new a.FormatError("Invalid floating point number: "+r);return r}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t,r){var c=!0,l=e.length;if(0===l||r)return createBidiText(e,c,r);s.length=l;o.length=l;var h,u,d=0;for(h=0;h=0&&"ET"===o[k];--k)o[k]="EN";for(k=h+1;k0&&(C=o[h-1]);var x=v;S+1A&&isOdd(A)&&(I=A)}for(A=T;A>=I;--A){var F=-1;for(h=0,u=m.length;h=0){reverseValues(s,F,h);F=-1}}else F<0&&(F=h);F>=0&&reverseValues(s,F,m.length)}for(h=0,u=s.length;h"!==P||(s[h]="")}return createBidiText(s.join(""),c)};var a=r(2),i=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],n=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,r){for(var a=t,i=e.length;a>>8;t[r++]=255&i}}}else{if(!(0,a.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e;r=t.byteLength}const i=r>>2,n=r-4*i,s=new Uint32Array(t.buffer,0,i);let o=0,c=0,l=this.h1,h=this.h2;const u=3432918353,d=461845907;for(let e=0;e>>17;o=o*d&4294901760|13715*o&65535;l^=o;l=l<<13|l>>>19;l=5*l+3864292196}else{c=s[e];c=c*u&4294901760|11601*c&65535;c=c<<15|c>>>17;c=c*d&4294901760|13715*c&65535;h^=c;h=h<<13|h>>>19;h=5*h+3864292196}o=0;switch(n){case 3:o^=t[4*i+2]<<16;case 2:o^=t[4*i+1]<<8;case 1:o^=t[4*i];o=o*u&4294901760|11601*o&65535;o=o<<15|o>>>17;o=o*d&4294901760|13715*o&65535;1&i?l^=o:h^=o}this.h1=l;this.h2=h}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&4294901760|36045*e&65535;t=4283543511*t&4294901760|(2950163797*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;e=444984403*e&4294901760|60499*e&65535;t=3301882366*t&4294901760|(3120437893*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;const r=(e>>>0).toString(16),a=(t>>>0).toString(16);return r.padStart(8,"0")+a.padStart(8,"0")}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var a=r(2),i=r(5),n=r(23),s=r(12),o=r(18),c=r(21);function decodeAndClamp(e,t,r,a){(e=t+e*r)<0?e=0:e>a&&(e=a);return e}function resizeImageMask(e,t,r,a,i,n){var s=i*n;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);var c,l,h,u,d=r/i,f=a/n,g=0,m=new Uint16Array(i),p=r;for(c=0;c0&&Number.isInteger(r.height)&&r.height>0&&(r.width!==p||r.height!==b)){(0,a.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");p=r.width;b=r.height}if(p<1||b<1)throw new a.FormatError(`Invalid image width: ${p} or height: ${b}`);this.width=p;this.height=b;this.interpolate=f.get("Interpolate","I")||!1;this.imageMask=f.get("ImageMask","IM")||!1;this.matte=f.get("Matte")||!1;var y=r.bitsPerComponent;if(!y&&!(y=f.get("BitsPerComponent","BPC"))){if(!this.imageMask)throw new a.FormatError("Bits per component missing in image: "+this.imageMask);y=1}this.bpc=y;if(!this.imageMask){let o=f.getRaw("ColorSpace")||f.getRaw("CS");if(!o){(0,a.info)("JPX images (which do not require color spaces)");switch(r.numComps){case 1:o=i.Name.get("DeviceGray");break;case 3:o=i.Name.get("DeviceRGB");break;case 4:o=i.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${r.numComps} color components not supported.`)}}this.colorSpace=n.ColorSpace.parse({cs:o,xref:e,resources:s?t:null,pdfFunctionFactory:u,localColorSpaceCache:d});this.numComps=this.colorSpace.numComps}this.decode=f.getArray("Decode","D");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||h&&!n.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var v=(1<>3)*r,c=e.byteLength;if(!a||i&&!(o===c))if(i){(n=new Uint8ClampedArray(o)).set(e);for(s=c;s>7&1;o[d+1]=l>>6&1;o[d+2]=l>>5&1;o[d+3]=l>>4&1;o[d+4]=l>>3&1;o[d+5]=l>>2&1;o[d+6]=l>>1&1;o[d+7]=1&l;d+=8}if(d>=1}}}else{var b=0;l=0;for(d=0,c=n;d>y;r<0?r=0:r>u&&(r=u);o[d]=r;l&=(1<f[y+1]){m=255;break}}s[l]=m}}if(s)for(l=0,u=3,h=t*i;l>3;if(!e){var f;"DeviceGray"===this.colorSpace.name&&1===u?f=a.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==u||this.needsDecode||(f=a.ImageKind.RGB_24BPP);if(f&&!this.smask&&!this.mask&&r===l&&i===h){n.kind=f;t=this.getImageBytes(h*d);if(this.image instanceof s.DecodeStream)n.data=t;else{var g=new Uint8ClampedArray(t.length);g.set(t);n.data=g}if(this.needsDecode){(0,a.assert)(f===a.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var m=n.data,p=0,b=m.length;p>3,l=this.getImageBytes(s*c),h=this.getComponents(l);if(1!==o){this.needsDecode&&this.decodeBuffer(h);i=n*s;var u=255/((1<{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,r=this.callbackCapabilities[e];if(!r)throw new Error("Cannot resolve callback "+e);delete this.callbackCapabilities[e];if(t.callback===i)r.resolve(t.data);else{if(t.callback!==n)throw new Error("Unexpected callback case");r.reject(wrapReason(t.reason))}return}const a=this.actionHandler[t.action];if(!a)throw new Error("Unknown action from worker: "+t.action);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(a(t.data))})).then((function(a){r.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,data:a})}),(function(a){r.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,reason:wrapReason(a)})}))}else t.streamId?this._createStreamSink(t):a(t.data)};r.addEventListener("message",this._onComObjOnMessage)}on(e,t){const r=this.actionHandler;if(r[e])throw new Error(`There is already an actionName called "${e}"`);r[e]=t}send(e,t,r){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},r)}sendWithPromise(e,t,r){const i=this.callbackId++,n=(0,a.createPromiseCapability)();this.callbackCapabilities[i]=n;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:i,data:t},r)}catch(e){n.reject(e)}return n.promise}sendWithStream(e,t,r,i){const n=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:r=>{const s=(0,a.createPromiseCapability)();this.streamControllers[n]={controller:r,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};this._postMessage({sourceName:o,targetName:c,action:e,streamId:n,data:t,desiredSize:r.desiredSize},i);return s.promise},pull:e=>{const t=(0,a.createPromiseCapability)();this.streamControllers[n].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:n,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,a.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,a.createPromiseCapability)();this.streamControllers[n].cancelCall=t;this.streamControllers[n].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:n,reason:wrapReason(e)});return t.promise}},r)}_createStreamSink(e){const t=this,r=this.actionHandler[e.action],i=e.streamId,n=this.sourceName,s=e.sourceName,o=this.comObj,u={enqueue(e,r=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=r;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,a.createPromiseCapability)();this.ready=this.sinkCapability.promise}t._postMessage({sourceName:n,targetName:s,stream:l,streamId:i,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:c,streamId:i});delete t.streamSinks[i]}},error(e){(0,a.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:h,streamId:i,reason:wrapReason(e)})}},sinkCapability:(0,a.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[i]=u;new Promise((function(t){t(r(e.data,u))})).then((function(){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,success:!0})}),(function(e){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,r=this.sourceName,i=e.sourceName,n=this.comObj;switch(e.stream){case f:e.success?this.streamControllers[t].startCall.resolve():this.streamControllers[t].startCall.reject(wrapReason(e.reason));break;case d:e.success?this.streamControllers[t].pullCall.resolve():this.streamControllers[t].pullCall.reject(wrapReason(e.reason));break;case u:if(!this.streamSinks[t]){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0});break}this.streamSinks[t].desiredSize<=0&&e.desiredSize>0&&this.streamSinks[t].sinkCapability.resolve();this.streamSinks[t].desiredSize=e.desiredSize;const{onPull:g}=this.streamSinks[e.streamId];new Promise((function(e){e(g&&g())})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,a.assert)(this.streamControllers[t],"enqueue should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].controller.enqueue(e.chunk);break;case c:(0,a.assert)(this.streamControllers[t],"close should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].isClosed=!0;this.streamControllers[t].controller.close();this._deleteStreamController(t);break;case h:(0,a.assert)(this.streamControllers[t],"error should have stream controller");this.streamControllers[t].controller.error(wrapReason(e.reason));this._deleteStreamController(t);break;case o:e.success?this.streamControllers[t].cancelCall.resolve():this.streamControllers[t].cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(t);break;case s:if(!this.streamSinks[t])break;const{onCancel:m}=this.streamSinks[e.streamId];new Promise((function(t){t(m&&m(wrapReason(e.reason)))})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,reason:wrapReason(e)})}));this.streamSinks[t].sinkCapability.reject(wrapReason(e.reason));this.streamSinks[t].isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e){await Promise.allSettled([this.streamControllers[e].startCall,this.streamControllers[e].pullCall,this.streamControllers[e].cancelCall].map((function(e){return e&&e.promise})));delete this.streamControllers[e]}_postMessage(e,t){t&&this.postMessageTransfers?this.comObj.postMessage(e,t):this.comObj.postMessage(e)}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var a=r(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,a.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const r=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(r);return r}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);this._rangeRequestReaders.slice(0).forEach((function(t){t.cancel(e)}))}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,r){this._msgHandler=r;this.onProgress=null;const a=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=a.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}])})); \ No newline at end of file diff --git a/packages/storage-ui/public/robots.txt b/packages/storage-ui/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/packages/storage-ui/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/packages/storage-ui/public/serviceworker/redirect.html b/packages/storage-ui/public/serviceworker/redirect.html new file mode 100644 index 0000000000..3ed34e79f7 --- /dev/null +++ b/packages/storage-ui/public/serviceworker/redirect.html @@ -0,0 +1,316 @@ + + + + + + + Redirect + + + + +
+
+
+
+
+
+

+ You can close this window now +

+
+ + + + diff --git a/packages/storage-ui/public/serviceworker/sw.js b/packages/storage-ui/public/serviceworker/sw.js new file mode 100644 index 0000000000..e49ffdfb2b --- /dev/null +++ b/packages/storage-ui/public/serviceworker/sw.js @@ -0,0 +1,312 @@ +// This service worker handles all OAuth redirects and calls, as well as parsing +// tokens returned, parsing said tokens and communication with the DirectAuth SDK. +// For more information see https://github.com/torusresearch/torus-direct-web-sdk/blob/master/README.md +// and https://docs.tor.us/direct-auth/integrating-directauth + +/* eslint-disable */ +function getScope() { + return self.registration.scope; +} + +self.addEventListener("message", function (event) { + if (event.data && event.data.type === "SKIP_WAITING") { + self.skipWaiting(); + } +}); + +self.addEventListener("fetch", function (event) { + try { + const url = new URL(event.request.url); + if (url.pathname.includes("redirect") && url.href.includes(getScope())) { + event.respondWith( + new Response( + new Blob( + [ + ` + + + + + + + Redirect + + + +
+
+
+
+
+
+

You can close this window now

+
+ + + + + +${""} + `, + ], + { type: "text/html" } + ) + ) + ); + } + } catch (error) { + console.error(error); + } +}); diff --git a/packages/storage-ui/public/site.webmanifest b/packages/storage-ui/public/site.webmanifest new file mode 100644 index 0000000000..fa99de77db --- /dev/null +++ b/packages/storage-ui/public/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/packages/storage-ui/scripts/sentry.js b/packages/storage-ui/scripts/sentry.js new file mode 100644 index 0000000000..efa38ef60a --- /dev/null +++ b/packages/storage-ui/scripts/sentry.js @@ -0,0 +1,37 @@ +const SentryCli = require("@sentry/cli") +const dotenv = require("dotenv") +dotenv.config() + +async function createReleaseAndUpload() { + const release = process.env.REACT_APP_SENTRY_RELEASE + const environment = process.env.REACT_APP_SENTRY_ENV + + if (!release || !environment) { + console.warn("REACT_APP_SENTRY_RELEASE or REACT_APP_SENTRY_ENV is not set") + return + } + + const cli = new SentryCli() + + try { + console.log("Creating sentry release " + release) + await cli.releases.new(release) + + console.log("Uploading source maps") + await cli.releases.uploadSourceMaps(release, { + include: ["build/static/js"], + rewrite: true, + validate: true, + }) + + console.log("Finalizing release") + // await cli.releases.setCommits(release, {auto: true}) + await cli.releases.newDeploy(release, { env: environment }) + + await cli.releases.finalize(release) + } catch (e) { + console.error("Creating a release on Sentry failed.", e) + } +} + +createReleaseAndUpload() diff --git a/packages/storage-ui/src/App.tsx b/packages/storage-ui/src/App.tsx new file mode 100644 index 0000000000..a5ff25fcfa --- /dev/null +++ b/packages/storage-ui/src/App.tsx @@ -0,0 +1,132 @@ +import React, { useCallback, useEffect } from "react" +import { init as initSentry, ErrorBoundary, showReportDialog } from "@sentry/react" +import { Web3Provider } from "@chainsafe/web3-context" +import { ThemeSwitcher } from "@chainsafe/common-theme" +import "@chainsafe/common-theme/dist/font-faces.css" +import { Button, CssBaseline, Modal, Router, ToasterProvider, Typography } from "@chainsafe/common-components" +import FilesRoutes from "./Components/StorageRoutes" +import AppWrapper from "./Components/Layouts/AppWrapper" +import { useHotjar } from "react-use-hotjar" +import { LanguageProvider } from "./Contexts/LanguageContext" +import { lightTheme } from "./Themes/LightTheme" +import { darkTheme } from "./Themes/DarkTheme" +import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { StorageProvider } from "./Contexts/StorageContext" + +if ( + process.env.NODE_ENV === "production" && + process.env.REACT_APP_SENTRY_DSN_URL +) { + initSentry({ + dsn: process.env.REACT_APP_SENTRY_DSN_URL, + release: process.env.REACT_APP_SENTRY_RELEASE, + environment: process.env.REACT_APP_SENTRY_ENV + }) +} + +const availableLanguages = [ + { id: "en", label: "English" }, + { id: "fr", label: "Français" } +] + +const onboardConfig = { + dappId: process.env.REACT_APP_BLOCKNATIVE_ID || "", + walletSelect: { + wallets: [ + { walletName: "coinbase" }, + { + walletName: "trust", + rpcUrl: + "https://mainnet.infura.io/v3/a7e16429d2254d488d396710084e2cd3" + }, + { walletName: "metamask", preferred: true }, + { walletName: "authereum" }, + { walletName: "opera" }, + { walletName: "operaTouch" }, + { walletName: "torus" }, + { walletName: "status" }, + { + walletName: "walletConnect", + infuraKey: "a7e16429d2254d488d396710084e2cd3", + preferred: true + } + ] + } +} + +const App: React.FC<{}> = () => { + const { initHotjar } = useHotjar() + const { canUseLocalStorage } = useLocalStorage() + const hotjarId = process.env.REACT_APP_HOTJAR_ID + const apiUrl = process.env.REACT_APP_API_URL || "https://stage.imploy.site/api/v1" + // This will default to testnet unless mainnet is specifically set in the ENV + const directAuthNetwork = (process.env.REACT_APP_DIRECT_AUTH_NETWORK === "mainnet") ? "mainnet" : "testnet" + + useEffect(() => { + if (hotjarId && process.env.NODE_ENV === "production") { + initHotjar(hotjarId, "6", () => console.log("Hotjar initialized")) + } + }, [hotjarId, initHotjar]) + + const fallBack = useCallback(({ error, componentStack, eventId, resetError }) => ( + + + An error occurred and has been logged. If you would like to + provide additional info to help us debug and resolve the issue, + click the `"`Provide Additional Details`"` button + + {error?.message.toString()} + {componentStack} + {eventId} + + + + ), []) + + return ( + + window.location.reload()} + > + + + + + + + + + + + + + + + + + + + ) +} + +export default App diff --git a/packages/storage-ui/src/Components/Elements/CustomButton.tsx b/packages/storage-ui/src/Components/Elements/CustomButton.tsx new file mode 100644 index 0000000000..7859c1bdfb --- /dev/null +++ b/packages/storage-ui/src/Components/Elements/CustomButton.tsx @@ -0,0 +1,56 @@ +import { Button, IButtonProps } from "@chainsafe/common-components" +import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" +import React, { ReactNode } from "react" +import clsx from "clsx" + +const useStyles = makeStyles(({ palette }: ITheme) => + createStyles({ + root: { + "&.gray": { + backgroundColor: palette.additional["gray"][3], + color: palette.additional["gray"][9] + } + } + }) +) + +const CUSTOM_VARIANTS = ["gray"] + +const temp = [...CUSTOM_VARIANTS] +type customVariant = typeof temp[0] + +type buttonVariant = IButtonProps["variant"] | customVariant + +interface ICustomButton extends Omit { + children: ReactNode + variant?: buttonVariant + className?: string +} + +const CustomButton: React.FC = ({ + className, + children, + variant, + ...rest +}: ICustomButton) => { + const classes = useStyles() + + const setVariant = + variant && CUSTOM_VARIANTS.includes(variant) + ? "primary" + : variant + ? variant + : "primary" + + return ( + + ) +} + +export default CustomButton diff --git a/packages/storage-ui/src/Components/Elements/CustomModal.tsx b/packages/storage-ui/src/Components/Elements/CustomModal.tsx new file mode 100644 index 0000000000..ebe8af890d --- /dev/null +++ b/packages/storage-ui/src/Components/Elements/CustomModal.tsx @@ -0,0 +1,61 @@ +import { IModalProps, Modal } from "@chainsafe/common-components" +import { createStyles, makeStyles } from "@chainsafe/common-theme" +import React, { ReactNode } from "react" +import clsx from "clsx" +import { CSFTheme } from "../../Themes/types" + +const useStyles = makeStyles(({ constants, breakpoints }: CSFTheme) => + createStyles({ + root: { + "&:before": { + backgroundColor: constants.modalDefault.fadeBackground + } + }, + inner: { + [breakpoints.down("md")]: { + backgroundColor: constants.modalDefault.background, + top: "unset", + bottom: 0, + left: 0, + width: "100% !important", + transform: "unset", + borderRadiusLeftTop: `${constants.generalUnit * 1.5}px`, + borderRadiusRightTop: `${constants.generalUnit * 1.5}px`, + borderRadiusLeftBottom: 0, + borderRadiusRightBottom: 0 + } + }, + close: { + [breakpoints.down("md")]: {} + } + }) +) + +interface ICustomModal extends IModalProps { + children: ReactNode + className?: string +} + +const CustomModal: React.FC = ({ + className, + children, + injectedClass, + ...rest +}: ICustomModal) => { + const classes = useStyles() + + return ( + + {children} + + ) +} + +export default CustomModal diff --git a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx new file mode 100644 index 0000000000..b811457445 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx @@ -0,0 +1,233 @@ +import React, { useCallback, useState } from "react" +import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import clsx from "clsx" +import { + Link, + Typography, + ChainsafeFilesLogo, + HamburgerMenu, + MenuDropdown, + PowerDownSvg, + useHistory +} from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { Trans } from "@lingui/macro" +import { CSFTheme } from "../../Themes/types" +import { useFilesApi } from "../../Contexts/FilesApiContext" + +const useStyles = makeStyles( + ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { + return createStyles({ + root: { + position: "fixed", + display: "flex", + flexDirection: "row", + top: 0, + transitionDuration: `${animation.translate}ms`, + visibility: "hidden", + [breakpoints.up("md")]: { + width: `calc(100% - ${constants.navWidth}px)`, + padding: `${0}px ${constants.contentPadding}px ${0}px ${ + constants.contentPadding + }px`, + left: Number(constants.navWidth), + opacity: 0, + + backgroundColor: constants.header.rootBackground, + + "& > *:first-child": { + flex: "1 1 0" + }, + "&.active": { + opacity: 1, + height: "auto", + visibility: "visible", + padding: `${constants.headerTopPadding}px ${ + constants.contentPadding + }px ${0}px ${constants.contentPadding}px`, + zIndex: zIndex?.layer1 + } + }, + [breakpoints.down("md")]: { + left: 0, + width: "100%", + justifyContent: "space-between", + alignItems: "center", + position: "fixed", + backgroundColor: palette.additional["gray"][3], + "&.active": { + opacity: 1, + visibility: "visible", + height: Number(constants.mobileHeaderHeight), + zIndex: Number(zIndex?.layer1) + } + } + }, + hamburgerMenu: { + position: "absolute", + "& span": { + backgroundColor: constants.header.hamburger + } + }, + logo: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + [breakpoints.up("md")]: { + "& img": { + height: constants.generalUnit * 5, + width: "auto" + } + }, + [breakpoints.down("md")]: { + position: "absolute", + left: "50%", + top: "50%", + transform: "translate(-50%,-50%)", + "& img": { + height: constants.generalUnit * 3.25, + width: "auto" + } + } + }, + accountControls: { + display: "flex", + justifyContent: "flex-end", + alignItems: "center", + flexDirection: "row", + [breakpoints.up("md")]: { + marginLeft: constants.accountControlsPadding + }, + "& > *:first-child": { + marginRight: constants.generalUnit * 2 + } + }, + searchModule: { + [breakpoints.down("md")]: { + height: constants.mobileHeaderHeight, + position: "absolute", + width: "100%", + zIndex: zIndex?.background, + "&.active": {} + } + }, + options: { + backgroundColor: constants.header.optionsBackground, + color: constants.header.optionsTextColor, + border: `1px solid ${constants.header.optionsBorder}`, + minWidth: 145 + }, + menuItem: { + width: "100%", + display: "flex", + flexDirection: "row", + alignItems: "center", + color: constants.header.menuItemTextColor, + "& svg": { + width: constants.generalUnit * 2, + height: constants.generalUnit * 2, + marginRight: constants.generalUnit, + fill: palette.additional["gray"][7], + stroke: palette.additional["gray"][7] + } + }, + icon: { + "& svg": { + fill: constants.header.iconColor + } + }, + title : { + marginLeft: constants.generalUnit + } + }) + } +) + +interface IAppHeader { + navOpen: boolean + setNavOpen: (state: boolean) => void +} + +const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { + const { desktop } = useThemeSwitcher() + const classes = useStyles() + const { isLoggedIn, secured, logout } = useFilesApi() + const [searchActive, setSearchActive] = useState(false) + const { history } = useHistory() + + const signOut = useCallback(async () => { + logout() + history.replace("/", {}) + }, [logout, history]) + + return ( +
+ {isLoggedIn && ( + <> + {desktop ? ( + <> + +
+ signOut(), + contents: ( +
+ + + Sign Out + +
+ ) + } + ]} + /> +
+ + ) : ( + <> + {!searchActive && ( + <> + setNavOpen(!navOpen)} + variant={navOpen ? "active" : "default"} + className={clsx(classes.hamburgerMenu, "hamburger-menu")} + /> + + + + Files + +   + beta + + + )} + + )} + + )} +
+ ) +} + +export default AppHeader diff --git a/packages/storage-ui/src/Components/Layouts/AppNav.tsx b/packages/storage-ui/src/Components/Layouts/AppNav.tsx new file mode 100644 index 0000000000..8b0fbc3bb9 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppNav.tsx @@ -0,0 +1,346 @@ +import { + createStyles, + makeStyles, + useThemeSwitcher +} from "@chainsafe/common-theme" +import React, { useCallback } from "react" +import clsx from "clsx" +import { + Link, + Typography, + ChainsafeFilesLogo, + DatabaseSvg, + SettingSvg, + PowerDownSvg, + ProgressBar, + Button, + formatBytes, + DeleteSvg } from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { FREE_PLAN_LIMIT } from "../../Utils/Constants" +import { Trans } from "@lingui/macro" +import { CSFTheme } from "../../Themes/types" +import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorage } from "../../Contexts/StorageContext" + +const useStyles = makeStyles( + ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { + return createStyles({ + root: { + width: 0, + overflow: "hidden", + transitionDuration: `${animation.translate}ms`, + display: "flex", + flexDirection: "column", + position: "fixed", + left: 0, + opacity: 0, + "&.active": { + opacity: 1 + }, + [breakpoints.up("md")]: { + padding: `${constants.topPadding}px ${ + constants.generalUnit * 4.5 + }px`, + top: 0, + height: "100%", + backgroundColor: constants.nav.backgroundColor, + "&.active": { + width: `${constants.navWidth}px` + } + }, + [breakpoints.down("md")]: { + height: `calc(100% - ${constants.mobileHeaderHeight}px)`, + top: `${constants.mobileHeaderHeight}px`, + backgroundColor: constants.nav.mobileBackgroundColor, + zIndex: zIndex?.layer1, + padding: `0 ${constants.generalUnit * 4}px`, + maxWidth: "100vw", + visibility: "hidden", + "&.active": { + visibility: "visible", + width: `${constants.mobileNavWidth}px` + } + } + }, + blocker: { + display: "block", + backgroundColor: constants.nav.blocker, + position: "fixed", + top: Number(constants.mobileHeaderHeight), + left: 0, + height: `calc(100% - ${constants.mobileHeaderHeight}px)`, + width: "100%", + transitionDuration: `${animation.translate}ms`, + zIndex: zIndex?.background, + opacity: 0, + visibility: "hidden", + "&.active": { + visibility: "visible", + [breakpoints.down("md")]: { + opacity: 0.5 + } + } + }, + logo: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + + [breakpoints.up("md")]: { + "& img": { + height: constants.generalUnit * 5, + width: "auto" + }, + "& > *:first-child": { + marginRight: constants.generalUnit + } + }, + [breakpoints.down("md")]: { + position: "absolute", + left: "50%", + top: "50%", + transform: "translate(-50%,-50%)", + "& img": { + height: constants.generalUnit * 3.25, + width: "auto" + } + } + }, + navMenu: { + display: "flex", + flexDirection: "column", + marginBottom: constants.generalUnit * 8.5, + transitionDuration: `${animation.translate}ms` + }, + linksArea: { + display: "flex", + flexDirection: "column", + flex: "1 1 0", + justifyContent: "center", + transitionDuration: `${animation.translate}ms`, + "& > span": { + marginBottom: constants.generalUnit * 2 + }, + [breakpoints.up("md")]: { + height: 0 + }, + [breakpoints.down("md")]: { + transitionDuration: `${animation.translate}ms`, + color: palette.additional["gray"][3], + "&.active": {} + } + }, + navHead: { + fontWeight: 600, + color: constants.nav.headingColor + }, + navItem: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + cursor: "pointer", + padding: `${constants.generalUnit * 1.5}px 0`, + transitionDuration: `${animation.transform}ms`, + "& span": { + transitionDuration: `${animation.transform}ms`, + [breakpoints.up("md")]: { + color: constants.nav.itemColor + }, + [breakpoints.down("md")]: { + color: constants.nav.itemColorHover + } + }, + "& svg": { + transitionDuration: `${animation.transform}ms`, + width: Number(constants.svgWidth), + marginRight: constants.generalUnit * 2, + [breakpoints.up("md")]: { + fill: constants.nav.itemIconColor + }, + [breakpoints.down("md")]: { + fill: constants.nav.itemIconColorHover + } + }, + "&:hover": { + "& span": { + color: constants.nav.itemColorHover + }, + "& svg": { + fill: constants.nav.itemIconColorHover + } + }, + [breakpoints.down("md")]: { + minWidth: Number(constants.mobileNavWidth) + } + }, + navItemText: { + [breakpoints.down("md")]: { + color: palette.additional["gray"][3] + } + }, + menuItem: { + width: 100, + display: "flex", + flexDirection: "row", + alignItems: "center", + "& svg": { + width: constants.generalUnit * 2, + height: constants.generalUnit * 2, + marginRight: constants.generalUnit + } + }, + spaceUsedMargin: { + marginBottom: constants.generalUnit + }, + betaCaption: { + marginBottom: constants.generalUnit * 0.5 + } + }) + } +) + +interface IAppNav { + navOpen: boolean + setNavOpen: (state: boolean) => void +} + +const AppNav: React.FC = ({ navOpen, setNavOpen }: IAppNav) => { + const { desktop } = useThemeSwitcher() + const classes = useStyles() + + const { spaceUsed } = useStorage() + + const { isLoggedIn, logout } = useFilesApi() + + + const signOut = useCallback(() => { + logout() + }, [logout]) + + const handleOnClick = useCallback(() => { + if (!desktop && navOpen) { + setNavOpen(false) + } + }, [desktop, navOpen, setNavOpen]) + + return ( +
+ {isLoggedIn && ( + <> + {desktop && ( +
+ + + + Files + +   + + beta + + +
+ )} +
+ + Folders + + + + {desktop ? Resources : Account} + + +
+
+ {desktop && ( +
+ {`${formatBytes(spaceUsed)} of ${formatBytes( + FREE_PLAN_LIMIT + )} used`} + +
+ )} + {!desktop && ( +
{ + handleOnClick() + signOut() + }} + > + + + Sign Out + +
+ )} +
+ {!desktop && ( +
setNavOpen(false)} + className={clsx(classes.blocker, { + active: navOpen + })} + >
+ )} + + )} +
+ ) +} + +export default AppNav \ No newline at end of file diff --git a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx new file mode 100644 index 0000000000..423b6d9fb6 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx @@ -0,0 +1,91 @@ +import { useFilesApi } from "../../Contexts/FilesApiContext" +import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" +import React, { useState } from "react" +import { ReactNode } from "react" +import clsx from "clsx" +import { CssBaseline } from "@chainsafe/common-components" +import AppHeader from "./AppHeader" +import AppNav from "./AppNav" + +interface IAppWrapper { + children: ReactNode | ReactNode[] +} + +const useStyles = makeStyles( + ({ animation, breakpoints, constants }: ITheme) => { + return createStyles({ + root: { + minHeight: "100vh" + }, + bodyWrapper: { + transitionDuration: `${animation.translate}ms`, + [breakpoints.up("md")]: { + padding: "0", + "&.active": { + // This moves the content areas based on the size of the nav bar + + padding: `${0}px ${constants.contentPadding}px ${0}px ${ + Number(constants.navWidth) + + Number(constants.contentPadding) + }px` + } + }, + [breakpoints.down("md")]: {} + }, + content: { + [breakpoints.up("md")]: { + height: "100%", + minHeight: "100vh", + transitionDuration: `${animation.translate}ms`, + padding: 0, + "&.active": { + height: "initial", + padding: `${constants.contentTopPadding}px 0 0` + } + }, + [breakpoints.down("md")]: { + minHeight: "100vh", + "&.active": { + height: "initial", + padding: `${constants.mobileHeaderHeight}px 0 0` + } + } + } + }) + } +) + +const AppWrapper: React.FC = ({ children }: IAppWrapper) => { + const classes = useStyles() + const [navOpen, setNavOpen] = useState(false) + const { isLoggedIn, secured } = useFilesApi() + + return ( +
+ + +
+ +
+ {children} +
+
+
+ ) +} + +export default AppWrapper diff --git a/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx new file mode 100644 index 0000000000..6afa13b119 --- /dev/null +++ b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx @@ -0,0 +1,421 @@ +import React, { useState } from "react" +import { Button, FacebookLogoIcon, GithubLogoIcon, GoogleLogoIcon, Typography } from "@chainsafe/common-components" +import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import { CSFTheme } from "../../../Themes/types" +import { t, Trans } from "@lingui/macro" +import { useFilesApi } from "../../../Contexts/FilesApiContext" +import { useWeb3 } from "@chainsafe/web3-context" +import { LOGIN_TYPE } from "@toruslabs/torus-direct-web-sdk" +import { ROUTE_LINKS } from "../../StorageRoutes" +import clsx from "clsx" +import { IdentityProvider } from "@chainsafe/files-api-client" + +const useStyles = makeStyles( + ({ constants, palette, breakpoints, typography }: CSFTheme) => + createStyles({ + root: { + backgroundColor: constants.loginModule.background, + border: `1px solid ${constants.landing.border}`, + boxShadow: constants.landing.boxShadow, + alignItems: "center", + borderRadius: 6, + [breakpoints.up("md")]:{ + minHeight: "64vh", + justifyContent: "space-between", + width: 440 + }, + [breakpoints.down("md")]: { + padding: `${constants.generalUnit * 4}px ${constants.generalUnit * 2}px`, + justifyContent: "center", + width: `calc(100vw - ${constants.generalUnit * 2}px)` + } + }, + buttonSection: { + [breakpoints.up("md")]: { + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)" + }, + [breakpoints.down("md")]: { + display: "flex", + flexDirection: "column", + justifyContent: "space-evenly" + } + }, + connectingWallet: { + textAlign: "center", + alignItems: "center", + display: "flex", + flexDirection: "column", + "& > *": { + fontWeight: 400 + }, + [breakpoints.up("md")]: { + padding: `${constants.generalUnit * 30}px ${constants.generalUnit * 8}px`, + "& > *": { + paddingBottom: `${constants.generalUnit * 5}px` + } + }, + [breakpoints.down("md")]: { + justifyContent: "space-evenly" + } + }, + button: { + width: 240, + fontWeight: typography.fontWeight.medium, + marginBottom: constants.generalUnit * 2, + "& .icon" : { + fontSize: 25 + }, + "&:last-child": { + marginBottom: 0 + } + }, + error: { + color: palette.error.main, + paddingBottom: constants.generalUnit * 2, + maxWidth: 240 + }, + headerText: { + [breakpoints.up("md")]: { + paddingTop: constants.generalUnit * 4, + paddingBottom: constants.generalUnit * 8 + }, + [breakpoints.down("md")]: { + paddingTop: constants.generalUnit * 3, + paddingBottom: constants.generalUnit * 3, + textAlign: "center" + } + }, + footer: { + backgroundColor: constants.landing.footerBg, + color: constants.landing.footerText, + padding: `${constants.generalUnit * 2.5}px ${constants.generalUnit * 1.5}px`, + width: "100%", + "& > *": { + marginRight: constants.generalUnit * 3.5 + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + connectWalletFooter: { + backgroundColor: constants.landing.background, + color: constants.landing.footerText, + padding: `${constants.generalUnit * 4.375}px ${constants.generalUnit * 7}px`, + width: "100%", + textAlign: "center", + "& > *": { + fontWeight: 400 + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + loader: { + marginTop: constants.generalUnit, + padding: 0 + }, + buttonLink: { + color: palette.additional["gray"][10], + outline: "none", + textDecoration: "underline", + cursor: "pointer", + textAlign: "center" + }, + web3Button: { + minHeight: 41 + } + }) +) + +interface IInitialScreen { + className?: string +} + +const InitialScreen = ({ className }: IInitialScreen) => { + const { selectWallet, resetAndSelectWallet } = useFilesApi() + const { desktop } = useThemeSwitcher() + const { wallet } = useWeb3() + const classes = useStyles() + const [loginMode, setLoginMode] = useState<"web3" | LOGIN_TYPE | undefined>() + const [error, setError] = useState() + const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" + const [isConnecting, setIsConnecting] = useState(false) + + const handleSelectWalletAndConnect = async () => { + setError(undefined) + try { + await selectWallet() + } catch (error) { + setError(t`There was an error connecting your wallet`) + } + } + + const handleResetAndSelectWallet = async () => { + setError(undefined) + try { + await resetAndSelectWallet() + } catch (error) { + setError(t`There was an error connecting your wallet`) + } + } + + const resetLogin = async () => { + setError(undefined) + setLoginMode(undefined) + } + + const handleLogin = async (loginType: IdentityProvider) => { + setError("") + setIsConnecting(true) + setLoginMode(loginType) + try { + // await login(loginType) + } catch (error) { + let errorMessage = t`There was an error authenticating` + console.log(error) + if (Array.isArray(error) && error[0]) { + if ( + error[0].type === "signature" && + error[0].message === "Invalid signature" + ) { + errorMessage = t`Failed to validate signature. + If you are using a contract wallet, please make + sure you have activated your wallet.` + } + } + // WalletConnect be sassy + if (error?.message === "Just nope" || error?.code === 4001) { + errorMessage = t`Failed to get signature` + } + if (error?.message === "user closed popup") { + errorMessage = t`The authentication popup was closed` + } + setError(errorMessage) + } + setIsConnecting(false) + } + + const Footer = () => ( +
+ ) + + return ( +
+ { + ((desktop && !isConnecting && !error) || (isConnecting && loginMode !== "web3")) && ( + + + Get Started + + + ) + } + { + !error ? + loginMode !== "web3" ? ( + <> +
+ {maintenanceMode && ( + + + The system is undergoing maintenance, thank you for being patient. + + + )} + + + + +
+ + + ) : ( + wallet ? + !isConnecting ? ( + <> +
+ + +
+ Go back +
+
+
+ + ) : ( + <> + {/*
+ Connect Wallet to Files + {status === "awaiting confirmation" && + + You will need to sign a message in your wallet to complete sign in. + } + {status === "logging in" && <> + + Hold on, we are logging you in... + + + } +
*/} + + ) + : <> +
+ + +
+
+ + ) : ( + <> +
+ Connection failed + + {error} + + +
+ + ) + } +
+ ) +} + +export default InitialScreen diff --git a/packages/storage-ui/src/Components/Pages/LoginPage.tsx b/packages/storage-ui/src/Components/Pages/LoginPage.tsx new file mode 100644 index 0000000000..cd25b2ff61 --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/LoginPage.tsx @@ -0,0 +1,166 @@ +import React from "react" +import { makeStyles, createStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import { CSFTheme } from "../../Themes/types" +import InitialScreen from "../Modules/LoginModule/InitialScreen" +import { ChainsafeFilesLogo, ChainsafeLogo, Typography } from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { Trans } from "@lingui/macro" +import BottomDarkSVG from "../../Media/landing/layers/dark/Bottom.dark.svg" +import TopDarkSVG from "../../Media/landing/layers/dark/Top.dark.svg" +import BottomLightSVG from "../../Media/landing/layers/light/Bottom.light.svg" +import TopLightSVG from "../../Media/landing/layers/light/Top.light.svg" + + +const useStyles = makeStyles( + ({ constants, breakpoints, typography, zIndex }: CSFTheme) => + createStyles({ + root: { + position: "relative", + minHeight: "100vh", + overflow: "hidden" + }, + bgBottom: { + position: "absolute", + left: "50%", + transform: "translate(-50%, 0%)", + zIndex: zIndex?.background, + [breakpoints.up("md")]: { + bottom: constants.generalUnit * 4, + maxHeight: `calc(80vh - ${constants.generalUnit * 4}px)` + }, + [breakpoints.down("md")]: { + bottom: constants.generalUnit * 5, + width: "80vw" + } + }, + bgTop: { + position: "absolute", + top: constants.generalUnit * 10, + zIndex: zIndex?.background, + [breakpoints.up("md")]: { + left: "calc(50% + 15vw)", + transform: "translate(-50%, 0%)", + width: "30vw" + }, + [breakpoints.down("md")]: { + width: "50vw", + right: constants.generalUnit * 2 + } + }, + bgForeground: { + position: "absolute", + left: "50%", + top: "calc(50% + 3vh)", + transform: "translate(-50%, -50%)", + zIndex: zIndex?.layer0, + [breakpoints.up("md")]: { + minHeight: "85vh", + maxHeight: "90vh" + }, + [breakpoints.down("md")]: { + width: "120vw" + } + }, + title: { + display: "flex", + alignItems: "center", + justifyContent: "center", + marginTop: "2rem", + fontWeight: typography.fontWeight.regular, + [breakpoints.up("md")]:{ + ...typography.h2 + }, + [breakpoints.down("md")]:{ + ...typography.h4 + } + }, + cta: { + position: "absolute", + bottom: 0, + right: 0, + padding: `${constants.generalUnit * 2.5}px ${constants.generalUnit * 1.5}px`, + display: "flex", + flexDirection: "column", + alignItems: "center", + textDecoration: "none", + "& *:first-child": { + marginBottom: constants.generalUnit + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + inner: { + display: "flex", + flexDirection: "column", + flex: "1 1 0", + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + zIndex: zIndex?.layer1, + backgroundColor: constants.loginModule.background, + border: `1px solid ${constants.landing.border}`, + boxShadow: constants.landing.boxShadow, + borderRadius: 6, + [breakpoints.down("md")]: { + justifyContent: "center", + width: "100%" + } + }, + logo: { + height: 60, + width: 60 + }, + filesLogo: { + height: 60, + width: 60, + marginRight: "1rem" + } + }) +) + +const LoginPage = () => { + const classes = useStyles() + const { themeKey } = useThemeSwitcher() + + return ( +
+ + + ChainSafe Storage + + <> + + { + themeKey === "dark" ? + <> + + + + : + <> + + + + + } + + + + + Learn more about ChainSafe + + + + +
+ ) +} + +export default LoginPage diff --git a/packages/storage-ui/src/Components/Pages/PinsPage.tsx b/packages/storage-ui/src/Components/Pages/PinsPage.tsx new file mode 100644 index 0000000000..e8ad702b32 --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/PinsPage.tsx @@ -0,0 +1,26 @@ +import React from "react" +import { makeStyles, createStyles } from "@chainsafe/common-theme" +import { CSFTheme } from "../../Themes/types" +import { Typography } from "@chainsafe/common-components" + +const useStyles = makeStyles(({ constants, breakpoints, typography, zIndex }: CSFTheme) => + createStyles({ + root: { + position: "relative", + minHeight: "100vh", + overflow: "hidden" + } + }) +) + +const PinsPage = () => { + const classes = useStyles() + + return ( +
+ Pins +
+ ) +} + +export default PinsPage diff --git a/packages/storage-ui/src/Components/StorageRoutes.tsx b/packages/storage-ui/src/Components/StorageRoutes.tsx new file mode 100644 index 0000000000..d950084f26 --- /dev/null +++ b/packages/storage-ui/src/Components/StorageRoutes.tsx @@ -0,0 +1,41 @@ +import React from "react" +import { Switch, ConditionalRoute } from "@chainsafe/common-components" +import LoginPage from "./Pages/LoginPage" +import { useFilesApi } from "../Contexts/FilesApiContext" +import PinsPage from "./Pages/PinsPage" + +export const ROUTE_LINKS = { + Landing: "/", + Pins: "/pins", + PrivacyPolicy: "https://files.chainsafe.io/privacy-policy", + Terms: "https://files.chainsafe.io/terms-of-service", + ChainSafe: "https://chainsafe.io/" +} + +export const SETTINGS_PATHS = ["profile", "plan", "security"] as const +export type SettingsPath = typeof SETTINGS_PATHS[number] + +const FilesRoutes = () => { + const { isLoggedIn } = useFilesApi() + + return ( + + + + + ) +} + +export default FilesRoutes diff --git a/packages/storage-ui/src/Contexts/FilesApiContext.tsx b/packages/storage-ui/src/Contexts/FilesApiContext.tsx new file mode 100644 index 0000000000..ca668139a9 --- /dev/null +++ b/packages/storage-ui/src/Contexts/FilesApiContext.tsx @@ -0,0 +1,399 @@ +import { useWeb3 } from "@chainsafe/web3-context" +import * as React from "react" +import { useState, useEffect, useMemo, useCallback } from "react" +import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" +import jwtDecode from "jwt-decode" +import axios from "axios" +import { decryptFile } from "../Utils/encryption" +import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" +export type { IdentityProvider as OAuthProvider } + +const tokenStorageKey = "csf.refreshToken" +const isReturningUserStorageKey = "csf.isReturningUser" + +type FilesApiContextProps = { + apiUrl?: string + withLocalStorage?: boolean + children: React.ReactNode | React.ReactNode[] +} + +type FilesApiContext = { + filesApiClient: IFilesApiClient + isLoggedIn: boolean | undefined + secured: boolean | undefined + isReturningUser: boolean + selectWallet: () => Promise + resetAndSelectWallet: () => Promise + getProviderUrl: (provider: OAuthIdentityToken) => Promise + loginWithGithub: (code: string, state: string) => Promise + loginWithGoogle: ( + code: string, + state: string, + scope: string | undefined, + authUser: string | undefined, + hd: string | undefined, + prompt: string | undefined, + ) => Promise + loginWithFacebook: (code: string, state: string) => Promise + logout: () => void +} + +const FilesApiContext = React.createContext(undefined) + +const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesApiContextProps) => { + const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" + + const { wallet, onboard, checkIsReady, isReady } = useWeb3() + const { localStorageRemove, localStorageGet, localStorageSet } = useLocalStorage() + const { sessionStorageRemove, sessionStorageGet, sessionStorageSet } = useSessionStorage() + + // initializing api + const initialAxiosInstance = useMemo(() => axios.create({ + // Disable the internal Axios JSON de serialization as this is handled by the client + transformResponse: [] + }), []) + + const initialApiClient = useMemo(() => { + return new FilesApiClient({}, apiUrl, initialAxiosInstance) + }, [apiUrl, initialAxiosInstance] + ) + + const [filesApiClient, setFilesApiClient] = useState(initialApiClient) + const [isLoadingUser, setIsLoadingUser] = useState(true) + + // access tokens + const [accessToken, setAccessToken] = useState(undefined) + const [secured, setSecured] = useState(undefined) + const [refreshToken, setRefreshToken] = useState(undefined) + const [decodedRefreshToken, setDecodedRefreshToken] = useState< + { exp: number; enckey?: string; mps?: string; uuid: string } | undefined + >(undefined) + + // returning user + const isReturningUserLocal = localStorageGet(isReturningUserStorageKey) + const [isReturningUser, setIsReturningUser] = useState(isReturningUserLocal ? true : false) + + const setTokensAndSave = useCallback((accessToken: Token, refreshToken: Token) => { + setAccessToken(accessToken) + setRefreshToken(refreshToken) + refreshToken.token && withLocalStorage && localStorageSet(tokenStorageKey, refreshToken.token) + !withLocalStorage && sessionStorageSet(tokenStorageKey, refreshToken.token) + accessToken.token && filesApiClient.setToken(accessToken.token) + }, [filesApiClient, localStorageSet, sessionStorageSet, withLocalStorage]) + + const setReturningUser = () => { + // set returning user + localStorageSet(isReturningUserStorageKey, "returning") + setIsReturningUser(true) + } + + useEffect(() => { + const initializeApiClient = async () => { + const axiosInstance = axios.create({ + // Disable the internal Axios JSON de serialization as this is handled by the client + transformResponse: [] + }) + + axiosInstance.interceptors.response.use( + (response) => { + return response + }, + async (error) => { + if (!error?.config?._retry && error?.response?.status === 401 && !maintenanceMode) { + error.config._retry = true + const refreshTokenLocal = + (withLocalStorage) + ? localStorageGet(tokenStorageKey) + : sessionStorageGet(tokenStorageKey) + if (refreshTokenLocal) { + const refreshTokenApiClient = new FilesApiClient( + {}, + apiUrl, + axiosInstance + ) + try { + const { + access_token, + refresh_token + } = await refreshTokenApiClient.getRefreshToken({ + refresh: refreshTokenLocal + }) + + setTokensAndSave(access_token, refresh_token) + error.response.config.headers.Authorization = `Bearer ${access_token.token}` + return axios(error.response.config) + } catch (err) { + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + setRefreshToken(undefined) + return Promise.reject(error) + } + } else { + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + setRefreshToken(undefined) + return Promise.reject(error) + } + } + return Promise.reject(error) + } + ) + + const apiClient = new FilesApiClient({}, apiUrl, axiosInstance) + const savedRefreshToken = localStorageGet(tokenStorageKey) + setFilesApiClient(apiClient) + if (!maintenanceMode && savedRefreshToken) { + try { + const { + access_token, + refresh_token + } = await apiClient.getRefreshToken({ refresh: savedRefreshToken }) + + setTokensAndSave(access_token, refresh_token) + } catch (error) { + console.error("There was an error refreshing the saved token") + console.error(error) + } + } + setIsLoadingUser(false) + } + + initializeApiClient() + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + const selectWallet = async () => { + if (onboard && !isReady) { + let walletSelected = !!wallet + if (!walletSelected) { + walletSelected = await onboard.walletSelect() + } + walletSelected && (await checkIsReady()) + } + } + + const resetAndSelectWallet = async () => { + if (onboard) { + const walletReady = await onboard.walletSelect() + walletReady && (await checkIsReady()) + } + } + + const thresholdKeyLogin = async ( + signature: string, + identityToken: string, + publicKey: string + ) => { + if (maintenanceMode) { + throw new Error("App is undergoing maintenance") + } + try { + const { + access_token, + refresh_token + } = await filesApiClient.verifyServiceIdentityToken({ + signature: signature, + public_key: publicKey, + service_identity_token: identityToken + }) + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (error) { + return Promise.reject(error) + } + } + + useEffect(() => { + if (refreshToken && refreshToken.token) { + try { + const decoded = jwtDecode<{ mps?: string; enckey?: string; exp: number; uuid: string }>( + refreshToken.token + ) + + setDecodedRefreshToken(decoded) + } catch (error) { + console.error("Error decoding access token") + } + } + }, [refreshToken]) + + useEffect(() => { + if (accessToken && accessToken.token && filesApiClient) { + filesApiClient?.setToken(accessToken.token) + const decodedAccessToken = jwtDecode<{ perm: { secured?: string } }>( + accessToken.token + ) + if (decodedAccessToken.perm.secured === "true") { + setSecured(true) + } else { + setSecured(false) + } + } + }, [accessToken, filesApiClient]) + + const isLoggedIn = () => { + if (isLoadingUser) { + return undefined + } + if (!decodedRefreshToken) { + return false + } else { + try { + const isLoggedIn = Date.now() / 1000 < decodedRefreshToken.exp + return isLoggedIn + } catch (error) { + return false + } + } + } + + const getProviderUrl = async (provider: OAuthIdentityToken) => { + try { + const { url } = await filesApiClient.getOauth2Provider(provider) + return Promise.resolve(url) + } catch { + return Promise.reject("There was an error logging in") + } + } + + const loginWithGithub = async (code: string, state: string) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeGithub(code, state) + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch { + return Promise.reject("There was an error logging in") + } + } + + const loginWithGoogle = async ( + code: string, + state: string, + scope: string | undefined, + authUser: string | undefined, + hd: string | undefined, + prompt: string | undefined + ) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeGoogle( + code, + state, + scope, + authUser, + hd, + prompt + ) + + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (err) { + return Promise.reject("There was an error logging in") + } + } + + const loginWithFacebook = async (code: string, state: string) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeFacebook(code, state) + + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (err) { + return Promise.reject("There was an error logging in") + } + } + + const logout = () => { + setAccessToken(undefined) + setRefreshToken(undefined) + setDecodedRefreshToken(undefined) + filesApiClient.setToken("") + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + } + + const secureThresholdKeyAccount = async (encryptedKey: string) => { + try { + if (decodedRefreshToken && refreshToken) { + await filesApiClient.secure({ + encryption_key: encryptedKey + }) + + const { + access_token, + refresh_token + } = await filesApiClient.getRefreshToken({ + refresh: refreshToken.token + }) + + setTokensAndSave(access_token, refresh_token) + return true + } else { + return false + } + } catch (error) { + return false + } + } + + const validateMasterPassword = async ( + candidatePassword: string + ): Promise => { + if (!decodedRefreshToken || !decodedRefreshToken.mps) return false + try { + const toDecryptArray = Buffer.from(decodedRefreshToken.mps, "base64") + const decrypted = await decryptFile(toDecryptArray, candidatePassword) + if (decrypted) { + const decryptedUuid = new TextDecoder().decode(decrypted) + return decodedRefreshToken.uuid === decryptedUuid + } else { + return false + } + } catch (error) { + return false + } + } + + return ( + + {children} + + ) +} + +const useFilesApi = () => { + const context = React.useContext(FilesApiContext) + if (context === undefined) { + throw new Error("useAuth must be used within a AuthProvider") + } + return context +} + +export { FilesApiProvider, useFilesApi } + diff --git a/packages/storage-ui/src/Contexts/FilesReducers.tsx b/packages/storage-ui/src/Contexts/FilesReducers.tsx new file mode 100644 index 0000000000..fc5e8984b1 --- /dev/null +++ b/packages/storage-ui/src/Contexts/FilesReducers.tsx @@ -0,0 +1,119 @@ +import { DownloadProgress, UploadProgress } from "./StorageContext" + +export function uploadsInProgressReducer( + uploadsInProgress: UploadProgress[], + action: + | { type: "add"; payload: UploadProgress } + | { type: "progress"; payload: { id: string; progress: number } } + | { type: "complete"; payload: { id: string } } + | { type: "error"; payload: { id: string; errorMessage?: string } } + | { type: "remove"; payload: { id: string } } +): UploadProgress[] { + const getProgressIndex = () => + uploadsInProgress.findIndex((progress) => progress.id === action.payload.id) + switch (action.type) { + case "add": { + return [...uploadsInProgress, action.payload] + } + case "progress": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].progress = action.payload.progress + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "complete": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].complete = true + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "error": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].error = true + uploadsInProgress[progressIndex].errorMessage = + action.payload.errorMessage + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "remove": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress.splice(progressIndex, 1) + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + default: + return uploadsInProgress + } +} + +export function downloadsInProgressReducer( + downloadsInProgress: DownloadProgress[], + action: + | { type: "add"; payload: DownloadProgress } + | { type: "progress"; payload: { id: string; progress: number } } + | { type: "complete"; payload: { id: string } } + | { type: "error"; payload: { id: string; errorMessage?: string } } + | { type: "remove"; payload: { id: string } } +): DownloadProgress[] { + const getProgressIndex = () => + downloadsInProgress.findIndex( + (download) => download.id === action.payload.id + ) + switch (action.type) { + case "add": { + return [...downloadsInProgress, action.payload] + } + case "progress": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].progress = action.payload.progress + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "complete": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].complete = true + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "error": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].error = true + downloadsInProgress[progressIndex].errorMessage = + action.payload.errorMessage + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "remove": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress.splice(progressIndex, 1) + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + default: + return downloadsInProgress + } +} diff --git a/packages/storage-ui/src/Contexts/LanguageContext.tsx b/packages/storage-ui/src/Contexts/LanguageContext.tsx new file mode 100644 index 0000000000..b9fcd1d17b --- /dev/null +++ b/packages/storage-ui/src/Contexts/LanguageContext.tsx @@ -0,0 +1,140 @@ +import React, { useState, useEffect, useCallback } from "react" +import { i18n } from "@lingui/core" +import { I18nProvider } from "@lingui/react" +import * as plurals from "make-plural/plurals" +import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import dayjs from "dayjs" + +export type LanguageContext = { + availableLanguages: Language[] + selectedLanguage: string + selectedLocale: string + setActiveLanguage(newLanguage: string): void | Promise +} + +type Language = { + id: string + label: string +} + +type LanguageProviderProps = { + children: React.ReactNode | React.ReactNode[] + availableLanguages: Language[] +} + +const DEFAULT_LANGUAGE = "en" +const DEFAULT_LOCALE = "en-GB" +const PREFERED_LANGUAGE_KEY = "csf.preferedLanguage" + +const defaultContext: LanguageContext = { + availableLanguages: [], + selectedLanguage: DEFAULT_LANGUAGE, + selectedLocale: DEFAULT_LOCALE, + setActiveLanguage: () => {console.error("setActiveLanguage not implemented")} +} + +const LanguageContext = React.createContext(defaultContext) + +const getLanguages = (preferred = ""): string[] => { + const { languages, language } = window.navigator + + if (Array.isArray(languages)) { + // Dedupe array of languages + const deduped = [...new Set(languages.map((l) => l.split("-")[0]))] + const preferredFirst = preferred + ? [preferred, ...deduped.filter((lang) => preferred !== lang)] + : deduped + + return preferredFirst + } + + if (language) { + return [preferred, language.split("-")[0]] + } + + // If language not detected use english + return [preferred, DEFAULT_LANGUAGE] +} + +const getLocales = (): string[] => { + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // @ts-ignore + const { languages, language, userLanguage } = window.navigator + const localeRegex = new RegExp("[a-z]{2,3}-[A-Z]{2}") + + if (Array.isArray(languages)) { + return languages.filter((l) => localeRegex.test(l)) + } + + if (language && localeRegex.test(language)) { + return [language] + } + + if (userLanguage && localeRegex.test(userLanguage)) { + return [userLanguage] + } + // If language not detected use english + return [DEFAULT_LOCALE] +} + +const LanguageProvider = ({ children, availableLanguages }: LanguageProviderProps) => { + const [selectedLanguage, setSelectedLanguage] = useState("") + const { localStorageGet, localStorageSet } = useLocalStorage() + const userLocales = getLocales() + + const setLanguage = useCallback((newLanguage: string, setPrefered = true) => { + if (!availableLanguages.find((l) => l.id === newLanguage)) { + console.error("Locale is not available, evalutaing:", newLanguage) + return + } + + import(`../locales/${newLanguage}/messages.js`) + .then((newCatalog) => { + i18n.load(newLanguage, newCatalog.default.messages) + i18n.loadLocaleData(newLanguage, { plurals: (plurals as Record)[newLanguage] }) + i18n.activate(newLanguage) + setSelectedLanguage(newLanguage) + setPrefered && localStorageSet(PREFERED_LANGUAGE_KEY, newLanguage) + dayjs.locale(newLanguage) + }) + .catch(console.error) + }, [availableLanguages, localStorageSet]) + + + useEffect(() => { + const prefered = localStorageGet(PREFERED_LANGUAGE_KEY) + const userLanguages = getLanguages(prefered || "") + const matchingLanguages = [...new Set(userLanguages)].filter((x) => + new Set(availableLanguages.map((l) => l.id)).has(x) + ) + + const defaultLanguage = matchingLanguages[0] || DEFAULT_LANGUAGE + + // passing false because this language wasn't + // set explicitely by the user + setLanguage(defaultLanguage, false) + }, [availableLanguages, localStorageGet, setLanguage]) + + return ( + + {children} + + ) +} + +function useLanguageContext() { + const context = React.useContext(LanguageContext) + if (context === undefined) { + throw new Error("useLanguageContext must be used within a LanguageProvider") + } + return context +} + +export { LanguageProvider, useLanguageContext } diff --git a/packages/storage-ui/src/Contexts/StorageContext.tsx b/packages/storage-ui/src/Contexts/StorageContext.tsx new file mode 100644 index 0000000000..ad9a06ecf2 --- /dev/null +++ b/packages/storage-ui/src/Contexts/StorageContext.tsx @@ -0,0 +1,312 @@ +import { + CSFFilesFullInfoResponse, + FileContentResponse, + DirectoryContentResponse, + BucketType, + Bucket as FilesBucket, + SearchEntry +} from "@chainsafe/files-api-client" +import React, { useCallback, useEffect, useReducer } from "react" +import { useState } from "react" +import { v4 as uuidv4 } from "uuid" +import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesReducers" +import { CancelToken } from "axios" +import { t } from "@lingui/macro" +import { useBeforeunload } from "react-beforeunload" +import { useFilesApi } from "./FilesApiContext" + +type StorageContextProps = { + children: React.ReactNode | React.ReactNode[] +} + +export type UploadProgress = { + id: string + fileName: string + progress: number + error: boolean + errorMessage?: string + complete: boolean + noOfFiles: number + path: string +} + +export type DownloadProgress = { + id: string + fileName: string + progress: number + error: boolean + errorMessage?: string + complete: boolean +} + +interface GetFileContentParams { + cid: string + cancelToken?: CancelToken + onDownloadProgress?: (progressEvent: ProgressEvent) => void + file: FileSystemItem + path: string +} + +type Bucket = FilesBucket + +type StorageContext = { + pins: Bucket[] + uploadsInProgress: UploadProgress[] + downloadsInProgress: DownloadProgress[] + spaceUsed: number + createPin: (bucketId: string, files: File[], path: string) => Promise + downloadPin: (bucketId: string, itemToDownload: FileSystemItem, path: string) => void + getPinContent: (bucketId: string, params: GetFileContentParams) => Promise + refreshPins: () => Promise +} + +// This represents a File or Folder on the +interface IFileSystemItem extends FileContentResponse { + isFolder: boolean +} + +type FileSystemItem = IFileSystemItem + +const REMOVE_UPLOAD_PROGRESS_DELAY = 5000 + +const StorageContext = React.createContext(undefined) + +const StorageProvider = ({ children }: StorageContextProps) => { + const { + filesApiClient, + isLoggedIn + } = useFilesApi() + const [spaceUsed, setSpaceUsed] = useState(0) + const [pins, setPins] = useState([]) + + const refreshPins = useCallback(async () => { + const result = await filesApiClient.listBuckets() + + setPins(result.filter(b => b.type === "pinning")) + return Promise.resolve() + }, [filesApiClient]) + + useEffect(() => { + refreshPins() + }, [refreshPins]) + + // Space used counter + useEffect(() => { + const getSpaceUsage = async () => { + try { + // TODO: Update this to include Share buckets where the current user is the owner + const totalSize = pins.filter(b => b.type === "pinning") + .reduce((totalSize, bucket) => { return totalSize += (bucket as any).size}, 0) + + setSpaceUsed(totalSize) + } catch (error) { + console.error(error) + } + } + if (isLoggedIn) { + getSpaceUsage() + } + }, [filesApiClient, isLoggedIn, pins]) + + // Reset encryption keys on log out + useEffect(() => { + if (!isLoggedIn) { + setPins([]) + } + }, [isLoggedIn]) + + const [uploadsInProgress, dispatchUploadsInProgress] = useReducer( + uploadsInProgressReducer, + [] + ) + + const [downloadsInProgress, dispatchDownloadsInProgress] = useReducer( + downloadsInProgressReducer, + [] + ) + + const [closeIntercept, setCloseIntercept] = useState() + + useEffect(() => { + if (downloadsInProgress.length > 0) { + setCloseIntercept("Download in progress, are you sure?") + } else if (uploadsInProgress.length > 0) { + setCloseIntercept("Upload in progress, are you sure?") + } else if (closeIntercept !== undefined) { + setCloseIntercept(undefined) + } + }, [closeIntercept, downloadsInProgress, uploadsInProgress]) + + useBeforeunload(() => { + if (closeIntercept !== undefined) { + return closeIntercept + } + }) + + const createPin = useCallback(async (bucketId: string, files: File[], path: string) => { + const bucket = pins.find(b => b.id === bucketId) + + if (!bucket) { + console.error("No encryption key for this bucket is available.") + return + } + + const id = uuidv4() + const uploadProgress: UploadProgress = { + id, + fileName: files[0].name, // TODO: Do we need this? + complete: false, + error: false, + noOfFiles: files.length, + progress: 0, + path + } + dispatchUploadsInProgress({ type: "add", payload: uploadProgress }) + try { + // TODO: Make API Request to upload here + + // setting complete + dispatchUploadsInProgress({ type: "complete", payload: { id } }) + setTimeout(() => { + dispatchUploadsInProgress({ type: "remove", payload: { id } }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + + return Promise.resolve() + } catch (error) { + console.error(error) + // setting error + let errorMessage = t`Something went wrong. We couldn't upload your file` + + // we will need a method to parse server errors + if (Array.isArray(error) && error[0].message.includes("conflict")) { + errorMessage = t`A file with the same name already exists` + } + dispatchUploadsInProgress({ + type: "error", + payload: { id, errorMessage } + }) + setTimeout(() => { + dispatchUploadsInProgress({ type: "remove", payload: { id } }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + } + }, [pins]) + + const getPinContent = useCallback(async ( + bucketId: string, + { cid, cancelToken, onDownloadProgress, file, path }: GetFileContentParams + ) => { + const bucket = pins.find(b => b.id === bucketId) + + if (!bucket) { + throw new Error("No encryption key for this bucket found") + } + + if (!file) { + console.error("No file passed, and no file found for cid:", cid, "in pathContents:", path) + throw new Error("No file found.") + } + + try { + const result = await filesApiClient.getFileContent( + { + path: path, + source: { + id: bucket.id + } + }, + cancelToken, + onDownloadProgress + ) + + return result.data + } catch (error) { + console.error(error) + return Promise.reject() + } + }, [pins, filesApiClient]) + + const downloadPin = useCallback(async (bucketId: string, itemToDownload: FileSystemItem, path: string) => { + const toastId = uuidv4() + try { + const downloadProgress: DownloadProgress = { + id: toastId, + fileName: itemToDownload.name, + complete: false, + error: false, + progress: 0 + } + dispatchDownloadsInProgress({ type: "add", payload: downloadProgress }) + const result = await getPinContent(bucketId, { + cid: itemToDownload.cid, + file: itemToDownload, + path: `${path}/${itemToDownload.name}`, + onDownloadProgress: (progressEvent) => { + dispatchDownloadsInProgress({ + type: "progress", + payload: { + id: toastId, + progress: Math.ceil( + (progressEvent.loaded / itemToDownload.size) * 100 + ) + } + }) + } + }) + if (!result) return + const link = document.createElement("a") + link.href = URL.createObjectURL(result) + link.download = itemToDownload?.name || "file" + link.click() + dispatchDownloadsInProgress({ + type: "complete", + payload: { id: toastId } + }) + URL.revokeObjectURL(link.href) + setTimeout(() => { + dispatchDownloadsInProgress({ + type: "remove", + payload: { id: toastId } + }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + return Promise.resolve() + } catch (error) { + dispatchDownloadsInProgress({ type: "error", payload: { id: toastId } }) + return Promise.reject() + } + }, [getPinContent]) + + return ( + + {children} + + ) +} + +const useStorage = () => { + const context = React.useContext(StorageContext) + if (context === undefined) { + throw new Error("useFiles must be used within a FilesProvider") + } + return context +} + +export { StorageProvider, useStorage } +export type { + FileSystemItem, + DirectoryContentResponse, + CSFFilesFullInfoResponse as FileFullInfo, + BucketType, + SearchEntry +} diff --git a/packages/storage-ui/src/Media/Empty.svg.tsx b/packages/storage-ui/src/Media/Empty.svg.tsx new file mode 100644 index 0000000000..aaa58a7a6f --- /dev/null +++ b/packages/storage-ui/src/Media/Empty.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as EmptySvg } from "./svgs/empty.svg" + +export default EmptySvg diff --git a/packages/storage-ui/src/Media/devices.png b/packages/storage-ui/src/Media/devices.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5a094f333640e1e743962989d5b16ad078dd8a GIT binary patch literal 81819 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≻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 BZiD~; literal 0 HcmV?d00001 diff --git a/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx b/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx new file mode 100644 index 0000000000..e82e22a630 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx @@ -0,0 +1,16 @@ +import React from "react" +import ForegroundSource from "./foreground.svg" + +interface IForegroundSVG { + className?: string +} + +export const ForegroundSVG = ({ className }: IForegroundSVG) => { + return ( + foreground + ) +} \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx b/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx new file mode 100644 index 0000000000..52f7e6560b --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as BottomDarkSVG } from "./bottom-bg.svg" + +export default BottomDarkSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx b/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx new file mode 100644 index 0000000000..30fb95e015 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as TopDarkSVG } from "./top-bg.svg" + +export default TopDarkSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg b/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg new file mode 100644 index 0000000000..a5c254d37e --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg b/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg new file mode 100644 index 0000000000..6011e4802e --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/desktop-mobile.png b/packages/storage-ui/src/Media/landing/layers/desktop-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..251a0b9b5198891986faf143167244f05fa9e931 GIT binary patch literal 98840 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 P00000NkvXXu0mjf4NxK( literal 0 HcmV?d00001 diff --git a/packages/storage-ui/src/Media/landing/layers/foreground.svg b/packages/storage-ui/src/Media/landing/layers/foreground.svg new file mode 100644 index 0000000000..b6ea5f39f4 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/foreground.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx b/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx new file mode 100644 index 0000000000..26a66ffe6c --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as BottomLightSVG } from "./bottom-bg.svg" + +export default BottomLightSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx b/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx new file mode 100644 index 0000000000..0602d788fc --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as TopLightSVG } from "./top-bg.svg" + +export default TopLightSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg b/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg new file mode 100644 index 0000000000..712931b231 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg b/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg new file mode 100644 index 0000000000..1f386565f6 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/password-key.png b/packages/storage-ui/src/Media/landing/layers/password-key.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe52b28039e12d5da26a27368531442e7c733a4 GIT binary patch literal 42006 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%0D$1YjJzw<` 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 N3Nk9v)siM5{{daEB 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/storage-ui/src/Media/svgs/empty.svg b/packages/storage-ui/src/Media/svgs/empty.svg new file mode 100644 index 0000000000..859415ebd6 --- /dev/null +++ b/packages/storage-ui/src/Media/svgs/empty.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/storage-ui/src/Themes/Constants.ts b/packages/storage-ui/src/Themes/Constants.ts new file mode 100644 index 0000000000..e16784ccd7 --- /dev/null +++ b/packages/storage-ui/src/Themes/Constants.ts @@ -0,0 +1,161 @@ +import { IConstants } from "@chainsafe/common-theme" + +export const UI_CONSTANTS = { + mobileButtonHeight: 44, + headerHeight: 60, + navWidth: 8 * 27, + contentPadding: 8 * 15, + contentTopPadding: 8 * 15, + mobileHeaderHeight: 8 * 6.3, + svgWidth: 8 * 2.5, + topPadding: 8 * 3, + mobileNavWidth: 8 * 30, + headerTopPadding: 8 * 3, + accountControlsPadding: 8 * 7 +} + +export interface CsfColors extends IConstants { + landing: { + background: string + border: string + boxShadow: string + footerBg: string + footerText: string + } + loginModule: { + explainerBg: string + background: string + itemBackground: string + iconColor: string + textColor: string + subText: string + flagBg: string + flagText: string + completeBg: string + completeText: string + } + header: { + rootBackground: string + optionsBackground: string + optionsTextColor: string + optionsBorder: string + menuItemTextColor: string + iconColor: string + hamburger: string + } + modalDefault: { + fadeBackground: string + background: string + } + nav: { + backgroundColor: string + blocker: string + mobileBackgroundColor: string + headingColor: string + itemColor: string + itemColorHover: string + itemIconColor: string + itemIconColorHover: string + } + createFolder: { + backgroundColor: string + color: string + } + actionModal: { + backgroundColor: string + color: string + } + previewModal: { + controlsBackground: string + controlsColor: string + closeButtonColor: string + fileOpsColor: string + fileNameColor: string + optionsBackground: string + optionsTextColor: string + optionsBorder: string + menuItemIconColor: string + menuItemTextColor: string + message: string + previewTopNavHeight: number + previewBottomNavHeight: number + } + searchModule: { + resultsBackground: string + resultsBackdrop: string + resultsHeading: string + resultsFolder: string + resultsRow: string + noResults: string + } + uploadModal: { + background: string + color: string + icon: string + iconHover: string + addMore: string + addMoreBackground: string + footerBackground: string + } + fileInfoModal: { + background: string + color: string + copyButtonBackground: string + copyButtonColor: string + infoContainerBorderTop: string + } + moveFileModal: { + background: string + color: string + } + filesTable: { + color: string + uploadText: string + gridItemShadow: string + } + fileSystemItemRow: { + icon: string + menuIcon: string + dropdownIcon: string + optionsBackground: string + optionsColor: string + optionsBorder: string + itemBackground: string + itemColor: string + } + masterKey: { + desktop: { + color: string + link: string + checkbox: string + } + mobile: { + color: string + link: string + checkbox: string + } + } + profile: { + icon: string + } + uploadAlert: { + icon: string + } + settingsPage: { + darkSwitch: { + backgroundColor: string + color: string + border?: string + borderColor?: string + } + lightSwitch: { + backgroundColor: string + color: string + border?: string + borderColor?: string + } + } + surveyBanner: { + color: string + } +} \ No newline at end of file diff --git a/packages/storage-ui/src/Themes/DarkTheme.ts b/packages/storage-ui/src/Themes/DarkTheme.ts new file mode 100644 index 0000000000..0dff2a4757 --- /dev/null +++ b/packages/storage-ui/src/Themes/DarkTheme.ts @@ -0,0 +1,599 @@ +import { createTheme } from "@chainsafe/common-theme" +import { CsfColors, UI_CONSTANTS } from "./Constants" + +export const darkTheme = createTheme({ + globalStyling: { + ":root": { + "--csf-primary": "#5165DC", + + "--blue1": "#111D2C", + "--blue2": "#112A45", + "--blue3": "#15395B", + "--blue4": "#164C7E", + "--blue5": "#1765AD", + "--blue6": "#177DDC", + "--blue7": "#3C9AE8", + "--blue8": "#65B7F3", + "--blue9": "#8DCFF8", + "--blue10": "#B7E3FA", + + "--gray1": "#141414", + "--gray2": "#1D1D1D", + "--gray3": "#262626", + "--gray4": "#303030", + "--gray5": "#434343", + "--gray6": "#5A5A5A", + "--gray7": "#7D7D7D", + "--gray8": "#ACACAC", + "--gray9": "#DBDBDB", + "--gray10": "#FFFFFF", + + "--red1": "#2A1215", + "--red2": "#431418", + "--red3": "#58181C", + "--red4": "#791A1F", + "--red5": "#A61D24", + "--red6": "#D32029", + "--red7": "#E84749", + "--red8": "#F37370", + "--red9": "#F89F9A", + "--red10": "#FAC8C3", + + "--volcano1": "#2B1611", + "--volcano2": "#441D12", + "--volcano3": "#592716", + "--volcano4": "#7C3118", + "--volcano5": "#AA3E19", + "--volcano6": "#D84A1B", + "--volcano7": "#E87040", + "--volcano8": "#F3956A", + "--volcano9": "#F8B692", + "--volcano10": "#FAD4BC", + + "--orange1": "#2B1D11", + "--orange2": "#442A11", + "--orange3": "#593815", + "--orange4": "#7C4A15", + "--orange5": "#AA6215", + "--orange6": "#D87A16", + "--orange7": "#E89A3C", + "--orange8": "#F3B765", + "--orange9": "#F8CF8D", + "--orange10": "#FAE3B7", + + "--gold1": "#2B2111", + "--gold2": "#443111", + "--gold3": "#594214", + "--gold4": "#7C5914", + "--gold5": "#AA7714", + "--gold6": "#D89614", + "--gold7": "#E8B339", + "--gold8": "#F3CC62", + "--gold9": "#F8DF8B", + "--gold10": "#FAEDB5", + + "--yellow1": "#2B2611", + "--yellow2": "#443B11", + "--yellow3": "#595014", + "--yellow4": "#595014", + "--yellow5": "#AA9514", + "--yellow6": "#D8BD14", + "--yellow7": "#E8D639", + "--yellow8": "#F3EA62", + "--yellow9": "#F8F48B", + "--yellow10": "#FAFAB5", + + "--lime1": "#1F2611", + "--lime2": "#2E3C10", + "--lime3": "#3E4F13", + "--lime4": "#536D13", + "--lime5": "#6F9412", + "--lime6": "#8BBB11", + "--lime7": "#A9D134", + "--lime8": "#C9E75D", + "--lime9": "#E4F88B", + "--lime10": "#F0FAB5", + + "--green1": "#162312", + "--green2": "#1D3712", + "--green3": "#274916", + "--green4": "#306317", + "--green5": "#3C8618", + "--green6": "#49AA19", + "--green7": "#6ABE39", + "--green8": "#8FD460", + "--green9": "#B2E58B", + "--green10": "#D5F2BB", + + "--cyan1": "#112123", + "--cyan2": "#113536", + "--cyan3": "#144848", + "--cyan4": "#146262", + "--cyan5": "#138585", + "--cyan6": "#13A8A8", + "--cyan7": "#33BCB7", + "--cyan8": "#58D1C9", + "--cyan9": "#84E2D8", + "--cyan10": "#B2F1E8", + + "--geekblue1": "#131629", + "--geekblue2": "#161D40", + "--geekblue3": "#1C2755", + "--geekblue4": "#203175", + "--geekblue5": "#263EA0", + "--geekblue6": "#2B4ACB", + "--geekblue7": "#5273E0", + "--geekblue8": "#7F9EF3", + "--geekblue9": "#A8C1F8", + "--geekblue10": "#D2E0FA", + + "--purple1": "#1A1325", + "--purple2": "#24163A", + "--purple3": "#301C4D", + "--purple4": "#3E2069", + "--purple5": "#51258F", + "--purple6": "#642AB5", + "--purple7": "#854ECA", + "--purple8": "#AB7AE0", + "--purple9": "#CDA8F0", + "--purple10": "#EBD7FA", + + "--magenta1": "#291321", + "--magenta2": "#40162F", + "--magenta3": "#551C3B", + "--magenta4": "#75204F", + "--magenta5": "#A02669", + "--magenta6": "#CB2B83", + "--magenta7": "#E0529C", + "--magenta8": "#F37FB7", + "--magenta9": "#F8A8CC", + "--magenta10": "#FAD2E3" + }, + body: { + backgroundColor: "var(--gray1)", + color: "var(--gray9)" + } + }, + themeConfig: { + palette: { + primary: { + main: "var(--gray3)", + hover: "var(--gray10)" + }, + secondary: { + main: "var(--gray10)", + hover: "#000" + }, + common: { + black: { + main: "var(--gray1)" + } + }, + additional: { + blue: { + 1: "var(--blue1)", + 2: "var(--blue2)", + 3: "var(--blue3)", + 4: "var(--blue4)", + 5: "var(--blue5)", + 6: "var(--blue6)", + 7: "var(--blue7)", + 8: "var(--blue8)", + 9: "var(--blue9)", + 10: "var(--blue10)" + }, + gray: { + 1: "var(--gray1)", + 2: "var(--gray2)", + 3: "var(--gray3)", + 4: "var(--gray4)", + 5: "var(--gray5)", + 6: "var(--gray6)", + 7: "var(--gray7)", + 8: "var(--gray8)", + 9: "var(--gray9)", + 10: "var(--gray10)" + }, + red: { + 1: "var(--red1)", + 2: "var(--red2)", + 3: "var(--red3)", + 4: "var(--red4)", + 5: "var(--red5)", + 6: "var(--red6)", + 7: "var(--red7)", + 8: "var(--red8)", + 9: "var(--red9)", + 10: "var(--red10)" + }, + volcano: { + 1: "var(--volcano1)", + 2: "var(--volcano2)", + 3: "var(--volcano3)", + 4: "var(--volcano4)", + 5: "var(--volcano5)", + 6: "var(--volcano6)", + 7: "var(--volcano7)", + 8: "var(--volcano8)", + 9: "var(--volcano9)", + 10: "var(--volcano10)" + }, + orange: { + 1: "var(--orange1)", + 2: "var(--orange2)", + 3: "var(--orange3)", + 4: "var(--orange4)", + 5: "var(--orange5)", + 6: "var(--orange6)", + 7: "var(--orange7)", + 8: "var(--orange8)", + 9: "var(--orange9)", + 10: "var(--orange10)" + }, + gold: { + 1: "var(--gold1)", + 2: "var(--gold2)", + 3: "var(--gold3)", + 4: "var(--gold4)", + 5: "var(--gold5)", + 6: "var(--gold6)", + 7: "var(--gold7)", + 8: "var(--gold8)", + 9: "var(--gold9)", + 10: "var(--gold10)" + }, + yellow: { + 1: "var(--yellow1)", + 2: "var(--yellow2)", + 3: "var(--yellow3)", + 4: "var(--yellow4)", + 5: "var(--yellow5)", + 6: "var(--yellow6)", + 7: "var(--yellow7)", + 8: "var(--yellow8)", + 9: "var(--yellow9)", + 10: "var(--yellow10)" + }, + lime: { + 1: "var(--lime1)", + 2: "var(--lime2)", + 3: "var(--lime3)", + 4: "var(--lime4)", + 5: "var(--lime5)", + 6: "var(--lime6)", + 7: "var(--lime7)", + 8: "var(--lime8)", + 9: "var(--lime9)", + 10: "var(--lime10)" + }, + green: { + 1: "var(--green1)", + 2: "var(--green2)", + 3: "var(--green3)", + 4: "var(--green4)", + 5: "var(--green5)", + 6: "var(--green6)", + 7: "var(--green7)", + 8: "var(--green8)", + 9: "var(--green9)", + 10: "var(--green10)" + }, + cyan: { + 1: "var(--cyan1)", + 2: "var(--cyan2)", + 3: "var(--cyan3)", + 4: "var(--cyan4)", + 5: "var(--cyan5)", + 6: "var(--cyan6)", + 7: "var(--cyan7)", + 8: "var(--cyan8)", + 9: "var(--cyan9)", + 10: "var(--cyan10)" + }, + geekblue: { + 1: "var(--geekblue1)", + 2: "var(--geekblue2)", + 3: "var(--geekblue3)", + 4: "var(--geekblue4)", + 5: "var(--geekblue5)", + 6: "var(--geekblue6)", + 7: "var(--geekblue7)", + 8: "var(--geekblue8)", + 9: "var(--geekblue9)", + 10: "var(--geekblue10)" + }, + purple: { + 1: "var(--purple1)", + 2: "var(--purple2)", + 3: "var(--purple3)", + 4: "var(--purple4)", + 5: "var(--purple5)", + 6: "var(--purple6)", + 7: "var(--purple7)", + 8: "var(--purple8)", + 9: "var(--purple9)", + 10: "var(--purple10)" + }, + magenta: { + 1: "var(--magenta1)", + 2: "var(--magenta2)", + 3: "var(--magenta3)", + 4: "var(--magenta4)", + 5: "var(--magenta5)", + 6: "var(--magenta6)", + 7: "var(--magenta7)", + 8: "var(--magenta8)", + 9: "var(--magenta9)", + 10: "var(--magenta10)" + } + } + }, + constants: { + ...UI_CONSTANTS, + ...({ + landing: { + background: "var(--gray2)", + border: "var(--gray4)", + boxShadow: "unset", + footerBg: "var(--gray4)", + footerText: "var(--gray8)" + }, + loginModule: { + explainerBg: "var(--gray2)", + background: "var(--gray2)", + itemBackground: "var(--gray4)", + iconColor: "#9E9E9E", // Gray 7.5 + textColor: "var(--gray9)", + subText: "var(--gray8)", + flagBg: "var(--gray9)", + flagText: "var(--gray1)", + completeBg: "#0C082B", // Gray 9.5 + completeText: "var(--gray9)" + }, + modalDefault: { + fadeBackground: "var(--gray7)", + background: "var(--gray2)" + }, + header: { + rootBackground: "var(--gray1)", + optionsBackground: "var(--gray2)", + optionsTextColor: "var(--gray5)", + optionsBorder: "var(--gray5)", + menuItemTextColor: "var(--gray10)", + iconColor: "var(--gray7)", + hamburger: "var(--gray10)" + }, + nav: { + backgroundColor: "var(--gray2)", + blocker: "var(--gray2)", + mobileBackgroundColor: "var(--gray2)", + headingColor: "var(--gray9)", + itemColor: "var(--gray9)", + itemColorHover: "var(--gray9)", + itemIconColor: "var(--gray9)", + itemIconColorHover: "var(--gray9)" + }, + createFolder: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)" + }, + actionModal: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)" + }, + previewModal: { + controlsBackground: "var(--gray1)", + controlsColor: "var(--gray10)", + closeButtonColor: "var(--gray9)", + fileOpsColor: "var(--gray9)", + fileNameColor: "var(--gray9)", + optionsBackground: "var(--gray2)", + optionsTextColor: "var(--gray9)", + optionsBorder: "var(--gray5)", + menuItemIconColor: "var(--gray9)", + menuItemTextColor: "var(--gray10)", + message: "var(--gray8)", + previewBottomNavHeight: 64, + previewTopNavHeight: 64 + }, + searchModule: { + resultsBackground: "var(--gray2)", + resultsBackdrop: "var(--gray2)", + resultsHeading: "var(--gray9)", + resultsFolder: "var(--gray9)", + resultsRow: "var(--gray9)", + noResults: "var(--gray9)" + }, + uploadModal: { + background: "var(--gray2)", + color: "var(--gray9)", + icon: "var(--gray9)", + iconHover: "var(--gray9)", + addMore: "var(--gray9)", + addMoreBackground: "var(--gray4)", + footerBackground: "var(--gray2)" + }, + fileInfoModal: { + background: "var(--gray2)", + color: "var(--gray9)", + copyButtonBackground: "var(--gray1)", + copyButtonColor: "var(--gray8)", + infoContainerBorderTop: "var(--gray4)" + }, + moveFileModal: { + background: "var(--gray2)", + color: "var(--gray9)" + }, + filesTable: { + color: "var(--gray7)", + uploadText: "var(--gray7)", + gridItemShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)" + }, + fileSystemItemRow: { + icon: "var(--gray9)", + menuIcon: "var(--gray9)", + dropdownIcon: "var(--gray9)", + optionsBackground: "var(--gray2)", + optionsColor: "var(--gray9)", + optionsBorder: "var(--gray5)", + itemBackground: "var(--gray1)", + itemColor: "var(--gray9)" + }, + masterKey: { + desktop: { + color: "var(--gray9)", + link: "var(--gray10)", + checkbox: "var(--gray9)" + }, + mobile: { + color: "var(--gray9)", + link: "var(--gray10)", + checkbox: "var(--gray9)" + } + }, + profile: { + icon: "var(--gray9)" + }, + uploadAlert: { + icon: "var(--gray9)" + }, + settingsPage:{ + darkSwitch: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)", + border: "1px solid", + borderColor: "var(--csf-primary)" + }, + lightSwitch: { + backgroundColor: "var(--gray9)", + color: "var(--gray1)" + } + }, + surveyBanner: { + color: "var(--gray9)" + } + } as CsfColors) + }, + overrides: { + RadioInput: { + radio: { + checked: { + borderColor: "var(--csf-primary)" + }, + checkedBefore: { + backgroundColor: "var(--csf-primary)" + } + } + }, + SearchBar: { + input: { + root: { + backgroundColor: "var(--gray1)", + color: "var(--gray9)" + } + } + }, + TextInput: { + label: { + color: "var(--gray9)" + }, + input: { + root: { + backgroundColor: "var(--gray1)", + borderColor: "var(--gray4)", + color: "var(--gray9)" + } + } + }, + Breadcrumb: { + home: { + fill: "var(--gray9)" + } + }, + Typography: { + root: { + "& a": { + color: "var(--gray9)" + } + }, + h5: { + fontWeight: 600, + color: "var(--gray9)" + } + }, + Toaster: { + closeIcon: { + fill: "var(--gray9)" + }, + message: { + color: "var(--gray9)" + }, + typeIcon: { + root: { + fill: "var(--gray9)" + }, + success: { + fill: "var(--green8)" + }, + error: { + fill: "var(--red8)" + } + } + }, + Button: { + variants: { + primary: { + root: { + backgroundColor: "var(--gray5)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + active: { + backgroundColor: "var(--gray7)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + hover: { + backgroundColor: "var(--gray7)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + focus: { + color: "none", + backgroundColor: "none", + "& svg": { + fill: "none" + } + } + }, + outline: { + root: { + backgroundColor: "var(--gray3) !important", + borderColor: "var(--gray4)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + } + } + } + }, + CheckboxInput: { + checkbox: { + checked: { + "& span > svg": { + opacity: 1, + fill: "var(--gray9)" + } + } + } + } + } + } +}) diff --git a/packages/storage-ui/src/Themes/LightTheme.ts b/packages/storage-ui/src/Themes/LightTheme.ts new file mode 100644 index 0000000000..ae73b0a67b --- /dev/null +++ b/packages/storage-ui/src/Themes/LightTheme.ts @@ -0,0 +1,196 @@ +import { createTheme } from "@chainsafe/common-theme" +import { CsfColors, UI_CONSTANTS } from "./Constants" + +export const lightTheme = createTheme({ + globalStyling: { + ":root": { + "--csf-primary": "#5165DC" + } + }, + themeConfig: { + palette: { + primary: { + main: "var(--csf-primary)" + }, + secondary: { + } + }, + constants: { + ...UI_CONSTANTS, + ...({ + landing: { + background: "var(--gray3)", + border: "var(--gray4)", + boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)", + footerBg: "var(--gray4)", + footerText: "var(--gray8)" + }, + loginModule: { + explainerBg: "var(--gray2)", + background: "var(--gray2)", + itemBackground: "var(--gray4)", + iconColor: "#9E9E9E", // Gray 7.5 + textColor: "var(--gray9)", + subText: "var(--gray8)", + flagBg: "var(--gray9)", + flagText: "var(--gray1)", + completeBg: "#0C082B", // Gray 9.5 + completeText: "var(--gray3)" + }, + modalDefault: { + fadeBackground: "var(--gray9)", + background: "var(--gray1)" + }, + header: { + rootBackground: "var(--gray1)", + optionsBackground: "var(--gray1)", + optionsTextColor: "initial", + optionsBorder: "var(--gray4)", + menuItemTextColor: "var(--gray8)", + iconColor: "initial", + hamburger: "var(--gray10)" + }, + nav: { + backgroundColor: "var(--gray3)", + blocker: "var(--gray9)", + mobileBackgroundColor: "var(--gray9)", + headingColor: "inherit", + itemColor: "inherit", + itemColorHover: "var(--gray7)", + itemIconColor: "inherit", + itemIconColorHover: "var(--gray7)" + }, + createFolder: { + backgroundColor: "var(--gray1)", + color: "var(--gray10)" + }, + actionModal: { + backgroundColor: "var(--gray1)", + color: "var(--gray10)" + }, + previewModal: { + controlsBackground: "var(--gray9)", + controlsColor: "var(--gray8)", + closeButtonColor: "var(--gray2)", + fileOpsColor: "var(--gray2)", + fileNameColor: "var(--gray1)", + optionsBackground: "var(--gray1)", + optionsTextColor: "initial", + optionsBorder: "var(--gray4)", + menuItemIconColor: "var(--gray7)", + menuItemTextColor: "var(--gray8)", + message: "var(--gray6)", + previewBottomNavHeight: 64, + previewTopNavHeight: 64 + }, + searchModule:{ + resultsBackground: "var(--gray1)", + resultsBackdrop: "var(--gray9)", + resultsHeading: "var(--gray8)", + resultsFolder: "var(--gray8)", + resultsRow: "var(--gray8)", + noResults: "var(--gray7)" + }, + uploadModal: { + background: "var(--gray1)", + color: "var(--gray10)", + icon: "var(--gray10)", + iconHover: "var(--gray10)", + addMore: "var(--gray9)", + addMoreBackground: "var(--gray3)", + footerBackground: "var(--gray4)" + }, + fileInfoModal: { + background: "var(--gray1)", + color: "var(--gray10)", + copyButtonBackground: "var(--gray1)", + copyButtonColor: "var(--gray10)", + infoContainerBorderTop: "var(--gray5)" + }, + moveFileModal: { + background: "var(--gray1)", + color: "var(--gray10)" + }, + filesTable: { + color: "", + uploadText: "var(--gray2)", + gridItemShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)" + }, + fileSystemItemRow: { + icon: "var(--gray8)", + menuIcon: "var(--gray7)", + dropdownIcon: "initial", + optionsBackground: "var(--gray1)", + optionsColor: "initial", + optionsBorder: "var(--gray4)", + itemBackground: "initial", + itemColor: "initial" + }, + masterKey: { + desktop: { + color: "var(--gray10)", + link: "var(--gray10)", + checkbox: "var(--gray1)" + }, + mobile: { + color: "var(--gray1)", + link: "var(--gray1)", + checkbox: "var(--gray9)" + } + }, + profile: { + icon: "initial" + }, + uploadAlert: { + icon: "initial" + }, + settingsPage:{ + darkSwitch: { + backgroundColor: "var(--gray9)", + color: "var(--gray5)" + }, + lightSwitch: { + backgroundColor: "var(--gray4)", + color: "var(--gray9)", + border: "1px solid", + borderColor: "var(--csf-primary)" + } + }, + surveyBanner: { + color: "var(--gray1)" + } + } as CsfColors) + }, + overrides: { + RadioInput: { + radio: { + checked: { + borderColor: "var(--csf-primary)" + }, + checkedBefore: { + backgroundColor: "var(--csf-primary)" + } + } + }, + Typography: { + h5: { + fontWeight: 600, + color: "var(--gray10)" + } + }, + Button: { + variants: { + primary: { + focus: { + color: "none", + backgroundColor: "none", + "& svg": { + fill: "none" + } + } + } + } + } + } + } +}) diff --git a/packages/storage-ui/src/Themes/types.ts b/packages/storage-ui/src/Themes/types.ts new file mode 100644 index 0000000000..5c07401cc0 --- /dev/null +++ b/packages/storage-ui/src/Themes/types.ts @@ -0,0 +1,4 @@ +import { ITheme } from "@chainsafe/common-theme" +import { CsfColors } from "./Constants" + +export type CSFTheme = ITheme \ No newline at end of file diff --git a/packages/storage-ui/src/Utils/Constants.ts b/packages/storage-ui/src/Utils/Constants.ts new file mode 100644 index 0000000000..6bf82b6467 --- /dev/null +++ b/packages/storage-ui/src/Utils/Constants.ts @@ -0,0 +1,12 @@ +export enum CONTENT_TYPES { + Directory = "application/chainsafe-files-directory", + File = "*/*", + Image = "image/*", + Text = "text/*", + Markdown = "text/markdown", + Pdf = "application/pdf", + MP4 = "video/mp4", + Audio = "audio/*" +} + +export const FREE_PLAN_LIMIT = 20000000000 diff --git a/packages/storage-ui/src/Utils/Helpers.tsx b/packages/storage-ui/src/Utils/Helpers.tsx new file mode 100644 index 0000000000..8e4e14b9ac --- /dev/null +++ b/packages/storage-ui/src/Utils/Helpers.tsx @@ -0,0 +1,46 @@ +import { useLocation } from "@chainsafe/common-components" +import { guessContentType } from "./contentTypeGuesser" +import { FileContentResponse } from "@chainsafe/files-api-client" +import { FileSystemItem } from "../Contexts/StorageContext" + +export const centerEllipsis = (address: string, remaining = 6) => { + if (address.length <= remaining * 2) { + return address + } + return `${address.substr(0, remaining)}...${address.substr( + address.length - remaining, + remaining + )}` +} + +export const readFileAsync = (file: Blob): Promise => { + return new Promise((resolve, reject) => { + const reader = new FileReader() + + reader.onload = () => { + reader.result && resolve(reader.result as ArrayBuffer) + } + + reader.onerror = reject + + reader.readAsArrayBuffer(file) + }) +} + +export function useQuery() { + return new URLSearchParams(useLocation().search) +} + +export const capitalize = (value: string) => { + return value.charAt(0).toUpperCase() + value.slice(1) +} + +export const parseFileContentResponse = (fcr: FileContentResponse): FileSystemItem => ({ + ...fcr, + content_type: + fcr.content_type !== "application/octet-stream" + ? fcr.content_type + : guessContentType(fcr.name), + isFolder: + fcr.content_type === "application/chainsafe-files-directory" +}) diff --git a/packages/storage-ui/src/Utils/MimeMatcher.ts b/packages/storage-ui/src/Utils/MimeMatcher.ts new file mode 100644 index 0000000000..d0466c7d73 --- /dev/null +++ b/packages/storage-ui/src/Utils/MimeMatcher.ts @@ -0,0 +1,95 @@ +// Shamelessly borrowed from https://github.com/katlasik/mime-matcher/blob/master/src/index.js +// Updated the regex to more accurately reflect the IANA spec as per https://en.wikipedia.org/wiki/Media_type + +// eslint-disable-next-line +const MIME_TYPE_REGEX = /^(\*|application|audio|image|message|multipart|text|video|font|example|model)\/(\*|[a-z0-9._\-]+)(\+([a-zA-Z0-9._\-=]+))?(; ([a-zA-Z0-9._\-=]+))?$/ + +function createMatcher(expected: string) { + if (expected === "*") { + return () => true + } else { + return (actual: string) => actual === expected + } +} + +function parse(mimeType: string) { + if (!mimeType) { + return { + valid: false + } + } + + const match = mimeType.match(MIME_TYPE_REGEX) + + if (!match) { + return { + valid: false + } + } + + const [, type, subType, parameter] = Array.from(match) + return { + valid: !!match, + type, + subType, + parameter + } +} + +function isValid(mimeType: string) { + return parse(mimeType).valid +} + +function matcher(expected: string[]) { + const m = new MimeMatcher(expected) + return (actual: string) => m.match(actual) +} + +class MimeMatcher { + expected = [] as { typeMatcher: (actual: string) => boolean; subTypeMatcher: (actual: string) => boolean }[] + + constructor(expected: string | string[]) { + if (Array.isArray(expected)) { + this.expected = expected.map(mimeType => { + const { valid, type, subType } = parse(mimeType) + if (valid && type && subType) { + return ({ + typeMatcher: createMatcher(type), + subTypeMatcher: createMatcher(subType) + }) + } else { + const msg = `Value "${mimeType}" is not valid mime type.It should have format "type/subtype".` + throw new TypeError(msg) + } + }) + } + else { + const { valid, type, subType } = parse(expected) + if (valid && type && subType) { + this.expected = [{ + typeMatcher: createMatcher(type), + subTypeMatcher: createMatcher(subType) + }] + } else { + const msg = `Value "${expected}" is not valid mime type.It should have format "type/subtype".` + throw new TypeError(msg) + } + } + + } + + match(actual: string) { + const { valid, type, subType } = parse(actual) + if (valid && type && subType) { + return this.expected.some(({ typeMatcher, subTypeMatcher }) => { + return typeMatcher(type) && subTypeMatcher(subType) + }) + } else { + return false + } + } +} + +export { isValid, parse, matcher } + +export default MimeMatcher \ No newline at end of file diff --git a/packages/storage-ui/src/Utils/contentTypeGuesser.ts b/packages/storage-ui/src/Utils/contentTypeGuesser.ts new file mode 100644 index 0000000000..d65fb94191 --- /dev/null +++ b/packages/storage-ui/src/Utils/contentTypeGuesser.ts @@ -0,0 +1,26 @@ +const guessContentType = (fileName: string) => { + const { length, [length - 1]: ext } = fileName.split(".") + + switch (ext) { + case "pdf": + return "application/pdf" + case "jpg": + case "png": + case "gif": + case "bmp": + return `image/${ext}` + case "mp3": + case "m4a": + return `audio/${ext}` + case "mp4": + return `video/${ext}` + case "txt": + return "text/plain" + case "md": + return "text/markdown" + default: + return "application/octet-stream" + } +} + +export { guessContentType } diff --git a/packages/storage-ui/src/Utils/encryption.ts b/packages/storage-ui/src/Utils/encryption.ts new file mode 100644 index 0000000000..00c7fb3161 --- /dev/null +++ b/packages/storage-ui/src/Utils/encryption.ts @@ -0,0 +1,94 @@ +const importKeyFromBytes = async (keyBytes: Uint8Array) => + window.crypto.subtle.importKey("raw", keyBytes, "PBKDF2", false, [ + "deriveKey" + ]) + +const deriveKey = async ( + sourceKey: CryptoKey, + keyUsage: KeyUsage[], + keyDerivationParams: Pbkdf2Params +) => + window.crypto.subtle.deriveKey( + keyDerivationParams, + sourceKey, + { name: "AES-GCM", length: 256 }, + false, + keyUsage + ) + +export const encryptFile = async ( + fileArrayBuffer: ArrayBuffer, + password: string +) => { + try { + const plainTextBytes = new Uint8Array(fileArrayBuffer) + const passwordBytes = new TextEncoder().encode(password) + + const salt = window.crypto.getRandomValues(new Uint8Array(16)) + const iv = window.crypto.getRandomValues(new Uint8Array(12)) + + const passwordKey = await importKeyFromBytes(passwordBytes) + + const aesKey = await deriveKey(passwordKey, ["encrypt"], { + name: "PBKDF2", + salt: salt, + iterations: 250000, + hash: "SHA-256" + }) + const cipherBytes = await window.crypto.subtle.encrypt( + { name: "AES-GCM", iv: iv }, + aesKey, + plainTextBytes + ) + + const cipherBytesArray = new Uint8Array(cipherBytes) + const resultBytes = new Uint8Array( + cipherBytesArray.byteLength + salt.byteLength + iv.byteLength + ) + resultBytes.set(salt, 0) + resultBytes.set(iv, salt.byteLength) + resultBytes.set(cipherBytesArray, salt.byteLength + iv.byteLength) + + return resultBytes + } catch (error) { + console.error("Error encrypting file") + console.error(error) + throw error + } +} + +export const decryptFile = async ( + cipher: ArrayBuffer | Uint8Array, + password: string +) => { + try { + const cipherBytes = new Uint8Array(cipher) + const passwordBytes = new TextEncoder().encode(password) + + const salt = cipherBytes.slice(0, 16) + const iv = cipherBytes.slice(16, 16 + 12) + const data = cipherBytes.slice(16 + 12) + const passwordKey = await importKeyFromBytes(passwordBytes) + const aesKey = await deriveKey(passwordKey, ["decrypt"], { + name: "PBKDF2", + salt: salt, + iterations: 250000, + hash: "SHA-256" + }) + + const decryptedContent = await window.crypto.subtle.decrypt( + { + name: "AES-GCM", + iv: iv + }, + aesKey, + data + ) + + return decryptedContent + } catch (error) { + console.error("Error decrypting file") + console.error(error) + return + } +} diff --git a/packages/storage-ui/src/Utils/pathUtils.ts b/packages/storage-ui/src/Utils/pathUtils.ts new file mode 100644 index 0000000000..594153af6c --- /dev/null +++ b/packages/storage-ui/src/Utils/pathUtils.ts @@ -0,0 +1,50 @@ +// trims a string at both ends for a character +function trimChar(str: string, char: string) { + char = char.charAt(0) + if (str.charAt(0) === char) { + str = str.substr(1, str.length - 1) + } + if (str.charAt(str.length - 1) === char) { + str = str.substr(0, str.length - 1) + } + return str +} + +// "/" -> [] +// "/path/to/this" -> ["path", "to", "this"] +export function getArrayOfPaths(path: string): string[] { + if (path === "/") return [] + else { + path = trimChar(path, "/") + return path.split("/") + } +} + +// [] -> "/" +// ["path", "to", "this"] -> "/path/to/this" +export function getURISafePathFromArray(arrayOfPaths: string[]): string { + if (!arrayOfPaths.length) return "/" + else { + return "/" + arrayOfPaths.map(encodeURIComponent).join("/") + } +} + +// get path and file +export function getPathWithFile(path: string, fileName: string) { + return path === "/" + ? `/${fileName}` + : path[path.length - 1] === "/" + ? `${path}${fileName}` + : `${path}/${fileName}` +} + +// get path and file +export function getParentPathFromFilePath(filePath: string) { + const parentPath = filePath.substring(0, filePath.lastIndexOf("/")) + if (!parentPath) return "/" + return parentPath +} + +export function extractDrivePath(pathname: string) { + return pathname.split("/").slice(2).join("/").concat("/") +} diff --git a/packages/storage-ui/src/index.css b/packages/storage-ui/src/index.css new file mode 100644 index 0000000000..ea15431cb1 --- /dev/null +++ b/packages/storage-ui/src/index.css @@ -0,0 +1,27 @@ +/* h1, +h2, +h3, +h4, +h5, +h6 { + color: rgba(255, 255, 255, 1); +} */ + +.bn-onboard-custom.bn-onboard-modal { + z-index: 2000; +} + +/* +.bn-onboard-custom.bn-onboard-modal-content { + background: #424242 !important; +} + +.bn-onboard-prepare-button { + border-color: #FFE500 !important; + color: #FFE500 !important; +} + +.bn-onboard-custom.bn-onboard-select-info-container > span { + color: #FFE500 !important; +} */ + diff --git a/packages/storage-ui/src/index.tsx b/packages/storage-ui/src/index.tsx new file mode 100644 index 0000000000..32e15e9972 --- /dev/null +++ b/packages/storage-ui/src/index.tsx @@ -0,0 +1,12 @@ +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")) + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister() diff --git a/packages/storage-ui/src/locales/en/messages.po b/packages/storage-ui/src/locales/en/messages.po new file mode 100644 index 0000000000..db9f17b90d --- /dev/null +++ b/packages/storage-ui/src/locales/en/messages.po @@ -0,0 +1,110 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2021-05-27 00:48+0200\n" +"Mime-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +msgid "A file with the same name already exists" +msgstr "A file with the same name already exists" + +msgid "Account" +msgstr "Account" + +msgid "Bin" +msgstr "Bin" + +msgid "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" +msgstr "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" + +msgid "Connect a new wallet" +msgstr "Connect a new wallet" + +msgid "Connection failed" +msgstr "Connection failed" + +msgid "Continue with Facebook" +msgstr "Continue with Facebook" + +msgid "Continue with Github" +msgstr "Continue with Github" + +msgid "Continue with Google" +msgstr "Continue with Google" + +msgid "Continue with Web3 Wallet" +msgstr "Continue with Web3 Wallet" + +msgid "Failed to get signature" +msgstr "Failed to get signature" + +msgid "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." +msgstr "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." + +msgid "Folders" +msgstr "Folders" + +msgid "Get Started" +msgstr "Get Started" + +msgid "Go back" +msgstr "Go back" + +msgid "Home" +msgstr "Home" + +msgid "Learn more about ChainSafe" +msgstr "Learn more about ChainSafe" + +msgid "Privacy Policy" +msgstr "Privacy Policy" + +msgid "Resources" +msgstr "Resources" + +msgid "Select a wallet" +msgstr "Select a wallet" + +msgid "Sign Out" +msgstr "Sign Out" + +msgid "Sign-in with {0}" +msgstr "Sign-in with {0}" + +msgid "Something went wrong. We couldn't upload your file" +msgstr "Something went wrong. We couldn't upload your file" + +msgid "Terms and Conditions" +msgstr "Terms and Conditions" + +msgid "The authentication popup was closed" +msgstr "The authentication popup was closed" + +msgid "The system is undergoing maintenance, thank you for being patient." +msgstr "The system is undergoing maintenance, thank you for being patient." + +msgid "There was an error authenticating" +msgstr "There was an error authenticating" + +msgid "There was an error connecting your wallet" +msgstr "There was an error connecting your wallet" + +msgid "Try again" +msgstr "Try again" + +msgid "Use a different login method" +msgstr "Use a different login method" diff --git a/packages/storage-ui/src/locales/fr/messages.po b/packages/storage-ui/src/locales/fr/messages.po new file mode 100644 index 0000000000..b84ad4e906 --- /dev/null +++ b/packages/storage-ui/src/locales/fr/messages.po @@ -0,0 +1,101 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2021-05-27 00:48+0200\n" +"Mime-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fr\n" + +msgid "A file with the same name already exists" +msgstr "" + +msgid "Account" +msgstr "" + +msgid "Bin" +msgstr "" + +msgid "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" +msgstr "" + +msgid "Connect a new wallet" +msgstr "" + +msgid "Connection failed" +msgstr "" + +msgid "Continue with Facebook" +msgstr "" + +msgid "Continue with Github" +msgstr "" + +msgid "Continue with Google" +msgstr "" + +msgid "Continue with Web3 Wallet" +msgstr "" + +msgid "Failed to get signature" +msgstr "" + +msgid "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." +msgstr "" + +msgid "Folders" +msgstr "" + +msgid "Get Started" +msgstr "" + +msgid "Go back" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Learn more about ChainSafe" +msgstr "" + +msgid "Privacy Policy" +msgstr "" + +msgid "Resources" +msgstr "" + +msgid "Select a wallet" +msgstr "" + +msgid "Sign Out" +msgstr "" + +msgid "Sign-in with {0}" +msgstr "" + +msgid "Something went wrong. We couldn't upload your file" +msgstr "" + +msgid "Terms and Conditions" +msgstr "" + +msgid "The authentication popup was closed" +msgstr "" + +msgid "The system is undergoing maintenance, thank you for being patient." +msgstr "" + +msgid "There was an error authenticating" +msgstr "" + +msgid "There was an error connecting your wallet" +msgstr "" + +msgid "Try again" +msgstr "" + +msgid "Use a different login method" +msgstr "" diff --git a/packages/storage-ui/src/react-app-env.d.ts b/packages/storage-ui/src/react-app-env.d.ts new file mode 100644 index 0000000000..6431bc5fc6 --- /dev/null +++ b/packages/storage-ui/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/storage-ui/src/serviceWorker.ts b/packages/storage-ui/src/serviceWorker.ts new file mode 100644 index 0000000000..8e951fbfee --- /dev/null +++ b/packages/storage-ui/src/serviceWorker.ts @@ -0,0 +1,146 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === "localhost" || + // [::1] is the IPv6 localhost address. + window.location.hostname === "[::1]" || + // 127.0.0.0/8 are considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +) + +type Config = { + onSuccess?: (registration: ServiceWorkerRegistration) => void + onUpdate?: (registration: ServiceWorkerRegistration) => void +} + +export function register(config?: Config) { + if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return + } + + window.addEventListener("load", () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config) + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + "This web app is being served cache-first by a service " + + "worker. To learn more, visit https://bit.ly/CRA-PWA" + ) + }) + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config) + } + }) + } +} + +function registerValidSW(swUrl: string, config?: Config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing + if (installingWorker == null) { + return + } + installingWorker.onstatechange = () => { + if (installingWorker.state === "installed") { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + "New content is available and will be used when all " + + "tabs for this page are closed. See https://bit.ly/CRA-PWA." + ) + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration) + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log("Content is cached for offline use.") + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration) + } + } + } + } + } + }) + .catch(error => { + console.error("Error during service worker registration:", error) + }) +} + +function checkValidServiceWorker(swUrl: string, config?: Config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl, { + headers: { "Service-Worker": "script" } + }) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get("content-type") + if ( + response.status === 404 || + (contentType != null && contentType.indexOf("javascript") === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload() + }) + }) + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config) + } + }) + .catch(() => { + console.log( + "No internet connection found. App is running in offline mode." + ) + }) +} + +export function unregister() { + if ("serviceWorker" in navigator) { + navigator.serviceWorker.ready + .then(registration => { + registration.unregister() + }) + .catch(error => { + console.error(error.message) + }) + } +} diff --git a/packages/storage-ui/src/setupTests.ts b/packages/storage-ui/src/setupTests.ts new file mode 100644 index 0000000000..3f9fc64cfc --- /dev/null +++ b/packages/storage-ui/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import "@testing-library/jest-dom/extend-expect" diff --git a/packages/storage-ui/tsconfig.json b/packages/storage-ui/tsconfig.json new file mode 100644 index 0000000000..3cf515c3b5 --- /dev/null +++ b/packages/storage-ui/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "es2016", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "downlevelIteration": true, + "sourceMap": true, + "inlineSources": true, + "sourceRoot": "/" + }, + "include": ["src"] +} diff --git a/yarn.lock b/yarn.lock index bc4ad6cd48..1241eb1a8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,7 +96,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4": +"@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== @@ -1635,7 +1635,7 @@ "@babel/parser" "^7.12.7" "@babel/types" "^7.12.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== @@ -1664,10 +1664,10 @@ resolved "https://registry.yarnpkg.com/@chainsafe/browser-storage-hooks/-/browser-storage-hooks-1.0.1.tgz#26d32cde1999914db755a631e2643823c54959f7" integrity sha512-Q4b5gQAZnsRXKeADspd5isqfwwhhXjDk70y++YadufA6EZ3tf340oW0OVszp74KaGEw+CAYFGQR4X7bzpZ3x9Q== -"@chainsafe/files-api-client@1.11.2": - version "1.11.2" - resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.2/67d8597bea590f72e00eb384d1b140b342012ea38e49f0ef2801425da816a2b9#c77351af8289f228ed6733ed2e59983e2c7b0d75" - integrity sha512-723zDIbWFX6HUUcXm7nXiziQyzIM619VsXkGH3wOXCmS+UiLs1gUnS8j1k41AkjZoYAu6t/Vkbssxm6/1yjK1Q== +"@chainsafe/files-api-client@1.11.4": + version "1.11.4" + resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.4/02f01962de33e57a6622a2c59b38f4716b48f7cd2fe567984033cf65a7364b7f#68d97dd382b998988816ac6943072356b96ea3e9" + integrity sha512-3VkToIUl2rKxmxkdM1pUFGNGz+Ngsd2P2CIXsAGRDhn56zEhsvhujythy4/JTrgeiCfPgo5C+ONPCRi7YIVu6g== "@chainsafe/web3-context@1.1.4": version "1.1.4" @@ -1803,7 +1803,7 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6", "@emotion/is-prop-valid@^0.8.8": +"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== @@ -1849,12 +1849,12 @@ "@emotion/styled-base" "^10.0.27" babel-plugin-emotion "^10.0.27" -"@emotion/stylis@0.8.5", "@emotion/stylis@^0.8.4": +"@emotion/stylis@0.8.5": 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.5", "@emotion/unitless@^0.7.4": +"@emotion/unitless@0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== @@ -1910,21 +1910,6 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" -"@ethersproject/abi@5.0.9", "@ethersproject/abi@^5.0.5": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.9.tgz#738c1c557e56d8f395a5a27caef9b0449bc85a10" - integrity sha512-ily2OufA2DTrxkiHQw5GqbkMSnNKuwZBqKsajtT0ERhZy1r9w2CpW1bmtRMIGzaqQxCdn/GEoFogexk72cBBZQ== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/abi@5.1.2", "@ethersproject/abi@^5.1.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.1.2.tgz#a8e75cd0455e6dc9e4861c3d1c22bbe436c1d775" @@ -1955,18 +1940,20 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/abstract-provider@5.0.7", "@ethersproject/abstract-provider@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.7.tgz#04ee3bfe43323384e7fecf6c774975b8dec4bdc9" - integrity sha512-NF16JGn6M0zZP5ZS8KtDL2Rh7yHxZbUjBIHLNHMm/0X0BephhjUWy8jqs/Zks6kDJRzNthgmPVy41Ec0RYWPYA== +"@ethersproject/abi@^5.0.5": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.9.tgz#738c1c557e56d8f395a5a27caef9b0449bc85a10" + integrity sha512-ily2OufA2DTrxkiHQw5GqbkMSnNKuwZBqKsajtT0ERhZy1r9w2CpW1bmtRMIGzaqQxCdn/GEoFogexk72cBBZQ== dependencies: + "@ethersproject/address" "^5.0.4" "@ethersproject/bignumber" "^5.0.7" "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" "@ethersproject/properties" "^5.0.3" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/web" "^5.0.6" + "@ethersproject/strings" "^5.0.4" "@ethersproject/abstract-provider@5.1.0", "@ethersproject/abstract-provider@^5.1.0": version "5.1.0" @@ -1981,6 +1968,19 @@ "@ethersproject/transactions" "^5.1.0" "@ethersproject/web" "^5.1.0" +"@ethersproject/abstract-provider@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.7.tgz#04ee3bfe43323384e7fecf6c774975b8dec4bdc9" + integrity sha512-NF16JGn6M0zZP5ZS8KtDL2Rh7yHxZbUjBIHLNHMm/0X0BephhjUWy8jqs/Zks6kDJRzNthgmPVy41Ec0RYWPYA== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/networks" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/transactions" "^5.0.5" + "@ethersproject/web" "^5.0.6" + "@ethersproject/abstract-provider@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.9.tgz#a55410b73e3994842884eb82b1f43e3a9f653eea" @@ -1994,17 +1994,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/web" "^5.0.12" -"@ethersproject/abstract-signer@5.0.9", "@ethersproject/abstract-signer@^5.0.4", "@ethersproject/abstract-signer@^5.0.6": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.9.tgz#238ddc06031aeb9dfceee2add965292d7dd1acbf" - integrity sha512-CM5UNmXQaA03MyYARFDDRjHWBxujO41tVle7glf5kHcQsDDULgqSVpkliLJMtPzZjOKFeCVZBHybTZDEZg5zzg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/abstract-signer@5.1.0", "@ethersproject/abstract-signer@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.1.0.tgz#744c7a2d0ebe3cc0bc38294d0f53d5ca3f4e49e3" @@ -2027,16 +2016,16 @@ "@ethersproject/logger" "^5.0.8" "@ethersproject/properties" "^5.0.7" -"@ethersproject/address@5.0.8", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.8.tgz#0c551659144a5a7643c6bea337149d410825298f" - integrity sha512-V87DHiZMZR6hmFYmoGaHex0D53UEbZpW75uj8AqPbjYUmi65RB4N2LPRcJXuWuN2R0Y2CxkvW6ArijWychr5FA== +"@ethersproject/abstract-signer@^5.0.4", "@ethersproject/abstract-signer@^5.0.6": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.9.tgz#238ddc06031aeb9dfceee2add965292d7dd1acbf" + integrity sha512-CM5UNmXQaA03MyYARFDDRjHWBxujO41tVle7glf5kHcQsDDULgqSVpkliLJMtPzZjOKFeCVZBHybTZDEZg5zzg== dependencies: - "@ethersproject/bignumber" "^5.0.10" + "@ethersproject/abstract-provider" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp" "^5.0.3" + "@ethersproject/properties" "^5.0.3" "@ethersproject/address@5.1.0", "@ethersproject/address@^5.1.0": version "5.1.0" @@ -2049,6 +2038,17 @@ "@ethersproject/logger" "^5.1.0" "@ethersproject/rlp" "^5.1.0" +"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.8.tgz#0c551659144a5a7643c6bea337149d410825298f" + integrity sha512-V87DHiZMZR6hmFYmoGaHex0D53UEbZpW75uj8AqPbjYUmi65RB4N2LPRcJXuWuN2R0Y2CxkvW6ArijWychr5FA== + dependencies: + "@ethersproject/bignumber" "^5.0.10" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/address@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.10.tgz#2bc69fdff4408e0570471cd19dee577ab06a10d0" @@ -2060,13 +2060,6 @@ "@ethersproject/logger" "^5.0.8" "@ethersproject/rlp" "^5.0.7" -"@ethersproject/base64@5.0.6", "@ethersproject/base64@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.6.tgz#26311ebf29ea3d0b9c300ccf3e1fdc44b7481516" - integrity sha512-HwrGn8YMiUf7bcdVvB4NJ+eWT0BtEFpDtrYxVXEbR7p/XBSJjwiR7DEggIiRvxbualMKg+EZijQWJ3az2li0uw== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/base64@5.1.0", "@ethersproject/base64@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.1.0.tgz#27240c174d0a4e13f6eae87416fd876caf7f42b6" @@ -2074,6 +2067,13 @@ dependencies: "@ethersproject/bytes" "^5.1.0" +"@ethersproject/base64@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.6.tgz#26311ebf29ea3d0b9c300ccf3e1fdc44b7481516" + integrity sha512-HwrGn8YMiUf7bcdVvB4NJ+eWT0BtEFpDtrYxVXEbR7p/XBSJjwiR7DEggIiRvxbualMKg+EZijQWJ3az2li0uw== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/base64@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.8.tgz#1bc4b4b8c59c1debf972c7164b96c0b8964a20a1" @@ -2081,14 +2081,6 @@ dependencies: "@ethersproject/bytes" "^5.0.9" -"@ethersproject/basex@5.0.6", "@ethersproject/basex@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.6.tgz#ab95c32e48288a3d868726463506641cb1e9fb6b" - integrity sha512-Y/8dowRxBF3bsKkqEp7XN4kcFFQ0o5xxP1YyopfqkXejaOEGiD7ToQdQ0pIZpAJ5GreW56oFOTDDSO6ZcUCNYg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/basex@5.1.0", "@ethersproject/basex@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.1.0.tgz#80da2e86f9da0cb5ccd446b337364d791f6a131c" @@ -2097,6 +2089,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/properties" "^5.1.0" +"@ethersproject/basex@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.6.tgz#ab95c32e48288a3d868726463506641cb1e9fb6b" + integrity sha512-Y/8dowRxBF3bsKkqEp7XN4kcFFQ0o5xxP1YyopfqkXejaOEGiD7ToQdQ0pIZpAJ5GreW56oFOTDDSO6ZcUCNYg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/basex@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.8.tgz#6867fad20047aa29fbd4b880f27894ed04cc7bb8" @@ -2105,15 +2105,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/bignumber@5.0.12", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.0.8": - version "5.0.12" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.12.tgz#fe4a78667d7cb01790f75131147e82d6ea7e7cba" - integrity sha512-mbFZjwthx6vFlHG9owXP/C5QkNvsA+xHpDCkPPPdG2n1dS9AmZAL5DI0InNLid60rQWL3MXpEl19tFmtL7Q9jw== - dependencies: - "@ethersproject/bytes" "^5.0.8" - "@ethersproject/logger" "^5.0.5" - bn.js "^4.4.0" - "@ethersproject/bignumber@5.1.1", "@ethersproject/bignumber@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.1.1.tgz#84812695253ccbc639117f7ac49ee1529b68e637" @@ -2123,6 +2114,15 @@ "@ethersproject/logger" "^5.1.0" bn.js "^4.4.0" +"@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.0.8": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.12.tgz#fe4a78667d7cb01790f75131147e82d6ea7e7cba" + integrity sha512-mbFZjwthx6vFlHG9owXP/C5QkNvsA+xHpDCkPPPdG2n1dS9AmZAL5DI0InNLid60rQWL3MXpEl19tFmtL7Q9jw== + dependencies: + "@ethersproject/bytes" "^5.0.8" + "@ethersproject/logger" "^5.0.5" + bn.js "^4.4.0" + "@ethersproject/bignumber@^5.0.13": version "5.0.14" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.14.tgz#605bc61dcbd4a8c6df8b5a7a77c0210273f3de8a" @@ -2132,13 +2132,6 @@ "@ethersproject/logger" "^5.0.8" bn.js "^4.4.0" -"@ethersproject/bytes@5.0.8", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.8.tgz#cf1246a6a386086e590063a4602b1ffb6cc43db1" - integrity sha512-O+sJNVGzzuy51g+EMK8BegomqNIg+C2RO6vOt0XP6ac4o4saiq69FnjlsrNslaiMFVO7qcEHBsWJ9hx1tj1lMw== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/bytes@5.1.0", "@ethersproject/bytes@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.1.0.tgz#55dfa9c4c21df1b1b538be3accb50fb76d5facfd" @@ -2146,6 +2139,13 @@ dependencies: "@ethersproject/logger" "^5.1.0" +"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.8.tgz#cf1246a6a386086e590063a4602b1ffb6cc43db1" + integrity sha512-O+sJNVGzzuy51g+EMK8BegomqNIg+C2RO6vOt0XP6ac4o4saiq69FnjlsrNslaiMFVO7qcEHBsWJ9hx1tj1lMw== + dependencies: + "@ethersproject/logger" "^5.0.5" + "@ethersproject/bytes@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.10.tgz#aa49afe7491ba24ff76fa33d98677351263f9ba4" @@ -2153,13 +2153,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/constants@5.0.7", "@ethersproject/constants@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.7.tgz#44ff979e5781b17c8c6901266896c3ee745f4e7e" - integrity sha512-cbQK1UpE4hamB52Eg6DLhJoXeQ1plSzekh5Ujir1xdREdwdsZPPXKczkrWqBBR0KyywJZHN/o/hj0w8j7scSGg== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/constants@5.1.0", "@ethersproject/constants@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.1.0.tgz#4e7da6367ea0e9be87585d8b09f3fccf384b1452" @@ -2167,6 +2160,13 @@ dependencies: "@ethersproject/bignumber" "^5.1.0" +"@ethersproject/constants@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.7.tgz#44ff979e5781b17c8c6901266896c3ee745f4e7e" + integrity sha512-cbQK1UpE4hamB52Eg6DLhJoXeQ1plSzekh5Ujir1xdREdwdsZPPXKczkrWqBBR0KyywJZHN/o/hj0w8j7scSGg== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/constants@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.9.tgz#81ac44c3bf612de63eb1c490b314ea1b932cda9f" @@ -2174,21 +2174,6 @@ dependencies: "@ethersproject/bignumber" "^5.0.13" -"@ethersproject/contracts@5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.8.tgz#71d3ba16853a1555be2e161a6741df186f81c73b" - integrity sha512-PecBL4vnsrpuks2lzzkRsOts8csJy338HNDKDIivbFmx92BVzh3ohOOv3XsoYPSXIHQvobF959W+aSk3RCZL/g== - dependencies: - "@ethersproject/abi" "^5.0.5" - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/contracts@5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.1.1.tgz#c66cb6d618fcbd73e20a6b808e8f768b2b781d0b" @@ -2229,20 +2214,6 @@ ethers "^5.1.0" scrypt-js "3.0.1" -"@ethersproject/hash@5.0.9", "@ethersproject/hash@^5.0.4": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.9.tgz#81252a848185b584aa600db4a1a68cad9229a4d4" - integrity sha512-e8/i2ZDeGSgCxXT0vocL54+pMbw5oX5fNjb2E3bAIvdkh5kH29M7zz1jHu1QDZnptIuvCZepIbhUH8lxKE2/SQ== - dependencies: - "@ethersproject/abstract-signer" "^5.0.6" - "@ethersproject/address" "^5.0.5" - "@ethersproject/bignumber" "^5.0.8" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.4" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/hash@5.1.0", "@ethersproject/hash@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.1.0.tgz#40961d64837d57f580b7b055e0d74174876d891e" @@ -2271,23 +2242,19 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/hdnode@5.0.7", "@ethersproject/hdnode@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.7.tgz#c7bce94a337ea65e37c46bab09a83e1c1a555d99" - integrity sha512-89tphqlji4y/LNE1cSaMQ3hrBtJ4lO1qWGi2hn54LiHym85DTw+zAKbA8QgmdSdJDLGR/kc9VHaIPQ+vZQ2LkQ== +"@ethersproject/hash@^5.0.4": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.9.tgz#81252a848185b584aa600db4a1a68cad9229a4d4" + integrity sha512-e8/i2ZDeGSgCxXT0vocL54+pMbw5oX5fNjb2E3bAIvdkh5kH29M7zz1jHu1QDZnptIuvCZepIbhUH8lxKE2/SQ== dependencies: - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/abstract-signer" "^5.0.6" + "@ethersproject/address" "^5.0.5" + "@ethersproject/bignumber" "^5.0.8" "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/pbkdf2" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/properties" "^5.0.4" "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/wordlists" "^5.0.4" "@ethersproject/hdnode@5.1.0", "@ethersproject/hdnode@^5.1.0": version "5.1.0" @@ -2307,6 +2274,24 @@ "@ethersproject/transactions" "^5.1.0" "@ethersproject/wordlists" "^5.1.0" +"@ethersproject/hdnode@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.7.tgz#c7bce94a337ea65e37c46bab09a83e1c1a555d99" + integrity sha512-89tphqlji4y/LNE1cSaMQ3hrBtJ4lO1qWGi2hn54LiHym85DTw+zAKbA8QgmdSdJDLGR/kc9VHaIPQ+vZQ2LkQ== + dependencies: + "@ethersproject/abstract-signer" "^5.0.4" + "@ethersproject/basex" "^5.0.3" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/pbkdf2" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/transactions" "^5.0.5" + "@ethersproject/wordlists" "^5.0.4" + "@ethersproject/hdnode@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.9.tgz#ce65b430d3d3f0cd3c8f9dfaaf376b55881d9dba" @@ -2325,25 +2310,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/wordlists" "^5.0.8" -"@ethersproject/json-wallets@5.0.9", "@ethersproject/json-wallets@^5.0.6": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.9.tgz#2e1708c2854c4ab764e35920bd1f44c948b95434" - integrity sha512-EWuFvJd8nu90dkmJwmJddxOYCvFvMkKBsZi8rxTme2XEZsHKOFnybVkoL23u7ZtApuEfTKmVcR2PTwgZwqDsKw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hdnode" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/pbkdf2" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - aes-js "3.0.0" - scrypt-js "3.0.1" - "@ethersproject/json-wallets@5.1.0", "@ethersproject/json-wallets@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.1.0.tgz#bba7af2e520e8aea4d3829d80520db5d2e4fb8d2" @@ -2382,13 +2348,24 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.0.6", "@ethersproject/keccak256@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.6.tgz#5b5ba715ef1be86efde5c271f896fa0daf0e1efe" - integrity sha512-eJ4Id/i2rwrf5JXEA7a12bG1phuxjj47mPZgDUbttuNBodhSuZF2nEO5QdpaRjmlphQ8Kt9PNqY/z7lhtJptZg== +"@ethersproject/json-wallets@^5.0.6": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.9.tgz#2e1708c2854c4ab764e35920bd1f44c948b95434" + integrity sha512-EWuFvJd8nu90dkmJwmJddxOYCvFvMkKBsZi8rxTme2XEZsHKOFnybVkoL23u7ZtApuEfTKmVcR2PTwgZwqDsKw== dependencies: + "@ethersproject/abstract-signer" "^5.0.4" + "@ethersproject/address" "^5.0.4" "@ethersproject/bytes" "^5.0.4" - js-sha3 "0.5.7" + "@ethersproject/hdnode" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/pbkdf2" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/random" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/transactions" "^5.0.5" + aes-js "3.0.0" + scrypt-js "3.0.1" "@ethersproject/keccak256@5.1.0", "@ethersproject/keccak256@^5.1.0": version "5.1.0" @@ -2398,6 +2375,14 @@ "@ethersproject/bytes" "^5.1.0" js-sha3 "0.5.7" +"@ethersproject/keccak256@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.6.tgz#5b5ba715ef1be86efde5c271f896fa0daf0e1efe" + integrity sha512-eJ4Id/i2rwrf5JXEA7a12bG1phuxjj47mPZgDUbttuNBodhSuZF2nEO5QdpaRjmlphQ8Kt9PNqY/z7lhtJptZg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + js-sha3 "0.5.7" + "@ethersproject/keccak256@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.8.tgz#13aaf69e1c8bd15fc59a2ebd055c0878f2a059c8" @@ -2406,34 +2391,34 @@ "@ethersproject/bytes" "^5.0.9" js-sha3 "0.5.7" -"@ethersproject/logger@5.0.8", "@ethersproject/logger@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.8.tgz#135c1903d35c878265f3cbf2b287042c4c20d5d4" - integrity sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A== - "@ethersproject/logger@5.1.0", "@ethersproject/logger@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.1.0.tgz#4cdeeefac029373349d5818f39c31b82cc6d9bbf" integrity sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw== +"@ethersproject/logger@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.8.tgz#135c1903d35c878265f3cbf2b287042c4c20d5d4" + integrity sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A== + "@ethersproject/logger@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.9.tgz#0e6a0b3ecc938713016954daf4ac7967467aa763" integrity sha512-kV3Uamv3XOH99Xf3kpIG3ZkS7mBNYcLDM00JSDtNgNB4BihuyxpQzIZPRIDmRi+95Z/R1Bb0X2kUNHa/kJoVrw== -"@ethersproject/networks@5.0.6", "@ethersproject/networks@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.6.tgz#4d6586bbebfde1c027504ebf6dfb783b29c3803a" - integrity sha512-2Cg1N5109zzFOBfkyuPj+FfF7ioqAsRffmybJ2lrsiB5skphIAE72XNSCs4fqktlf+rwSh/5o/UXRjXxvSktZw== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks@5.1.0", "@ethersproject/networks@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.1.0.tgz#f537290cb05aa6dc5e81e910926c04cfd5814bca" integrity sha512-A/NIrIED/G/IgU1XUukOA3WcFRxn2I4O5GxsYGA5nFlIi+UZWdGojs85I1VXkR1gX9eFnDXzjE6OtbgZHjFhIA== dependencies: - "@ethersproject/logger" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + +"@ethersproject/networks@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.6.tgz#4d6586bbebfde1c027504ebf6dfb783b29c3803a" + integrity sha512-2Cg1N5109zzFOBfkyuPj+FfF7ioqAsRffmybJ2lrsiB5skphIAE72XNSCs4fqktlf+rwSh/5o/UXRjXxvSktZw== + dependencies: + "@ethersproject/logger" "^5.0.5" "@ethersproject/networks@^5.0.7": version "5.0.8" @@ -2442,14 +2427,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/pbkdf2@5.0.6", "@ethersproject/pbkdf2@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.6.tgz#105dbfb08cd5fcf33869b42bfdc35a3ebd978cbd" - integrity sha512-CUYciSxR/AaCoKMJk3WUW+BDhR41G3C+O9lOeZ4bR1wDhLKL2Z8p0ciF5XDEiVbmI4CToW6boVKybeVMdngRrg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/pbkdf2@5.1.0", "@ethersproject/pbkdf2@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.1.0.tgz#6b740a85dc780e879338af74856ca2c0d3b24d19" @@ -2458,6 +2435,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/sha2" "^5.1.0" +"@ethersproject/pbkdf2@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.6.tgz#105dbfb08cd5fcf33869b42bfdc35a3ebd978cbd" + integrity sha512-CUYciSxR/AaCoKMJk3WUW+BDhR41G3C+O9lOeZ4bR1wDhLKL2Z8p0ciF5XDEiVbmI4CToW6boVKybeVMdngRrg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/pbkdf2@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.8.tgz#06a086b1ac04c75e6846afd6cf6170a49a634411" @@ -2466,13 +2451,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/sha2" "^5.0.7" -"@ethersproject/properties@5.0.6", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.4": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.6.tgz#44d82aaa294816fd63333e7def42426cf0e87b3b" - integrity sha512-a9DUMizYhJ0TbtuDkO9iYlb2CDlpSKqGPDr+amvlZhRspQ6jbl5Eq8jfu4SCcGlcfaTbguJmqGnyOGn1EFt6xA== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties@5.1.0", "@ethersproject/properties@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.1.0.tgz#9484bd6def16595fc6e4bdc26f29dff4d3f6ac42" @@ -2480,6 +2458,13 @@ dependencies: "@ethersproject/logger" "^5.1.0" +"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.4": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.6.tgz#44d82aaa294816fd63333e7def42426cf0e87b3b" + integrity sha512-a9DUMizYhJ0TbtuDkO9iYlb2CDlpSKqGPDr+amvlZhRspQ6jbl5Eq8jfu4SCcGlcfaTbguJmqGnyOGn1EFt6xA== + dependencies: + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.8.tgz#e45d28d25402c73394873dbf058f856c966cae01" @@ -2487,31 +2472,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/providers@5.0.17": - version "5.0.17" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.17.tgz#f380e7831149e24e7a1c6c9b5fb1d6dfc729d024" - integrity sha512-bJnvs5X7ttU5x2ekGJYG7R3Z+spZawLFfR0IDsbaMDLiCwZOyrgk+VTBU7amSFLT0WUhWFv8WwSUB+AryCQG1Q== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/web" "^5.0.6" - bech32 "1.1.4" - ws "7.2.3" - "@ethersproject/providers@5.1.2": version "5.1.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.1.2.tgz#4e4459698903f911402fe91aa7544eb07f3921ed" @@ -2562,14 +2522,6 @@ bech32 "1.1.4" ws "7.2.3" -"@ethersproject/random@5.0.6", "@ethersproject/random@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.6.tgz#9be80a1065f2b8e6f321dccb3ebeb4886cac9ea4" - integrity sha512-8nsVNaZvZ9OD5NXfzE4mmz8IH/1DYJbAR95xpRxZkIuNmfn6QlMp49ccJYZWGhs6m0Zj2+FXjx3pzXfYlo9/dA== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/random@5.1.0", "@ethersproject/random@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.1.0.tgz#0bdff2554df03ebc5f75689614f2d58ea0d9a71f" @@ -2578,6 +2530,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/random@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.6.tgz#9be80a1065f2b8e6f321dccb3ebeb4886cac9ea4" + integrity sha512-8nsVNaZvZ9OD5NXfzE4mmz8IH/1DYJbAR95xpRxZkIuNmfn6QlMp49ccJYZWGhs6m0Zj2+FXjx3pzXfYlo9/dA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/random@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.8.tgz#8d3726be48e95467abce9b23c93adbb1de009dda" @@ -2586,14 +2546,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/logger" "^5.0.8" -"@ethersproject/rlp@5.0.6", "@ethersproject/rlp@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.6.tgz#29f9097348a3c330811997433b7df89ab51cd644" - integrity sha512-M223MTaydfmQSsvqAl0FJZDYFlSqt6cgbhnssLDwqCKYegAHE16vrFyo+eiOapYlt32XAIJm0BXlqSunULzZuQ== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp@5.1.0", "@ethersproject/rlp@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.1.0.tgz#700f4f071c27fa298d3c1d637485fefe919dd084" @@ -2602,6 +2554,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/rlp@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.6.tgz#29f9097348a3c330811997433b7df89ab51cd644" + integrity sha512-M223MTaydfmQSsvqAl0FJZDYFlSqt6cgbhnssLDwqCKYegAHE16vrFyo+eiOapYlt32XAIJm0BXlqSunULzZuQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.8.tgz#ff54e206d0ae28640dd054f2bcc7070f06f9dfbe" @@ -2610,15 +2570,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/logger" "^5.0.8" -"@ethersproject/sha2@5.0.6", "@ethersproject/sha2@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.6.tgz#175116dc10b866a0a381f6316d094bcc510bee3c" - integrity sha512-30gypDLkfkP5gE3llqi0jEuRV8m4/nvzeqmqMxiihZ7veFQHqDaGpyFeHzFim+qGeH9fq0lgYjavLvwW69+Fkw== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - hash.js "1.1.3" - "@ethersproject/sha2@5.1.0", "@ethersproject/sha2@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.1.0.tgz#6ca42d1a26884b3e32ffa943fe6494af7211506c" @@ -2628,6 +2579,15 @@ "@ethersproject/logger" "^5.1.0" hash.js "1.1.3" +"@ethersproject/sha2@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.6.tgz#175116dc10b866a0a381f6316d094bcc510bee3c" + integrity sha512-30gypDLkfkP5gE3llqi0jEuRV8m4/nvzeqmqMxiihZ7veFQHqDaGpyFeHzFim+qGeH9fq0lgYjavLvwW69+Fkw== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + hash.js "1.1.3" + "@ethersproject/sha2@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.8.tgz#9903c67e562739d8b312820b0a265b9c9bf35fc3" @@ -2637,16 +2597,6 @@ "@ethersproject/logger" "^5.0.8" hash.js "1.1.3" -"@ethersproject/signing-key@5.0.7", "@ethersproject/signing-key@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.7.tgz#d03bfc5f565efb962bafebf8e6965e70d1c46d31" - integrity sha512-JYndnhFPKH0daPcIjyhi+GMcw3srIHkQ40hGRe6DA0CdGrpMfgyfSYDQ2D8HL2lgR+Xm4SHfEB0qba6+sCyrvg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - elliptic "6.5.3" - "@ethersproject/signing-key@5.1.0", "@ethersproject/signing-key@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.1.0.tgz#6eddfbddb6826b597b9650e01acf817bf8991b9c" @@ -2658,6 +2608,16 @@ bn.js "^4.4.0" elliptic "6.5.4" +"@ethersproject/signing-key@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.7.tgz#d03bfc5f565efb962bafebf8e6965e70d1c46d31" + integrity sha512-JYndnhFPKH0daPcIjyhi+GMcw3srIHkQ40hGRe6DA0CdGrpMfgyfSYDQ2D8HL2lgR+Xm4SHfEB0qba6+sCyrvg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + elliptic "6.5.3" + "@ethersproject/signing-key@^5.0.8": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.10.tgz#05e26e04f0aa5360dc78674d7331bacea8fea5c1" @@ -2668,17 +2628,6 @@ "@ethersproject/properties" "^5.0.7" elliptic "6.5.4" -"@ethersproject/solidity@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.7.tgz#72a3455f47a454db2dcf363992d42e9045dc7fce" - integrity sha512-dUevKUZ06p/VMLP/+cz4QUV+lA17NixucDJfm0ioWF0B3R0Lf+6wqwPchcqiAXlxkNFGIax7WNLgGMh4CkQ8iw== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/solidity@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.1.0.tgz#095a9c75244edccb26c452c155736d363399b954" @@ -2701,15 +2650,6 @@ "@ethersproject/sha2" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/strings@5.0.7", "@ethersproject/strings@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.7.tgz#8dc68f794c9e2901f3b75e53b2afbcb6b6c15037" - integrity sha512-a+6T80LvmXGMOOWQTZHtGGQEg1z4v8rm8oX70KNs55YtPXI/5J3LBbVf5pyqCKSlmiBw5IaepPvs5XGalRUSZQ== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/strings@5.1.0", "@ethersproject/strings@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.1.0.tgz#0f95a56c3c8c9d5510a06c241d818779750e2da5" @@ -2719,6 +2659,15 @@ "@ethersproject/constants" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/strings@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.7.tgz#8dc68f794c9e2901f3b75e53b2afbcb6b6c15037" + integrity sha512-a+6T80LvmXGMOOWQTZHtGGQEg1z4v8rm8oX70KNs55YtPXI/5J3LBbVf5pyqCKSlmiBw5IaepPvs5XGalRUSZQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/strings@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.9.tgz#8e2eb2918b140231e1d1b883d77e43213a8ac280" @@ -2728,21 +2677,6 @@ "@ethersproject/constants" "^5.0.8" "@ethersproject/logger" "^5.0.8" -"@ethersproject/transactions@5.0.8", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.8.tgz#3b4d7041e13b957a9c4f131e0aea9dae7b6f5a23" - integrity sha512-i7NtOXVzUe+YSU6QufzlRrI2WzHaTmULAKHJv4duIZMLqzehCBXGA9lTpFgFdqGYcQJ7vOtNFC2BB2mSjmuXqg== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" - "@ethersproject/transactions@5.1.1", "@ethersproject/transactions@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.1.1.tgz#5a6bbb25fb062c3cc75eb0db12faefcdd3870813" @@ -2758,6 +2692,21 @@ "@ethersproject/rlp" "^5.1.0" "@ethersproject/signing-key" "^5.1.0" +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.8.tgz#3b4d7041e13b957a9c4f131e0aea9dae7b6f5a23" + integrity sha512-i7NtOXVzUe+YSU6QufzlRrI2WzHaTmULAKHJv4duIZMLqzehCBXGA9lTpFgFdqGYcQJ7vOtNFC2BB2mSjmuXqg== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/transactions@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.10.tgz#d50cafd80d27206336f80114bc0f18bc18687331" @@ -2773,15 +2722,6 @@ "@ethersproject/rlp" "^5.0.7" "@ethersproject/signing-key" "^5.0.8" -"@ethersproject/units@5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.8.tgz#563325b20fe1eceff7b61857711d5e2b3f38fd09" - integrity sha512-3O4MaNHFs05vC5v2ZGqVFVWtO1WyqFejO78M7Qh16njo282aoMlENtVI6cn2B36zOLFXRvYt2pYx6xCG53qKzg== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/units@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.1.0.tgz#b6ab3430ebc22adc3cb4839516496f167bee3ad5" @@ -2800,27 +2740,6 @@ "@ethersproject/constants" "^5.0.8" "@ethersproject/logger" "^5.0.8" -"@ethersproject/wallet@5.0.9": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.9.tgz#976c7d950489c40308d676869d24e59ab7b82ad1" - integrity sha512-GfpQF56PO/945SJq7Wdg5F5U6wkxaDgkAzcgGbCW6Joz8oW8MzKItkvYCzMh+j/8gJMzFncsuqX4zg2gq3J6nQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/hdnode" "^5.0.4" - "@ethersproject/json-wallets" "^5.0.6" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/wordlists" "^5.0.4" - "@ethersproject/wallet@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.1.0.tgz#134c5816eaeaa586beae9f9ff67891104a2c9a15" @@ -2863,17 +2782,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/wordlists" "^5.0.8" -"@ethersproject/web@5.0.11", "@ethersproject/web@^5.0.6": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.11.tgz#d47da612b958b4439e415782a53c8f8461522d68" - integrity sha512-x03ihbPoN1S8Gsh9WSwxkYxUIumLi02ZEKJku1C43sxBfe+mdprWyvujzYlpuoRNfWRgNhdRDKMP8JbG6MwNGA== - dependencies: - "@ethersproject/base64" "^5.0.3" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/web@5.1.0", "@ethersproject/web@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.1.0.tgz#ed56bbe4e3d9a8ffe3b2ed882da5c62d3551381b" @@ -2896,13 +2804,13 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/wordlists@5.0.7", "@ethersproject/wordlists@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.7.tgz#4e5ad38cfbef746b196a3290c0d41696eb7ab468" - integrity sha512-ZjQtYxm41FmHfYgpkdQG++EDcBPQWv9O6FfP6NndYRVaXaQZh6eq3sy7HQP8zCZ8dznKgy6ZyKECS8qdvnGHwA== +"@ethersproject/web@^5.0.6": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.11.tgz#d47da612b958b4439e415782a53c8f8461522d68" + integrity sha512-x03ihbPoN1S8Gsh9WSwxkYxUIumLi02ZEKJku1C43sxBfe+mdprWyvujzYlpuoRNfWRgNhdRDKMP8JbG6MwNGA== dependencies: + "@ethersproject/base64" "^5.0.3" "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hash" "^5.0.4" "@ethersproject/logger" "^5.0.5" "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" @@ -2918,6 +2826,17 @@ "@ethersproject/properties" "^5.1.0" "@ethersproject/strings" "^5.1.0" +"@ethersproject/wordlists@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.7.tgz#4e5ad38cfbef746b196a3290c0d41696eb7ab468" + integrity sha512-ZjQtYxm41FmHfYgpkdQG++EDcBPQWv9O6FfP6NndYRVaXaQZh6eq3sy7HQP8zCZ8dznKgy6ZyKECS8qdvnGHwA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/wordlists@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.9.tgz#f16cc0b317637c3ae9c689ebd7bc2cbbffadd013" @@ -4758,14 +4677,6 @@ resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.7.tgz#613957d900fab9ff84c8dfb24fa3eef0c2a40896" integrity sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg== -"@types/hoist-non-react-statics@*": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - "@types/html-minifier-terser@^5.0.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880" @@ -4816,11 +4727,6 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== -"@types/jwt-decode@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@types/jwt-decode/-/jwt-decode-2.2.1.tgz#afdf5c527fcfccbd4009b5fd02d1e18241f2d2f2" - integrity sha512-aWw2YTtAdT7CskFyxEX2K21/zSDStuf/ikI3yBqmwpwJF0pS+/IX5DWv+1UFffZIbruP6cnT9/LAJV1gFwAT1A== - "@types/lodash@^4.14.165": version "4.14.165" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f" @@ -4937,13 +4843,6 @@ dependencies: "@types/react" "^16" -"@types/react-native@*": - version "0.63.8" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.8.tgz#73ec087122c64c309eeaf150b565b8d755f0fb1f" - integrity sha512-QRwGFRTyGafRVTUS+0GYyJrlpmS3boyBaFI0ULSc+mh/lQNxrzbdQvoL2k5X7+t9hxyqA4dTQAlP6l0ir/fNJQ== - dependencies: - "@types/react" "*" - "@types/react-pdf@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@types/react-pdf/-/react-pdf-5.0.0.tgz#cb574e08929944c0b60fcce8cc569da1c94c9cc4" @@ -5070,16 +4969,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/styled-components@^5.1.4": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.4.tgz#11f167dbde268635c66adc89b5a5db2e69d75384" - integrity sha512-78f5Zuy0v/LTQNOYfpH+CINHpchzMMmAt9amY2YNtSgsk1TmlKm8L2Wijss/mtTrsUAVTm2CdGB8VOM65vA8xg== - dependencies: - "@types/hoist-non-react-statics" "*" - "@types/react" "*" - "@types/react-native" "*" - csstype "^3.0.2" - "@types/tapable@*", "@types/tapable@^1.0.5": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" @@ -6290,13 +6179,6 @@ axios@^0.18.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - axobject-query@^2.0.2: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -6708,16 +6590,6 @@ babel-plugin-react-docgen@^4.0.0: react-docgen "^5.0.0" recast "^0.14.7" -"babel-plugin-styled-components@>= 1", babel-plugin-styled-components@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9" - integrity sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA== - 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-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -7980,11 +7852,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -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= - can-use-dom@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" @@ -8817,11 +8684,6 @@ 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" @@ -8932,15 +8794,6 @@ css-selector-tokenizer@^0.7.0: cssesc "^3.0.0" fastparse "^1.1.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" @@ -10963,42 +10816,6 @@ ethers@5.0.13: "@ethersproject/web" "^5.0.6" "@ethersproject/wordlists" "^5.0.4" -ethers@5.0.24, ethers@^5.0.24: - version "5.0.24" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.24.tgz#fbb8e4d35070d134f2eb846c07500b8c0eaef6d3" - integrity sha512-77CEtVC88fJGEhxGXRvQqAEH6e2A+ZFiv2FBT6ikXndlty5sw6vMatAhg1v+w3CaaGZOf1CP81jl4Mc8Zrj08A== - dependencies: - "@ethersproject/abi" "5.0.9" - "@ethersproject/abstract-provider" "5.0.7" - "@ethersproject/abstract-signer" "5.0.9" - "@ethersproject/address" "5.0.8" - "@ethersproject/base64" "5.0.6" - "@ethersproject/basex" "5.0.6" - "@ethersproject/bignumber" "5.0.12" - "@ethersproject/bytes" "5.0.8" - "@ethersproject/constants" "5.0.7" - "@ethersproject/contracts" "5.0.8" - "@ethersproject/hash" "5.0.9" - "@ethersproject/hdnode" "5.0.7" - "@ethersproject/json-wallets" "5.0.9" - "@ethersproject/keccak256" "5.0.6" - "@ethersproject/logger" "5.0.8" - "@ethersproject/networks" "5.0.6" - "@ethersproject/pbkdf2" "5.0.6" - "@ethersproject/properties" "5.0.6" - "@ethersproject/providers" "5.0.17" - "@ethersproject/random" "5.0.6" - "@ethersproject/rlp" "5.0.6" - "@ethersproject/sha2" "5.0.6" - "@ethersproject/signing-key" "5.0.7" - "@ethersproject/solidity" "5.0.7" - "@ethersproject/strings" "5.0.7" - "@ethersproject/transactions" "5.0.8" - "@ethersproject/units" "5.0.8" - "@ethersproject/wallet" "5.0.9" - "@ethersproject/web" "5.0.11" - "@ethersproject/wordlists" "5.0.7" - ethers@^5.1.0, ethers@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.1.4.tgz#8ae973705ed962f8f41dc59693704002a38dd18b" @@ -11631,7 +11448,7 @@ follow-redirects@1.5.10: dependencies: debug "=3.1.0" -follow-redirects@^1.0.0, follow-redirects@^1.10.0: +follow-redirects@^1.0.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== @@ -12423,7 +12240,7 @@ hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: 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== @@ -20206,22 +20023,6 @@ style-loader@^1.0.0: loader-utils "^2.0.0" schema-utils "^2.6.6" -styled-components@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a" - integrity sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ== - 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" @@ -20259,7 +20060,7 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -21181,11 +20982,6 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== - uuidv4@6.0.6: version "6.0.6" resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" From fb7171db7595855082fc58b8b7ba9c6045b3d6ac Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Thu, 27 May 2021 19:57:00 +0200 Subject: [PATCH 03/11] fix api client issues --- packages/files-ui/package.json | 3 +- packages/storage-ui/package.json | 3 +- packages/storage-ui/src/App.tsx | 6 +- .../src/Components/Layouts/AppHeader.tsx | 9 +- .../src/Components/Layouts/AppNav.tsx | 4 +- .../src/Components/Layouts/AppWrapper.tsx | 6 +- .../Modules/LoginModule/InitialScreen.tsx | 19 ++- .../src/Components/Pages/OAuthCallback.tsx | 50 ++++++++ .../src/Components/StorageRoutes.tsx | 4 +- ...esApiContext.tsx => StorageApiContext.tsx} | 113 +++++++----------- .../src/Contexts/StorageContext.tsx | 8 +- yarn.lock | 20 +++- 12 files changed, 141 insertions(+), 104 deletions(-) create mode 100644 packages/storage-ui/src/Components/Pages/OAuthCallback.tsx rename packages/storage-ui/src/Contexts/{FilesApiContext.tsx => StorageApiContext.tsx} (82%) diff --git a/packages/files-ui/package.json b/packages/files-ui/package.json index 5a94f0b9e0..e027750ba4 100644 --- a/packages/files-ui/package.json +++ b/packages/files-ui/package.json @@ -6,7 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client": "1.11.4", + "@chainsafe/files-api-client": "1.11.3", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -16,6 +16,7 @@ "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", "@types/uuid": "^8.3.0", + "axios": "0.21.1", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/storage-ui/package.json b/packages/storage-ui/package.json index 822de85fb4..a57246a865 100644 --- a/packages/storage-ui/package.json +++ b/packages/storage-ui/package.json @@ -6,7 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client":"1.11.4", + "@chainsafe/files-api-client":"1.11.3", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -15,6 +15,7 @@ "@tkey/security-questions": "3.12.0", "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", + "axios": "0.21.1", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/storage-ui/src/App.tsx b/packages/storage-ui/src/App.tsx index a5ff25fcfa..b9b6b1ed4b 100644 --- a/packages/storage-ui/src/App.tsx +++ b/packages/storage-ui/src/App.tsx @@ -11,7 +11,7 @@ import { LanguageProvider } from "./Contexts/LanguageContext" import { lightTheme } from "./Themes/LightTheme" import { darkTheme } from "./Themes/DarkTheme" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" -import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { StorageApiProvider } from "./Contexts/StorageApiContext" import { StorageProvider } from "./Contexts/StorageContext" if ( @@ -109,7 +109,7 @@ const App: React.FC<{}> = () => { checkNetwork={false} cacheWalletSelection={canUseLocalStorage} > - @@ -120,7 +120,7 @@ const App: React.FC<{}> = () => { - + diff --git a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx index b811457445..c23ccf8b48 100644 --- a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx @@ -13,7 +13,7 @@ import { import { ROUTE_LINKS } from "../StorageRoutes" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorageApi } from "../../Contexts/StorageApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { @@ -152,8 +152,7 @@ interface IAppHeader { const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { const { desktop } = useThemeSwitcher() const classes = useStyles() - const { isLoggedIn, secured, logout } = useFilesApi() - const [searchActive, setSearchActive] = useState(false) + const { isLoggedIn, logout } = useStorageApi() const { history } = useHistory() const signOut = useCallback(async () => { @@ -199,8 +198,6 @@ const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { ) : ( <> - {!searchActive && ( - <> setNavOpen(!navOpen)} variant={navOpen ? "active" : "default"} @@ -220,8 +217,6 @@ const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => {   beta - - )} )} diff --git a/packages/storage-ui/src/Components/Layouts/AppNav.tsx b/packages/storage-ui/src/Components/Layouts/AppNav.tsx index 8b0fbc3bb9..8755af9447 100644 --- a/packages/storage-ui/src/Components/Layouts/AppNav.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppNav.tsx @@ -20,7 +20,7 @@ import { ROUTE_LINKS } from "../StorageRoutes" import { FREE_PLAN_LIMIT } from "../../Utils/Constants" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorageApi } from "../../Contexts/StorageApiContext" import { useStorage } from "../../Contexts/StorageContext" const useStyles = makeStyles( @@ -213,7 +213,7 @@ const AppNav: React.FC = ({ navOpen, setNavOpen }: IAppNav) => { const { spaceUsed } = useStorage() - const { isLoggedIn, logout } = useFilesApi() + const { isLoggedIn, logout } = useStorageApi() const signOut = useCallback(() => { diff --git a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx index 423b6d9fb6..8b0d7a33fe 100644 --- a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx @@ -1,8 +1,8 @@ -import { useFilesApi } from "../../Contexts/FilesApiContext" import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" import React, { useState } from "react" import { ReactNode } from "react" import clsx from "clsx" +import { useStorageApi } from "../../Contexts/StorageApiContext" import { CssBaseline } from "@chainsafe/common-components" import AppHeader from "./AppHeader" import AppNav from "./AppNav" @@ -58,7 +58,7 @@ const useStyles = makeStyles( const AppWrapper: React.FC = ({ children }: IAppWrapper) => { const classes = useStyles() const [navOpen, setNavOpen] = useState(false) - const { isLoggedIn, secured } = useFilesApi() + const { isLoggedIn } = useStorageApi() return (

@@ -69,7 +69,7 @@ const AppWrapper: React.FC = ({ children }: IAppWrapper) => { />
{ - const { selectWallet, resetAndSelectWallet } = useFilesApi() + const { selectWallet, resetAndSelectWallet, getProviderUrl, web3Login } = useStorageApi() const { desktop } = useThemeSwitcher() const { wallet } = useWeb3() const classes = useStyles() - const [loginMode, setLoginMode] = useState<"web3" | LOGIN_TYPE | undefined>() + const [loginMode, setLoginMode] = useState() const [error, setError] = useState() const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" const [isConnecting, setIsConnecting] = useState(false) @@ -172,7 +172,18 @@ const InitialScreen = ({ className }: IInitialScreen) => { setIsConnecting(true) setLoginMode(loginType) try { - // await login(loginType) + switch(loginType) { + case 'facebook': + case 'github': + case 'google': { + const oauthUrl = await getProviderUrl(loginType) + window.location.href = oauthUrl + break + } + case 'web3':{ + await web3Login() + } + } } catch (error) { let errorMessage = t`There was an error authenticating` console.log(error) diff --git a/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx new file mode 100644 index 0000000000..362b7709cf --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx @@ -0,0 +1,50 @@ +import React, { useEffect } from "react" +import { useLocation, useParams } from "@chainsafe/common-components" +import { useStorageApi } from "../../Contexts/StorageApiContext" + +function useQueryParams() { + return new URLSearchParams(useLocation().search) +} + +const OAuthCallback: React.FC = () => { + const queryParams = useQueryParams() + const { loginWithGithub, loginWithGoogle, loginWithFacebook } = useStorageApi() + const { provider } = useParams<{ provider: string }>() + + useEffect(() => { + const loginWithProvider = async () => { + try { + const code = queryParams.get("code") + const state = queryParams.get("state") + if (code && state) { + switch (provider) { + case "github": { + await loginWithGithub(code, state) + break + } + case "google": { + const scope = queryParams.get("scope") || undefined + const authUser = queryParams.get("authUser") || undefined + const hd = queryParams.get("hd") || undefined + const prompt = queryParams.get("prompt") || undefined + + await loginWithGoogle(code, state, scope, authUser, hd, prompt) + break + } + case "facebook": { + await loginWithFacebook(code, state) + break + } + default: + } + } + } catch {} + } + + loginWithProvider() + }, [provider, queryParams]) + + return null +} + +export default OAuthCallback \ No newline at end of file diff --git a/packages/storage-ui/src/Components/StorageRoutes.tsx b/packages/storage-ui/src/Components/StorageRoutes.tsx index d950084f26..51581fe87d 100644 --- a/packages/storage-ui/src/Components/StorageRoutes.tsx +++ b/packages/storage-ui/src/Components/StorageRoutes.tsx @@ -1,7 +1,7 @@ import React from "react" import { Switch, ConditionalRoute } from "@chainsafe/common-components" import LoginPage from "./Pages/LoginPage" -import { useFilesApi } from "../Contexts/FilesApiContext" +import { useStorageApi } from "../Contexts/StorageApiContext" import PinsPage from "./Pages/PinsPage" export const ROUTE_LINKS = { @@ -16,7 +16,7 @@ export const SETTINGS_PATHS = ["profile", "plan", "security"] as const export type SettingsPath = typeof SETTINGS_PATHS[number] const FilesRoutes = () => { - const { isLoggedIn } = useFilesApi() + const { isLoggedIn } = useStorageApi() return ( diff --git a/packages/storage-ui/src/Contexts/FilesApiContext.tsx b/packages/storage-ui/src/Contexts/StorageApiContext.tsx similarity index 82% rename from packages/storage-ui/src/Contexts/FilesApiContext.tsx rename to packages/storage-ui/src/Contexts/StorageApiContext.tsx index ca668139a9..bfee93ca5f 100644 --- a/packages/storage-ui/src/Contexts/FilesApiContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageApiContext.tsx @@ -4,20 +4,19 @@ import { useState, useEffect, useMemo, useCallback } from "react" import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" import jwtDecode from "jwt-decode" import axios from "axios" -import { decryptFile } from "../Utils/encryption" import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" export type { IdentityProvider as OAuthProvider } const tokenStorageKey = "csf.refreshToken" const isReturningUserStorageKey = "csf.isReturningUser" -type FilesApiContextProps = { +type StorageApiContextProps = { apiUrl?: string withLocalStorage?: boolean children: React.ReactNode | React.ReactNode[] } -type FilesApiContext = { +type StorageApiContext = { filesApiClient: IFilesApiClient isLoggedIn: boolean | undefined secured: boolean | undefined @@ -35,15 +34,16 @@ type FilesApiContext = { prompt: string | undefined, ) => Promise loginWithFacebook: (code: string, state: string) => Promise + web3Login(): Promise logout: () => void } -const FilesApiContext = React.createContext(undefined) +const StorageApiContext = React.createContext(undefined) -const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesApiContextProps) => { +const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: StorageApiContextProps) => { const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" - const { wallet, onboard, checkIsReady, isReady } = useWeb3() + const { wallet, onboard, checkIsReady, isReady, provider } = useWeb3() const { localStorageRemove, localStorageGet, localStorageSet } = useLocalStorage() const { sessionStorageRemove, sessionStorageGet, sessionStorageSet } = useSessionStorage() @@ -89,6 +89,7 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp useEffect(() => { const initializeApiClient = async () => { + debugger const axiosInstance = axios.create({ // Disable the internal Axios JSON de serialization as this is handled by the client transformResponse: [] @@ -179,31 +180,6 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp } } - const thresholdKeyLogin = async ( - signature: string, - identityToken: string, - publicKey: string - ) => { - if (maintenanceMode) { - throw new Error("App is undergoing maintenance") - } - try { - const { - access_token, - refresh_token - } = await filesApiClient.verifyServiceIdentityToken({ - signature: signature, - public_key: publicKey, - service_identity_token: identityToken - }) - setTokensAndSave(access_token, refresh_token) - setReturningUser() - return Promise.resolve() - } catch (error) { - return Promise.reject(error) - } - } - useEffect(() => { if (refreshToken && refreshToken.token) { try { @@ -315,59 +291,49 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp } } - const logout = () => { - setAccessToken(undefined) - setRefreshToken(undefined) - setDecodedRefreshToken(undefined) - filesApiClient.setToken("") - localStorageRemove(tokenStorageKey) - !withLocalStorage && sessionStorageRemove(tokenStorageKey) - } + const web3Login = async () => { + if (!provider) return Promise.reject("No wallet is selected") - const secureThresholdKeyAccount = async (encryptedKey: string) => { + if (!isReady) { + const connected = await checkIsReady() + if (!connected) return Promise.reject("You need to allow the connection") + } + const signer = provider.getSigner() try { - if (decodedRefreshToken && refreshToken) { - await filesApiClient.secure({ - encryption_key: encryptedKey - }) + debugger + const { token } = await filesApiClient.getWeb3Token() + if (token) { + const signature = await signer.signMessage(token) + const address = await signer.getAddress() const { access_token, - refresh_token - } = await filesApiClient.getRefreshToken({ - refresh: refreshToken.token + refresh_token, + } = await filesApiClient.postWeb3Token({ + signature: signature, + token: token, + public_address: address, }) - setTokensAndSave(access_token, refresh_token) - return true - } else { - return false + setReturningUser() + return Promise.resolve() } } catch (error) { - return false + return Promise.reject("There was an error logging in.") } } - const validateMasterPassword = async ( - candidatePassword: string - ): Promise => { - if (!decodedRefreshToken || !decodedRefreshToken.mps) return false - try { - const toDecryptArray = Buffer.from(decodedRefreshToken.mps, "base64") - const decrypted = await decryptFile(toDecryptArray, candidatePassword) - if (decrypted) { - const decryptedUuid = new TextDecoder().decode(decrypted) - return decodedRefreshToken.uuid === decryptedUuid - } else { - return false - } - } catch (error) { - return false - } + const logout = () => { + setAccessToken(undefined) + setRefreshToken(undefined) + setDecodedRefreshToken(undefined) + filesApiClient.setToken("") + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) } return ( - {children} - + ) } -const useFilesApi = () => { - const context = React.useContext(FilesApiContext) +const useStorageApi = () => { + const context = React.useContext(StorageApiContext) if (context === undefined) { throw new Error("useAuth must be used within a AuthProvider") } return context } -export { FilesApiProvider, useFilesApi } +export { StorageApiProvider, useStorageApi } diff --git a/packages/storage-ui/src/Contexts/StorageContext.tsx b/packages/storage-ui/src/Contexts/StorageContext.tsx index ad9a06ecf2..332a63d2af 100644 --- a/packages/storage-ui/src/Contexts/StorageContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageContext.tsx @@ -13,7 +13,7 @@ import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesRed import { CancelToken } from "axios" import { t } from "@lingui/macro" import { useBeforeunload } from "react-beforeunload" -import { useFilesApi } from "./FilesApiContext" +import { useStorageApi } from "./StorageApiContext" type StorageContextProps = { children: React.ReactNode | React.ReactNode[] @@ -75,7 +75,7 @@ const StorageProvider = ({ children }: StorageContextProps) => { const { filesApiClient, isLoggedIn - } = useFilesApi() + } = useStorageApi() const [spaceUsed, setSpaceUsed] = useState(0) const [pins, setPins] = useState([]) @@ -87,8 +87,8 @@ const StorageProvider = ({ children }: StorageContextProps) => { }, [filesApiClient]) useEffect(() => { - refreshPins() - }, [refreshPins]) + isLoggedIn && refreshPins() + }, [isLoggedIn, refreshPins]) // Space used counter useEffect(() => { diff --git a/yarn.lock b/yarn.lock index 1241eb1a8b..3c6afdbb11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1664,10 +1664,10 @@ resolved "https://registry.yarnpkg.com/@chainsafe/browser-storage-hooks/-/browser-storage-hooks-1.0.1.tgz#26d32cde1999914db755a631e2643823c54959f7" integrity sha512-Q4b5gQAZnsRXKeADspd5isqfwwhhXjDk70y++YadufA6EZ3tf340oW0OVszp74KaGEw+CAYFGQR4X7bzpZ3x9Q== -"@chainsafe/files-api-client@1.11.4": - version "1.11.4" - resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.4/02f01962de33e57a6622a2c59b38f4716b48f7cd2fe567984033cf65a7364b7f#68d97dd382b998988816ac6943072356b96ea3e9" - integrity sha512-3VkToIUl2rKxmxkdM1pUFGNGz+Ngsd2P2CIXsAGRDhn56zEhsvhujythy4/JTrgeiCfPgo5C+ONPCRi7YIVu6g== +"@chainsafe/files-api-client@1.11.3": + version "1.11.3" + resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.3/2817fd5c98430022620c5780b8f250486c24a0c2ef3b50ee64a4487df1a7a798#64a2123619c77eac61fbae588496cb5777eb1207" + integrity sha512-nBQwpG6t0W7jjcUOaRwhb3VDG7FnAKssU21rBGedXYEuGn+CeOUM5bR3ERqoB22i7tVFEZjiY0AJhoGo2YxIGA== "@chainsafe/web3-context@1.1.4": version "1.1.4" @@ -6171,6 +6171,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + axios@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" @@ -11453,6 +11460,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== +follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + for-each@~0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" From 231e770adc6a3e33e162ac0db512b0b0758bcbab Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Wed, 26 May 2021 14:36:23 +0200 Subject: [PATCH 04/11] remove old chainsafe x package --- packages/chainsafex/.env.example | 9 -- packages/chainsafex/.gitignore | 26 ---- packages/chainsafex/.sentryclirc | 3 - packages/chainsafex/README.md | 29 ---- packages/chainsafex/craco.config.js | 44 ------ packages/chainsafex/package.json | 48 ------ packages/chainsafex/public/ChainSafe-logo.png | Bin 4267 -> 0 bytes packages/chainsafex/public/_redirects | 1 - packages/chainsafex/public/favicon.ico | Bin 1150 -> 0 bytes packages/chainsafex/public/index.html | 43 ------ packages/chainsafex/public/manifest.json | 15 -- packages/chainsafex/public/robots.txt | 3 - packages/chainsafex/scripts/sentry.js | 37 ----- packages/chainsafex/src/App.tsx | 71 --------- .../src/Components/Layouts/AppWrapper.tsx | 21 --- .../src/Components/Pages/HomePage.tsx | 8 - packages/chainsafex/src/Components/Routes.tsx | 23 --- packages/chainsafex/src/Themes/DarkTheme.ts | 14 -- packages/chainsafex/src/Themes/LightTheme.ts | 21 --- packages/chainsafex/src/Utils/Constants.ts | 1 - packages/chainsafex/src/index.css | 37 ----- packages/chainsafex/src/index.tsx | 12 -- packages/chainsafex/src/react-app-env.d.ts | 1 - packages/chainsafex/src/serviceWorker.ts | 146 ------------------ packages/chainsafex/src/setupTests.ts | 5 - packages/chainsafex/tsconfig.json | 22 --- 26 files changed, 640 deletions(-) delete mode 100644 packages/chainsafex/.env.example delete mode 100644 packages/chainsafex/.gitignore delete mode 100644 packages/chainsafex/.sentryclirc delete mode 100644 packages/chainsafex/README.md delete mode 100644 packages/chainsafex/craco.config.js delete mode 100644 packages/chainsafex/package.json delete mode 100644 packages/chainsafex/public/ChainSafe-logo.png delete mode 100644 packages/chainsafex/public/_redirects delete mode 100644 packages/chainsafex/public/favicon.ico delete mode 100644 packages/chainsafex/public/index.html delete mode 100644 packages/chainsafex/public/manifest.json delete mode 100644 packages/chainsafex/public/robots.txt delete mode 100644 packages/chainsafex/scripts/sentry.js delete mode 100644 packages/chainsafex/src/App.tsx delete mode 100644 packages/chainsafex/src/Components/Layouts/AppWrapper.tsx delete mode 100644 packages/chainsafex/src/Components/Pages/HomePage.tsx delete mode 100644 packages/chainsafex/src/Components/Routes.tsx delete mode 100644 packages/chainsafex/src/Themes/DarkTheme.ts delete mode 100644 packages/chainsafex/src/Themes/LightTheme.ts delete mode 100644 packages/chainsafex/src/Utils/Constants.ts delete mode 100644 packages/chainsafex/src/index.css delete mode 100644 packages/chainsafex/src/index.tsx delete mode 100644 packages/chainsafex/src/react-app-env.d.ts delete mode 100644 packages/chainsafex/src/serviceWorker.ts delete mode 100644 packages/chainsafex/src/setupTests.ts delete mode 100644 packages/chainsafex/tsconfig.json diff --git a/packages/chainsafex/.env.example b/packages/chainsafex/.env.example deleted file mode 100644 index 5134d7e8f0..0000000000 --- a/packages/chainsafex/.env.example +++ /dev/null @@ -1,9 +0,0 @@ -PORT=3000 -HTTPS=true - -REACT_APP_API_URL= -REACT_APP_STRIPE_PK= -REACT_APP_SENTRY_DSN_URL= -REACT_APP_SENTRY_RELEASE=development -REACT_APP_HOTJAR_ID= -SENTRY_AUTH_TOKEN= diff --git a/packages/chainsafex/.gitignore b/packages/chainsafex/.gitignore deleted file mode 100644 index 708492af74..0000000000 --- a/packages/chainsafex/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -.env -src/locales \ No newline at end of file diff --git a/packages/chainsafex/.sentryclirc b/packages/chainsafex/.sentryclirc deleted file mode 100644 index 8e1c713c07..0000000000 --- a/packages/chainsafex/.sentryclirc +++ /dev/null @@ -1,3 +0,0 @@ -[defaults] -org=chainsafe -project=files-ui diff --git a/packages/chainsafex/README.md b/packages/chainsafex/README.md deleted file mode 100644 index 86c1291e07..0000000000 --- a/packages/chainsafex/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# ChainSafeX Repo - - - -## Run development (.env) - -``` -yarn install -yarn start -``` - -## Build production (.env) - -``` -yarn build -``` - -## Run test and test coverage - -``` -yarn test -yarn coverage -``` - -**Visit**: `http://localhost:3000` diff --git a/packages/chainsafex/craco.config.js b/packages/chainsafex/craco.config.js deleted file mode 100644 index 63043ad78a..0000000000 --- a/packages/chainsafex/craco.config.js +++ /dev/null @@ -1,44 +0,0 @@ -const TerserPlugin = require("terser-webpack-plugin") - -module.exports = { - babel: { - plugins: ["macros"], - }, - webpack: { - configure: (webpackConfig) => ({ - ...webpackConfig, - optimization: { - ...webpackConfig.optimization, - minimizer: [ - new TerserPlugin({ - terserOptions: { - parse: { - ecma: 8, - }, - compress: { - ecma: 5, - warnings: false, - comparisons: false, - inline: 2, - drop_console: true, - }, - mangle: { - safari10: true, - }, - output: { - ecma: 5, - comments: false, - ascii_only: true, - }, - }, - parallel: 2, - cache: true, - sourceMap: true, - extractComments: false, - }), - ], - }, - devtool: "source-map", - }), - }, -} diff --git a/packages/chainsafex/package.json b/packages/chainsafex/package.json deleted file mode 100644 index 39d7ac3516..0000000000 --- a/packages/chainsafex/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "chainsafex", - "version": "1.0.0", - "private": true, - "dependencies": { - "@sentry/react": "^5.28.0", - "clsx": "^1.1.1", - "ethers": "^5.0.24", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "react-scripts": "3.4.4", - "yup": "^0.32.8" - }, - "devDependencies": { - "@craco/craco": "^5.9.0", - "@testing-library/jest-dom": "^5.11.6", - "@testing-library/react": "^11.2.2", - "@testing-library/user-event": "^12.5.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "@types/react-pdf": "^5.0.0" - }, - "scripts": { - "start": "craco --max_old_space_size=4096 start", - "build": "craco --max_old_space_size=4096 build", - "sentry": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); node scripts/sentry.js)", - "release": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); yarn build && node scripts/sentry.js)", - "test": "react-scripts test", - "analyze": "source-map-explorer 'build/static/js/*.js'" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/packages/chainsafex/public/ChainSafe-logo.png b/packages/chainsafex/public/ChainSafe-logo.png deleted file mode 100644 index 95ee5385b99548f0438c4cded9217266d0687986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4267 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 N002ovPDHLkV1nclQ*i(Q diff --git a/packages/chainsafex/public/_redirects b/packages/chainsafex/public/_redirects deleted file mode 100644 index 50a463356b..0000000000 --- a/packages/chainsafex/public/_redirects +++ /dev/null @@ -1 +0,0 @@ -/* /index.html 200 \ No newline at end of file diff --git a/packages/chainsafex/public/favicon.ico b/packages/chainsafex/public/favicon.ico deleted file mode 100644 index 0c72c7154d722498119d3024c9d3a86a63795c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYHS0;t;9_H%M_GLvezqN+xU z$KQYd9nN3)@A3ctf0Lg6JH(j5$H%Yl{_`hTkNM)IVA}2T=l>4p&V$*8bq$xXnZwV| z&tZT13|Nib$x~q3_VAJaY(StBoA4Io2It35{yRT;@?X`;IuzLq^M#8af#j{$Zvg9a zegFQy01(K^D%iRI`~?=X-nJb~+w9)+6(LUcdhD_URK?UR+u>iH(h2!0jW1 zZ+HASSlsR7N1&O4y2yG#Y>z5nnRCI@m0(4PMufB%B@3Q0)^gX9DRgxs|g zQ;xvYfoPb1_ix`(^n=VWsHuAoQUmgf!{sYrvmCEp`!8#35&;qi0c`s1&Yb;kd*s-E zk3WC@J3V*^)@QwSE10$i#sfqrgaqj~?&*W7+5Q70%F4>l4)eFgvK3%CkpG1Qg$Im^w?VX!|>ESIQb%R0vKQJc#?+0Rj28KVt9QwhTf#F~?14A2--(wBL$v_Mg S2k{Ts1Lf-(7=D8EKrsN#G%CaZ diff --git a/packages/chainsafex/public/index.html b/packages/chainsafex/public/index.html deleted file mode 100644 index 730b118b13..0000000000 --- a/packages/chainsafex/public/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - ChainSafe X - - - -
- - - diff --git a/packages/chainsafex/public/manifest.json b/packages/chainsafex/public/manifest.json deleted file mode 100644 index 6d00931386..0000000000 --- a/packages/chainsafex/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "ChainSafe-logo.png", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/packages/chainsafex/public/robots.txt b/packages/chainsafex/public/robots.txt deleted file mode 100644 index e9e57dc4d4..0000000000 --- a/packages/chainsafex/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/packages/chainsafex/scripts/sentry.js b/packages/chainsafex/scripts/sentry.js deleted file mode 100644 index efa38ef60a..0000000000 --- a/packages/chainsafex/scripts/sentry.js +++ /dev/null @@ -1,37 +0,0 @@ -const SentryCli = require("@sentry/cli") -const dotenv = require("dotenv") -dotenv.config() - -async function createReleaseAndUpload() { - const release = process.env.REACT_APP_SENTRY_RELEASE - const environment = process.env.REACT_APP_SENTRY_ENV - - if (!release || !environment) { - console.warn("REACT_APP_SENTRY_RELEASE or REACT_APP_SENTRY_ENV is not set") - return - } - - const cli = new SentryCli() - - try { - console.log("Creating sentry release " + release) - await cli.releases.new(release) - - console.log("Uploading source maps") - await cli.releases.uploadSourceMaps(release, { - include: ["build/static/js"], - rewrite: true, - validate: true, - }) - - console.log("Finalizing release") - // await cli.releases.setCommits(release, {auto: true}) - await cli.releases.newDeploy(release, { env: environment }) - - await cli.releases.finalize(release) - } catch (e) { - console.error("Creating a release on Sentry failed.", e) - } -} - -createReleaseAndUpload() diff --git a/packages/chainsafex/src/App.tsx b/packages/chainsafex/src/App.tsx deleted file mode 100644 index fee246b00b..0000000000 --- a/packages/chainsafex/src/App.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { useEffect } from "react" -import { - init as initSentry, - ErrorBoundary, - showReportDialog -} from "@sentry/react" -import { ThemeSwitcher } from "@chainsafe/common-theme" -import { CssBaseline, Router } from "@chainsafe/common-components" -import AppWrapper from "./Components/Layouts/AppWrapper" -import { lightTheme } from "./Themes/LightTheme" -import { darkTheme } from "./Themes/DarkTheme" -import { useHotjar } from "react-use-hotjar" -import Routes from "./Components/Routes" - -if ( - process.env.NODE_ENV === "production" && - process.env.REACT_APP_SENTRY_DSN_URL && - process.env.REACT_APP_SENTRY_RELEASE -) { - initSentry({ - dsn: process.env.REACT_APP_SENTRY_DSN_URL, - release: process.env.REACT_APP_SENTRY_RELEASE - }) -} - -const App: React.FC<{}> = () => { - const { initHotjar } = useHotjar() - const hotjarId = process.env.REACT_APP_HOTJAR_ID - - // const apiUrl = - // process.env.REACT_APP_API_URL || "http://3.236.79.100:8000/api/v1" - - useEffect(() => { - if (hotjarId && process.env.NODE_ENV === "production") { - initHotjar(hotjarId, "6", () => console.log("Hotjar initialized")) - } - }, [hotjarId, initHotjar]) - - return ( - ( -
-

- An error occurred and has been logged. If you would like to provide - additional info to help us debug and resolve the issue, click the - "Provide Additional Details" button -

-

{error?.message.toString()}

-

{componentStack}

-

{eventId}

- - -
- )} - onReset={() => window.location.reload()} - > - - - - - - - - -
- ) -} - -export default App diff --git a/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx b/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx deleted file mode 100644 index 9edf14e8e9..0000000000 --- a/packages/chainsafex/src/Components/Layouts/AppWrapper.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { createStyles, makeStyles } from "@chainsafe/common-theme" -import React from "react" -import { ReactNode } from "react" - -interface IAppWrapper { - children: ReactNode | ReactNode[] -} - -const useStyles = makeStyles(() => { - return createStyles({ - root: {} - }) -}) - -const AppWrapper: React.FC = ({ children }: IAppWrapper) => { - const classes = useStyles() - - return
{children}
-} - -export default AppWrapper diff --git a/packages/chainsafex/src/Components/Pages/HomePage.tsx b/packages/chainsafex/src/Components/Pages/HomePage.tsx deleted file mode 100644 index cf47bb8c6d..0000000000 --- a/packages/chainsafex/src/Components/Pages/HomePage.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Typography } from "@chainsafe/common-components" -import React from "react" - -const HomePage = () => { - return Home Page -} - -export default HomePage diff --git a/packages/chainsafex/src/Components/Routes.tsx b/packages/chainsafex/src/Components/Routes.tsx deleted file mode 100644 index fa81c00e51..0000000000 --- a/packages/chainsafex/src/Components/Routes.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react" -import { Switch, ConditionalRoute } from "@chainsafe/common-components" -import HomePage from "./Pages/HomePage" - -export const ROUTE_LINKS = { - Landing: "/" -} - -const Routes = () => { - return ( - - - - ) -} - -export default Routes diff --git a/packages/chainsafex/src/Themes/DarkTheme.ts b/packages/chainsafex/src/Themes/DarkTheme.ts deleted file mode 100644 index 7045bbe126..0000000000 --- a/packages/chainsafex/src/Themes/DarkTheme.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createTheme } from "@chainsafe/common-theme" - -export const darkTheme = createTheme({ - themeConfig: { - palette: { - primary: { - main: "#FFF" - }, - secondary: { - main: "#000" - } - } - } -}) diff --git a/packages/chainsafex/src/Themes/LightTheme.ts b/packages/chainsafex/src/Themes/LightTheme.ts deleted file mode 100644 index 2bb193e537..0000000000 --- a/packages/chainsafex/src/Themes/LightTheme.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createTheme } from "@chainsafe/common-theme" - -export const lightTheme = createTheme({ - themeConfig: { - palette: { - primary: { - main: "#262626", - hover: "#FFF" - }, - secondary: { - main: "#FFF", - hover: "#000" - } - }, - constants: {}, - overrides: { - Typography: {}, - Button: {} - } - } -}) diff --git a/packages/chainsafex/src/Utils/Constants.ts b/packages/chainsafex/src/Utils/Constants.ts deleted file mode 100644 index 7c13663893..0000000000 --- a/packages/chainsafex/src/Utils/Constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const placeholder = "" diff --git a/packages/chainsafex/src/index.css b/packages/chainsafex/src/index.css deleted file mode 100644 index 27d7e1d0f8..0000000000 --- a/packages/chainsafex/src/index.css +++ /dev/null @@ -1,37 +0,0 @@ -/* h1, -h2, -h3, -h4, -h5, -h6 { - color: rgba(255, 255, 255, 1); -} */ - -/* .bn-onboard-custom.bn-onboard-modal { - font-family: 'Montserrat'; - border-radius: 5px; -} - -.bn-onboard-custom.bn-onboard-modal-content { - background: #424242 !important; -} - -.bn-onboard-prepare-button { - border-color: #FFE500 !important; - color: #FFE500 !important; -} - -.bn-onboard-custom.bn-onboard-select-info-container > span { - color: #FFE500 !important; -} */ -/* Chrome, Safari, Edge, Opera */ -/* input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -/* Firefox */ -/* input[type="number"] { - -moz-appearance: textfield; -} */ diff --git a/packages/chainsafex/src/index.tsx b/packages/chainsafex/src/index.tsx deleted file mode 100644 index 32e15e9972..0000000000 --- a/packages/chainsafex/src/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -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")) - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: https://bit.ly/CRA-PWA -serviceWorker.unregister() diff --git a/packages/chainsafex/src/react-app-env.d.ts b/packages/chainsafex/src/react-app-env.d.ts deleted file mode 100644 index 6431bc5fc6..0000000000 --- a/packages/chainsafex/src/react-app-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/packages/chainsafex/src/serviceWorker.ts b/packages/chainsafex/src/serviceWorker.ts deleted file mode 100644 index dfbfce7590..0000000000 --- a/packages/chainsafex/src/serviceWorker.ts +++ /dev/null @@ -1,146 +0,0 @@ -// This optional code is used to register a service worker. -// register() is not called by default. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on subsequent visits to a page, after all the -// existing tabs open on the page have been closed, since previously cached -// resources are updated in the background. - -// To learn more about the benefits of this model and instructions on how to -// opt-in, read https://bit.ly/CRA-PWA - -const isLocalhost = Boolean( - window.location.hostname === "localhost" || - // [::1] is the IPv6 localhost address. - window.location.hostname === "[::1]" || - // 127.0.0.0/8 are considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -) - -type Config = { - onSuccess?: (registration: ServiceWorkerRegistration) => void - onUpdate?: (registration: ServiceWorkerRegistration) => void -} - -export function register(config?: Config) { - if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return - } - - window.addEventListener("load", () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config) - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - "This web app is being served cache-first by a service " + - "worker. To learn more, visit https://bit.ly/CRA-PWA" - ) - }) - } else { - // Is not localhost. Just register service worker - registerValidSW(swUrl, config) - } - }) - } -} - -function registerValidSW(swUrl: string, config?: Config) { - navigator.serviceWorker - .register(swUrl) - .then((registration) => { - registration.onupdatefound = () => { - const installingWorker = registration.installing - if (installingWorker == null) { - return - } - installingWorker.onstatechange = () => { - if (installingWorker.state === "installed") { - if (navigator.serviceWorker.controller) { - // At this point, the updated precached content has been fetched, - // but the previous service worker will still serve the older - // content until all client tabs are closed. - console.log( - "New content is available and will be used when all " + - "tabs for this page are closed. See https://bit.ly/CRA-PWA." - ) - - // Execute callback - if (config && config.onUpdate) { - config.onUpdate(registration) - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log("Content is cached for offline use.") - - // Execute callback - if (config && config.onSuccess) { - config.onSuccess(registration) - } - } - } - } - } - }) - .catch((error) => { - console.error("Error during service worker registration:", error) - }) -} - -function checkValidServiceWorker(swUrl: string, config?: Config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl, { - headers: { "Service-Worker": "script" } - }) - .then((response) => { - // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get("content-type") - if ( - response.status === 404 || - (contentType != null && contentType.indexOf("javascript") === -1) - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then((registration) => { - registration.unregister().then(() => { - window.location.reload() - }) - }) - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config) - } - }) - .catch(() => { - console.log( - "No internet connection found. App is running in offline mode." - ) - }) -} - -export function unregister() { - if ("serviceWorker" in navigator) { - navigator.serviceWorker.ready - .then((registration) => { - registration.unregister() - }) - .catch((error) => { - console.error(error.message) - }) - } -} diff --git a/packages/chainsafex/src/setupTests.ts b/packages/chainsafex/src/setupTests.ts deleted file mode 100644 index 3f9fc64cfc..0000000000 --- a/packages/chainsafex/src/setupTests.ts +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import "@testing-library/jest-dom/extend-expect" diff --git a/packages/chainsafex/tsconfig.json b/packages/chainsafex/tsconfig.json deleted file mode 100644 index 3c63d24041..0000000000 --- a/packages/chainsafex/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react", - "sourceMap": true, - "inlineSources": true, - "sourceRoot": "/" - }, - "include": ["src"] -} From b8a6f9be6cd9e4d4830905d6d8f222c1b7513ab0 Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Thu, 27 May 2021 00:57:11 +0200 Subject: [PATCH 05/11] initial app skeleton and refactor --- package.json | 8 +- packages/common-components/rollup.config.js | 2 +- packages/common-contexts/.gitignore | 49 - packages/common-contexts/.npmignore | 6 - packages/common-contexts/.npmrc | 6 - packages/common-contexts/LICENSE | 165 - packages/common-contexts/README.md | 3 - packages/common-contexts/package.json | 62 - packages/common-contexts/rollup.config.js | 29 - .../src/BillingContext/index.ts | 1 - .../src/FilesApiContext/index.ts | 7 - .../src/FilesApiContext/utils.ts | 6 - .../common-contexts/src/UserContext/index.ts | 1 - packages/common-contexts/src/helpers/index.ts | 1 - packages/common-contexts/src/index.ts | 4 - packages/common-contexts/tsconfig.json | 25 - packages/common-contexts/yarn.lock | 5225 ----------------- packages/common-modules/.gitignore | 49 - packages/common-modules/.npmignore | 6 - packages/common-modules/LICENSE | 165 - packages/common-modules/README.md | 3 - packages/common-modules/package.json | 44 - packages/common-modules/rollup.config.js | 29 - packages/common-modules/src/index.ts | 1 - packages/common-modules/tsconfig.json | 25 - packages/common-modules/yarn.lock | 5225 ----------------- packages/files-ui/package.json | 2 + packages/files-ui/src/App.tsx | 4 +- .../files-ui/src/Components/FilesRoutes.tsx | 2 +- .../src/Components/Layouts/AppHeader.tsx | 3 +- .../src/Components/Layouts/AppNav.tsx | 4 +- .../src/Components/Layouts/AppWrapper.tsx | 2 +- .../Modules/FileBrowsers/BinFileBrowser.tsx | 2 +- .../Modules/FileBrowsers/CSFFileBrowser.tsx | 3 +- .../FileBrowsers/CreateFolderModal.tsx | 3 +- .../Modules/FileBrowsers/FileInfoModal.tsx | 2 +- .../Modules/FileBrowsers/MoveFileModal.tsx | 3 +- .../FileBrowsers/SearchFileBrowser.tsx | 2 +- .../Modules/LoginModule/InitialScreen.tsx | 2 +- .../Modules/LoginModule/MigrateAccount.tsx | 2 +- .../src/Components/Modules/SearchModule.tsx | 3 +- .../Components/Modules/Settings/Profile.tsx | 2 +- .../Modules/Settings/PurchasePlan/index.tsx | 3 +- .../src/Components/Pages/LoginPage.tsx | 2 +- .../src/Contexts}/BillingContext.tsx | 2 +- .../src/Contexts}/FilesApiContext.tsx | 4 +- .../files-ui/src/Contexts/FilesContext.tsx | 4 +- .../src/Contexts/ThresholdKeyContext.tsx | 4 +- .../src/Contexts}/UserContext.tsx | 2 +- .../src/Utils}/encryption.ts | 0 packages/storage-ui/.env.example | 20 + packages/storage-ui/.gitignore | 29 + packages/storage-ui/.linguirc | 14 + packages/storage-ui/.sentryclirc | 3 + packages/storage-ui/README.md | 28 + packages/storage-ui/craco.config.js | 48 + packages/storage-ui/cypress.json | 1 + .../storage-ui/cypress/fixtures/loginData.ts | 4 + .../cypress/fixtures/uploadedFiles/logo.png | Bin 0 -> 180586 bytes .../fixtures/uploadedFiles/text-file.txt | 1 + .../cypress/integration/file-management.ts | 26 + .../cypress/integration/settings.ts | 30 + packages/storage-ui/cypress/plugins/index.ts | 33 + .../storage-ui/cypress/support/commands.ts | 207 + packages/storage-ui/cypress/support/index.ts | 31 + .../cypress/support/utils/CustomBridge.ts | 82 + packages/storage-ui/cypress/tsconfig.json | 10 + packages/storage-ui/package.json | 97 + packages/storage-ui/public/_redirects | 1 + .../public/abstract-image-large.png | Bin 0 -> 166672 bytes .../public/android-chrome-192x192.png | Bin 0 -> 15961 bytes .../public/android-chrome-512x512.png | Bin 0 -> 34082 bytes .../storage-ui/public/apple-touch-icon.png | Bin 0 -> 15961 bytes packages/storage-ui/public/favicon-16x16.png | Bin 0 -> 2513 bytes packages/storage-ui/public/favicon-32x32.png | Bin 0 -> 4019 bytes packages/storage-ui/public/favicon.ico | Bin 0 -> 4286 bytes packages/storage-ui/public/index.html | 58 + packages/storage-ui/public/manifest.json | 15 + packages/storage-ui/public/pdf.worker.min.js | 22 + packages/storage-ui/public/robots.txt | 3 + .../public/serviceworker/redirect.html | 316 + .../storage-ui/public/serviceworker/sw.js | 312 + packages/storage-ui/public/site.webmanifest | 19 + packages/storage-ui/scripts/sentry.js | 37 + packages/storage-ui/src/App.tsx | 132 + .../src/Components/Elements/CustomButton.tsx | 56 + .../src/Components/Elements/CustomModal.tsx | 61 + .../src/Components/Layouts/AppHeader.tsx | 233 + .../src/Components/Layouts/AppNav.tsx | 346 ++ .../src/Components/Layouts/AppWrapper.tsx | 91 + .../Modules/LoginModule/InitialScreen.tsx | 421 ++ .../src/Components/Pages/LoginPage.tsx | 166 + .../src/Components/Pages/PinsPage.tsx | 26 + .../src/Components/StorageRoutes.tsx | 41 + .../src/Contexts/FilesApiContext.tsx | 399 ++ .../storage-ui/src/Contexts/FilesReducers.tsx | 119 + .../src/Contexts/LanguageContext.tsx | 140 + .../src/Contexts/StorageContext.tsx | 312 + packages/storage-ui/src/Media/Empty.svg.tsx | 3 + packages/storage-ui/src/Media/devices.png | Bin 0 -> 81819 bytes .../Media/landing/layers/ForegroundSVG.tsx | 16 + .../landing/layers/dark/Bottom.dark.svg.tsx | 3 + .../landing/layers/dark/Top.dark.svg.tsx | 3 + .../Media/landing/layers/dark/bottom-bg.svg | 1 + .../src/Media/landing/layers/dark/top-bg.svg | 1 + .../Media/landing/layers/desktop-mobile.png | Bin 0 -> 98840 bytes .../src/Media/landing/layers/foreground.svg | 1 + .../landing/layers/light/Bottom.light.svg.tsx | 3 + .../landing/layers/light/Top.light.svg.tsx | 3 + .../Media/landing/layers/light/bottom-bg.svg | 1 + .../src/Media/landing/layers/light/top-bg.svg | 1 + .../src/Media/landing/layers/password-key.png | Bin 0 -> 42006 bytes .../landing/layers/peaceful-succotash.png | Bin 0 -> 69979 bytes .../storage-ui/src/Media/svgs/complete.svg | 1611 +++++ packages/storage-ui/src/Media/svgs/empty.svg | 5 + packages/storage-ui/src/Themes/Constants.ts | 161 + packages/storage-ui/src/Themes/DarkTheme.ts | 599 ++ packages/storage-ui/src/Themes/LightTheme.ts | 196 + packages/storage-ui/src/Themes/types.ts | 4 + packages/storage-ui/src/Utils/Constants.ts | 12 + packages/storage-ui/src/Utils/Helpers.tsx | 46 + packages/storage-ui/src/Utils/MimeMatcher.ts | 95 + .../src/Utils/contentTypeGuesser.ts | 26 + packages/storage-ui/src/Utils/encryption.ts | 94 + packages/storage-ui/src/Utils/pathUtils.ts | 50 + packages/storage-ui/src/index.css | 27 + packages/storage-ui/src/index.tsx | 12 + .../storage-ui/src/locales/en/messages.po | 110 + .../storage-ui/src/locales/fr/messages.po | 101 + packages/storage-ui/src/react-app-env.d.ts | 1 + packages/storage-ui/src/serviceWorker.ts | 146 + packages/storage-ui/src/setupTests.ts | 5 + packages/storage-ui/tsconfig.json | 23 + yarn.lock | 692 +-- 134 files changed, 7636 insertions(+), 11615 deletions(-) delete mode 100644 packages/common-contexts/.gitignore delete mode 100644 packages/common-contexts/.npmignore delete mode 100644 packages/common-contexts/.npmrc delete mode 100644 packages/common-contexts/LICENSE delete mode 100644 packages/common-contexts/README.md delete mode 100644 packages/common-contexts/package.json delete mode 100644 packages/common-contexts/rollup.config.js delete mode 100644 packages/common-contexts/src/BillingContext/index.ts delete mode 100644 packages/common-contexts/src/FilesApiContext/index.ts delete mode 100644 packages/common-contexts/src/FilesApiContext/utils.ts delete mode 100644 packages/common-contexts/src/UserContext/index.ts delete mode 100644 packages/common-contexts/src/helpers/index.ts delete mode 100644 packages/common-contexts/src/index.ts delete mode 100644 packages/common-contexts/tsconfig.json delete mode 100644 packages/common-contexts/yarn.lock delete mode 100644 packages/common-modules/.gitignore delete mode 100644 packages/common-modules/.npmignore delete mode 100644 packages/common-modules/LICENSE delete mode 100644 packages/common-modules/README.md delete mode 100644 packages/common-modules/package.json delete mode 100644 packages/common-modules/rollup.config.js delete mode 100644 packages/common-modules/src/index.ts delete mode 100644 packages/common-modules/tsconfig.json delete mode 100644 packages/common-modules/yarn.lock rename packages/{common-contexts/src/BillingContext => files-ui/src/Contexts}/BillingContext.tsx (97%) rename packages/{common-contexts/src/FilesApiContext => files-ui/src/Contexts}/FilesApiContext.tsx (99%) rename packages/{common-contexts/src/UserContext => files-ui/src/Contexts}/UserContext.tsx (98%) rename packages/{common-contexts/src/helpers => files-ui/src/Utils}/encryption.ts (100%) create mode 100644 packages/storage-ui/.env.example create mode 100644 packages/storage-ui/.gitignore create mode 100644 packages/storage-ui/.linguirc create mode 100644 packages/storage-ui/.sentryclirc create mode 100644 packages/storage-ui/README.md create mode 100644 packages/storage-ui/craco.config.js create mode 100644 packages/storage-ui/cypress.json create mode 100644 packages/storage-ui/cypress/fixtures/loginData.ts create mode 100644 packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png create mode 100644 packages/storage-ui/cypress/fixtures/uploadedFiles/text-file.txt create mode 100644 packages/storage-ui/cypress/integration/file-management.ts create mode 100644 packages/storage-ui/cypress/integration/settings.ts create mode 100644 packages/storage-ui/cypress/plugins/index.ts create mode 100644 packages/storage-ui/cypress/support/commands.ts create mode 100644 packages/storage-ui/cypress/support/index.ts create mode 100644 packages/storage-ui/cypress/support/utils/CustomBridge.ts create mode 100644 packages/storage-ui/cypress/tsconfig.json create mode 100644 packages/storage-ui/package.json create mode 100644 packages/storage-ui/public/_redirects create mode 100644 packages/storage-ui/public/abstract-image-large.png create mode 100644 packages/storage-ui/public/android-chrome-192x192.png create mode 100644 packages/storage-ui/public/android-chrome-512x512.png create mode 100644 packages/storage-ui/public/apple-touch-icon.png create mode 100644 packages/storage-ui/public/favicon-16x16.png create mode 100644 packages/storage-ui/public/favicon-32x32.png create mode 100644 packages/storage-ui/public/favicon.ico create mode 100644 packages/storage-ui/public/index.html create mode 100644 packages/storage-ui/public/manifest.json create mode 100644 packages/storage-ui/public/pdf.worker.min.js create mode 100644 packages/storage-ui/public/robots.txt create mode 100644 packages/storage-ui/public/serviceworker/redirect.html create mode 100644 packages/storage-ui/public/serviceworker/sw.js create mode 100644 packages/storage-ui/public/site.webmanifest create mode 100644 packages/storage-ui/scripts/sentry.js create mode 100644 packages/storage-ui/src/App.tsx create mode 100644 packages/storage-ui/src/Components/Elements/CustomButton.tsx create mode 100644 packages/storage-ui/src/Components/Elements/CustomModal.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppHeader.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppNav.tsx create mode 100644 packages/storage-ui/src/Components/Layouts/AppWrapper.tsx create mode 100644 packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx create mode 100644 packages/storage-ui/src/Components/Pages/LoginPage.tsx create mode 100644 packages/storage-ui/src/Components/Pages/PinsPage.tsx create mode 100644 packages/storage-ui/src/Components/StorageRoutes.tsx create mode 100644 packages/storage-ui/src/Contexts/FilesApiContext.tsx create mode 100644 packages/storage-ui/src/Contexts/FilesReducers.tsx create mode 100644 packages/storage-ui/src/Contexts/LanguageContext.tsx create mode 100644 packages/storage-ui/src/Contexts/StorageContext.tsx create mode 100644 packages/storage-ui/src/Media/Empty.svg.tsx create mode 100644 packages/storage-ui/src/Media/devices.png create mode 100644 packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/desktop-mobile.png create mode 100644 packages/storage-ui/src/Media/landing/layers/foreground.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx create mode 100644 packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/light/top-bg.svg create mode 100644 packages/storage-ui/src/Media/landing/layers/password-key.png create mode 100644 packages/storage-ui/src/Media/landing/layers/peaceful-succotash.png create mode 100644 packages/storage-ui/src/Media/svgs/complete.svg create mode 100644 packages/storage-ui/src/Media/svgs/empty.svg create mode 100644 packages/storage-ui/src/Themes/Constants.ts create mode 100644 packages/storage-ui/src/Themes/DarkTheme.ts create mode 100644 packages/storage-ui/src/Themes/LightTheme.ts create mode 100644 packages/storage-ui/src/Themes/types.ts create mode 100644 packages/storage-ui/src/Utils/Constants.ts create mode 100644 packages/storage-ui/src/Utils/Helpers.tsx create mode 100644 packages/storage-ui/src/Utils/MimeMatcher.ts create mode 100644 packages/storage-ui/src/Utils/contentTypeGuesser.ts create mode 100644 packages/storage-ui/src/Utils/encryption.ts create mode 100644 packages/storage-ui/src/Utils/pathUtils.ts create mode 100644 packages/storage-ui/src/index.css create mode 100644 packages/storage-ui/src/index.tsx create mode 100644 packages/storage-ui/src/locales/en/messages.po create mode 100644 packages/storage-ui/src/locales/fr/messages.po create mode 100644 packages/storage-ui/src/react-app-env.d.ts create mode 100644 packages/storage-ui/src/serviceWorker.ts create mode 100644 packages/storage-ui/src/setupTests.ts create mode 100644 packages/storage-ui/tsconfig.json diff --git a/package.json b/package.json index c02314dbba..a0300fab5c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "scripts": { "postinstall": "yarn build:common && yarn wsrun -p files-ui -c compile", - "build:common": "yarn build:theme && yarn build:components && yarn build:contexts", + "build:common": "yarn build:theme && yarn build:components", "build:contexts": "yarn wsrun -t -p @chainsafe/common-contexts -c build", "build:components": "yarn wsrun -t -p @chainsafe/common-components -c build", "build:theme": "yarn wsrun -t -p @chainsafe/common-theme -c build", @@ -31,9 +31,9 @@ "build:files-ui": "yarn wsrun -p files-ui -c build", "release:files-ui": "yarn wsrun -p files-ui -c release", "start:files-ui": "yarn wsrun -p files-ui -c start", - "build:chainsafex": "yarn wsrun -p chainsafex -c build", - "release:chainsafex": "yarn wsrun -p chainsafex -c release", - "start:chainsafex": "yarn wsrun -p chainsafex -c start", + "build:storage-ui": "yarn wsrun -p storage-ui -c build", + "release:storage-ui": "yarn wsrun -p storage-ui -c release", + "start:storage-ui": "yarn wsrun -p storage-ui -c start", "clean:dependencies": "rm -rf ./node_modules && rm -rf ./*/**/node_modules", "clean:dist": "rm -rf ./*/**/dist && rm -rf ./*/**/build && rm -rf ./*/**/storybook-static", "clean": "yarn clean:dependencies && yarn clean:dist", diff --git a/packages/common-components/rollup.config.js b/packages/common-components/rollup.config.js index a9cfaf3ae7..cf32c5eaa8 100644 --- a/packages/common-components/rollup.config.js +++ b/packages/common-components/rollup.config.js @@ -18,8 +18,8 @@ export default { strict: true }, plugins: [ - image(), peerDepsExternal(), + image(), resolve(), commonjs(), typescript(), diff --git a/packages/common-contexts/.gitignore b/packages/common-contexts/.gitignore deleted file mode 100644 index 3ae30aa8fb..0000000000 --- a/packages/common-contexts/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# generate output -dist -build diff --git a/packages/common-contexts/.npmignore b/packages/common-contexts/.npmignore deleted file mode 100644 index 37392c3699..0000000000 --- a/packages/common-contexts/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -dist -.babelrc -.storybook -.gitignore -rollup.config.js -tsconfig.json diff --git a/packages/common-contexts/.npmrc b/packages/common-contexts/.npmrc deleted file mode 100644 index df9588e268..0000000000 --- a/packages/common-contexts/.npmrc +++ /dev/null @@ -1,6 +0,0 @@ -registry=https://registry.yarnpkg.com/ - -@chainsafe:registry=https://npm.pkg.github.com -//npm.pkg.github.com/:_authToken=${GITHUB_PACKAGES_AUTH_TOKEN} -//registry.npmjs.org -always-auth=true \ No newline at end of file diff --git a/packages/common-contexts/LICENSE b/packages/common-contexts/LICENSE deleted file mode 100644 index efc5d950ff..0000000000 --- a/packages/common-contexts/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/packages/common-contexts/README.md b/packages/common-contexts/README.md deleted file mode 100644 index 44e1c525b3..0000000000 --- a/packages/common-contexts/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Imploy Contexts - -This is a collection of commonly used contexts diff --git a/packages/common-contexts/package.json b/packages/common-contexts/package.json deleted file mode 100644 index 1ced8ff24f..0000000000 --- a/packages/common-contexts/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "@chainsafe/common-contexts", - "version": "1.0.0", - "description": "Common contexts", - "author": "Chainsafe Products Team", - "license": "GPL-3.0", - "main": "dist/index.js", - "engines": { - "node": ">=8", - "yarn": ">=1" - }, - "scripts": { - "build": "rollup -c", - "start": "rollup -c -w" - }, - "dependencies": { - "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client": "1.11.2", - "axios": "^0.21.1", - "uuid": "^8.3.1" - }, - "peerDependencies": { - "@chainsafe/web3-context": ">1.1.0", - "axios": "^0.21.1", - "ethers": "5.0.24", - "jwt-decode": "^3.1.2", - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - }, - "devDependencies": { - "@chainsafe/web3-context": "1.1.4", - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^10.0.0", - "@types/jwt-decode": "^2.2.1", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "@types/styled-components": "^5.1.4", - "@types/uuid": "^8.3.0", - "axios": "^0.21.1", - "babel-core": "^6.26.3", - "babel-plugin-styled-components": "^1.12.0", - "babel-runtime": "^6.26.0", - "ethers": "5.0.24", - "jwt-decode": "^3.1.2", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "rollup": "2.34.2", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-typescript2": "^0.29.0", - "styled-components": "^5.2.1", - "typescript": "^4.0.5" - }, - "files": [ - "dist" - ], - "keywords": [ - "react", - "typescript" - ] -} diff --git a/packages/common-contexts/rollup.config.js b/packages/common-contexts/rollup.config.js deleted file mode 100644 index bbaa8a2681..0000000000 --- a/packages/common-contexts/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import typescript from "rollup-plugin-typescript2" -import resolve from "@rollup/plugin-node-resolve" -import commonjs from "@rollup/plugin-commonjs" -import json from "@rollup/plugin-json" -import nodePolyfills from "rollup-plugin-node-polyfills" -import peerDepsExternal from "rollup-plugin-peer-deps-external" - -export default { - input: "src/index.ts", - output: { - format: "esm", // needs to be esm format as Onboard.js contains code-splitting - dir: "dist/", - exports: "named", - sourcemap: true, - strict: false, - }, - plugins: [ - peerDepsExternal(), - typescript(), - json(), - resolve({ - browser: true, - preferBuiltins: true, - }), - commonjs(), - nodePolyfills(), - ], - external: ["react", "react-dom", "bnc-onboard"], -} diff --git a/packages/common-contexts/src/BillingContext/index.ts b/packages/common-contexts/src/BillingContext/index.ts deleted file mode 100644 index 90b1a5dedd..0000000000 --- a/packages/common-contexts/src/BillingContext/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { useBilling, BillingProvider } from "./BillingContext" diff --git a/packages/common-contexts/src/FilesApiContext/index.ts b/packages/common-contexts/src/FilesApiContext/index.ts deleted file mode 100644 index 985ca76041..0000000000 --- a/packages/common-contexts/src/FilesApiContext/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { - FilesApiProvider, - useFilesApi, - OAuthProvider -} from "./FilesApiContext" - -export { signMessage } from "./utils" diff --git a/packages/common-contexts/src/FilesApiContext/utils.ts b/packages/common-contexts/src/FilesApiContext/utils.ts deleted file mode 100644 index 938b4ed342..0000000000 --- a/packages/common-contexts/src/FilesApiContext/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Signer } from "ethers" - -export const signMessage = async (message: string, signer: Signer) => { - const sig = await signer.signMessage(message) - return sig -} diff --git a/packages/common-contexts/src/UserContext/index.ts b/packages/common-contexts/src/UserContext/index.ts deleted file mode 100644 index 4804b09fc8..0000000000 --- a/packages/common-contexts/src/UserContext/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { Profile, useUser, UserProvider } from "./UserContext" diff --git a/packages/common-contexts/src/helpers/index.ts b/packages/common-contexts/src/helpers/index.ts deleted file mode 100644 index 40c8a307bc..0000000000 --- a/packages/common-contexts/src/helpers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./encryption" diff --git a/packages/common-contexts/src/index.ts b/packages/common-contexts/src/index.ts deleted file mode 100644 index 00a833aece..0000000000 --- a/packages/common-contexts/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./FilesApiContext" -export * from "./UserContext" -export * from "./BillingContext" -export * from "./helpers" diff --git a/packages/common-contexts/tsconfig.json b/packages/common-contexts/tsconfig.json deleted file mode 100644 index 4182e72cab..0000000000 --- a/packages/common-contexts/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "outDir": "dist", - "module": "esnext", - "target": "es5", - "lib": ["es6", "dom", "es2016", "es2017"], - "sourceMap": true, - "allowJs": false, - "jsx": "react", - "strict": true, - "declaration": true, - "moduleResolution": "node", - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noImplicitAny": true, - "strictNullChecks": true, - "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "allowSyntheticDefaultImports": true - }, - "include": ["src"], - "exclude": ["node_modules", "dist", "example", "rollup.config.js"] -} diff --git a/packages/common-contexts/yarn.lock b/packages/common-contexts/yarn.lock deleted file mode 100644 index 7949caf249..0000000000 --- a/packages/common-contexts/yarn.lock +++ /dev/null @@ -1,5225 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@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/plugin-transform-runtime@^7.5.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/types@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@chaitanyapotti/random-id@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@chaitanyapotti/random-id/-/random-id-1.0.3.tgz#f52f647cfe9f79fc7723ea2b01b0ad3889204002" - integrity sha512-xiVWA2vTL3jQeuZ+yebXAtwIeEbh/13RAFxvRq0YxeUc02RBOGyC9eyDKXjwlN0uxPtnEwWxsELkSwnaH5kxjg== - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abi@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.2.tgz#7fe8f080aa1483fe32cd27bb5b8f2019266af1e2" - integrity sha512-Z+5f7xOgtRLu/W2l9Ry5xF7ehh9QVQ0m1vhynmTcS7DMfHgqTd1/PDFC62aw91ZPRCRZsYdZJu8ymokC5e1JSw== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/abstract-provider@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.2.tgz#9b4e8f4870f0691463e8d5b092c95dd5275c635d" - integrity sha512-U1s60+nG02x8FKNMoVNI6MG8SguWCoG9HJtwOqWZ38LBRMsDV4c0w4izKx98kcsN3wXw4U2/YAyJ9LlH7+/hkg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - -"@ethersproject/abstract-signer@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.2.tgz#5776f888fda816de1d08ddb0e74778ecb9590f69" - integrity sha512-CzzXbeqKlgayE4YTnvvreGBG3n+HxakGXrxaGM6LjBZnOOIVSYi6HMFG8ZXls7UspRY4hvMrtnKEJKDCOngSBw== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.2.tgz#80d0ddfb7d4bd0d32657747fa4bdd2defef2e00a" - integrity sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/base64@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.2.tgz#48b3bb8d640a963bd8ee196cfeacd592155a0ca8" - integrity sha512-0FE5RH5cUDddOiQEDpWtyHjkSW4D5/rdJzA3KTZo8Fk5ab/Y8vdzqbamsXPyPsXU3gS+zCE5Qq4EKVOWlWLLTA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - -"@ethersproject/basex@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.2.tgz#13029ce0ad63674f4d4dbebf6763181fb22f0e6d" - integrity sha512-p4m2CeQqI9vma3XipRbP2iDf6zTsbroE0MEXBAYXidsoJQSvePKrC6MVRKfTzfcHej1b9wfmjVBzqhqn3FRhIA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.5.tgz#31bd7e75aad46ace345fae69b1f5bb120906af1b" - integrity sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.3.tgz#b3769963ae0188a35713d343890a903bda20af9c" - integrity sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.2.tgz#f7ac0b320e2bbec1a5950da075015f8bc4e8fed1" - integrity sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - -"@ethersproject/contracts@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.2.tgz#f19ed8335ceeb6abb60f5d45641f0a2a62b6fbc5" - integrity sha512-Ud3oW8mBNIWE+WHRjvwVEwfvshn7lfYWSSKG0fPSb6baRN9mLOoNguX+VIv3W5Sne9w2utnBmxLF2ESXitw64A== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.2.tgz#6d69558786961836d530b8b4a8714eac5388aec7" - integrity sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/hdnode@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.2.tgz#c4f2152590a64822d0c0feb90f09cc247af657e0" - integrity sha512-QAUI5tfseTFqv00Vnbwzofqse81wN9TaL+x5GufTHIHJXgVdguxU+l39E3VYDCmO+eVAA6RCn5dJgeyra+PU2g== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/json-wallets@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.4.tgz#e09bf2d34279c6dd2b4a4d4c44db65471bacc68b" - integrity sha512-jqtb+X3rJXWG/w+Qyr7vq1V+fdc5jiLlyc6akwI3SQIHTfcuuyF+eZRd9u2/455urNwV3nuCsnrgxs2NrtHHIw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.2.tgz#7ed4a95bb45ee502cf4532223833740a83602797" - integrity sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - js-sha3 "0.5.7" - -"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.4.tgz#09fa4765b5691233e3afb6617cb38a700f9dd2e4" - integrity sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw== - -"@ethersproject/networks@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.2.tgz#a49e82cf071e3618e87e3c5d69fdbcf54dc6766c" - integrity sha512-T7HVd62D4izNU2tDHf6xUDo7k4JOGX4Lk7vDmVcDKrepSWwL2OmGWrqSlkRe2a1Dnz4+1VPE6fb6+KsmSRe82g== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/pbkdf2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.2.tgz#d12c5f434bbdf6f52401eddb7d753a713dd9e4ea" - integrity sha512-OJFxdX/VtGI5M04lAzXKEOb76XBzjCOzGyko3/bMWat3ePAw7RveBOLyhm79SBs2fh21MSYgdG6JScEMHoSImw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - -"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.2.tgz#2facb62d2f2d968c7b3d0befa5bcc884cc565d3b" - integrity sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/providers@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.5.tgz#fa28498ce9683d1d99f6cb11e1a7fe8d4886e0ce" - integrity sha512-ZR3yFg/m8qDl7317yXOHE7tKeGfoyZIZ/imhVC4JqAH+SX1rb6bdZcSjhJfet7rLmnJSsnYLTgIiVIT85aVLgg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - ws "7.2.3" - -"@ethersproject/random@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.2.tgz#bb58aca69a85e8de506686117f050d03dac69023" - integrity sha512-kLeS+6bwz37WR2zbe69gudyoGVoUzljQO0LhifnATsZ7rW0JZ9Zgt0h5aXY7tqFDo9TvdqeCwUFdp1t3T5Fkhg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/rlp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.2.tgz#d6b550a2ac5e484f15f0f63337e522004d2e78cd" - integrity sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/sha2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.2.tgz#baefc78c071be8729b180759eb29267129314252" - integrity sha512-VFl4qSStjQZaygpqoAHswaCY59qBm1Sm0rf8iv0tmgVsRf0pBg2nJaNf9NXXvcuJ9AYPyXl57dN8kozdC4z5Cg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - hash.js "1.1.3" - -"@ethersproject/signing-key@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.3.tgz#adb84360e147bfd336cb2fe114100120732dc10a" - integrity sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - elliptic "6.5.3" - -"@ethersproject/solidity@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.2.tgz#431cee341ec51e022bd897b93fef04521f414756" - integrity sha512-RygurUe1hPW1LDYAPXy4471AklGWNnxgFWc3YUE6H11gzkit26jr6AyZH4Yyjw38eBBL6j0AOfQzMWm+NhxZ9g== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.2.tgz#1753408c3c889813fd0992abd76393e3e47a2619" - integrity sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.2.tgz#590ede71fc87b45be7bd46002e18ae52246a2347" - integrity sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - -"@ethersproject/units@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.2.tgz#de1461ff3ad2587e57bf367d056b6b72cfceda78" - integrity sha512-PSuzycBA1zmRysTtKtp+XYZ3HIJfbmfRdZchOUxdyeGo5siUi9H6mYQcxdJHv82oKp/FniMj8qS8qtLQThhOEg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/wallet@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.2.tgz#714ca8324c1b3b66e51b9b4e0358c882e88caf1d" - integrity sha512-gg86ynLV5k5caNnYpJoYc6WyIUHKMTjOITCk5zXGyVbbkXE07y/fGql4A51W0C6mWkeb5Mzz8AKqzHZECdH30w== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/web@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.3.tgz#f5673923009bb855302f0296ddb932da8e42f0a1" - integrity sha512-9WoIWNxbFOk+8TiWqQMQbYJUIFeC1Z7zNr7oCHpVyhxF0EY54ZVXlP/Y7VJ7KzK++A/iMGOuTIGeL5sMqa2QMg== - dependencies: - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/wordlists@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.2.tgz#eded47314509c8608373fc2b22879ee2b71b7c7c" - integrity sha512-6vKDQcjjpnfdSCr0+jNxpFH3ieKxUPkm29tQX2US7a3zT/sJU/BGlKBR7D8oOpwdE0hpkHhJyMlypRBK+A2avA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ledgerhq/devices@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49" - integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - rxjs "^6.6.0" - -"@ledgerhq/errors@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02" - integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q== - -"@ledgerhq/hw-app-eth@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.21.0.tgz#a6857df45cddf29b5e7623237171d7ffba42a44c" - integrity sha512-FKwwqp7IDgCq9ToL/JwO4S3HXr4LSI+Vr6KqeCtpCwRGNdvtiUHF3S9g2LtUroCcGXx9HTr2XL4hZzfrj+2jfg== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - bignumber.js "^9.0.0" - rlp "^2.2.6" - -"@ledgerhq/hw-transport-u2f@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.21.0.tgz#7bb14e6a334eccff0e51c3346702561cebc99941" - integrity sha512-D9bbi0ubvNmHbqTAcaxtbgrXRRnoc6qW34m+IO/FRqdPrJTYw3o9y2f0udv8WQZkbNnBvXEksROEvADkr4dj+Q== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b" - integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ== - dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" - events "^3.2.0" - -"@ledgerhq/logs@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830" - integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw== - -"@portis/eth-json-rpc-middleware@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@portis/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.1.2.tgz#391e392da03dea348c8111a8111ce4550aa24a02" - integrity sha512-LUV0JgV6jphhfmYyElpFYfEzKhxaW2VYB/trWJK7+68s4PNyMMYR94hheXRh9T2lBomSVpdbySfYxjWVLAMKwA== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "2.2.2" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.0.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -"@portis/web3-provider-engine@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@portis/web3-provider-engine/-/web3-provider-engine-1.1.0.tgz#4e502fe363dd5156505ea54a5c902537944b9cf5" - integrity sha512-443QwQqgO/D0gEn7voMfo/dBc0SNzvJ4vVSOUJj1r2W9MsN3f5HeU2wDeXLc8bQryGsmemBxmghK/G+XQTXA6w== - dependencies: - "@portis/eth-json-rpc-middleware" "^4.1.2" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -"@portis/web3@^2.0.0-beta.57": - version "2.0.0-beta.57" - resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.57.tgz#45692bffc07687d50fa5204d514590d438b759de" - integrity sha512-OYmt0a171AJECYT/vTkPb4uc1x7xFASMfn+MN3EAjo7DRhY8WfTAMNoMJDhuFARRLC7an2HrRIsT7D4q9GNrnQ== - dependencies: - "@portis/web3-provider-engine" "1.1.0" - ethereumjs-util "5.2.0" - penpal "3.0.7" - pocket-js-core "0.0.3" - -"@restless/sanitizers@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec" - integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w== - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@toruslabs/eccrypto@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.4.tgz#2b32e0da10b28a316d08984afcda303536954cd8" - integrity sha512-AQYcd7AM6ePb+V6CZTb6Lb/iaZ/BKpZ66AFdF1YLvMnyBeRY1JgdFOnjQfhtrUAYRMdcc8pBfvjFoWWK7EcggA== - dependencies: - acorn "^7.4.0" - elliptic "^6.5.3" - es6-promise "^4.2.8" - nan "^2.14.1" - optionalDependencies: - secp256k1 "^3.8.0" - -"@toruslabs/fetch-node-details@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@toruslabs/fetch-node-details/-/fetch-node-details-2.3.0.tgz#55ca927814812a029bb29816ace3d60d27fcd0b1" - integrity sha512-QWfYxBel+XUnUgkyPnjTLZpWiYJVl3Nz6I5MwSRJ/t3GteJvvGuq93zbsIzRmyhxK5C+e+FufnEUsKFwiXtPmA== - dependencies: - web3-eth-contract "^1.2.9" - web3-utils "^1.2.9" - -"@toruslabs/http-helpers@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.4.tgz#8811cff562fb792267f79ca5cb5c1bf1bc517e34" - integrity sha512-2Hm34F3GOwg41jEaZs1rVF4b+SGwC2mPeR7WhkkkM1cQNlXyCtcgLNLqlCVrww9e6pfBCZ2h3aEQVw+p4cT4fw== - dependencies: - deepmerge "^4.2.2" - loglevel "^1.6.8" - -"@toruslabs/torus-embed@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.8.2.tgz#6652b8f751c5f041749ccbfcaa0c08ced5f4f278" - integrity sha512-SlApK4BavoQYNenoQxjUs9/rrqrGDK5+Z9coABA6J7pLcbSL7QnBl8bKwTTYhI9Hri2GRbUM8XzNNpZfy5RiIQ== - dependencies: - "@chaitanyapotti/random-id" "^1.0.3" - "@toruslabs/fetch-node-details" "^2.3.0" - "@toruslabs/http-helpers" "^1.3.4" - "@toruslabs/torus.js" "^2.2.4" - create-hash "^1.2.0" - deepmerge "^4.2.2" - eth-json-rpc-errors "^2.0.2" - fast-deep-equal "^3.1.3" - is-stream "^2.0.0" - json-rpc-engine "^5.1.8" - json-rpc-middleware-stream "^2.1.1" - loglevel "^1.6.8" - obj-multiplex "^1.0.0" - obs-store "^4.0.3" - post-message-stream "^3.0.0" - pump "^3.0.0" - safe-event-emitter "^1.0.1" - web3 "^0.20.7" - -"@toruslabs/torus.js@^2.2.4": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.5.tgz#8994ae7727d980e2c0600b1154d547260ea52ec4" - integrity sha512-fxrIQmtNo4p3uEy5KdiIrZiB32KGPtaV70PoPg/vQB4IL/gjrQSYSIcC0VyP04yBfjHLccJe/HKOhlofpKcjAg== - dependencies: - "@toruslabs/eccrypto" "^1.1.4" - "@toruslabs/http-helpers" "^1.3.4" - bn.js "^5.1.2" - elliptic "^6.5.3" - json-stable-stringify "^1.0.1" - loglevel "^1.6.8" - memory-cache "^0.2.0" - web3-utils "^1.2.11" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -"@types/node@^12.12.6": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/react-dom@^16.0.5": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^16.3.13": - version "16.9.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.45.tgz#b43ccf3d8a3d2020e6a48c8c8492e5a4bc10f097" - integrity sha512-vv950slTF5UZ5eDOf13b8qC1SD4rTvkqg3HfaUKzr17U97oeJZAa+dUaIHn0QoOJflNTIt6Pem9MmapULs9dkA== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" - integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== - dependencies: - "@types/node" "*" - -"@unilogin/provider@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.6.1.tgz#427247f0cb0899d8b0d00c04a4b90ae2a3c2cb40" - integrity sha512-S96uBfoh+/nk8L6Yr+YgEV+FwQgtRnozWhgJpOhmRz128ri5Qv2SXLx5Sac33NGbs8g27PgKOyHX3dKJCvcP3g== - dependencies: - "@restless/sanitizers" "^0.2.5" - reactive-properties "^0.1.11" - -"@walletconnect/client@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.1.0.tgz#f2454cba82da3d8c7375b2a5d9d47f34ed7348ec" - integrity sha512-pHxvUDCkD4oP3AFxYLU7yeE+qDZtcHF20b2K8/HNvyuyu3eWFX4jpHgx6FdvcIcFcAXGs5nk24zBUEO8p+axWg== - dependencies: - "@walletconnect/core" "^1.1.0" - "@walletconnect/iso-crypto" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/core@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.1.0.tgz#053f08b0ccfdfb14ccd27b7fd425d9849cedba14" - integrity sha512-Bhe4gnR6Az11u7OAOw0UDZKM6emUjIQtQ2PVdPDWke6ryC0DWMg9vTYbVPf3lDHBv5hy5eAyDst30N5E91SuYw== - dependencies: - "@walletconnect/socket-transport" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/http-connection@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.1.0.tgz#c6650c12a07244d30f20647420cdcd8c69c6daca" - integrity sha512-ugxDW/NaSgn7rmdPZhrpJIS79gASLvzBnGHScMs8zpYDHwcFxh2DP3HTspC8o5FyMqjRlEGtNi4zSGKY6EOrkw== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - xhr2-cookies "1.1.0" - -"@walletconnect/iso-crypto@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.1.0.tgz#a8235049c1b239adcf9fc6a6c38b7e9ad13004a6" - integrity sha512-ttWLj4rTy2NGQnSAKnAar1LSrsJuCQ2JnQUl8hsgc9oTwXKgnRvtxGy2Kajoih/tNKnK959Ilj4WI2HaSJ9G1g== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - eccrypto-js "5.2.0" - -"@walletconnect/mobile-registry@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.1.0.tgz#72173a4fcee61f4f8819f6d9fc7cfbf824ed3548" - integrity sha512-OOHQa4NeK2lbfI9WD2d+hTHGwSDzBLoTCeofdLNO2ibaTltQ6S+WNDAVuho6U8CkUTzs5cHPFgLJ6nxYZ8sr/g== - -"@walletconnect/qrcode-modal@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.1.0.tgz#4cd0c2c2c713be3f49ef00293a1b23a079d4c7b7" - integrity sha512-vYsu1MBE0D+kx1+xdXmaCs7JqhhWPw8orKk9Br64YIPF5pv/48i+Yi/m28/0myJm54YPlVcgzTnuf8PzAH7jgA== - dependencies: - "@walletconnect/mobile-registry" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/socket-transport@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.1.0.tgz#d80b5e6b3b904f131961259ca16de816ae2b003b" - integrity sha512-plo5WHjL3RTDENH7MTgs7D/ePGHfSuc/HLzkVGvgZSOtoPlRR916nSZNeL4bStYF1ZRJCrds10x36C0DlZjpQg== - dependencies: - "@walletconnect/types" "^1.1.0" - ws "7.3.0" - -"@walletconnect/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.1.0.tgz#1e4efbf033ad89910cbb86f1f381cd5fe7e764fd" - integrity sha512-cgDEuYHZZTiaXFRwQs3Zhhar+l2T58/YjhWrfZTMKWuc77geIbF7682i9lE9bNEQqQvQ76jjKxJfSLGjCu++sA== - -"@walletconnect/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.1.0.tgz#7b0bcf5c77e8079ac055013537a9620244db2da9" - integrity sha512-y5v8PCmd/2kASOncYaz5QJiAzwBRT5MK398PmIkImX9tNEeBh00ifeQGZKkCGi6JYXbde0UC5jsGTGkH8hdxeg== - dependencies: - "@walletconnect/types" "^1.1.0" - detect-browser "5.1.0" - enc-utils "2.1.0" - js-sha3 "0.8.0" - -"@walletconnect/web3-provider@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.1.0.tgz#c8a30c4121d3ade159022b10d3a18ecd804c8993" - integrity sha512-1DaYG+aK2pjCBKXrB0c2JKeFk27ObUsu09LlZN1VvIi1+zvHftaubNsSGViLmrq25w72yPle/SDjhgmxvKVMQQ== - dependencies: - "@walletconnect/client" "^1.1.0" - "@walletconnect/http-connection" "^1.1.0" - "@walletconnect/qrcode-modal" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - web3-provider-engine "15.0.12" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -aes-js@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - 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-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0: - 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" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -authereum@^0.0.4-beta.157: - version "0.0.4-beta.164" - resolved "https://registry.yarnpkg.com/authereum/-/authereum-0.0.4-beta.164.tgz#c095fe0abb961f3d6a748ffcec763460d1e31756" - integrity sha512-oRIZhOQCPaKtOYyl3TqLQ5JcPy1ptJWxGilDhNjCMRebxQnItCWWf3nZ4YmS39RGBZqwqZA22sdw/sfPb4VYCA== - dependencies: - async "3.2.0" - ethereum-private-key-to-address "0.0.3" - ethers "4.0.47" - eventemitter3 "4.0.0" - is-buffer "2.0.4" - moment "2.24.0" - penpal "4.1.1" - pify "4.0.1" - querystring "0.2.0" - store "2.0.12" - to-hex "0.0.11" - uuidv4 "6.0.6" - web3-provider-engine "15.0.4" - web3-utils "1.2.1" - -await-semaphore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/await-semaphore/-/await-semaphore-0.1.3.tgz#2b88018cc8c28e06167ae1cdff02504f1f9688d3" - integrity sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= - dependencies: - precond "0.2" - -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= - -base-x@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== - -"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": - version "2.0.7" - resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" - -bind-decorator@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha1-5BvAah9l3ZzsR2yRxdrzl4SIJS8= - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -blakejs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bnc-onboard@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.11.0.tgz#cb3d79b702a15d12114aa649beddb2ec5ea83e70" - integrity sha512-hHB+xb6SULRxQh/Bm5DBEfg/4/QLI/B9q/h3AyMf+21FMmJ66DUODDsoIwbiq1fh3IrwHpoSmNLdb2nTeN0Wog== - dependencies: - "@ledgerhq/hw-app-eth" "^5.21.0" - "@ledgerhq/hw-transport-u2f" "^5.21.0" - "@portis/web3" "^2.0.0-beta.57" - "@toruslabs/torus-embed" "^1.8.2" - "@unilogin/provider" "^0.6.1" - "@walletconnect/web3-provider" "^1.1.0" - authereum "^0.0.4-beta.157" - bignumber.js "^9.0.0" - bnc-sdk "^2.1.4" - bowser "^2.10.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^7.0.3" - fortmatic "^2.2.1" - hdkey "^2.0.1" - regenerator-runtime "^0.13.7" - squarelink "^1.1.4" - trezor-connect "^8.1.9" - walletlink "^2.0.2" - web3-provider-engine "^15.0.4" - -bnc-sdk@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/bnc-sdk/-/bnc-sdk-2.1.5.tgz#7f40bcf98eb0238882f5436c0e860e60be2867c0" - integrity sha512-rtwOGKjal1LQyYrdESdOfCK5L2ocS3tjoWtNacm3rkb+xjDusVnUpF/NgudJpCnv3Mwu9YDWjsLKIPKjwbJL7A== - dependencies: - crypto-es "^1.2.2" - sturdy-websocket "^0.1.12" - -bowser@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198" - integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg== - -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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.6, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-sha3@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.4.tgz#086c47b8c82316c9d47022c26185954576dd8e26" - integrity sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY= - dependencies: - js-sha3 "^0.6.1" - safe-buffer "^5.1.1" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - 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== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.4.3: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30000844: - version "1.0.30001112" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz#0fffc3b934ff56ff0548c37bc9dad7d882bcf672" - integrity sha512-J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -clsx@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -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-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= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -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= - -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, 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= - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - integrity sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw== - dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" - -crypto-es@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c" - integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA== - -crypto-js@^3.1.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" - integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== - -csstype@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7" - integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -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" - -debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -define-properties@^1.1.2, 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" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-browser@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.0.tgz#0c51c66b747ad8f98a6832bf3026a5a23a7850ff" - integrity sha512-WKa9p+/MNwmTiS+V2AS6eGxic+807qvnV3hC+4z2GTY+F42h1n8AynVTMMc4EJBC32qMs6yjOTpeDEQQt/AVqQ== - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -eccrypto-js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eccrypto-js/-/eccrypto-js-5.2.0.tgz#eb3b36e9978d316fedf50be46492bb0d3e240cf5" - integrity sha512-pPb6CMapJ1LIzjLWxMqlrnfaEFap7qkk9wcO/b4AVSdxBQYlpOqvlPpq5SpUI4FdmfdhVD34AjN47fM8fryC4A== - dependencies: - aes-js "3.1.2" - enc-utils "2.1.0" - hash.js "1.1.7" - js-sha3 "0.8.0" - randombytes "2.1.0" - secp256k1 "3.8.0" - -electron-to-chromium@^1.3.47: - version "1.3.526" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz#0e004899edf75afc172cce1b8189aac5dca646aa" - integrity sha512-HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg== - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -enc-utils@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-2.1.0.tgz#f6c28c3d4bb38fb409a93185848cf361f4fde142" - integrity sha512-VD0eunGDyzhojePzkORWDnW88gi6tIeGb5Z6QVHugux6mMAPiXyw94fb/7WdDQEWhKMSoYRyzFFUebCqeH20PA== - dependencies: - bn.js "4.11.8" - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.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" - -errno@~0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -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.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - 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.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - 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" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.1, eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-errors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz#c1965de0301fe941c058e928bebaba2e1285e3c4" - integrity sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@^4.0.2, eth-json-rpc-filters@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.1.tgz#15277c66790236d85f798f4d7dc6bab99a798cd2" - integrity sha512-GkXb2h6STznD+AmMzblwXgm1JMvjdK9PTIXG7BvIkTlXQ9g0QOxuU1iQRYHoslF9S30BYBSoLSisAYPdLggW+A== - dependencies: - await-semaphore "^0.1.3" - eth-json-rpc-middleware "^4.1.4" - eth-query "^2.1.2" - json-rpc-engine "^5.1.3" - lodash.flatmap "^4.5.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz#8af1a1a2e9a0a82aaa302bbc96fb1a4c15d69b83" - integrity sha512-dvgOrci9lZqpjpp0hoC3Zfedhg3aIpLFVDH0TdlKxRlkhR75hTrKTwxghDrQwE0bn3eKrC8RsN1m/JdnIWltpw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-middleware "^4.1.4" - json-rpc-engine "^5.1.3" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.1, eth-json-rpc-middleware@^4.1.4, eth-json-rpc-middleware@^4.1.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - integrity sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-bloom-filters@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" - integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== - dependencies: - js-sha3 "^0.8.0" - -ethereum-checksum-address@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-checksum-address/-/ethereum-checksum-address-0.0.2.tgz#46fcb2d962dacd1ed49d7b464408ec26fd183209" - integrity sha512-GAb7mPvGgcfi1j+Bsnwm9af9Z7dLUKp+5cFm88+kMrKACfh9gLatGLVVK5pSGEG2pOGfrmqCRcuh3RtMjIg8GQ== - dependencies: - keccak256 "^1.0.0" - meow "^5.0.0" - -ethereum-common@0.0.18, ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= - -ethereum-common@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.1.0.tgz#874dd0fae5e962a56c50ebf28efa6fe39492b0e7" - integrity sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc= - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereum-private-key-to-address@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-address/-/ethereum-private-key-to-address-0.0.3.tgz#1f1dccaefd1198c2dcde55501f331a846bd0aad0" - integrity sha512-P+z9eFlgOezxogEpY1sQR155U4xFmQUWVxKzIJa5BL05Gs7zL0sYuyQuSAme8LBYGQ6p6AwconiMDauf4LbqyA== - dependencies: - ethereum-private-key-to-public-key "0.0.2" - ethereum-public-key-to-address "0.0.1" - meow "^5.0.0" - -ethereum-private-key-to-public-key@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-public-key/-/ethereum-private-key-to-public-key-0.0.2.tgz#bb5803aad43df2692e0d7b4c9eaa224eec2a39cb" - integrity sha512-WKwFspLS5IdpV1rBUmWSG2xtIDV7YMpAG/uSjtV9kDzBU6hpSzoqg6R/e1iEfHkOr/eae+NtDTpwzXRtSMDvhw== - dependencies: - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereum-public-key-to-address@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ethereum-public-key-to-address/-/ethereum-public-key-to-address-0.0.1.tgz#3f0237687d9c2217234dc5683f3eb580abf3f6ce" - integrity sha512-X78x/VBluHUdrYpZunoXJ48luXTaUiUK4ImPjTjI+XiS24+jUR5WFCpm9wCNbLYP6/ZCJ+lwuYormXSjt8rrbw== - dependencies: - ethereum-checksum-address "0.0.2" - keccak256 "^1.0.0" - meow "^5.0.0" - secp256k1 "^3.7.1" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz#cded4962deaca1eef17372b4d290e84b35c84372" - integrity sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I= - dependencies: - async "^2.0.1" - ethereum-common "0.0.18" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" - integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y= - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - keccakjs "^0.2.0" - rlp "^2.0.0" - secp256k1 "^3.0.1" - -ethereumjs-util@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f" - integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-vm@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262" - integrity sha512-sAus9UxYjUnA42G91Q1/hR7ff35IJRpcLrUfbaIH7V4cl8qKsNs3wqf3dHvtj3wRqy12ke2Wd0tYdARyGKdD6g== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereum-common "0.1.0" - ethereumjs-account "^2.0.3" - ethereumjs-block "~1.6.0" - ethereumjs-util "4.5.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethers@4.0.47: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.8.tgz#c13d0fdf5e66db8085e2036d3309ed2f8a17ed89" - integrity sha512-of/rPgJ7E3yyBADUv5A7Gtkd7EB8ta/T9NS5CCG9tj9cifnXcI3KIdYQ7d8AS+9vm38pR1g6S5I+Q/mRnlQZlg== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -eventemitter3@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0, events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - 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== - -fast-safe-stringify@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-cache-dir@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -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" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fortmatic@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86" - integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ== - -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.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= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1, 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== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.2, glob@~7.1.6: - 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" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -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== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-symbols@^1.0.0, 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, 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" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hdkey@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.0.1.tgz#0a211d0c510bfc44fa3ec9d44b13b634641cad74" - integrity sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA== - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^4.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.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-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -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-buffer@2.0.4, is-buffer@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -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-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.4, is-regex@^1.1.0: - 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-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -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" - -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" - integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= - -"js-tokens@^3.0.0 || ^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== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -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-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.0.0, json-rpc-engine@^5.1.3, json-rpc-engine@^5.1.8: - version "5.3.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz#7dc7291766b28766ebda33eb6d3f4c6301c44ff4" - integrity sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" - -json-rpc-middleware-stream@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-2.1.1.tgz#06e5409e201e7ddeae47bef29f7059eafd4d5325" - integrity sha512-WZheufPN+/RKkjXQP3lK5tFYblqG0n+oYv5qpammwwY2vsJRB7mM4Txhr4ajzvYEZi1UkENnplrmaYiqaqafaA== - dependencies: - readable-stream "^2.3.3" - safe-event-emitter "^1.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= - -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== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak256@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.0.tgz#1ba55ce78ed3d63fb7091d045469007da984171d" - integrity sha512-8qv2vJdQk+Aa2tFXo8zYodm+6DgXqUOqvNJhj1p1V2pxQJT1oNKxNF+zWfhtKXNLZdLvyxjB/dvd9GwcvTHSQQ== - dependencies: - bn.js "^4.11.8" - keccak "^1.4.0" - -keccak@^1.0.2, keccak@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccakjs@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" - integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg== - dependencies: - browserify-sha3 "^0.0.4" - sha3 "^1.2.2" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^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" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= - -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - -magic-string@^0.25.2, magic-string@^0.25.3: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memory-cache@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a" - integrity sha1-eJCwHVLADI68nVM+H46xfjA0hxo= - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -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.12, mime-types@~2.1.19: - 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== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -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" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -nan@^2.14.0, nan@^2.14.1, nan@^2.2.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - -node-fetch@~1.7.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-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - -normalize-hex@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/normalize-hex/-/normalize-hex-0.0.2.tgz#5491c43759db2f06b7168d8419f4925c271ab27e" - integrity sha512-E2dx7XJQnjsm6SkS4G6GGvIXRHaLeWAZE2D2N3aia+OpIif2UT8y4S0KCjrX3WmFDSeFnlNOp0FSHFjLeJ4SJw== - dependencies: - bn.js "^4.11.8" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - 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" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -obj-multiplex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/obj-multiplex/-/obj-multiplex-1.0.0.tgz#2f2ae6bfd4ae11befe742ea9ea5b36636eabffc1" - integrity sha1-Lyrmv9SuEb7+dC6p6ls2Y26r/8E= - dependencies: - end-of-stream "^1.4.0" - once "^1.4.0" - readable-stream "^2.3.3" - -object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, 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-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= - dependencies: - http-https "^1.0.0" - -obs-store@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/obs-store/-/obs-store-4.0.3.tgz#b632ec7814baa604fae084a4c97e87c0b7a6d14c" - integrity sha512-+mm13kCRDv6IcvUDKTw0LIy5+dQhIktYaR/RwwZUFzOTi/fjMaNBnk42Adb94qZqJ00qWkjhQSZH7MXlKnTi8A== - dependencies: - readable-stream "^2.2.2" - safe-event-emitter "^1.0.1" - through2 "^2.0.3" - xtend "^4.0.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" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.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-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -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== - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -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" - -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-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - 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-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" - -pbkdf2@^3.0.17: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -penpal@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" - integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ== - -penpal@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-4.1.1.tgz#c96ccfdac441682acf617f6dcbc177a614e8302b" - integrity sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -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-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pocket-js-core@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pocket-js-core/-/pocket-js-core-0.0.3.tgz#1ab278b9a6a5775e2bdc3c2c2e218057774061e4" - integrity sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg== - dependencies: - axios "^0.18.0" - -post-message-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/post-message-stream/-/post-message-stream-3.0.0.tgz#90d9f54bd209e6b6f5d74795b87588205b547048" - integrity sha1-kNn1S9IJ5rb110eVuHWIIFtUcEg= - dependencies: - readable-stream "^2.1.4" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== - -preact@^10.3.3: - version "10.4.7" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.7.tgz#5a530d34b4ba45f38234be8b1b3fe910098a165f" - integrity sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw== - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= - -prettier@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -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, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -randombytes@2.1.0, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - -react-dom@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.8.1: - 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@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -reactive-properties@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reactive-properties/-/reactive-properties-0.1.12.tgz#35000ddb9b516bf5ea5b4c41154a45a7a38fdedf" - integrity sha512-jPpTyoAZOvMhq3pt87X/kZ1zT4j1aad8iafSRHOziYfhBYVYTiUjmIYAxZPmcFziF/4JbEsA7DXA91ZzdosQyQ== - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.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@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.8.1, resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= - dependencies: - through "~2.3.4" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" - integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== - dependencies: - bn.js "^4.11.1" - -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-plugin-peer-deps-external@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" - integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== - -rollup-plugin-typescript2@^0.25.3: - version "0.25.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" - integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== - dependencies: - find-cache-dir "^3.0.0" - fs-extra "8.1.0" - resolve "1.12.0" - rollup-pluginutils "2.8.1" - tslib "1.10.0" - -rollup-pluginutils@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" - integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== - dependencies: - estree-walker "^0.6.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@2.23.1: - version "2.23.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20" - integrity sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A== - optionalDependencies: - fsevents "~2.1.2" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - -rxjs@^6.5.4, rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -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-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@3.8.0, secp256k1@^3.0.1, secp256k1@^3.7.1, secp256k1@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.0, secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -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= - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha3@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.6.tgz#102aa3e47dc793e2357902c3cce8760822f9e905" - integrity sha512-KgLGmJGrmNB4JWVsAV11Yk6KbvsAiygWJc7t5IebWva/0NukNrjJqhtKhzy3Eiv2AKuGvhZZt7dt1mDo7HkoiQ== - dependencies: - nan "2.13.2" - -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== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -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.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -squarelink-provider-engine@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/squarelink-provider-engine/-/squarelink-provider-engine-15.0.5.tgz#93a440c5daec517b1b494424d1c279f195cd781c" - integrity sha512-rl9586BLpN/ldujibbMsCfq+lEyY/YMkmWqYcbmKs6VUvB56fsIG23HvVFl1mPRUu7XIq4dOt+V+4G6+GcKTtQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.1" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^4.1.1" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -squarelink@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/squarelink/-/squarelink-1.1.4.tgz#5303abf1f4a2765accf0b0de7d8b45ba19c270f8" - integrity sha512-VOLwNWhz/QgrGg5INvd7y/TddKDdS6/6FfjqtMys6nLVJA8h+h05WW5/YJLidHCSD0A+2VnPuL8m/lkP1bUk2g== - dependencies: - bignumber.js "^9.0.0" - squarelink-provider-engine "^15.0.5" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -store@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -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@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.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-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -sturdy-websocket@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/sturdy-websocket/-/sturdy-websocket-0.1.12.tgz#84bb779f948b585a695f76961dc7d1c4a5e87629" - integrity sha512-PA7h8LdjaMoIlC5HAwLVzae4raGWgyroscV4oUpEiTtEFINcNa47/CKYT3e98o+FfsJgrclI2pYpaJrz0aaoew== - dependencies: - lodash.defaults "^4.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= - -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - integrity sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -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= - -to-hex@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/to-hex/-/to-hex-0.0.11.tgz#22355e09e5b56f5ae2b32502c493320f021171ac" - integrity sha512-3FSU8sfjrVc9fWowwP9xrdhxbp5Wco8uVZLhMhfsNuCFo9Fu8ecD2MgJV/2iAw+755W3AcGSQYVZGOpBmJtNcA== - dependencies: - normalize-hex "0.0.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trezor-connect@^8.1.9: - version "8.1.10" - resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.10.tgz#1f80525c91684e7dc062f2e5eb6d93502e61172b" - integrity sha512-q1Hscxjyr1PtZj02yRu9rKps9VrSZ4koXgE8DM1QES2Sc7buhNqHwvRZQLQopUDXSoZh2vgObQNBrJsNHbWBpg== - dependencies: - "@babel/runtime" "^7.11.0" - events "^3.2.0" - whatwg-fetch "^3.3.1" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.9.6: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= - -util-deprecate@^1.0.1, 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= - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" - integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuidv4@6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" - integrity sha512-10YcruyGJtsG5SJnPG+8atr8toJa7xAOrcO7B7plYYiwpH1mQ8UZHjNSa2MrwGi6KWuyVrXGHr+Rce22F9UAiw== - dependencies: - uuid "7.0.2" - -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" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walletlink@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.0.2.tgz#8640e42d3df49b4661019287ab9789e94b72db98" - integrity sha512-4MIctCHAjcPHSQUHpHuU9leUAvYqRF+/4kCq7x9AngZQ2Jd74dbpC8dfZ55uOwW8TXc7z9XYeSyzRrGHbv5ZXg== - dependencies: - bind-decorator "^1.0.11" - bn.js "^5.1.1" - clsx "^1.1.0" - preact "^10.3.3" - rxjs "^6.5.4" - -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - -web3-core-method@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" - -web3-core-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - -web3-eth-contract@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" - -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - -web3-provider-engine@15.0.12, web3-provider-engine@^15.0.4: - version "15.0.12" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.12.tgz#24d7f2f6fb6de856824c7306291018c4fc543ac3" - integrity sha512-/OfhQalKPND1iB5ggvGuYF0+SIb2Qj5OFTrT2VrZWP79UhMTdP7T+L2FtblmRdCeOetoAzZHdBaIwLOZsmIX+w== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^2.0.2" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.4.tgz#5c336bcad2274dff5218bc8db003fa4e9e464c24" - integrity sha512-Ob9oK0TUZfVC7NXkB7CQSWAiCdCD/Xnlh2zTnV8NdJR8LCrMAy2i6JedU70JHaxw59y7mM4GnsYOTTGkquFnNQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.11, web3-utils@^1.2.11, web3-utils@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3@^0.20.7: - version "0.20.7" - resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.7.tgz#1605e6d81399ed6f85a471a4f3da0c8be57df2f7" - integrity sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ== - dependencies: - bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" - crypto-js "^3.1.4" - utf8 "^2.1.1" - xhr2-cookies "^1.1.0" - xmlhttprequest "*" - -websocket@^1.0.31: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^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.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - -ws@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@*, xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/packages/common-modules/.gitignore b/packages/common-modules/.gitignore deleted file mode 100644 index 3ae30aa8fb..0000000000 --- a/packages/common-modules/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# generate output -dist -build diff --git a/packages/common-modules/.npmignore b/packages/common-modules/.npmignore deleted file mode 100644 index 37392c3699..0000000000 --- a/packages/common-modules/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ -dist -.babelrc -.storybook -.gitignore -rollup.config.js -tsconfig.json diff --git a/packages/common-modules/LICENSE b/packages/common-modules/LICENSE deleted file mode 100644 index efc5d950ff..0000000000 --- a/packages/common-modules/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/packages/common-modules/README.md b/packages/common-modules/README.md deleted file mode 100644 index b6641e22f5..0000000000 --- a/packages/common-modules/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Imploy Modules - -This is a collection of commonly used modules diff --git a/packages/common-modules/package.json b/packages/common-modules/package.json deleted file mode 100644 index f90b315a48..0000000000 --- a/packages/common-modules/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@imploy/common-modules", - "version": "1.0.0", - "description": "Common Modules", - "author": "Michael Yankelev ", - "license": "GPL-3.0", - "main": "dist/index.js", - "engines": { - "node": ">=8", - "yarn": ">=1" - }, - "scripts": { - "build": "rollup -c", - "start": "rollup -c -w" - }, - "dependencies": {}, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^17.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^10.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^16.9.10", - "babel-core": "^6.26.3", - "babel-runtime": "^6.26.0", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "rollup": "2.34.2", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-typescript2": "^0.29.0", - "typescript": "^4.0.5" - }, - "files": [ - "dist" - ], - "keywords": [ - "react", - "typescript" - ] -} diff --git a/packages/common-modules/rollup.config.js b/packages/common-modules/rollup.config.js deleted file mode 100644 index 01753038f3..0000000000 --- a/packages/common-modules/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import typescript from 'rollup-plugin-typescript2' -import resolve from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' -import json from '@rollup/plugin-json' -import nodePolyfills from 'rollup-plugin-node-polyfills' -import peerDepsExternal from 'rollup-plugin-peer-deps-external' - -export default { - input: 'src/index.ts', - output: { - format: 'esm', // needs to be esm format as Onboard.js contains code-splitting - dir: 'dist/', - exports: 'named', - sourcemap: true, - strict: false - }, - plugins: [ - peerDepsExternal(), - typescript(), - json(), - resolve({ - browser: true, - preferBuiltins: true - }), - commonjs(), - nodePolyfills() - ], - external: ['react', 'react-dom', 'bnc-onboard'] -} diff --git a/packages/common-modules/src/index.ts b/packages/common-modules/src/index.ts deleted file mode 100644 index 336ce12bb9..0000000000 --- a/packages/common-modules/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {} diff --git a/packages/common-modules/tsconfig.json b/packages/common-modules/tsconfig.json deleted file mode 100644 index f8652eca7a..0000000000 --- a/packages/common-modules/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "outDir": "dist", - "module": "esnext", - "target": "es5", - "lib": ["es6", "dom", "es2016", "es2017"], - "sourceMap": true, - "allowJs": false, - "jsx": "react", - "strict": true, - "declaration": true, - "moduleResolution": "node", - "forceConsistentCasingInFileNames": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "noImplicitAny": true, - "strictNullChecks": true, - "allowSyntheticDefaultImports": true, - "suppressImplicitAnyIndexErrors": true, - "noUnusedLocals": true, - "noUnusedParameters": true - }, - "include": ["src"], - "exclude": ["node_modules", "dist", "example", "rollup.config.js"] -} diff --git a/packages/common-modules/yarn.lock b/packages/common-modules/yarn.lock deleted file mode 100644 index 7949caf249..0000000000 --- a/packages/common-modules/yarn.lock +++ /dev/null @@ -1,5225 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@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/plugin-transform-runtime@^7.5.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/types@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@chaitanyapotti/random-id@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@chaitanyapotti/random-id/-/random-id-1.0.3.tgz#f52f647cfe9f79fc7723ea2b01b0ad3889204002" - integrity sha512-xiVWA2vTL3jQeuZ+yebXAtwIeEbh/13RAFxvRq0YxeUc02RBOGyC9eyDKXjwlN0uxPtnEwWxsELkSwnaH5kxjg== - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abi@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.2.tgz#7fe8f080aa1483fe32cd27bb5b8f2019266af1e2" - integrity sha512-Z+5f7xOgtRLu/W2l9Ry5xF7ehh9QVQ0m1vhynmTcS7DMfHgqTd1/PDFC62aw91ZPRCRZsYdZJu8ymokC5e1JSw== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/abstract-provider@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.2.tgz#9b4e8f4870f0691463e8d5b092c95dd5275c635d" - integrity sha512-U1s60+nG02x8FKNMoVNI6MG8SguWCoG9HJtwOqWZ38LBRMsDV4c0w4izKx98kcsN3wXw4U2/YAyJ9LlH7+/hkg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - -"@ethersproject/abstract-signer@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.2.tgz#5776f888fda816de1d08ddb0e74778ecb9590f69" - integrity sha512-CzzXbeqKlgayE4YTnvvreGBG3n+HxakGXrxaGM6LjBZnOOIVSYi6HMFG8ZXls7UspRY4hvMrtnKEJKDCOngSBw== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.2.tgz#80d0ddfb7d4bd0d32657747fa4bdd2defef2e00a" - integrity sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/base64@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.2.tgz#48b3bb8d640a963bd8ee196cfeacd592155a0ca8" - integrity sha512-0FE5RH5cUDddOiQEDpWtyHjkSW4D5/rdJzA3KTZo8Fk5ab/Y8vdzqbamsXPyPsXU3gS+zCE5Qq4EKVOWlWLLTA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - -"@ethersproject/basex@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.2.tgz#13029ce0ad63674f4d4dbebf6763181fb22f0e6d" - integrity sha512-p4m2CeQqI9vma3XipRbP2iDf6zTsbroE0MEXBAYXidsoJQSvePKrC6MVRKfTzfcHej1b9wfmjVBzqhqn3FRhIA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.5.tgz#31bd7e75aad46ace345fae69b1f5bb120906af1b" - integrity sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - bn.js "^4.4.0" - -"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.3.tgz#b3769963ae0188a35713d343890a903bda20af9c" - integrity sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.2.tgz#f7ac0b320e2bbec1a5950da075015f8bc4e8fed1" - integrity sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - -"@ethersproject/contracts@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.2.tgz#f19ed8335ceeb6abb60f5d45641f0a2a62b6fbc5" - integrity sha512-Ud3oW8mBNIWE+WHRjvwVEwfvshn7lfYWSSKG0fPSb6baRN9mLOoNguX+VIv3W5Sne9w2utnBmxLF2ESXitw64A== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - -"@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.2.tgz#6d69558786961836d530b8b4a8714eac5388aec7" - integrity sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/hdnode@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.2.tgz#c4f2152590a64822d0c0feb90f09cc247af657e0" - integrity sha512-QAUI5tfseTFqv00Vnbwzofqse81wN9TaL+x5GufTHIHJXgVdguxU+l39E3VYDCmO+eVAA6RCn5dJgeyra+PU2g== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/json-wallets@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.4.tgz#e09bf2d34279c6dd2b4a4d4c44db65471bacc68b" - integrity sha512-jqtb+X3rJXWG/w+Qyr7vq1V+fdc5jiLlyc6akwI3SQIHTfcuuyF+eZRd9u2/455urNwV3nuCsnrgxs2NrtHHIw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.2.tgz#7ed4a95bb45ee502cf4532223833740a83602797" - integrity sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - js-sha3 "0.5.7" - -"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.4.tgz#09fa4765b5691233e3afb6617cb38a700f9dd2e4" - integrity sha512-alA2LiAy1LdQ/L1SA9ajUC7MvGAEQLsICEfKK4erX5qhkXE1LwLSPIzobtOWFsMHf2yrXGKBLnnpuVHprI3sAw== - -"@ethersproject/networks@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.2.tgz#a49e82cf071e3618e87e3c5d69fdbcf54dc6766c" - integrity sha512-T7HVd62D4izNU2tDHf6xUDo7k4JOGX4Lk7vDmVcDKrepSWwL2OmGWrqSlkRe2a1Dnz4+1VPE6fb6+KsmSRe82g== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/pbkdf2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.2.tgz#d12c5f434bbdf6f52401eddb7d753a713dd9e4ea" - integrity sha512-OJFxdX/VtGI5M04lAzXKEOb76XBzjCOzGyko3/bMWat3ePAw7RveBOLyhm79SBs2fh21MSYgdG6JScEMHoSImw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - -"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.2.tgz#2facb62d2f2d968c7b3d0befa5bcc884cc565d3b" - integrity sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q== - dependencies: - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/providers@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.5.tgz#fa28498ce9683d1d99f6cb11e1a7fe8d4886e0ce" - integrity sha512-ZR3yFg/m8qDl7317yXOHE7tKeGfoyZIZ/imhVC4JqAH+SX1rb6bdZcSjhJfet7rLmnJSsnYLTgIiVIT85aVLgg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/web" "^5.0.0" - ws "7.2.3" - -"@ethersproject/random@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.2.tgz#bb58aca69a85e8de506686117f050d03dac69023" - integrity sha512-kLeS+6bwz37WR2zbe69gudyoGVoUzljQO0LhifnATsZ7rW0JZ9Zgt0h5aXY7tqFDo9TvdqeCwUFdp1t3T5Fkhg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/rlp@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.2.tgz#d6b550a2ac5e484f15f0f63337e522004d2e78cd" - integrity sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/sha2@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.2.tgz#baefc78c071be8729b180759eb29267129314252" - integrity sha512-VFl4qSStjQZaygpqoAHswaCY59qBm1Sm0rf8iv0tmgVsRf0pBg2nJaNf9NXXvcuJ9AYPyXl57dN8kozdC4z5Cg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - hash.js "1.1.3" - -"@ethersproject/signing-key@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.3.tgz#adb84360e147bfd336cb2fe114100120732dc10a" - integrity sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - elliptic "6.5.3" - -"@ethersproject/solidity@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.2.tgz#431cee341ec51e022bd897b93fef04521f414756" - integrity sha512-RygurUe1hPW1LDYAPXy4471AklGWNnxgFWc3YUE6H11gzkit26jr6AyZH4Yyjw38eBBL6j0AOfQzMWm+NhxZ9g== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.2.tgz#1753408c3c889813fd0992abd76393e3e47a2619" - integrity sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.0-beta.135": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.2.tgz#590ede71fc87b45be7bd46002e18ae52246a2347" - integrity sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - -"@ethersproject/units@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.2.tgz#de1461ff3ad2587e57bf367d056b6b72cfceda78" - integrity sha512-PSuzycBA1zmRysTtKtp+XYZ3HIJfbmfRdZchOUxdyeGo5siUi9H6mYQcxdJHv82oKp/FniMj8qS8qtLQThhOEg== - dependencies: - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - -"@ethersproject/wallet@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.2.tgz#714ca8324c1b3b66e51b9b4e0358c882e88caf1d" - integrity sha512-gg86ynLV5k5caNnYpJoYc6WyIUHKMTjOITCk5zXGyVbbkXE07y/fGql4A51W0C6mWkeb5Mzz8AKqzHZECdH30w== - dependencies: - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -"@ethersproject/web@^5.0.0": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.3.tgz#f5673923009bb855302f0296ddb932da8e42f0a1" - integrity sha512-9WoIWNxbFOk+8TiWqQMQbYJUIFeC1Z7zNr7oCHpVyhxF0EY54ZVXlP/Y7VJ7KzK++A/iMGOuTIGeL5sMqa2QMg== - dependencies: - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ethersproject/wordlists@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.2.tgz#eded47314509c8608373fc2b22879ee2b71b7c7c" - integrity sha512-6vKDQcjjpnfdSCr0+jNxpFH3ieKxUPkm29tQX2US7a3zT/sJU/BGlKBR7D8oOpwdE0hpkHhJyMlypRBK+A2avA== - dependencies: - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - -"@ledgerhq/devices@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49" - integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - rxjs "^6.6.0" - -"@ledgerhq/errors@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02" - integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q== - -"@ledgerhq/hw-app-eth@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.21.0.tgz#a6857df45cddf29b5e7623237171d7ffba42a44c" - integrity sha512-FKwwqp7IDgCq9ToL/JwO4S3HXr4LSI+Vr6KqeCtpCwRGNdvtiUHF3S9g2LtUroCcGXx9HTr2XL4hZzfrj+2jfg== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - bignumber.js "^9.0.0" - rlp "^2.2.6" - -"@ledgerhq/hw-transport-u2f@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.21.0.tgz#7bb14e6a334eccff0e51c3346702561cebc99941" - integrity sha512-D9bbi0ubvNmHbqTAcaxtbgrXRRnoc6qW34m+IO/FRqdPrJTYw3o9y2f0udv8WQZkbNnBvXEksROEvADkr4dj+Q== - dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - u2f-api "0.2.7" - -"@ledgerhq/hw-transport@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b" - integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ== - dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" - events "^3.2.0" - -"@ledgerhq/logs@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830" - integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw== - -"@portis/eth-json-rpc-middleware@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@portis/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.1.2.tgz#391e392da03dea348c8111a8111ce4550aa24a02" - integrity sha512-LUV0JgV6jphhfmYyElpFYfEzKhxaW2VYB/trWJK7+68s4PNyMMYR94hheXRh9T2lBomSVpdbySfYxjWVLAMKwA== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "2.2.2" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.0.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -"@portis/web3-provider-engine@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@portis/web3-provider-engine/-/web3-provider-engine-1.1.0.tgz#4e502fe363dd5156505ea54a5c902537944b9cf5" - integrity sha512-443QwQqgO/D0gEn7voMfo/dBc0SNzvJ4vVSOUJj1r2W9MsN3f5HeU2wDeXLc8bQryGsmemBxmghK/G+XQTXA6w== - dependencies: - "@portis/eth-json-rpc-middleware" "^4.1.2" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -"@portis/web3@^2.0.0-beta.57": - version "2.0.0-beta.57" - resolved "https://registry.yarnpkg.com/@portis/web3/-/web3-2.0.0-beta.57.tgz#45692bffc07687d50fa5204d514590d438b759de" - integrity sha512-OYmt0a171AJECYT/vTkPb4uc1x7xFASMfn+MN3EAjo7DRhY8WfTAMNoMJDhuFARRLC7an2HrRIsT7D4q9GNrnQ== - dependencies: - "@portis/web3-provider-engine" "1.1.0" - ethereumjs-util "5.2.0" - penpal "3.0.7" - pocket-js-core "0.0.3" - -"@restless/sanitizers@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@restless/sanitizers/-/sanitizers-0.2.5.tgz#96a5cfa3edb52abd8fa14e77798738f3a067dbec" - integrity sha512-utsOFwv5owNnbj8HijF7uML/AURgUl5YvY4S2gpxQsrp2D1EP/4rQU/HSyYdIQaL89BoZ/5NHveRJrcFyuHo/w== - -"@rollup/plugin-commonjs@^14.0.0": - version "14.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz#4285f9ec2db686a31129e5a2b415c94aa1f836f0" - integrity sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-json@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" - integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== - dependencies: - "@rollup/pluginutils" "^3.0.8" - -"@rollup/plugin-node-resolve@^8.4.0": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" - integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== - dependencies: - "@rollup/pluginutils" "^3.1.0" - "@types/resolve" "1.17.1" - builtin-modules "^3.1.0" - deep-freeze "^0.0.1" - deepmerge "^4.2.2" - is-module "^1.0.0" - resolve "^1.17.0" - -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== - dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" - -"@toruslabs/eccrypto@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.4.tgz#2b32e0da10b28a316d08984afcda303536954cd8" - integrity sha512-AQYcd7AM6ePb+V6CZTb6Lb/iaZ/BKpZ66AFdF1YLvMnyBeRY1JgdFOnjQfhtrUAYRMdcc8pBfvjFoWWK7EcggA== - dependencies: - acorn "^7.4.0" - elliptic "^6.5.3" - es6-promise "^4.2.8" - nan "^2.14.1" - optionalDependencies: - secp256k1 "^3.8.0" - -"@toruslabs/fetch-node-details@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@toruslabs/fetch-node-details/-/fetch-node-details-2.3.0.tgz#55ca927814812a029bb29816ace3d60d27fcd0b1" - integrity sha512-QWfYxBel+XUnUgkyPnjTLZpWiYJVl3Nz6I5MwSRJ/t3GteJvvGuq93zbsIzRmyhxK5C+e+FufnEUsKFwiXtPmA== - dependencies: - web3-eth-contract "^1.2.9" - web3-utils "^1.2.9" - -"@toruslabs/http-helpers@^1.3.4": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-1.3.4.tgz#8811cff562fb792267f79ca5cb5c1bf1bc517e34" - integrity sha512-2Hm34F3GOwg41jEaZs1rVF4b+SGwC2mPeR7WhkkkM1cQNlXyCtcgLNLqlCVrww9e6pfBCZ2h3aEQVw+p4cT4fw== - dependencies: - deepmerge "^4.2.2" - loglevel "^1.6.8" - -"@toruslabs/torus-embed@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@toruslabs/torus-embed/-/torus-embed-1.8.2.tgz#6652b8f751c5f041749ccbfcaa0c08ced5f4f278" - integrity sha512-SlApK4BavoQYNenoQxjUs9/rrqrGDK5+Z9coABA6J7pLcbSL7QnBl8bKwTTYhI9Hri2GRbUM8XzNNpZfy5RiIQ== - dependencies: - "@chaitanyapotti/random-id" "^1.0.3" - "@toruslabs/fetch-node-details" "^2.3.0" - "@toruslabs/http-helpers" "^1.3.4" - "@toruslabs/torus.js" "^2.2.4" - create-hash "^1.2.0" - deepmerge "^4.2.2" - eth-json-rpc-errors "^2.0.2" - fast-deep-equal "^3.1.3" - is-stream "^2.0.0" - json-rpc-engine "^5.1.8" - json-rpc-middleware-stream "^2.1.1" - loglevel "^1.6.8" - obj-multiplex "^1.0.0" - obs-store "^4.0.3" - post-message-stream "^3.0.0" - pump "^3.0.0" - safe-event-emitter "^1.0.1" - web3 "^0.20.7" - -"@toruslabs/torus.js@^2.2.4": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@toruslabs/torus.js/-/torus.js-2.2.5.tgz#8994ae7727d980e2c0600b1154d547260ea52ec4" - integrity sha512-fxrIQmtNo4p3uEy5KdiIrZiB32KGPtaV70PoPg/vQB4IL/gjrQSYSIcC0VyP04yBfjHLccJe/HKOhlofpKcjAg== - dependencies: - "@toruslabs/eccrypto" "^1.1.4" - "@toruslabs/http-helpers" "^1.3.4" - bn.js "^5.1.2" - elliptic "^6.5.3" - json-stable-stringify "^1.0.1" - loglevel "^1.6.8" - memory-cache "^0.2.0" - web3-utils "^1.2.11" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - -"@types/estree@*": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== - -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== - -"@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== - -"@types/node@^12.12.6": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== - -"@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== - dependencies: - "@types/node" "*" - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/react-dom@^16.0.5": - version "16.9.8" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz#fe4c1e11dfc67155733dfa6aa65108b4971cb423" - integrity sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^16.3.13": - version "16.9.45" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.45.tgz#b43ccf3d8a3d2020e6a48c8c8492e5a4bc10f097" - integrity sha512-vv950slTF5UZ5eDOf13b8qC1SD4rTvkqg3HfaUKzr17U97oeJZAa+dUaIHn0QoOJflNTIt6Pem9MmapULs9dkA== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/resolve@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" - integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== - dependencies: - "@types/node" "*" - -"@types/secp256k1@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" - integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== - dependencies: - "@types/node" "*" - -"@unilogin/provider@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@unilogin/provider/-/provider-0.6.1.tgz#427247f0cb0899d8b0d00c04a4b90ae2a3c2cb40" - integrity sha512-S96uBfoh+/nk8L6Yr+YgEV+FwQgtRnozWhgJpOhmRz128ri5Qv2SXLx5Sac33NGbs8g27PgKOyHX3dKJCvcP3g== - dependencies: - "@restless/sanitizers" "^0.2.5" - reactive-properties "^0.1.11" - -"@walletconnect/client@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.1.0.tgz#f2454cba82da3d8c7375b2a5d9d47f34ed7348ec" - integrity sha512-pHxvUDCkD4oP3AFxYLU7yeE+qDZtcHF20b2K8/HNvyuyu3eWFX4jpHgx6FdvcIcFcAXGs5nk24zBUEO8p+axWg== - dependencies: - "@walletconnect/core" "^1.1.0" - "@walletconnect/iso-crypto" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/core@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.1.0.tgz#053f08b0ccfdfb14ccd27b7fd425d9849cedba14" - integrity sha512-Bhe4gnR6Az11u7OAOw0UDZKM6emUjIQtQ2PVdPDWke6ryC0DWMg9vTYbVPf3lDHBv5hy5eAyDst30N5E91SuYw== - dependencies: - "@walletconnect/socket-transport" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - -"@walletconnect/http-connection@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.1.0.tgz#c6650c12a07244d30f20647420cdcd8c69c6daca" - integrity sha512-ugxDW/NaSgn7rmdPZhrpJIS79gASLvzBnGHScMs8zpYDHwcFxh2DP3HTspC8o5FyMqjRlEGtNi4zSGKY6EOrkw== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - xhr2-cookies "1.1.0" - -"@walletconnect/iso-crypto@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.1.0.tgz#a8235049c1b239adcf9fc6a6c38b7e9ad13004a6" - integrity sha512-ttWLj4rTy2NGQnSAKnAar1LSrsJuCQ2JnQUl8hsgc9oTwXKgnRvtxGy2Kajoih/tNKnK959Ilj4WI2HaSJ9G1g== - dependencies: - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - eccrypto-js "5.2.0" - -"@walletconnect/mobile-registry@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.1.0.tgz#72173a4fcee61f4f8819f6d9fc7cfbf824ed3548" - integrity sha512-OOHQa4NeK2lbfI9WD2d+hTHGwSDzBLoTCeofdLNO2ibaTltQ6S+WNDAVuho6U8CkUTzs5cHPFgLJ6nxYZ8sr/g== - -"@walletconnect/qrcode-modal@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.1.0.tgz#4cd0c2c2c713be3f49ef00293a1b23a079d4c7b7" - integrity sha512-vYsu1MBE0D+kx1+xdXmaCs7JqhhWPw8orKk9Br64YIPF5pv/48i+Yi/m28/0myJm54YPlVcgzTnuf8PzAH7jgA== - dependencies: - "@walletconnect/mobile-registry" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - preact "10.4.1" - qrcode "1.4.4" - -"@walletconnect/socket-transport@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.1.0.tgz#d80b5e6b3b904f131961259ca16de816ae2b003b" - integrity sha512-plo5WHjL3RTDENH7MTgs7D/ePGHfSuc/HLzkVGvgZSOtoPlRR916nSZNeL4bStYF1ZRJCrds10x36C0DlZjpQg== - dependencies: - "@walletconnect/types" "^1.1.0" - ws "7.3.0" - -"@walletconnect/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.1.0.tgz#1e4efbf033ad89910cbb86f1f381cd5fe7e764fd" - integrity sha512-cgDEuYHZZTiaXFRwQs3Zhhar+l2T58/YjhWrfZTMKWuc77geIbF7682i9lE9bNEQqQvQ76jjKxJfSLGjCu++sA== - -"@walletconnect/utils@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.1.0.tgz#7b0bcf5c77e8079ac055013537a9620244db2da9" - integrity sha512-y5v8PCmd/2kASOncYaz5QJiAzwBRT5MK398PmIkImX9tNEeBh00ifeQGZKkCGi6JYXbde0UC5jsGTGkH8hdxeg== - dependencies: - "@walletconnect/types" "^1.1.0" - detect-browser "5.1.0" - enc-utils "2.1.0" - js-sha3 "0.8.0" - -"@walletconnect/web3-provider@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.1.0.tgz#c8a30c4121d3ade159022b10d3a18ecd804c8993" - integrity sha512-1DaYG+aK2pjCBKXrB0c2JKeFk27ObUsu09LlZN1VvIi1+zvHftaubNsSGViLmrq25w72yPle/SDjhgmxvKVMQQ== - dependencies: - "@walletconnect/client" "^1.1.0" - "@walletconnect/http-connection" "^1.1.0" - "@walletconnect/qrcode-modal" "^1.1.0" - "@walletconnect/types" "^1.1.0" - "@walletconnect/utils" "^1.1.0" - web3-provider-engine "15.0.12" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= - -aes-js@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - -ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== - 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-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0: - 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" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" - integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -authereum@^0.0.4-beta.157: - version "0.0.4-beta.164" - resolved "https://registry.yarnpkg.com/authereum/-/authereum-0.0.4-beta.164.tgz#c095fe0abb961f3d6a748ffcec763460d1e31756" - integrity sha512-oRIZhOQCPaKtOYyl3TqLQ5JcPy1ptJWxGilDhNjCMRebxQnItCWWf3nZ4YmS39RGBZqwqZA22sdw/sfPb4VYCA== - dependencies: - async "3.2.0" - ethereum-private-key-to-address "0.0.3" - ethers "4.0.47" - eventemitter3 "4.0.0" - is-buffer "2.0.4" - moment "2.24.0" - penpal "4.1.1" - pify "4.0.1" - querystring "0.2.0" - store "2.0.12" - to-hex "0.0.11" - uuidv4 "6.0.6" - web3-provider-engine "15.0.4" - web3-utils "1.2.1" - -await-semaphore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/await-semaphore/-/await-semaphore-0.1.3.tgz#2b88018cc8c28e06167ae1cdff02504f1f9688d3" - integrity sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -axios@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" - integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0, babel-core@^6.26.3: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - integrity sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU= - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8= - dependencies: - precond "0.2" - -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= - -base-x@^3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== - -"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": - version "2.0.7" - resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" - -bind-decorator@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/bind-decorator/-/bind-decorator-1.0.11.tgz#e41bc06a1f65dd9cec476c91c5daf3978488252f" - integrity sha1-5BvAah9l3ZzsR2yRxdrzl4SIJS8= - -bindings@^1.2.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI= - dependencies: - safe-buffer "^5.0.1" - -blakejs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bnc-onboard@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/bnc-onboard/-/bnc-onboard-1.11.0.tgz#cb3d79b702a15d12114aa649beddb2ec5ea83e70" - integrity sha512-hHB+xb6SULRxQh/Bm5DBEfg/4/QLI/B9q/h3AyMf+21FMmJ66DUODDsoIwbiq1fh3IrwHpoSmNLdb2nTeN0Wog== - dependencies: - "@ledgerhq/hw-app-eth" "^5.21.0" - "@ledgerhq/hw-transport-u2f" "^5.21.0" - "@portis/web3" "^2.0.0-beta.57" - "@toruslabs/torus-embed" "^1.8.2" - "@unilogin/provider" "^0.6.1" - "@walletconnect/web3-provider" "^1.1.0" - authereum "^0.0.4-beta.157" - bignumber.js "^9.0.0" - bnc-sdk "^2.1.4" - bowser "^2.10.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^7.0.3" - fortmatic "^2.2.1" - hdkey "^2.0.1" - regenerator-runtime "^0.13.7" - squarelink "^1.1.4" - trezor-connect "^8.1.9" - walletlink "^2.0.2" - web3-provider-engine "^15.0.4" - -bnc-sdk@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/bnc-sdk/-/bnc-sdk-2.1.5.tgz#7f40bcf98eb0238882f5436c0e860e60be2867c0" - integrity sha512-rtwOGKjal1LQyYrdESdOfCK5L2ocS3tjoWtNacm3rkb+xjDusVnUpF/NgudJpCnv3Mwu9YDWjsLKIPKjwbJL7A== - dependencies: - crypto-es "^1.2.2" - sturdy-websocket "^0.1.12" - -bowser@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.10.0.tgz#be3736f161c4bb8b10958027ab99465d2a811198" - integrity sha512-OCsqTQboTEWWsUjcp5jLSw2ZHsBiv2C105iFs61bOT0Hnwi9p7/uuXdd7mu8RYcarREfdjNN+8LitmEHATsLYg== - -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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.6, browserify-aes@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-sha3@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.4.tgz#086c47b8c82316c9d47022c26185954576dd8e26" - integrity sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY= - dependencies: - js-sha3 "^0.6.1" - safe-buffer "^5.1.1" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0, buffer-from@^1.1.1: - 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== - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^5.4.3: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -builtin-modules@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" - integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== - -camelcase-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" - integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= - dependencies: - camelcase "^4.1.0" - map-obj "^2.0.0" - quick-lru "^1.0.0" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30000844: - version "1.0.30001112" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001112.tgz#0fffc3b934ff56ff0548c37bc9dad7d882bcf672" - integrity sha512-J05RTQlqsatidif/38aN3PGULCLrg8OYQOlJUKbeYVzC2mGZkZLIztwRlB3MtrfLmawUmjFlNJvy/uhwniIe1Q== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - integrity sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY= - dependencies: - functional-red-black-tree "^1.0.1" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -clsx@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - -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-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= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -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= - -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@1.0.2, 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= - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - integrity sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw== - dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" - -crypto-es@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c" - integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA== - -crypto-js@^3.1.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" - integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== - -csstype@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7" - integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -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" - -debug@^2.2.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize-keys@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-freeze@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" - integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ= - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -define-properties@^1.1.2, 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" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-browser@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.0.tgz#0c51c66b747ad8f98a6832bf3026a5a23a7850ff" - integrity sha512-WKa9p+/MNwmTiS+V2AS6eGxic+807qvnV3hC+4z2GTY+F42h1n8AynVTMMc4EJBC32qMs6yjOTpeDEQQt/AVqQ== - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs= - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -eccrypto-js@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/eccrypto-js/-/eccrypto-js-5.2.0.tgz#eb3b36e9978d316fedf50be46492bb0d3e240cf5" - integrity sha512-pPb6CMapJ1LIzjLWxMqlrnfaEFap7qkk9wcO/b4AVSdxBQYlpOqvlPpq5SpUI4FdmfdhVD34AjN47fM8fryC4A== - dependencies: - aes-js "3.1.2" - enc-utils "2.1.0" - hash.js "1.1.7" - js-sha3 "0.8.0" - randombytes "2.1.0" - secp256k1 "3.8.0" - -electron-to-chromium@^1.3.47: - version "1.3.526" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.526.tgz#0e004899edf75afc172cce1b8189aac5dca646aa" - integrity sha512-HiroW5ZbGwgT8kCnoEO8qnGjoTPzJxduvV/Vv/wH63eo2N6Zj3xT5fmmaSPAPUM05iN9/5fIEkIg3owTtV6QZg== - -elliptic@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -enc-utils@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/enc-utils/-/enc-utils-2.1.0.tgz#f6c28c3d4bb38fb409a93185848cf361f4fde142" - integrity sha512-VD0eunGDyzhojePzkORWDnW88gi6tIeGb5Z6QVHugux6mMAPiXyw94fb/7WdDQEWhKMSoYRyzFFUebCqeH20PA== - dependencies: - bn.js "4.11.8" - is-typedarray "1.0.0" - typedarray-to-buffer "3.1.5" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -end-of-stream@^1.1.0, end-of-stream@^1.4.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" - -errno@~0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -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.17.0-next.1, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - 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.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - 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" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-promise@^4.2.8: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -estree-walker@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" - integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== - -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eth-block-tracker@^4.2.0, eth-block-tracker@^4.4.1, eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - integrity sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-errors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz#c1965de0301fe941c058e928bebaba2e1285e3c4" - integrity sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@^4.0.2, eth-json-rpc-filters@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.1.tgz#15277c66790236d85f798f4d7dc6bab99a798cd2" - integrity sha512-GkXb2h6STznD+AmMzblwXgm1JMvjdK9PTIXG7BvIkTlXQ9g0QOxuU1iQRYHoslF9S30BYBSoLSisAYPdLggW+A== - dependencies: - await-semaphore "^0.1.3" - eth-json-rpc-middleware "^4.1.4" - eth-query "^2.1.2" - json-rpc-engine "^5.1.3" - lodash.flatmap "^4.5.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz#8af1a1a2e9a0a82aaa302bbc96fb1a4c15d69b83" - integrity sha512-dvgOrci9lZqpjpp0hoC3Zfedhg3aIpLFVDH0TdlKxRlkhR75hTrKTwxghDrQwE0bn3eKrC8RsN1m/JdnIWltpw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-middleware "^4.1.4" - json-rpc-engine "^5.1.3" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.1, eth-json-rpc-middleware@^4.1.4, eth-json-rpc-middleware@^4.1.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - integrity sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - integrity sha1-1nQdkAAQa1FRDHLbktY2VFam2l4= - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz#d7b22653c70dbf9defd4ef490fd08fe70608ca10" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - integrity sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA= - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-bloom-filters@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" - integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== - dependencies: - js-sha3 "^0.8.0" - -ethereum-checksum-address@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-checksum-address/-/ethereum-checksum-address-0.0.2.tgz#46fcb2d962dacd1ed49d7b464408ec26fd183209" - integrity sha512-GAb7mPvGgcfi1j+Bsnwm9af9Z7dLUKp+5cFm88+kMrKACfh9gLatGLVVK5pSGEG2pOGfrmqCRcuh3RtMjIg8GQ== - dependencies: - keccak256 "^1.0.0" - meow "^5.0.0" - -ethereum-common@0.0.18, ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= - -ethereum-common@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.1.0.tgz#874dd0fae5e962a56c50ebf28efa6fe39492b0e7" - integrity sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc= - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-cryptography@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" - integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== - dependencies: - "@types/pbkdf2" "^3.0.0" - "@types/secp256k1" "^4.0.1" - blakejs "^1.1.0" - browserify-aes "^1.2.0" - bs58check "^2.1.2" - create-hash "^1.2.0" - create-hmac "^1.1.7" - hash.js "^1.1.7" - keccak "^3.0.0" - pbkdf2 "^3.0.17" - randombytes "^2.1.0" - safe-buffer "^5.1.2" - scrypt-js "^3.0.0" - secp256k1 "^4.0.1" - setimmediate "^1.0.5" - -ethereum-private-key-to-address@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-address/-/ethereum-private-key-to-address-0.0.3.tgz#1f1dccaefd1198c2dcde55501f331a846bd0aad0" - integrity sha512-P+z9eFlgOezxogEpY1sQR155U4xFmQUWVxKzIJa5BL05Gs7zL0sYuyQuSAme8LBYGQ6p6AwconiMDauf4LbqyA== - dependencies: - ethereum-private-key-to-public-key "0.0.2" - ethereum-public-key-to-address "0.0.1" - meow "^5.0.0" - -ethereum-private-key-to-public-key@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ethereum-private-key-to-public-key/-/ethereum-private-key-to-public-key-0.0.2.tgz#bb5803aad43df2692e0d7b4c9eaa224eec2a39cb" - integrity sha512-WKwFspLS5IdpV1rBUmWSG2xtIDV7YMpAG/uSjtV9kDzBU6hpSzoqg6R/e1iEfHkOr/eae+NtDTpwzXRtSMDvhw== - dependencies: - meow "^5.0.0" - secp256k1 "^3.7.1" - -ethereum-public-key-to-address@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ethereum-public-key-to-address/-/ethereum-public-key-to-address-0.0.1.tgz#3f0237687d9c2217234dc5683f3eb580abf3f6ce" - integrity sha512-X78x/VBluHUdrYpZunoXJ48luXTaUiUK4ImPjTjI+XiS24+jUR5WFCpm9wCNbLYP6/ZCJ+lwuYormXSjt8rrbw== - dependencies: - ethereum-checksum-address "0.0.2" - keccak256 "^1.0.0" - meow "^5.0.0" - secp256k1 "^3.7.1" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz#cded4962deaca1eef17372b4d290e84b35c84372" - integrity sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I= - dependencies: - async "^2.0.1" - ethereum-common "0.0.18" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" - integrity sha1-PpQosxfuvaPXJg2FT93alUsfG8Y= - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - keccakjs "^0.2.0" - rlp "^2.0.0" - secp256k1 "^3.0.1" - -ethereumjs-util@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - integrity sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz#a833f0e5fca7e5b361384dc76301a721f537bf65" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.4.tgz#f4b2022a91416bf421b35b0d5b81c21e8abd8b7f" - integrity sha512-isldtbCn9fdnhBPxedMNbFkNWVZ8ZdQvKRDSrdflame/AycAPKMer+vEpndpBxYIB3qxN6bd3Gh1YCQW9LDkCQ== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.4" - -ethereumjs-vm@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.2.tgz#786317d2c63e547d936c1a468607510e70b4c262" - integrity sha512-sAus9UxYjUnA42G91Q1/hR7ff35IJRpcLrUfbaIH7V4cl8qKsNs3wqf3dHvtj3wRqy12ke2Wd0tYdARyGKdD6g== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereum-common "0.1.0" - ethereumjs-account "^2.0.3" - ethereumjs-block "~1.6.0" - ethereumjs-util "4.5.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - safe-buffer "^5.1.1" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethers@4.0.47: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - integrity sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ== - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.8.tgz#c13d0fdf5e66db8085e2036d3309ed2f8a17ed89" - integrity sha512-of/rPgJ7E3yyBADUv5A7Gtkd7EB8ta/T9NS5CCG9tj9cifnXcI3KIdYQ7d8AS+9vm38pR1g6S5I+Q/mRnlQZlg== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/basex" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -eventemitter3@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - -events@^3.0.0, events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== - dependencies: - type "^2.0.0" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - integrity sha1-S4w6z7Ugr635hgsfFM2M40As3dM= - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - 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== - -fast-safe-stringify@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - integrity sha1-rjzl9zLGReq4fkroeTQUcJsjmJM= - dependencies: - node-fetch "~1.7.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -find-cache-dir@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -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" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fortmatic@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/fortmatic/-/fortmatic-2.2.1.tgz#91ce9159c1fe539bd87e483125fca5c27a410a86" - integrity sha512-PEfPoErJSErU2A8iYD2Mab2c8eJK5dCdCr1jR/8yc49aEAlyQ4UXnZXyeO6MU5zBGkDAZmg9brnRSPzc+8MKPQ== - -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.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= - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1, 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== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob@^7.1.2, glob@~7.1.6: - 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" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -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== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-symbols@^1.0.0, 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, 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" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hdkey@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.0.1.tgz#0a211d0c510bfc44fa3ec9d44b13b634641cad74" - integrity sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA== - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^4.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.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-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -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.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -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-buffer@2.0.4, is-buffer@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== - -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-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - integrity sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= - -is-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-reference@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - -is-regex@^1.0.4, is-regex@^1.1.0: - 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-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -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" - -is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -js-sha3@0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= - -js-sha3@0.8.0, js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" - integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= - -"js-tokens@^3.0.0 || ^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== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -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-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.0.0, json-rpc-engine@^5.1.3, json-rpc-engine@^5.1.8: - version "5.3.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz#7dc7291766b28766ebda33eb6d3f4c6301c44ff4" - integrity sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - integrity sha1-p6+cICg4tekFxyUOVH8a/3cligI= - dependencies: - inherits "^2.0.1" - -json-rpc-middleware-stream@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-2.1.1.tgz#06e5409e201e7ddeae47bef29f7059eafd4d5325" - integrity sha512-WZheufPN+/RKkjXQP3lK5tFYblqG0n+oYv5qpammwwY2vsJRB7mM4Txhr4ajzvYEZi1UkENnplrmaYiqaqafaA== - dependencies: - readable-stream "^2.3.3" - safe-event-emitter "^1.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - integrity sha1-uknZat7RRE27jaPSA3SKy7zeyMg= - -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== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak256@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.0.tgz#1ba55ce78ed3d63fb7091d045469007da984171d" - integrity sha512-8qv2vJdQk+Aa2tFXo8zYodm+6DgXqUOqvNJhj1p1V2pxQJT1oNKxNF+zWfhtKXNLZdLvyxjB/dvd9GwcvTHSQQ== - dependencies: - bn.js "^4.11.8" - keccak "^1.4.0" - -keccak@^1.0.2, keccak@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - integrity sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw== - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccakjs@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" - integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg== - dependencies: - browserify-sha3 "^0.0.4" - sha3 "^1.2.2" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - integrity sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0= - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - integrity sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos= - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^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" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= - -lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.4: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - -magic-string@^0.25.2, magic-string@^0.25.3: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" - integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - integrity sha1-tOThkhdGZP+65BNhqlAPMRnv4hU= - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memory-cache@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a" - integrity sha1-eJCwHVLADI68nVM+H46xfjA0hxo= - -meow@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" - integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== - dependencies: - camelcase-keys "^4.0.0" - decamelize-keys "^1.0.0" - loud-rejection "^1.0.0" - minimist-options "^3.0.1" - normalize-package-data "^2.3.4" - read-pkg-up "^3.0.0" - redent "^2.0.0" - trim-newlines "^2.0.0" - yargs-parser "^10.0.0" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -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.12, mime-types@~2.1.19: - 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== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -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" - -minimist-options@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" - integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - -minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment@2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -nan@^2.14.0, nan@^2.14.1, nan@^2.2.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= - -node-addon-api@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" - integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= - -node-fetch@~1.7.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-gyp-build@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" - integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== - -normalize-hex@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/normalize-hex/-/normalize-hex-0.0.2.tgz#5491c43759db2f06b7168d8419f4925c271ab27e" - integrity sha512-E2dx7XJQnjsm6SkS4G6GGvIXRHaLeWAZE2D2N3aia+OpIif2UT8y4S0KCjrX3WmFDSeFnlNOp0FSHFjLeJ4SJw== - dependencies: - bn.js "^4.11.8" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - 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" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -obj-multiplex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/obj-multiplex/-/obj-multiplex-1.0.0.tgz#2f2ae6bfd4ae11befe742ea9ea5b36636eabffc1" - integrity sha1-Lyrmv9SuEb7+dC6p6ls2Y26r/8E= - dependencies: - end-of-stream "^1.4.0" - once "^1.4.0" - readable-stream "^2.3.3" - -object-assign@^4.0.0, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== - -object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, 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-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= - dependencies: - http-https "^1.0.0" - -obs-store@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/obs-store/-/obs-store-4.0.3.tgz#b632ec7814baa604fae084a4c97e87c0b7a6d14c" - integrity sha512-+mm13kCRDv6IcvUDKTw0LIy5+dQhIktYaR/RwwZUFzOTi/fjMaNBnk42Adb94qZqJ00qWkjhQSZH7MXlKnTi8A== - dependencies: - readable-stream "^2.2.2" - safe-event-emitter "^1.0.1" - through2 "^2.0.3" - xtend "^4.0.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" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.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-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -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== - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== - -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" - -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-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - 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-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" - -pbkdf2@^3.0.17: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -penpal@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75" - integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ== - -penpal@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/penpal/-/penpal-4.1.1.tgz#c96ccfdac441682acf617f6dcbc177a614e8302b" - integrity sha512-6d1f8khVLyBz3DnhLztbfjJ7+ANxdXRM2l6awpnCdEtbrmse4AGTsELOvGuNY0SU7xZw7heGbP6IikVvaVTOWw== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -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-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -pocket-js-core@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/pocket-js-core/-/pocket-js-core-0.0.3.tgz#1ab278b9a6a5775e2bdc3c2c2e218057774061e4" - integrity sha512-OUTEvEVutdjLT6YyldvAlSebpBueUUWg2XKxGNt5u3QqrmLpBOOBmdDnGMNJ+lEwXtko+JqgwFq+HTi4g1QDVg== - dependencies: - axios "^0.18.0" - -post-message-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/post-message-stream/-/post-message-stream-3.0.0.tgz#90d9f54bd209e6b6f5d74795b87588205b547048" - integrity sha1-kNn1S9IJ5rb110eVuHWIIFtUcEg= - dependencies: - readable-stream "^2.1.4" - -preact@10.4.1: - version "10.4.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.1.tgz#9b3ba020547673a231c6cf16f0fbaef0e8863431" - integrity sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q== - -preact@^10.3.3: - version "10.4.7" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.4.7.tgz#5a530d34b4ba45f38234be8b1b3fe910098a165f" - integrity sha512-DtnnPbOm7oxW7Sxf5Co+KSIOxo7bGm0vLfJN/wGey7G2sAGKnGP5+bFyE2YIgutMISQl6xFVTsOd6l/Au88VVw== - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw= - -prettier@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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== - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= - -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - integrity sha1-XSp0kBC/tn2WNZj805YHRqaP7vc= - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -prop-types@^15.6.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -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, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quick-lru@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" - integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= - -randombytes@2.1.0, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - -react-dom@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.8.1: - 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@^16.12.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -reactive-properties@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/reactive-properties/-/reactive-properties-0.1.12.tgz#35000ddb9b516bf5ea5b4c41154a45a7a38fdedf" - integrity sha512-jPpTyoAZOvMhq3pt87X/kZ1zT4j1aad8iafSRHOziYfhBYVYTiUjmIYAxZPmcFziF/4JbEsA7DXA91ZzdosQyQ== - -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.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@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" - integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= - dependencies: - indent-string "^3.0.0" - strip-indent "^2.0.0" - -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve@1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.17.0, resolve@^1.8.1, resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= - dependencies: - through "~2.3.4" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4, rlp@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" - integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== - dependencies: - bn.js "^4.11.1" - -rollup-plugin-inject@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" - integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== - dependencies: - estree-walker "^0.6.1" - magic-string "^0.25.3" - rollup-pluginutils "^2.8.1" - -rollup-plugin-node-polyfills@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" - integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== - dependencies: - rollup-plugin-inject "^3.0.0" - -rollup-plugin-peer-deps-external@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.3.tgz#059a8aec1eefb48a475e9fcedc3b9e3deb521213" - integrity sha512-W6IePXTExGXVDAlfZbNUUrx3GxUOZP248u5n4a4ID1XZMrbQ+uGeNiEfapvdzwx0qZi5DNH/hDLiPUP+pzFIxg== - -rollup-plugin-typescript2@^0.25.3: - version "0.25.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" - integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== - dependencies: - find-cache-dir "^3.0.0" - fs-extra "8.1.0" - resolve "1.12.0" - rollup-pluginutils "2.8.1" - tslib "1.10.0" - -rollup-pluginutils@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" - integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== - dependencies: - estree-walker "^0.6.1" - -rollup-pluginutils@^2.8.1: - version "2.8.2" - resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" - integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== - dependencies: - estree-walker "^0.6.1" - -rollup@2.23.1: - version "2.23.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20" - integrity sha512-Heyl885+lyN/giQwxA8AYT2GY3U+gOlTqVLrMQYno8Z1X9lAOpfXPiKiZCyPc25e9BLJM3Zlh957dpTlO4pa8A== - optionalDependencies: - fsevents "~2.1.2" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - -rxjs@^6.5.4, rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -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-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - -scrypt-js@3.0.1, scrypt-js@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - -secp256k1@3.8.0, secp256k1@^3.0.1, secp256k1@^3.7.1, secp256k1@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.0, secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -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= - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -sha3@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.6.tgz#102aa3e47dc793e2357902c3cce8760822f9e905" - integrity sha512-KgLGmJGrmNB4JWVsAV11Yk6KbvsAiygWJc7t5IebWva/0NukNrjJqhtKhzy3Eiv2AKuGvhZZt7dt1mDo7HkoiQ== - dependencies: - nan "2.13.2" - -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== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -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.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -squarelink-provider-engine@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/squarelink-provider-engine/-/squarelink-provider-engine-15.0.5.tgz#93a440c5daec517b1b494424d1c279f195cd781c" - integrity sha512-rl9586BLpN/ldujibbMsCfq+lEyY/YMkmWqYcbmKs6VUvB56fsIG23HvVFl1mPRUu7XIq4dOt+V+4G6+GcKTtQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.1" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^4.1.1" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -squarelink@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/squarelink/-/squarelink-1.1.4.tgz#5303abf1f4a2765accf0b0de7d8b45ba19c270f8" - integrity sha512-VOLwNWhz/QgrGg5INvd7y/TddKDdS6/6FfjqtMys6nLVJA8h+h05WW5/YJLidHCSD0A+2VnPuL8m/lkP1bUk2g== - dependencies: - bignumber.js "^9.0.0" - squarelink-provider-engine "^15.0.5" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -store@2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" - integrity sha1-jFNOKguDH3K3X8XxEZhXxE711ZM= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -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@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.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-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= - dependencies: - is-hex-prefixed "1.0.0" - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -sturdy-websocket@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/sturdy-websocket/-/sturdy-websocket-0.1.12.tgz#84bb779f948b585a695f76961dc7d1c4a5e87629" - integrity sha512-PA7h8LdjaMoIlC5HAwLVzae4raGWgyroscV4oUpEiTtEFINcNa47/CKYT3e98o+FfsJgrclI2pYpaJrz0aaoew== - dependencies: - lodash.defaults "^4.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= - -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - integrity sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw== - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -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= - -to-hex@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/to-hex/-/to-hex-0.0.11.tgz#22355e09e5b56f5ae2b32502c493320f021171ac" - integrity sha512-3FSU8sfjrVc9fWowwP9xrdhxbp5Wco8uVZLhMhfsNuCFo9Fu8ecD2MgJV/2iAw+755W3AcGSQYVZGOpBmJtNcA== - dependencies: - normalize-hex "0.0.2" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trezor-connect@^8.1.9: - version "8.1.10" - resolved "https://registry.yarnpkg.com/trezor-connect/-/trezor-connect-8.1.10.tgz#1f80525c91684e7dc062f2e5eb6d93502e61172b" - integrity sha512-q1Hscxjyr1PtZj02yRu9rKps9VrSZ4koXgE8DM1QES2Sc7buhNqHwvRZQLQopUDXSoZh2vgObQNBrJsNHbWBpg== - dependencies: - "@babel/runtime" "^7.11.0" - events "^3.2.0" - whatwg-fetch "^3.3.1" - -trim-newlines@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" - integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== - -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typescript@^3.9.6: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== - -u2f-api@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" - integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= - -utf8@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - -utf8@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" - integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= - -util-deprecate@^1.0.1, 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= - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= - -uuid@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" - integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuidv4@6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" - integrity sha512-10YcruyGJtsG5SJnPG+8atr8toJa7xAOrcO7B7plYYiwpH1mQ8UZHjNSa2MrwGi6KWuyVrXGHr+Rce22F9UAiw== - dependencies: - uuid "7.0.2" - -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" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -walletlink@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/walletlink/-/walletlink-2.0.2.tgz#8640e42d3df49b4661019287ab9789e94b72db98" - integrity sha512-4MIctCHAjcPHSQUHpHuU9leUAvYqRF+/4kCq7x9AngZQ2Jd74dbpC8dfZ55uOwW8TXc7z9XYeSyzRrGHbv5ZXg== - dependencies: - bind-decorator "^1.0.11" - bn.js "^5.1.1" - clsx "^1.1.0" - preact "^10.3.3" - rxjs "^6.5.4" - -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - -web3-core-method@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" - -web3-core-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - -web3-core-requestmanager@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" - -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - -web3-eth-contract@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" - -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - -web3-provider-engine@15.0.12, web3-provider-engine@^15.0.4: - version "15.0.12" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.12.tgz#24d7f2f6fb6de856824c7306291018c4fc543ac3" - integrity sha512-/OfhQalKPND1iB5ggvGuYF0+SIb2Qj5OFTrT2VrZWP79UhMTdP7T+L2FtblmRdCeOetoAzZHdBaIwLOZsmIX+w== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^2.0.2" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-15.0.4.tgz#5c336bcad2274dff5218bc8db003fa4e9e464c24" - integrity sha512-Ob9oK0TUZfVC7NXkB7CQSWAiCdCD/Xnlh2zTnV8NdJR8LCrMAy2i6JedU70JHaxw59y7mM4GnsYOTTGkquFnNQ== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-errors "^1.0.1" - eth-json-rpc-filters "^4.1.1" - eth-json-rpc-infura "^4.0.1" - eth-json-rpc-middleware "^4.1.5" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.11.tgz#1cd03442c61670572d40e4dcdf1faff8bd91e7c6" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - integrity sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA== - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.11, web3-utils@^1.2.11, web3-utils@^1.2.9: - version "1.2.11" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3@^0.20.7: - version "0.20.7" - resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.7.tgz#1605e6d81399ed6f85a471a4f3da0c8be57df2f7" - integrity sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ== - dependencies: - bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" - crypto-js "^3.1.4" - utf8 "^2.1.1" - xhr2-cookies "^1.1.0" - xmlhttprequest "*" - -websocket@^1.0.31: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - integrity sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ== - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - -whatwg-fetch@^3.3.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^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.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - -ws@7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0, xhr2-cookies@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.2.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@*, xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= - dependencies: - object-keys "~0.4.0" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= - -yargs-parser@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" - integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== - dependencies: - camelcase "^4.1.0" - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.2.4: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/packages/files-ui/package.json b/packages/files-ui/package.json index 729830f122..80d82a85bb 100644 --- a/packages/files-ui/package.json +++ b/packages/files-ui/package.json @@ -6,6 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", + "@chainsafe/files-api-client": "1.11.4", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -14,6 +15,7 @@ "@tkey/security-questions": "3.12.0", "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", + "@types/uuid": "^8.3.0", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/files-ui/src/App.tsx b/packages/files-ui/src/App.tsx index 6548568ab9..c322b4891e 100644 --- a/packages/files-ui/src/App.tsx +++ b/packages/files-ui/src/App.tsx @@ -1,7 +1,6 @@ import React, { useCallback, useEffect } from "react" import { init as initSentry, ErrorBoundary, showReportDialog } from "@sentry/react" import { Web3Provider } from "@chainsafe/web3-context" -import { FilesApiProvider, UserProvider, BillingProvider } from "@chainsafe/common-contexts" import { ThemeSwitcher } from "@chainsafe/common-theme" import "@chainsafe/common-theme/dist/font-faces.css" import { Button, CssBaseline, Modal, Router, ToasterProvider, Typography } from "@chainsafe/common-components" @@ -14,6 +13,9 @@ import { ThresholdKeyProvider } from "./Contexts/ThresholdKeyContext" import { lightTheme } from "./Themes/LightTheme" import { darkTheme } from "./Themes/DarkTheme" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { UserProvider } from "./Contexts/UserContext" +import { BillingProvider } from "./Contexts/BillingContext" if ( process.env.NODE_ENV === "production" && diff --git a/packages/files-ui/src/Components/FilesRoutes.tsx b/packages/files-ui/src/Components/FilesRoutes.tsx index 32c1347f66..b079beb7a0 100644 --- a/packages/files-ui/src/Components/FilesRoutes.tsx +++ b/packages/files-ui/src/Components/FilesRoutes.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from "react" import { Switch, ConditionalRoute } from "@chainsafe/common-components" import LoginPage from "./Pages/LoginPage" import SettingsPage from "./Pages/SettingsPage" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../Contexts/FilesApiContext" import DrivePage from "./Pages/DrivePage" import SearchPage from "./Pages/SearchPage" import BinPage from "./Pages/BinPage" diff --git a/packages/files-ui/src/Components/Layouts/AppHeader.tsx b/packages/files-ui/src/Components/Layouts/AppHeader.tsx index 00741dcb4d..887401cad1 100644 --- a/packages/files-ui/src/Components/Layouts/AppHeader.tsx +++ b/packages/files-ui/src/Components/Layouts/AppHeader.tsx @@ -1,5 +1,4 @@ import React, { useCallback, useState } from "react" -import { useFilesApi, useUser } from "@chainsafe/common-contexts" import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" import clsx from "clsx" import { @@ -16,6 +15,8 @@ import SearchModule from "../Modules/SearchModule" import { Trans } from "@lingui/macro" import { useThresholdKey } from "../../Contexts/ThresholdKeyContext" import { CSFTheme } from "../../Themes/types" +import { useUser } from "../../Contexts/UserContext" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Layouts/AppNav.tsx b/packages/files-ui/src/Components/Layouts/AppNav.tsx index 62efe83803..1f7aca7adb 100644 --- a/packages/files-ui/src/Components/Layouts/AppNav.tsx +++ b/packages/files-ui/src/Components/Layouts/AppNav.tsx @@ -1,4 +1,3 @@ -import { useFilesApi, useUser } from "@chainsafe/common-contexts" import { useFiles } from "../../Contexts/FilesContext" import { createStyles, @@ -23,7 +22,8 @@ import { FREE_PLAN_LIMIT } from "../../Utils/Constants" import { Trans } from "@lingui/macro" import { useThresholdKey } from "../../Contexts/ThresholdKeyContext" import { CSFTheme } from "../../Themes/types" - +import { useUser } from "../../Contexts/UserContext" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { return createStyles({ diff --git a/packages/files-ui/src/Components/Layouts/AppWrapper.tsx b/packages/files-ui/src/Components/Layouts/AppWrapper.tsx index c6a116046c..e9da33b95c 100644 --- a/packages/files-ui/src/Components/Layouts/AppWrapper.tsx +++ b/packages/files-ui/src/Components/Layouts/AppWrapper.tsx @@ -1,4 +1,4 @@ -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../Contexts/FilesApiContext" import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" import React, { useState } from "react" import { ReactNode } from "react" diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx index a1985ff12f..f2584c0cc6 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/BinFileBrowser.tsx @@ -10,7 +10,7 @@ import { useHistory, useLocation, useToaster } from "@chainsafe/common-component import { extractFileBrowserPathFromURL, getArrayOfPaths, getPathWithFile, getURISafePathFromArray } from "../../../Utils/pathUtils" import { ROUTE_LINKS } from "../../FilesRoutes" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { parseFileContentResponse } from "../../../Utils/Helpers" const BinFileBrowser: React.FC = ({ controls = false }: IFileBrowserModuleProps) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx index 19629cec7e..5885bfff3c 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/CSFFileBrowser.tsx @@ -9,7 +9,8 @@ import DragAndDrop from "../../../Contexts/DnDContext" import { t } from "@lingui/macro" import { ROUTE_LINKS } from "../../FilesRoutes" import dayjs from "dayjs" -import { useUser, useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" +import { useUser } from "../../../Contexts/UserContext" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" import { DISMISSED_SURVEY_KEY } from "../../SurveyBanner" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx index 7843d76297..8f3170ebf1 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/CreateFolderModal.tsx @@ -17,7 +17,8 @@ import CustomButton from "../../Elements/CustomButton" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../../Themes/types" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" + const useStyles = makeStyles( ({ breakpoints, constants, typography, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx index 4f70115ad7..381322594e 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/FileInfoModal.tsx @@ -18,7 +18,7 @@ import { import clsx from "clsx" import { CSFTheme } from "../../../Themes/types" import dayjs from "dayjs" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" const useStyles = makeStyles( diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx index db0f6432f1..fc15b0fe62 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/MoveFileModal.tsx @@ -7,7 +7,8 @@ import { DirectoryContentResponse, FileSystemItem } from "../../../Contexts/File import { Button, FolderIcon, Grid, ITreeNodeProps, ScrollbarWrapper, TreeView, Typography } from "@chainsafe/common-components" import { CSFTheme } from "../../../Themes/types" import { useFileBrowser } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" + const useStyles = makeStyles( ({ breakpoints, constants, palette, typography, zIndex }: CSFTheme) => { diff --git a/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx b/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx index 6c580ff653..ad8294333a 100644 --- a/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx +++ b/packages/files-ui/src/Components/Modules/FileBrowsers/SearchFileBrowser.tsx @@ -9,7 +9,7 @@ import { getArrayOfPaths, getParentPathFromFilePath, getURISafePathFromArray } f import { ROUTE_LINKS } from "../../FilesRoutes" import { t } from "@lingui/macro" import { FileBrowserContext } from "../../../Contexts/FileBrowserContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" const SearchFileBrowser: React.FC = ({ controls = false }: IFileBrowserModuleProps) => { const { pathname } = useLocation() diff --git a/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx b/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx index ab454167e2..81ef8f91ac 100644 --- a/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx +++ b/packages/files-ui/src/Components/Modules/LoginModule/InitialScreen.tsx @@ -3,7 +3,7 @@ import { Button, FacebookLogoIcon, GithubLogoIcon, GoogleLogoIcon, Loading, Typo import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" import { CSFTheme } from "../../../Themes/types" import { t, Trans } from "@lingui/macro" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useWeb3 } from "@chainsafe/web3-context" import { useThresholdKey } from "../../../Contexts/ThresholdKeyContext" import { LOGIN_TYPE } from "@toruslabs/torus-direct-web-sdk" diff --git a/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx b/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx index 1965afe09e..64cb8718ad 100644 --- a/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx +++ b/packages/files-ui/src/Components/Modules/LoginModule/MigrateAccount.tsx @@ -7,7 +7,7 @@ import { } from "@chainsafe/common-components" import clsx from "clsx" import { useFiles } from "../../../Contexts/FilesContext" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../../Contexts/FilesApiContext" import { useThresholdKey } from "../../../Contexts/ThresholdKeyContext" import ConciseExplainer from "./ConciseExplainer" import { CSFTheme } from "../../../Themes/types" diff --git a/packages/files-ui/src/Components/Modules/SearchModule.tsx b/packages/files-ui/src/Components/Modules/SearchModule.tsx index 7c50e4a463..628c15c7d2 100644 --- a/packages/files-ui/src/Components/Modules/SearchModule.tsx +++ b/packages/files-ui/src/Components/Modules/SearchModule.tsx @@ -22,7 +22,8 @@ import { CONTENT_TYPES } from "../../Utils/Constants" import { getArrayOfPaths, getParentPathFromFilePath, getURISafePathFromArray } from "../../Utils/pathUtils" import { t, Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../../Contexts/FilesApiContext" + export interface SearchParams { bucketType: BucketType diff --git a/packages/files-ui/src/Components/Modules/Settings/Profile.tsx b/packages/files-ui/src/Components/Modules/Settings/Profile.tsx index d8a48e6b28..2caf84c759 100644 --- a/packages/files-ui/src/Components/Modules/Settings/Profile.tsx +++ b/packages/files-ui/src/Components/Modules/Settings/Profile.tsx @@ -16,7 +16,7 @@ import { } from "@chainsafe/common-theme" import { LockIcon, CopyIcon } from "@chainsafe/common-components" import { Formik, Form } from "formik" -import { useUser } from "@chainsafe/common-contexts" +import { useUser } from "../../../Contexts/UserContext" import { t, Trans } from "@lingui/macro" import { centerEllipsis } from "../../../Utils/Helpers" import { CSFTheme } from "../../../Themes/types" diff --git a/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx b/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx index 579c4fe655..baacd03ec2 100644 --- a/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx +++ b/packages/files-ui/src/Components/Modules/Settings/PurchasePlan/index.tsx @@ -17,7 +17,8 @@ import { } from "@chainsafe/common-components" import { ROUTE_LINKS } from "../../../FilesRoutes" import { Form, Formik } from "formik" -import { useBilling, useUser } from "@chainsafe/common-contexts" +import { useBilling } from "../../../../Contexts/BillingContext" +import { useUser }from "../../../../Contexts/UserContext" import * as yup from "yup" import countryList from "./countryList" import CardInputs from "../../../Elements/CardInputs" diff --git a/packages/files-ui/src/Components/Pages/LoginPage.tsx b/packages/files-ui/src/Components/Pages/LoginPage.tsx index bb5c74d3f6..2bab6cf70c 100644 --- a/packages/files-ui/src/Components/Pages/LoginPage.tsx +++ b/packages/files-ui/src/Components/Pages/LoginPage.tsx @@ -13,9 +13,9 @@ import TopDarkSVG from "../../Media/landing/layers/dark/Top.dark.svg" import BottomLightSVG from "../../Media/landing/layers/light/Bottom.light.svg" import TopLightSVG from "../../Media/landing/layers/light/Top.light.svg" // import { ForegroundSVG } from "../../Media/landing/layers/ForegroundSVG" -import { useFilesApi } from "@chainsafe/common-contexts" import MigrateAccount from "../Modules/LoginModule/MigrateAccount" import InitializeAccount from "../Modules/LoginModule/InitializeAccount" +import { useFilesApi } from "../../Contexts/FilesApiContext" const useStyles = makeStyles( ({ constants, breakpoints, typography, zIndex }: CSFTheme) => diff --git a/packages/common-contexts/src/BillingContext/BillingContext.tsx b/packages/files-ui/src/Contexts/BillingContext.tsx similarity index 97% rename from packages/common-contexts/src/BillingContext/BillingContext.tsx rename to packages/files-ui/src/Contexts/BillingContext.tsx index 662ea9ef5d..d18f1e8967 100644 --- a/packages/common-contexts/src/BillingContext/BillingContext.tsx +++ b/packages/files-ui/src/Contexts/BillingContext.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { useFilesApi } from "../FilesApiContext" +import { useFilesApi } from "./FilesApiContext" import axios, { AxiosResponse } from "axios" type BillingContextProps = { diff --git a/packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx b/packages/files-ui/src/Contexts/FilesApiContext.tsx similarity index 99% rename from packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx rename to packages/files-ui/src/Contexts/FilesApiContext.tsx index 7587aa0103..0da97898a8 100644 --- a/packages/common-contexts/src/FilesApiContext/FilesApiContext.tsx +++ b/packages/files-ui/src/Contexts/FilesApiContext.tsx @@ -4,9 +4,9 @@ import { useState, useEffect, useMemo, useCallback } from "react" import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" import jwtDecode from "jwt-decode" import axios from "axios" -import { decryptFile } from "../helpers" +import { decryptFile } from "../Utils/encryption" import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" -export { IdentityProvider as OAuthProvider } +export type { IdentityProvider as OAuthProvider } const tokenStorageKey = "csf.refreshToken" const isReturningUserStorageKey = "csf.isReturningUser" diff --git a/packages/files-ui/src/Contexts/FilesContext.tsx b/packages/files-ui/src/Contexts/FilesContext.tsx index 3cf2feb37a..8c20129396 100644 --- a/packages/files-ui/src/Contexts/FilesContext.tsx +++ b/packages/files-ui/src/Contexts/FilesContext.tsx @@ -8,7 +8,7 @@ import { } from "@chainsafe/files-api-client" import React, { useCallback, useEffect, useReducer } from "react" import { useState } from "react" -import { decryptFile, encryptFile, useFilesApi, useUser } from "@chainsafe/common-contexts" +import { decryptFile, encryptFile } from "../Utils/encryption" import { v4 as uuidv4 } from "uuid" import { useToaster } from "@chainsafe/common-components" import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesReducers" @@ -17,6 +17,8 @@ import { t } from "@lingui/macro" import { readFileAsync } from "../Utils/Helpers" import { useBeforeunload } from "react-beforeunload" import { useThresholdKey } from "./ThresholdKeyContext" +import { useFilesApi } from "./FilesApiContext" +import { useUser } from "./UserContext" type FilesContextProps = { children: React.ReactNode | React.ReactNode[] diff --git a/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx b/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx index e0a3509546..3c220a4de8 100644 --- a/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx +++ b/packages/files-ui/src/Contexts/ThresholdKeyContext.tsx @@ -9,7 +9,7 @@ import ShareSerializationModule, { SHARE_SERIALIZATION_MODULE_NAME } from "@tkey import { ServiceProviderBase } from "@tkey/service-provider-base" import { TorusStorageLayer } from "@tkey/storage-layer-torus" import bowser from "bowser" -import { useFilesApi } from "@chainsafe/common-contexts" +import { useFilesApi } from "../Contexts/FilesApiContext" import { utils, Wallet } from "ethers" import EthCrypto from "eth-crypto" import { useWeb3 } from "@chainsafe/web3-context" @@ -342,7 +342,7 @@ const ThresholdKeyProvider = ({ children, network = "mainnet", enableLogging = f } } - let poller: number + let poller: NodeJS.Timeout if (TKeySdk && keyDetails && keyDetails.requiredShares <= 0) { handler() poller = setInterval(handler, 5000) diff --git a/packages/common-contexts/src/UserContext/UserContext.tsx b/packages/files-ui/src/Contexts/UserContext.tsx similarity index 98% rename from packages/common-contexts/src/UserContext/UserContext.tsx rename to packages/files-ui/src/Contexts/UserContext.tsx index 20a0ac3c6c..1840f93e2a 100644 --- a/packages/common-contexts/src/UserContext/UserContext.tsx +++ b/packages/files-ui/src/Contexts/UserContext.tsx @@ -1,6 +1,6 @@ import * as React from "react" import { useCallback, useEffect } from "react" -import { useFilesApi } from "../FilesApiContext" +import { useFilesApi } from "./FilesApiContext" import { useState } from "react" type UserContextProps = { diff --git a/packages/common-contexts/src/helpers/encryption.ts b/packages/files-ui/src/Utils/encryption.ts similarity index 100% rename from packages/common-contexts/src/helpers/encryption.ts rename to packages/files-ui/src/Utils/encryption.ts diff --git a/packages/storage-ui/.env.example b/packages/storage-ui/.env.example new file mode 100644 index 0000000000..1f7b0ff808 --- /dev/null +++ b/packages/storage-ui/.env.example @@ -0,0 +1,20 @@ +PORT=3000 +HTTPS=false + +REACT_APP_API_URL=https://stage.imploy.site/api/v1 + +REACT_APP_STRIPE_PK= +REACT_APP_SENTRY_DSN_URL= +REACT_APP_SENTRY_ENV=development +REACT_APP_HOTJAR_ID= +# Get your ID on Blocknative: https://explorer.blocknative.com/account +REACT_APP_BLOCKNATIVE_ID= +REACT_APP_GOOGLE_CLIENT_ID=939164021653-lb5eiquuatf877em98bpi8v360p5vcs4.apps.googleusercontent.com +REACT_APP_FACEBOOK_CLIENT_ID=1102948430103109 +REACT_APP_AUTH0_DOMAIN=https://chainsafe-files.us.auth0.com +REACT_APP_AUTH0_CLIENT_ID=kkdDcP8aE1O3qGdwjAV9ybu75nl1afVv +REACT_APP_FILES_UUID_VERIFIER_NAME=chainsafe-uuid-testnet +# Set to `mainnet` if required +REACT_APP_DIRECT_AUTH_NETWORK=testnet +SENTRY_AUTH_TOKEN= +REACT_APP_TEST=true \ No newline at end of file diff --git a/packages/storage-ui/.gitignore b/packages/storage-ui/.gitignore new file mode 100644 index 0000000000..9532771241 --- /dev/null +++ b/packages/storage-ui/.gitignore @@ -0,0 +1,29 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +.env + +src/locales/*/messages.js +src/locales/_build + diff --git a/packages/storage-ui/.linguirc b/packages/storage-ui/.linguirc new file mode 100644 index 0000000000..1b7ae61f54 --- /dev/null +++ b/packages/storage-ui/.linguirc @@ -0,0 +1,14 @@ +{ + "catalogs": [{ + "path": "/src/locales/{locale}/messages", + "include": ["/src/**"], + "exclude": ["**/node_modules/**", "/src/locales/**"] + }], + "compileNamespace": "cjs", + "format": "po", + "formatOptions": { + "origins": false + }, + "locales": ["en"], + "sourceLocale": "en" +} \ No newline at end of file diff --git a/packages/storage-ui/.sentryclirc b/packages/storage-ui/.sentryclirc new file mode 100644 index 0000000000..8e1c713c07 --- /dev/null +++ b/packages/storage-ui/.sentryclirc @@ -0,0 +1,3 @@ +[defaults] +org=chainsafe +project=files-ui diff --git a/packages/storage-ui/README.md b/packages/storage-ui/README.md new file mode 100644 index 0000000000..6c42e1b7d2 --- /dev/null +++ b/packages/storage-ui/README.md @@ -0,0 +1,28 @@ +# ChainSafe Files UI Repo + +![Dev](https://github.com/imploy/files-ui/workflows/Dev/badge.svg?branch=dev) +[![Netlify Status](https://api.netlify.com/api/v1/badges/cb6afc46-ec5d-4cac-91c2-dbd0d866b89a/deploy-status)](https://app.netlify.com/sites/angry-lewin-719dd6/deploys) +[![Maintainability](https://api.codeclimate.com/v1/badges/6a9b1984bc9622792d3e/maintainability)](https://codeclimate.com/repos/5f0224802dfa0b018f0021b0/maintainability) +[![Test Coverage](https://api.codeclimate.com/v1/badges/6a9b1984bc9622792d3e/test_coverage)](https://codeclimate.com/repos/5f0224802dfa0b018f0021b0/test_coverage) + +## Run development (.env) + +``` +yarn install +yarn start +``` + +## Build production (.env) + +``` +yarn build +``` + +## Run test and test coverage + +``` +yarn test +yarn coverage +``` + +**Visit**: `http://localhost:3000` diff --git a/packages/storage-ui/craco.config.js b/packages/storage-ui/craco.config.js new file mode 100644 index 0000000000..16c3b8144d --- /dev/null +++ b/packages/storage-ui/craco.config.js @@ -0,0 +1,48 @@ +const TerserPlugin = require("terser-webpack-plugin") + +module.exports = { + babel: { + presets: [], + plugins: ["macros"], + loaderOptions: (babelLoaderOptions, { env, paths }) => { + return babelLoaderOptions + } + }, + webpack: { + configure: (webpackConfig) => ({ + ...webpackConfig, + optimization: { + ...webpackConfig.optimization, + minimizer: [ + new TerserPlugin({ + terserOptions: { + parse: { + ecma: 8 + }, + compress: { + ecma: 5, + warnings: false, + comparisons: false, + inline: 2, + drop_console: true + }, + mangle: { + safari10: true + }, + output: { + ecma: 5, + comments: false, + ascii_only: true + } + }, + parallel: 2, + cache: true, + sourceMap: true, + extractComments: false + }) + ] + }, + devtool: "source-map" + }) + } +} diff --git a/packages/storage-ui/cypress.json b/packages/storage-ui/cypress.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/packages/storage-ui/cypress.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/storage-ui/cypress/fixtures/loginData.ts b/packages/storage-ui/cypress/fixtures/loginData.ts new file mode 100644 index 0000000000..784ffd7688 --- /dev/null +++ b/packages/storage-ui/cypress/fixtures/loginData.ts @@ -0,0 +1,4 @@ +export const testPrivateKey = "0x4fd9a44c051834e28a919096f154e3f805f58d8f2d90a1ab9a29b0b46a6ac363" +export const testAddress = "0xDa1f70D176E0F7F16f2a3bB509cD37Bd36aFD902" +export const testAccountPassword = "correct horse" +export const localHost = "http://localhost:3000" \ No newline at end of file diff --git a/packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png b/packages/storage-ui/cypress/fixtures/uploadedFiles/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ecfc70aca1df0d82ed6d99355be2b0dc24dc62d3 GIT binary patch literal 180586 zcmZr&30REl+wXAfQ7J82Ra%gmLZiJ?3XLTpk(QZMlroa`g^o-$O^8g|5JRXWQMA!C zQ%r@VMGKXZHfi6#`*|nif4&Qs>#CXed7k_J-M@Q%-mu*}O_wfSxtNECXX&=B#(Q{p z7P8=9!ovCR6UV8$X7Jyl6I-o3cz7C4p?`k`7OryQ;gR9lW^B0EJHD%-*2}s&;M2JD zU%Msbciwb}6jDC+sC8A(DXC}DCq<_J);|HV!bwH-pTZZ7&+lq2 zkR7gW?^*&|;xYLV7xaj{UUt1PQ{R{wG2P)2aX)auU+|kcQ_;EbpV}=O{{Bb`-g1m4 z8=fP70sYEZ+MXBwE0hZCKXhA$Vd2xYUnX-RN$+WP^RN*7;=0dEQTQ)-@yE0DN8j*{ zuTLsAH;c?uhoA98E(f{r@O14KV_xo-WDA{NcisTW=sJ%3ox~gPozKnmv)rHlh5gj7 zCsKlWd8ss8C~aU)?Arb*zh&?hwME=tx>YSEzA}j*{Ud{ISZwAi6Kzj7l@Fh#Ymof9 zli9dc*w#zTuv2j&*BKJ54oX;z*c)4qHMa|2ZEtTv+b{^^e!DH8|B!gQ_T~`!qX9hQ z;k)M{RBS_by#M0hV}+bC$BtzOd9an3)YY<1&%+(b6lWW&Ua(p(8><@VMqcf67{0`#u@gHS;fniI2dj_by-GGw zdZ6T1S}l$AMCc4>3wN7t+!L<3e3rgMfb9QuV}+@N;2bgdesBYJID`AE7vPTc3$l$n z1kCgwXkv#O5X5$#x*TT2&BglDT?p)Ixk8lq#EtvE*QHSd$ht$5vG5#2$NTymg2efp6mr5 zWm%gEP_kwJ4h$iiF$u`rH$O{PM_>P@bdzp|Nx)8+yZE|2Av3>PUIHugSnR?iORaJb zcrL`G-e}}!zt?h*2v=%5X>5%>T0vtq+TsibGHQgGm%~W!vJ`2xkJe$DWrSgxy?a}o zqAbY1g^JBlM_+ho@Cz>Hwgz^76mOSp9=(BW z?%5CvcW!N-b_w_J`?=6E>X?TsmL!%}jY*jzQAXA`b{uVxLT}0C;a)5 zTMtfYk^9Ul7Gs((Zmha?S6qCLYdxck>83x{4ygY_J$k2`%BE zK-;#d)vteh?=p2RAa`L{rJpRCkIv0u;z~`t-MLcM<%(qc?Z1Eh%HLhso@0g%lCwn> zqv}Q29tg3|e(mAk;kI9o|Fntw>oe0634<*Heg7C+Qz$Jh)*0OGGKU%1S+jRw!c&RS z__@jbEqPXdt6!BRj+#}hPun#04;&@f1Vi%ma|#$V)CJk{_eUG8yXUE^VjH%b;{JZi zwS~l2Ok6CWC-QTiGO~`~%@`{L3p;E5TwznxQph`On1w zMP(QgkVIHQY*(Z}Ok(uIn8ch5_w!ri8*%8G6E0l2#(cIGKu{{AV(2XVdvFQb#zrvH zuo;TYZJQ!ZSrA*{GDemL^HY$}846^A7MZh?ySqKu?nINxn9{B>aUD$D>}&b}qc=9R_7 z7{guo>^6)`xKH;}o)ddjwz*hU_j$HfUoDdMcJ3w&1!wI~4an>grtLZ-Oxs2y3B74a z5tJnYeYK3Bf}fHKUCmtyt!7iF_kQNcAXXhJKl$cAH{2^M_!bvx|XZYKuS z>rp59EvD`*oj%4z^1+j7zuXcb20PUDz+u16_M4gD7cxKF?vRKE!?B7eUx6K*Z~^z! zTZU_w_>a~WuicTp06yq=5j`7@MSzow`S9o@Ya7U!X-v(pReVB(JWHo&xpQnd)yL|j9kJ`({ zxMD-;2172}KIbmKT^sX4LCtgov-q{8q2RcNDYst>ko#UI*;*g1SPLQycEmJKUlW4) z+TWixp^%=eTY|iWT{NbH594{gsnSuDie-Wb)?jgiWA&%oXaUqgbTE~1tJMa-beb1pqFk+8`A8Q2Bq zV0yW}(QN_li#C&b)aal@WfIqR+qXZuHWR(j6){Attk%S6YW2@&x$=?;5Sca$n7!VS zhY(nTF{S}&h!=5;71vBX(&WW0BrFbe%!sm(gZXSVvK(fv54a|_+452(ZYHM8+=@)G zkSULG-K-C6riG;%D9El48tsp`AMLLKOR8}LyGP@bd-yB2E&X%d*ZgcDFz`Lb+&I(j zAf}d*w&7{lNrJJzoNW2kcG1^1kMIg>xolT{#UZwtYX)j%nB=L4_aQpkrsqKXwb3I~ zE^`)c-~w$^5k_mRMhYO@XuLv#$7-uKlmI}K^rKzGQavB#2Y0!`Ii8I9wAml7{TCuj zlr30d5#M7hE(mt;#K7}om7v@&fuAK4aD?F*FIk7hB!wk`)8mkj>@WOaV8t2E?Pk-raNumML@}_0PjYC*;LV$k{pZ71_WPaTa6Kn$8v>i!`ET5K zV%CZp7qAsGFeP&?lK;DL zEH!7~O1rRX6bX?*s~i%sXte!L|M=SkIG(u~hWmZJE?7yiQFv3`Xt zv7O$@Ay^)Ga68h*g}XbErFZOt2u`!l!B~CsH*XUl&KaxSy7~XzY=@y6pBxGfo#_~g`Eq_n2!EWZ!|=&c z?#Cz?7+*?T+l&*8t!sFR3d3wgG9hTwK8@d;Sl!21P`i;JP;8A-v;a5q5ginOt6^WZ zJFlOedpZr$IggJ8vb3Yuc2xb(T5HZ*2_vIv#qzALqeZV>+O-0(ja9ndbNn40rnT(g zQ$Hb!)M#LWBxBbz`I)B8?8=*7{r^39NCM?1x6}2WdLPlrgj4flUrOxeB|gcW{+!=4 z-IF)|A-GABO!$8mdaq^)ipBB~>KP;kx^~b=yG#2`i^-B(wi739C;AK4vl7m0k=s5W zA`hh9Q(5=_K4(A;vjQCE3p|p6HhTFjGS+6TU>Wybm!um=+`#<91}GT>BFX zC0mPxP__s%_0iD)L~uk9z|{ItfhpkhZN0@Ly)k0OnUO-a7WvzmLm7{=`?Z<>--Aku zP=x?fswnp~R&$|pCi#3%oIU4dchGuw31M@B09)uH=X5ijQMKBS z@j}jMk-n{V(-LAi?_}Nf=X<`WF^&~I^nUP8(8a0b! zu8S$eQ65f{cQ_?g&9OJ~dQVBw&{#buje*zVr_YLHr#OSKID0?By zO-W->Gkxm6b}*(U?VqjM=Ho4m$J76L)*z+2sYawXuVCC|xKVPSJtqcyY}+gE{fmIp zY>>{c@0nj&3%IZDU-x_9oo{2o%w$>r<;CyR~0LkS>f z-wWME4^p=bFT?fbTLw(%dbu}lbX@R`#(D zjfXBHK6$^8^yHUaGqA!m{qAu?!ss%bO5NT(NftpSTv^*&ra8=1%G%O^y$p>3h&XI^dG~L+K*I` zOf@fyA%F1aCUq)gdMDMJzr_i-xC~C!4K+q5WDoaT>#Tp2($Up}1OQI)F32m^!KHQbP?TCVr#O~Cti*%XvWI?Q$kE#j?{d=aJ! z$EUQG#d%T1Dh_CWcwV=}fm@EO#Hxu7ee4xpl-T#IeF>|=)!LG#c8x}vMMn{z2$^$? zhEbVn#ok*(cE6H!6-#Rx^TA$nhbO4Y^5 z7snaBXR45;ORJS)Z4fEGtiMlZe@eC=r&O?IloXF==tF7aSFNE97Sy}`NP4RKj)^~&ZS+-aPJOD~5asc_{{%Dkyv9^j z?jV2#TPWi!`*|2Opf5ZXC%3pl5? zh%WkV*eyqJeEs2(moNGH*F!PUP7U*Pmry2iJc2Yo6sHnKe6>uf#y|I6sbEJC6Dt(_ z5fEvn=8KaD>m1;bf{RGRn&GzmwZ)PS>;3INZ=ae6itECvcA=N#D9SF7<%_W%tA#69 zcujoG$NTx>dbHw)Om+VU%&v(Lpz?ckr|zt`7O$WyD+sfgZ^(o`j2xW*#encNYMR(h zIQ0YV6sQ$;3Ib&}2K6F=W`ID=v0}+A@b;gU44Mw1Sf+b6k45^nP>lpwI%D7SV-B<3 zZJkhFU1*GvSw7T+!IlN$<8#=abubVY#?KV?zlfmL1PL6(Ut`VnO#_>|z6e(7rh;dAlI@%;hc>4qV<&m?I5 zQ)6!{Irdv595@*6Ju-D0-~auDC-r~Kc~c}LPZXd2?wz^Ng4nd_N4kr|y_a-)BA&6^ z70*F_Q(gid@t!%R1C)=QAt+eemmE7ZOp_o&d$z3;uxJHo$drn{>&r0 zMFlHYaEpp}vA(DWu?D((HZ62n>L`0Uulh`-WbtK5{b&49NjBlndn6`IjsFM154x-S zy!LDNjm0Ho=X@wU%lcGqB;X`1CXv6B+W>{iPww|~=dR!$fd1%$h!iSQ+^^XoRs381c%TA+gl*U{4?QpQErfFi#%i@&UEc)#5qQ(DKIpCHr7H> z^CwtrA5`Sxp5htVB#!=GcvjDh& zBKqcV;wzf;;ji=6i__=E)ZiiD4WW?kQLtjaM;h;5Fp>83hH$T@xKtU(*N5doaX4`@ z;q%YF4!5mC$k_%Jn0|hC*J4uJhH&Nd_NgcpR`Q)8uU>hJjQ6ZC(zV$c{gJBxw(iJ7 zeM8?|=i?6bXi1QVE>3v`h&!0f6atT6+S?PojQGkCJd!YrLUaqt1|jd%eJI4I|FC8< zyJA(OAbZ0fg@|gF2~*s?>6;0z->#pAOFoao9m1-mm{@Xp41kaZP-Us`@=@rG#(lxJ zofee~?-=iBPQw*9kiwsrbdjCq{s4s=t>Q|m3}eK$uP^tmAdA^mj5~)K(lKlt08H&L z$|KZP=MP?uGbG%pbOockPbPph+uo$VF!F3>W|Xnl0ttahfx*^d>4RGvcFqL*JI9dU#sCFI^qQFFrdsMJW!9?c8NJ@Rr~r-^6G zG#yfU%br?l_tj+`B73ABQT+I~XA!+}5TMb(?P{ypqP@P^Gl`|tkw=H{cWvSHVrsUE z#G^-T<9$ykBk4v&bdM%8{@m*KoF6@YPn+8<+qEgRC%=Bm_ilcBJA=Bh2qp?P%C7&( zKRqu1ai>v&Xz;oV>&zV^XneY!U{6(YEcDmb+gHD_?XBq$dvciOq~Rv7rn8NUu>P>@Mn~CTlcHoia*|e zdd+6f{f1?vehxtQdGxz)^-m0fsePj>QUV_cP4*YLT7f{kWo z0}3ylYlD&f-*BeQs@-=7q-*aC zKNbNzs+Nxj+-QEv80TBSw~m<{RsS|Gf)M?OpwqszzXChSdg@l3^>ouSX^r^9_5`r^ zgS4H%pScDQ5;7uDJfI-MZ3^Oc^j?ob*h3Gu-z{Wux_L&*D$A^mcK#ub>X#lzG$^%S zO>k%FZwHrxBrIOH9b9k9yuGAC)jF1Q>!%|ralV9g1X&vrAWE(vtu)465#$puzO4H_ zW3oZJL_+5cM|ua;5`NQj+LrcLhkEP7Ez{DL5RZ*q*;Q{oSq9xw>C`XVhXt^y3TIs; z6^A!irFvVEV&zSFJ-fjd(5(q?AS({lIzK=?-gG$BJym5VsJ#qssd zv&sXphL})l^M#SLxqVR9-KAI+_xQELfM~|a=4a-d56__2QJT5nnb*Zw$Z}?pr^_d6 zpWexxxj(-7`ky$=ud&`Q6t{|&a%A`*1n@{4>vlPUyDof)G06O&v8yglvd!Yq0^PX; zSt#dgrRx$B5=+!tNPbSX|D!`5vWv$*!JnX#|6smnixSpCY&SR<>D@c27o~P9=Eh4p zc``zXeK~ceSP~qAS>@8(GHw1om!C`qB^2Y5cX()11&a6XjE8{y`EctV=y3pQcqQE9 z{{YPTmYkFQj*9zjta?Lnt+-R77VWkUiS{gYb1;8Y3B0b0j&R}AuIbLY*soo{*)TFu zC&fMmiI&g(Uh|vu2@wBRQ|Zn8kQJK_o0~<;`~h*2o@Ka98%V$JgSL3I{|b)|jU>EU z-D_d?E%DqKZl)!YXnP=ma~6yVn{}XG#|luDjL7?|D5TIhM?c^IBM>U7W-K?;3bs|zkcUh$OWZ7U3 zo3L|_sKub_qa1tIqefw9ZLYeHX2XKRFdxJNg)0~edbA0`lY+0VewQyPF-9R>9Q51O z)7xm+_UXkrUDkb5iON|;V-p?AwEXpyqkB$@3O3UZhU)KnGAH&6l1(h98Ilb>jK!k3 zV>^$Y6yv_Y#w*hxs_g0r=_?8GIwhTTIpU8!FU8fy^|~_er>CLmZ)w> zc>W$yqJ>#qg%C0(2UIl(E|Y1q#=0>drY8BJBW)&OQIBhzR?*#_GOcBd3n}o+_N;R%r|%VwQk^Pb@PI;(vY;4E9W0;aT}Y| ztH5Q!IUkk~VbCaEyt6k1+Wg|pbX}lJPH;}BZFM%(0WzeubMzDayLL-xWj|~mrfr`s z_0n*D6aGq@g1YAxjaYz;SEoj38#H@CmXq%HPti=|oAo|BU4S`N@3Kr;abSW&U< z)l;yloSi*bv*|%8o}msl%S(3|@%%!=L~ju#8NQ(RIjN%0WYuh|(p_Q5xu2fOj&ol^ zWV}cZ{PyX|zGpN`N%f6ftCc|{ADr{OTM`Nj)uvLsMiLeRKX3A z1Y#bw%F|c}_E^6ZiV=-*bK6!19^PS$`_emFqdVS`!d}L{5wgU{zn4Ebg0%8iu-Nt_ zRi-UV^TTs#jl+pLelk7JJccWDs{8I4G1k+Rf0m4b|3U=Bx#d1xRhRR%YZA@TWT7PG z9PTFlFOQ`KX^dq0qe?z$3VWyYH@#yi>t{3dDH6RoW7}DJ#~`zIF8S6jQNgs9xyxc- z%|uP8!w?+%4!YdXk@;xCz$?_sYfieK|M}=mTX2VLp^qg?+dTOlY@Rv`J8c_ikW@8a z+~z`VVaPbv>28*xE~@VP>pbB&HnVw~;@x+yU1Wds2WWX{pv0|^FfwGDnh-^4A8%X* zo$c2;Zew0W^q|@r(pGbhTIVs6ki~wT{Tv7RpK${w50WNG)h zF)IRr-d01>^I1#p(}fi1OT&cQHW?^x#34};vSxamh1JL;OvxhuJ<5R_oE!i9UeG?c}8%?J`;P3TX*b5Gtaq``T{*ce_r zc1JecXM*$DO+Nac-)8J6Pg9nY%v0RCOqKqJ9ZmYkOiLm%&;<6Hs-;a#Bb$OBc3Wb0&B4u&u0_G3_XtsrTK_823CX zaS*)Mn-|3+?<>8aC$jG(S=ZR^$EhgTTo_V+)m-#bMYr}v9g+~}Z zUL{MrlV*ej^l_jGrIVprzKKBmP7!Kt7Q3J@s_yrj-x$J7T!FW{T;N2d_*u~>KHs`t z;7?lSsVP{q7f7g!K+e{N2TQIj+7I%Bc^hab#caz&ULO9|*_Wp+V z#9Qs>Q3qF^{0eC>3}3yMrHSo?;?_ye)bX`l1Mgb~dm*BljCFzze5BDgGzF}dg&8RU z3+`ddwF3}&P3Pu!_TQv8m_`uw#vW3L;rKRAic!(dw~({L%o&V~RfTI8O?ZC^l?grb z%$`7Ii&pnN5G;e@2#RSKX#Om?>m)Yb(^mEp=Ij81nd8ooQ<5S8)nl=84eWJGar>Zj z0RxlA1lX>YAlzJEjYe-5uiQo2kl3&W8YMoeq0!;7*hkzEFf1;se+-+}LO`$eZ%;Ra z2`G0IIvs6%>^|1Z3v~ZHO1QWypsPW#hq6mQ;FkESF5Hn{>lnMbo+5tvB1^HluaEZt zU%(e2#2WA;t;XEpdhUpv+EOGFY6A??z_j|JsimoShEHW~hwZYN$MgEQRv7U~Q12w+ z-$9{0I7M6$O|e+K&Sl{`!C7_J9kdPzNEK%nDxE%uBl)`1j>AOvv(r-q)Ej+s5OEi) z?Rik%>DAbQ$mJ#qUwDs|CPQ>7nE>sFLbc+1w z#`W1gYp1%MG@HAt2Fa0&19S%p&v<{G(uPBTm6LB*hDF$FtAaXYRFP#|nU9&CYd^1< zMD&BEJy2ig?!JlwQEuQ5reuRbTghRw5H?)~8ogkFu`&2I7F5Z8+}CWWi<>J|wSWXg z3Es&mPss|ci+DysDB%86i(Q{vfRhB}r4|88vKVx~t6Q9u4pb`(|=a2#eC8g)E zpa2Rgx#8VbDwpy2v6^@8q73NN1FAN$F%ubW*KGOLsTsY0Udk(b&YNCaL?BS}UwgR7 zGTd|>nn4rAs^d>@Lyw@DK694b%g2H9fJ~~b#ctA5)4OaBQZ(-LP!-D?H+t9qTmzC3 zEJ@As9?Xhsh_Zht)hICgFp||LPH!m(8=Gu8 z#Fwb5F|(vPEoZ3h;6zuuW;3X%#eds{TWhE(zS9iJ4L9r|d~s}X+781cGcEpGC=TY_ z@Sk-uzj0K47UuyhU>4Meh^|fYX_mUPY zNLLi(%B*w+m?M3D(Z3LwCc?l{?S<;^FsL^Iidn02Pzx?8pdlr?J$K@_4Z_c?4S5;Q z5CxA(tP1Z4sG&h9$)~tWg5s2@C2ShiC7t_(7p4kec>PE`^t0~Xg3|J2S)5lkv}W9&t_H|M$`riT8#aQ18U2UK3t3pyKcjv`yMsI^nbD+YsJz$A&=A>p+Uzkda@ zjLIKMj-8oMmiXH7y!owZPrS1X2?hel1Qq2@tER7zd^b>&Z1ZX-MH!_M0WXCvCKU2+g&{m}(s!Wz`Hsmt)`VF{ER+wrzTYVJ{?YZe=dgo9 zF?ZvkhofXdtuCO@5qo5qzD3$hQHV|g?h95P%9}pj&z+2XAFu+F2n)nL1FUap+~>Yj zV&tYpdr4CirL|Wo?xN-!UVF)X_RztKPWK1Jy8?X=^B280TS|KAsRM1|M=SL$P|L`J zfDm&I2BN{+X|!19;T14}D~wLnqY%s(htiD%-|yvaG9F*w5Wg&D&un@uwS7?2ja3mC zD3{ihU6oe+&&@KmHoG6g&uLEJXZH6yz2ftWI&jc!0ED7ujveC?He7}Y{`IZKq^FSI z1M7v}q^pcy6>feD!Q-^0e|$98tXxyu8*Cr2qXK{2kO_^2+B;-r6X<@&ca5L7AGnDt z;SB0*{1ggvJX4%C(NcB>tm%m~GTmb?$ZXH^sd)BES=4V)P{eS4DHW_JaO_p2o9Nt3 zXNg}%%Scj&SS%Q_z`uB$Gqzz40TXxWYctGv~xink^v@aSr!=?T~AT zVwYjq$^THT-PdxZv+tTr=w^>^FZx1f&SDkHl@aF4oXJR5^yzLD6U)zC&}^Ak%cnkKUFCBLsQx?qMfPnTPZ2nc!9_83#dksAexvv zw_WTCz^Tn&&Vqk#oK$wNLHuS<{OjJ(PH*5;huG=*XA%O~co#MsrDhLvu;*;}J^a&a zi@6JsB`i?*`Y{UfO9@W~KuKT7i{|sKkJO-DN{v7dKP8vxZT)VSZN5~sd;Q9aV6|eJ zlvVgH9Z&g>OHN2uz?in{oFKOq5W*6~5IOuyU5PF=+=E;rt`hG!3skXCs++Q(o;rv3 z8*`4=^^hM@RpE^fIsl4~OO7NM@^-~&|Fi>zf%g62jSDX$r{%C;5pmjHptVis$plEa zo2I>!D?VMx?3sF`#Hg^`f~yM2(uPd7XQf5GZrgh!ucg-Phrr64TEt`T7aZuFk1I|u zJRQC8rv?^HT7?raQr zC|*(z3OM7kG8AOvctXxYgEG3Cf9_lf-A6&Pzs#&u|LJMja5Xd=_vRl2RNQNUUqVU7 zJ6a;I>!xQ;NJ=kv6tYO{y?DMS{En1X$-rP6d($jF^>7xz)J9^WIpW1 zlEGkX#BBLwZBxCDpg_B#e+@Tz;q?XwO7Z^AN7LQ!irPyo*x@Wn=F~v{WN_r^Red3*!Hzh4 z&RbTX_+iZLy5P~}sD8L-GBOBZUG$-)JcSd8^mseQp{trB$>em}c6GzeEuS^uXp8do z$5GAh-mWm{>TP736E54Z*hzSSsD#aRkS{6$Tt7TYQcgeoTwr=Aldokg@{nNs3P;Pz zU&1^4dm3UC)!Bz0VwV)*o)4Fq>>HDwV@TAj18c3cs198M64?bekB+<<@5eeIgUYC8 zZj3Wh`Eh2vhq_DGLw%X_!8(`kpJUXxYg=sNpBw#_@#|bx5}AK!{e68lXGi>E&dMQvYmmVQ6I zN%Zsc;JsipDR-itbXLqKX*&}S0seIZ9a-w<`Cv@Vy#$%rb4X@(-m zKe6SpCIok|n~Ls5a1wf_yURTCpvz(A+dV~8h5L+Hxb>>H;wkhNmKP6<-&11vs+n_k zdvy2JNoV(#j|?dGgcY5S2|e)QdRXXY=YNVg<`Qz0GpA8GAJ3RKv)0UgK)VgVrFL!; zpWNLOJKsYLI#Fx`4J^#956~%k`6yShq0)hPg6JdgVBgt%3{|aE3FT3_e z&4Zt9op)MpYEZFv3Gw>8v2)NAJ^DhXnZEKofpeLO;JH3va^mF|aw^DF7|AqtI0SkW zVjr8_MzG?TS6;DsRRc#p? zjNFzwUv!Tq)u+w-%L{I8^gZ5z$XG{Ho?pxB5NHG*YB!qGaV)=%)o*pU;w%lc zSTY~3#h`W6Xkj0@5IKbj5(o1szYitvp6)jAlD?{XO}N;JTS|;$hyBX;>DKVSjxB@O zu&HuaB9$$z+X&=%Vy)O01k7`B_llD*O?@%#T|~573?uz_h8IF>uktM1Fxt2*mJV-_ zSbSfAj9!8;=DzL$jpWP|d=y=cWY}zH?1s%nH(>4{+* zxQ~e4wJzi4U>cVUQLI?~5;}@{Ys1C1Zx^z#ss3DK*5{Ixqu-b>lU| zAJ*E{5R@iM7pPLsC~tH{9adppxQj(DVG_9Wdv-QRj4Ayg(}Df|y>O}4Ej@rYhy(*0 zGdQ`i55>NRmk1W~jy+IvRPuxguIgT0AADf9#&GfHqVePRK0psbe|+?O!*ptT)5^-b zg|{Zhf<|h#YJ_vgRa!2D#h$^2xlm#}*mU547<&WES|gY+SegY{fm8W@ZpZnsJ}fs- zg?qvsB7X{0BV5^UqALtaJ<%DDgH|0GkPjY( z1rx?6G@WN_LDtwO};We z#dk2PvoAU+kYC!SNwh*Xm<30a(47rU$8}hdUhOqFJOh_*e}{KXla+gNCwtn0^6LX0 zSV)#Y^_3gOxG{RhE8+98W`DPW*e+ z)K?LOOJqoz5Rdpq9e6eXvV@Ca%75|HA-;TEUJmn_o2j*X#AdB!E|K{sGzseAVefj2 z@`fd7w&R>h^2qlobH)yJmAHGo57LUGg2n=eE$uc<+HU-VQA}V?6-|jj8eI4uT`Qc{ z_wyQ(DD{*cnL3~P{I7wtJqpD;AYVAhRdFqoPXP|{bV&aZ5akP2M z*$(!c`#EOHFbE>KO(?m}vU}YiaplKV;cs(%YA2_@hbVq&3TS=u`F6|(w&wC55%>Pa z8F4C}Rbhk0*i{QJ)hqF<7+ssM{ZMQBbWw2jV*G50g(M1b z4NX4Wy!-y?7++juH-GWh`rL1w$`M4k5gg&L;pyA0&Z_qs>%Nv2OiVn>_49dMev{{{ zlN?o`na(4;iiX4A+8D;hsV{c0nb?&SdpHXx1rsPcP~21)_ee$|eMF+{g&Jc_EMD&X z5m87NOq1{|9x`<$nMz7*q35ZEDlwY3-W09MKjxGoQdzUioLXMyQjlmOZF|uALQ_Cj z+UFxN8=h2dU8s7`(U5RDl&;y-_y)hyVEa_jH2Hj1MJS#%%sn^*BK5ZBue|E0*denL zZQ=Sp)c_BdEyjAPvPt{r;e1Bho#DE{wU#BjzO9oIo2M@QO*{xLu}=xG@lsnPGMz+O z69fCp%#CqX8pj+3ij|tS30XW*9XBUTm3?$Obg9X&YrWOMgLgmfm&>=wuB#Q}4WZjk zwlN|lc_ZCoB38GdXxT5Y-1*cc)3?TT>0bGk4g$b5vEdFn{%1(UcQVU z@;-b#|HPGfI4j=%`>96>X87K(lCw(ZR|acoWtc!qEGQpfOI@v&e23 z%dWxhNXM%$BL0}a!k)8X7ru6(1BEmpMQCI5oPE|?!tC52UBCDZa!z^=bkrh<>nSBm zFdb~bV6fKrk*-9^YgerC7nK$Owavtd){aRyC>$O`=NJr zwDp$y$xYtlAJizdHEIR^^1-LF7nAvIf&RCpeo6kt*#i$vpgt&9CzeMZw&pYaTx|2_3+B=JXY`Ad3}--H|Jc;SyN zRbHy@ukr2DZc?1A>GszH^}QB`-|X%U{i*5_v%dkmh@Bw`g5WRjNmbo{hfgBs)E)qMh+ zr_WVzY&O(@EgFz8C6uU9N|RQxK1b`OPj-E}eYvZ)X<$msVWsX{QmEq4N`!@bA!N=A zWRJckW$SK=e$j>`e`tlHkVazGLp8-Hy;Iw#8cf~NV^i;xR;)cM%2Vn52MerX+r8bCvf<-V3yci~xaGa zD;2w-Z856aRQGD?_-^5%`1`pImqHZ%x+tL znMkzwajj1fCQawzEYrhsg964j!f3||KP&Nh>MmvbVV>j-_HvcS4u({Uj{aie!GKHf zY8cVVt}CY+esO@-a&{{~LbQx@#f-n0zxb9|ajSlq#&9a{+}N%?W;<5g>F(lfwJgYA zB@z^1ar*Rz=|!46LXRa`3&{kY2!6Jx#JiQYWa>74jSm~B%00J(5hC%}Et)keLg=|q zT0}F|SY1{9edjX`+CE?Vy)ZwU`p3f3#ndC{##llOAaUqg!2We+{BsM{rR}Nw?7tr_ zBvW6kN?-r5#g;wRl@v#Ip*Hc`33AOf=cLhSWyyYH=`l)Ch9W3|~+6OES9dlKMfs>3=Pa^M6K3wyY8sfJICHpHv>mmOg zmH0#N)W>&f7pyjuZ~5*J@M%ds^dr3>cm2~%zFF)!g&P8gqo0<({W8yeSnL-yL`L)q zihwyx4pSub9P(*xcLK<#=8GYpV254r;oS&)T<3ksT%SsoW(uXu5o;EmrjR6}wr`-t z@*=nF^wR;Q4D#t6R>;(LAq+by80`Axt_8b9s_<@Xvq4EBL@3FO>+UR8whf&mLU6QREWBm^c{QFz1Zy zxCtz9Q?x-z0a)Yuj;P3&qEg~$V{la{<56!k8Rm=g8lDEkE+nmM^qK$K!JKnUxYYl% zMy5!27uftQgt1^|796uS@Df>{nv!j9XGnPavfcn7uXzc#3=og8{+cs*#(JP&v4U;D zc}7ASJA~wbxDO5;=%M0tHYu4(w7^^jsiil1_gQ+zJ2jKDV|AQ4vHh5Xk3y>$kAeza z^-4$TDjdz$-@a8qt5#xs=eP?O$7cwXz|Us9KN(|m3b&mxL3#Q^@CRifsS)CdNZ&AA@Z9`O!aNq?P(^<%r!tpfobAX=~%`hSb{#-N0#gf>& zEPMarS?BBT&7v1A5N^#d+zjCth4i?4J}%@FoYAj05h9c2pQ_vJPKDi8bhLe%CC|e{ z!CqbwCb|GOs=>T9B;R5zDtMA#PD{10=aAacU($SsXRMng&B_horH!6lf7|m04_!Wo zdr6wR8e445aW}`SW{Wi`V)vJlJ*X$SCIrhWr)|LccWp zFPR|q8@g-FdC%|$8+`w%RliUe=wBEj+Mq4Z!JC*=Bx7SfI20oow^bD64Jr%xzz}$8 z=gVlSO^9ep;ODH;R-%kYg=EN>#fl|l>LL^*%SMnO+hw^g2j|FNd?1W?m&o&XD0}`F zP7Mv2 z<~IV4uL(Vz^C4P#vXv#IEgSy!z!fEv-rYCpFXK|S;MlaJv_=u00|O)O4eQq`E~{Q& zLJB##L+YtkLe(o-l|Wr*-A&FNtEs|LcN{QA=ssR_PUrb>kC>Hp{7F7|dW@{BpRl`%~9TAgL&6o7vOv{^h)u|NZ;IB zz6%bBGKJckJnp<-psw>*BgRf=*eFKw>=s{MyfTDHUHjH2k$w#IHdVGG*X)N$I`>wQ^w|lN4USd_^TvTkGwUi zloUMRMN9?}QWfWsfeAu(u^RGdLr#|G#rvHhpFb);YcChu{H$we>Nr^};oKvowmHZP zlF@8~4F7S+3o~>}N51L9jjkX=YJZ2t#HxMsf1jF#8w5_KvVIG9GZg4pAliaLiku)?u>y+X(s`~ktX-Xc2 z06Ffd*YxW-v8F%HP+5{X4M}GX83r7G^6aYNaS4m@_V>-ww=j_JZ=9UHpUfq2<0uef zyQ(M&De(;q&w>Nb`s>CHKQBJ=?P$R9Wp!bsHA9bd7ZX1;^|m#2ZVNpAP4%&?Y^{fH z`&57R_txBRcRsZ%}++2WC{kG9>`RGpZHS>W-eGX|lGh2oeG z4#$TonUMC~6wNaVBQAD7tq}fK@C9HL1PH*xGbv^(q>*Ci^&>LN5tBUrq?(_3WzywR zMMOzua*&n!`v#H8`#wHDHr|k7e2sj%AjiPbQS-v*Mc*M;mxx+CRxEZ?G;&`UabVf% zaOK=>LUVbfVD1zg)&V;*rz{S9Oyr@7?nG0GOhxIE+>vvNj@7QNz|b`)m=89(C!-LB zXIQ)Jda@<3_SVtU1%C5mUj)i{z?5(zk1DuM@4XjP%lV6)AN({IaO|KR63Nt<6V%tv z^*wVaB)7)pIj7FaFd&`%tHr?a_)MsXC9%PCwG0VTWWwe`{Sk4G9MLUYAtBzc+r=V}o6@fZi=83=Ie*top>62D%))>m4F)E!LR6|;DO zi|+nkIw#wai*&x)u*7{1&l`aSA@pW3V%Nmr%6BeGH@d!51;t-k+iB5wm)H-l)ABXl zP~an6!nr(OeN|p=bwh9TSdxZC?*3kIEh{5xCN2ZZU6h_G^2}2<#;ulK9Ue= zfg0tiw>)+YAx=Aar(JG+X(}Mh8>}g;GmLS}dbBmdmhYf#+&4DC3L?Wg&@x}BJ4x$l zLj1*#JFUD4_rRs^Sh8eA%qL#3!^i(>Kt7~)u3)0P?UjKTle+W)6Boakb)h1YX)MX? zlD?q3ZRFdSgG^DuG8J|#vXo}q^@7C`BMZ$5OX2=loH34ve^og|txn)qKF5-V&eB~1 z&Wg(UR``(HL{nF@oGy%N2;|7fs{S8aR~`@L`o%{IU1CIxErW;>hRU8LX)z_Gg{(6| ziL#}#r)AREQjCyFv@e#FtYr+9B`G3H+4nX3_B+pL(f!>&ZufI<<$2%dInO!Y^F7~l zUaetzPx{;{@VAb$V({zH=~l0eY3vVbj_lF_BI`_8pt?KN+1!D8X*_lNt;K{jg}N8~ z#mqxhfRg+CG0)AmoRi@WF2Zq`G4rAl%3#sxYX}e@sQMgXbP&##LYEGA_kP zkHa~N{W(QKq+>68KRv1vA~UW`*QP%UCtdPH@UiY275s#0@e)G&(ALfw)(94d&?9^4 zdeoPpB(C?A!L4cCPaNjr%a$llcYoLpKYLJCan3D9wk;pDbVsp;EdZtN*YIHI0V+l7 z8L%}Eg|03k^jmelpPZVm@8)v|jX8ShTE%dccK;@2K-fSb4FTA>TCTwm0<_%m zT4imU169asbr~Ib zILwKn!U2_Ykhol2{2D{b@q4rBSB&G-lSw+B{!ifFi~ri}#2bZ19+=yOF=XN95<+MQ zTm8#xOZr$(&uRF7y+DC2u#)r+9jZH!+prp(a6WSc#ImzAttK3gWbUy&|3J#|c_c7f zcsCx}nNq}?a4HLpI#H7oLo#6IKANg7eK#c97&~WkoeLQD!|gDcg&KwC4l#e|&C1!K ztVF!Mk}ozATJWwMJ6M<<9)xohD?9~>tNuR#hSrQiKLM8s@$J@2B$+l|fQO$-g%|%g zO2Dk&!d${~F~RT0q&@i(nHr5_S5~}Kd>%Oql~^u}t|}r3G>#}zgc2l@pR+%s6P~Em z>w_nBbIt2zR|a~!B(E(NAA0`_k86nsg|uVS4t^Cv7$h>uE>$*7%P@|Ci3#dVS4cbL ze_RPhfn}^)M}b*S2hE!H*7$>W^8e-3*D%*QEJ=9_rL&TDtGKY%)a|8QY;Gghiyu}S zI)tk?uf{aF4E)jp07r$ErLMe9yArm%kXRxGQ2u`G7EV_D7UqiUH)A6Ons81=aiy~; z7T!ej;&1Z7j>Xml(eG}ZyRIJsX=BFNa!6R7L|%oBi^=Z4;1GVg-umac(2g!Vm%XZ& zW!ZG!F*C%9NXv}&ARZ3Vo-Lwe&r3egl&J#P?RxJbOh7t%lPeqlA>9zyR{I3oPwUR% zy3GR&nxkLkv$M3@Yr9!9hbDD*JuNBL_9`pB*ndp%=i3mWE*xxTKzJ2fQV&7iNdP=8 zJ&5UPpUYD+-JJ0Uo^W3{E@eq4RH4%<4=cl?@@$7z%Ft0!42I<>Kb_y~)T&1>&c)}2 zZaz&i7VT@jR_)O8?p5sbAZ}8+OCKTlzHi{Ox+dO;tz{({!o?onr|wwH_#PXVw!ema zt*Mw>Yi;QCK#@2Q9i@Qd>+SkB8W7CWu7m=T`|;)eyA7E9WOng`5f{rIrMo8x&(40% zxVci~pl0#MNBafjtS{hYe2gxuxXo#&RgDQvRwq9_FE8&JfjBq7d%C1qct$QFx(zgj zMNgp_j{MB*EN-~QnH~5~DECaIDz)|dPY2F|^zzIwg_I6JVcm+u{E=pxPNuqvVV-q< zXW#WM$oV`FzU158t|g-x#m~ps3S?p7V@8)H#~M}I?ZW7UvZ!zqCb30B9oR0_hpZ-4 zI8eu$0*77iHuF467fFQVy{ZsU=b@JR_cONqL26v(xM5pW#J9Y(ARY7NFV03}d&hG0 zzMp`fg^NFTtgp}<$2W2~@*^~Pu9aUIb3_^r-9#$%Ekd|mh47+KTj?n6+J@c~rWW4R zt`Q=qDjC*>LeG_O_YTp`SU$z-`9&ndU^_p^q1Tc93`iX){F>U!t~fqV>|XzXN}VAA zFtd$_xO)DCnVw8-fDr)|*SGQ~o(HqK-|;g$@xe(!#HNsI%~}{xkh&m2xpY8eeu>+T z+FqBEE{{gDWAI#Pp?gF=1ct^P$cl!x)YohpV)ShzzU?sX-R~5xSnHbtdYx`J(Y+$D ze;uW;fBO81&rO&A+`gHymC<3F+$QsPH{muk;k+(GDxw+9UNE<%j!9cHT9>bRDCu?s zUMyS^Z5;n>S5|DhK}%&N5OVN>F?~rUIKCk>k|Z~&q`f;YK(kGmx#UqaTxj8v$|l6o zhD3N~bC0eT-ie%|zU#PcqKSs0WG~*cv>)<{rNzEu>3l#BQ{PKJK&i+T1Y9|4WhrkV z1!gcdT_R7b)Vw#fC4#RD)}&M%ywz6lgt?sx3_|oil=w7g-NvnhdtoHKqOe$rY9=?M zhIx6StA%s~mpFT*6{u%&3WHFSbVb2hq?o~`M?9LUB%?_t#x?>rEQ`8_uI)C4mj6{u z0Jesk#IQf69q{~Fc*AnmwXP*4L^b0c^+uyNderls8xjlP_g$R1S{&xmR?kfuWx<&0 zTx0HgbLxAihTqllRG-;zxWV$Atl{yMCRBmjxW`FXE(4{pYTfKVcQ-uxJoAa8DmQwP3jD4sqDfgIjY(KlLuzyJUgm2S`>&@81<~}YJ+eW8*GN1b7yp5@Uy<90P^Br&apg#+EuiG=ahK7M9k2(#Z20mIjg7T8zj{pQQn{E7g zjP7KYUmNpg5m#$&hL(vjY|*&&y`+TLnxx)xZq}Hb8Y`uY`*h9)Bu0%~K}B znh+d>p~cq9_(HVNE1%~&J|gwIr_*FY2lIAc)=@2gM~$0#hXM;Kix?ng@Z0A=s6Z!e zbq8w`>X-ihUIr2i9QW>=f$Q;ljQz}@knp4suIq2VbnO)XW--=$J|?v$1Bk=-EG@M5 zOG&PB8@JC8{2alf6Yb+>LQtuw-qP|$#klNA#s*%*J?)Oxd|vuf8W!DM?edS?e#HzskqP#Lkta?-U|EdbQ8uC_X(E=RbPi zDh1v?j8$8)vdR5&R1Z&#fTK z$3*CqZdsW)e6s9i(#n@!Ph4Ri6QkTjBY6;=-(d99CG9dG0RMjTFduS1w2q^qX_@Q5 zP-m5bS?)+879B4zH0~Y;?g1+gHW}dVpOX=zJvDb9*mn2}@)bF1ZPyas%?go|Ex*3u zEoHwWO8@le8-XIHycBTIr#&HL2Haa>q4%Zvkn%a^50%h_^qC&H$|a^ zkFI~iKhyz+K}!yybKB@6!-K&vhrO3k&(csTEqU8#2^1IXF1f%6kTm?@uKr1G z%Z*2b3v}BG+}+w5I+Mt^w|V)Sh$Nu+!jxnY?-VPtg4 zhd#6Dab4|Vvgo8+7{5@5@+M0J`OcwX$TsmV2$>E7km{Yl#x|^kZfm8{MaAltW{jq>wyZcJU{wy!W3cviA!i_jd^%tXq}6K!t8M z$7x!z6xEO^=NC<=?*i{M5Q^5@8HrL-^pbSKD_bhu{}#NV#a03@JK=UiqYGYTtwUdY zC4!ot_5?Faw|}b^E|EO!&+``A^;=qPGRfq@Jd@)j`^|av-?xJ1uoTlKcmtx5>ihx! z)6srv^ie~XZp$0Ngt(k9wKp)B_|@RZF(Sku6h$MYKZcQEYwqe1drS9nlh*H7IvO&) zm{7kxoHx2-NfzYD?l|4ITC$G$HPOdSj8URjJ~xzg%~l`nf%+TjMBkQ$y90Kqdw3N8mHLjR~U(X176$c^A>fu8%AAsGoYD zo*CV*5PtfmBol8ME4xAJ>4+@j_ zu|UVb*5s?nMDp0B8p-E0R0*(P>QTw;!)Uc)*jZX&>>oqfl}Mum;f5z*r27bai_WXZ zsN!MTvpNPsMDjl-CF_e2RgKYI49JFaLultn>ict}tz8?+u&hw+n^xp^6qN!}3UY&( z=le%FFdbYd3_Z@lGb)5grW7(UYMV+ZZ?zt^s?^E)!O7K4?_~-B`F>sk5OT%Tc8O3( z1->jbq0XilfVakA!F@3F&m8;Ef63xiZM4yWGX-jF97|lObLW9DQ~t^MWFSf9)!E6` zQWeRe>3d%q1#3BD=!Abd3kgB*jEk(XWZN^P9jBQ2Rr+}Q{uT4@)P~-PwAz3$`SYdD z!AlL#e7U(58^nQPo$SE8^oaTMWu{AIDMI{AYwqXt+z=Xb^#r6J%>BCmH6d%t8CN__ z+UhrPTyrSjci4MA!jVG3qJP-`mI9$mRmfXN9QI_xv~i*My1uPBMGwmTFB*E^e;)D6 z3JScy+(#!73gJ(Tce_uU}c^%b|dNnJcj zwU&M5Q1`1lJr$=l`7I8BD!{tl)gPIp<8Lt((_lpr4|EabP=4a8DS9Q$1z{%q+Z!)t z8PR!F{s_!{fGQ8hhG~zkS{KxkC7Rt52U(!2=mP5%Zj!-_L*x?WJimvk)BO!uZ7mV< z;p)d`XY5&BsWq}dLYj3IuFu%apXlxm0Spo&%r|}jRto-Ty*14BKnjfPJ{iEn&4LF^ ztX)K=kdwbDQYv0$UIH_Oba*ken+UNhi|0D+TIp*u#-*IgTl7T~;C9ufIn^fw^9I~@<*0IBId`ps&XXJlKyU9iKnZN_yksc(4z@UZm1KL~cuUWgX5U4a+i1}9(y7>J)$-7l z9C6Pl%$5Unwpo;X0nezxoW%vTZq=L~Q3~%ojjEK%LjPe4XLUs@57zfLFD76>tNo@E{ zs6+8EW@idcwXFLDKVM;zEQ>BXSaM-wk#`OVFtY5H>v281j7)4Poj^uq0q}U+wu>N+ zo7zmE6DB>Z3vWy&ZX9hplbaPb-8g|%8V|O@H->(yM3BLVg_2IriCYaU z4#$G$OKmLjI%%L_*|{u;W~CDz!eZW|6>WNvxmY0qJ{D&+-4vPTWdEK8LqZOHsiP)h zVVKwTdjGTAZiDkq4@)P0;k4_Ei`**CWGrG9{qkHlke!oyO^+r$vv$2zg5E243CJ?EixG+R|1le zx48;&>AbE?7X9OcoFo>^Ewl!O8bliuBAMqM+qnz~aj@~DpK_;rPNa9^i!AvgJ+M+P zi8w($qDd_B7|6n0&b=+R3ru*CBz~BfE?@y#(#z7bxub-{PK*cQZ7|)dRCWf|d(_t#iJ? z7jbt>OXR++RiOmYEux9oGosA|bajcq4b!#|z>Sk8mvXnfdwyfOqgE~4?8I^iilPSm z?gPK=9f*Ji5lniZ8e_(fg9MWoQTiw4e^->l&Y&epag%yhpFKY&e*@S%#|K%;X}=%u zUjT2%d`}4m0U*SNwW~zwj`i6?4ET>oPP@CLxr*mI9bh|4`e1q$`@9|%HdYJRGaxcC zW$On{T@Omh{VX;MDz8VWW%A0U8&d3;7 z=NZ>U`x!bDpQ?POZ}td)NTy0+asGN_@ALb364;!*p6(aNc0r0yYw!w%>d4l#)h+%V zc*JSogYVZJ>I824NWge(Y)y`-p z&9)Oo{O?-4dbO_6yVd+{Ei}M+uZ;)Z$os_GE&~Ez+Hwj>AUf2k1cULOZJcXQ+@Moo z-ZU!l!DIb}6+E3I22kh>IZNB9%6YCG0(xu9rOcZ{jT^;Zmq5CwDH-c7S{O2kiB+R)>YW9uD2WHkqzVC)y zU6*fOXLt6?d%b4eHfi3>fx^`e)zinIza7bML#KPkHXdNh%ERdNO8qv)@NJ^aKjcw5 z*Q6f2RGq^6!UWYFiw*IWnF!gs9Zv!h)`LgEEMC^0wEw6H*FLU*08j1Ex1c+1?0nnm z^hrq<)CIYMptmL|MsB(`GX}B$7qMat@jpLRp28bZ?x0sfE#4t0j_rc7J%WN(^yr;C zG|-B~cc{ARo*W20n6w@~C?@^uNFDh%3$xPm z7RG1@grtwC2YS0$^~InTS_H+-%Ye1OW6fVQJ$8aQ`&FO>UY#J+8pw9`=tsMt zZn3sPHrbvR!=Zn`s(AX_8GoqSj*Lx)%3$h2n+#f38h-TlMs7PRaZA#X&vQ|jn<6FF zg^L10r@r<>`t$lVFdTR8=4}op)9br)LL5Vm9?|*5>*Vb>_4S<{Sk0R0Q@YCKp0C+g zU2vd~j}^e}_d9FLMp$EpAO7Y$?AG4vUi;$6SpQY1e`fTh8Xd@J@qTJi`BDg^7Pkxt z=Rvb|)LvSwkRq=jR!QT*j80oSh({z9p1)u1G*Yegg6A%G@mX3A7olcukz-rv*Y?)X zuMg(xJr5*sK39JC(XZLtrQ(Xf+^&>wO*Z)UydP%Zo=${76-;-tH^g92M#QNbhM+QI z0RXxi(lTB6p}4p8k>&s!y|VUakM8EIRtC)yo1X<--<^pC8!>TpG;WVpON?+-{$hCGv`9N!kv=%pWy1p8c_l0?t8R9U#-ILLUhD z0K`c%A)<&-Ym34llt`CD#Q2dbMKLkgfSOp}6ZL&3^<9YqjO@6qt9v?^!IAwek;Z(E zkd;Y$2{ZI=TKfNBx3{GlOzO9_KGZ%v94}T=CrM#BmNh(jzFx`jltQ}OekBkuub)2A z?Pi_uOS1V4DK?K1z2DxEScw&ufQuy4q-MC5>MC3aJSn9{^}t7_Ne!|Q&NPpOebEjo zx%Ez0=9-$J80?UvC=v&OnAm>*MJD(3EigpMQ1XmKB%bX=zb;NnOVC_>Ee&-1!hSD3 z&p$N=>v)E!QU2M{saOYtmO4`aq&yrUSTGR2BZzn(*D^v^tEzPE@i_RLWu9*9R;hnT z!Ci}D_?u`$Ae=XB-i<_HP_<3d5Gb@0x3n_p({54VqscB5w``z;zG zUMP;-sg|O!SRe^eyZ%~-C28P03wT~UY3X)nmLme41u?gg*l~&f3lX}O&X*8U$*&XP zWe}2VxgbKA*L7fq?dkRH0-jiMdjJE9O}8KD%8aVnD}xBJLJcVAp`@VQ>}Tw)dYe5j%^^zYK!TzYbtc?xq7}1PJZqxWP9+y=8asjIrfg)q(LZCv1sVdCLTL`t0|8YHJWyxE{w!{G!t;l! zwD(zkw;NCoLpRE>}GcjrV1`wVVzLZE!aN$;~^@r(-wiavTW^q=>#?M@IjMvUfla< zQcZZnk~f#{1mOrXi}}ECr^|P(D89oB6#7EzNThuz`@nHCQPNLBg_G29%3-U5b?@^H zV)^N(6il@tQR%gk=ejJ*)XLGg(OM6fc@VRIMh50jPQ7_F-n2eXr)~=YQeJb_rbJFx>NcE;#j{b^%FjP=;4OMtfBC%a zeA-dYJRI6=rG~(Yp*HsQRVM+) z4ez)1n`~5VN$`ih=3)cEB5E`sEIs~6e{>a4k@cMPSwUr;mkq!Tc>`{=dD7VPR?JgT zanR!4839-7*PMem0b9{X_1GB{##j1Q8-jS&t6}jj z_G(2oU>zPlz9^Za-V{LtjRZD;&RY#ZdAp!D0*1CCU$X zsj_1NL7No*C~xX@+v+VXojEG>b3gEb?B|#&v87s}ggMcAW)9Fa`Z*_EG4?9D|3TB^ zO+t2k(;wpGOTOl1*S^lFxeVmhj-T2Cw6fYMFsdxmk6-&oFXSmMqU5JH_Gk${xUogF z`J|%21xU2*QvKDYLv&`2&LIxg63`1?-G3~oG%e9cCO&?=4*b)_8{%JnX#swsY9&k9 z5oxalE}2t;Z4`i}<9%5kYcBagG1^O{2P^2k9>c23aGo7zx z+3}The&>EJFuPpoyz$Q&&AJSEU?$~akaUTuCcrd(`q->{7I!mo!L2e{6&j(BAHGe= z9!M%Ldvd4|4`N=Ba{fq1tRd2Hb8Y1o@pt-RXhZ&7q58?EijG^P)w%&qTGkdq&uXMw4z>ZX*!n@e0Ii1h_pov3;XMPjn;}4*Uqfov# z=euHu1@yQAlowc;G_GiyM7Y_C2u|zCo}MjhMHUC3ei#ZvmD7Q;v@_bx>HV+3qF03A zF-gE`l^8(u)wtu>MAe2?A06O#vUHPQmxEfeerKBt(3BgXU9kVl)!R5L5jJcjTNrEF z`&Bb-kDW6;o)?L42$yxrD;xOZQKEoN0O9X&jX(Sf!6kqn9)QD&fUr60ze4Z)X1${M zfk#oGjP)FTCvq2RT8g_TDt56GK5II{kP0`xV$->}7`c_^vva0-(Xxh|Ce*4u288F5 zNYrk4J&biJ3A6r<`>ifBI>BX(WP9)pj4R3P(Sd6v2kZs*5mT&*yeKmZ_H?DrUcR{# z39*cdpzf-EGX-=p!-FSBU39`LCD zIfWgY9hn_qLg0Yj1i~_&Bg+s=2o)+(KVRTTo>vIjfymPUpp>rC^~Fqe!OyE)oaboi z>H+xjR4C~RNVNdjyqrzDtVmIRHi`F+aKO*4=eFxpU5e&k=Y%=sF4*xVsJZ7~9Basv z_G&y`SKFLFrh})jeB)SfwZwwSb{d9BZvF;EbCDhiCbRbsij;eR zkoUsAIUITQVYGZgydG$DYrr*M6ke?SAOR#}=1{8nfkY!>u^!Aaw0Pyk^OYbW%{t~R z8w^8qPV3tr|M@5g1lg=HIul3d1*tlkSzSJo7$VFD)b0MMFPMLh`vMTmJf|)LN8E2h zgsOMLsp#QKKn+miOOuArl;L?AytYLNIC!q!f8$m#fH@PeMR4I~irkWM7{~K{wZ{*IphrRBs5HwgE zy6`K?{$M!QRuQn8x zlZtP9?B&(c>vhuZZc(`cX2kwN9$}YzXYGXrfd*Pbq*BF;r(-A<*a*QJGd(@8ro^Ds z2~1qsRioyXbNbJMkc`_=z89bD=bL!#(71c-rf`Yim~mN9 z#r$#$`KT9GhC+S^iXm%?nqlc?(MU6)oc%w3B=|fBx+R|zR@v{{-LINzeF8P23kb#C z_qBmc+XMC<1VTmRMW-;`WAX$slw9#qRVfuB{ce6>4xjqUXOBU5=)!|Pxjy*&VF!#v zu|njJZq*m9wP(VhArf+SH>AM;GG~~-hy&nz0)&=>5uBtOD`(tP?u_J9)EJ%6Cl9i- z(4tdkFtI4&*(#PNZ$Lf7MbnzFtH^%P8UOaVi0teZWQ`e$1$7HpmpPa^!m3}=Ge1XL=Vb!Dln>>S-)|^dRNS#4 z$-Tzkf9Uh<8hF`g^YL{{bc3PKMDj7a;kudqj?UDi^N-{cQ?_l(^SH=gL}{%492?U0 zZEQydooDuzV)WCf9FC3w?(M*sR8GNQ=cWJ};LDMa{oL}DnDLH|g1h_eTOND45dCyB z*ZeB4dM*cLAgj8MUFIy*r#f2RezkL*;P;ZlJX|?7zNgdeF`WPb=vvxYvsKyc0*4ak zo^9lC_VqowsXs@gSZfQ|f&$pW-XqHqE2d`k%k)#8eHi1kB^Coy4;)dYu~Gxx@Obw7 z2>@43+QBiix!q$^AG@8m=T$#611ZPcL4@Qqj%+0e!B2D6JURViKnL?|JG0uq{HOn4 zbeXJNBORrnHT9|Idbc)92OIoZ^PknJ-|_weXGj6<4&Ygj`FvIr+6(#v@W~Uk8e^7u zjgbvyqXYh{4}hpZCkkm@cTIxe%s&i*wVPku4krZs4RNb4f@j-?(C75;b}@p#zjn|F>_Hq z`n?0Y9 zrw_M>Wq#C!&*=S{eS+SL!qIuM`*dFvakxMz(JlK~AyX`1)d!tRXwmwE#oKYsD#4ut zha=%t=_3i2aIH^;k!o}L&*X^J)YR05ZHDj;DT8AfP&&1Tj+qeK1|quNb7KN_8oe)q z-r2gkMPq9*4=>nKJN|kU=*EKfHkD$4tsfx7+BovlwG@@PNGG36Dhj!?-R zq{#`U3NyyJNc3Jo?^@s?p&HZ}SThd!RM&`QkwJm3z4yaa{NUEI<7fRSq))0ac|wGD z>%4{}HQmD^G#-WbGApKb2h|x2L=y#|+z!Fr12Q(T1Hx$6Pl5BB&ry>P7Vp3T>;F7p zkeeDcHeUKGyt1$pKDrS-l#mboYcXT~NOd3hvO|DKT3TAFPfv?da7^rKShOk-O`0I0 zN(#8vbyv`I3uuhM{^ySJQd!rlFSr$FYxP3D>#D7hYiws;8#>AG>4CdE}- zXJAUfYZyqyuZdvbhR1)K97U07asp7aOoS5b^r`6=JJ7`<=s|f!0+g-AKov_5$OnUd z?-_hsxPtbw)z)Ou_aw*~ z4*yiWc-VJ3KhBXgykJ{$n_+^v8D%Nc*-;Uh`qJYp#1d5)^r(!fBhUmcc|;P`hb}wUHdQ=d=fRaNhO8Sa6^ z8W5=fa!`jocZh1JstqBfCL-!G8G`ti!Ah{Tvs2grFBsAbIyd}JuW|=q`~ymy|LFag z%WQ{Ov2t&4c#}#dmPMpDG;5L7)eE5 zaHmkoiHEYN=dlSbRq&`f7em3_d`NqC;$Y}XO(>1xx0(O72aA|}gh+$5io{R1bD*d@ zHLC!3f@%u{l+Z-@KfQW^un8jT)E1$6E>IuD!$l~KdfGpdo5oA$Z&bmxD5Tg;-qrzz zUEmU_3lxdX(4P!T-;0blTcf#|%Yn8Cs|?e<7hJgr)SC<%+2k6*fS2$`Bhr{Poj)5u z$vXhe?n@zU6fX2oqujUD1|l87rAPqv)vB3CBJuW36#4L)w`KT5P|qcPie)+x6ynau8=87PIT_>3rn-D)m@9cumnZpWYEvF(eI<35MnOz3=Vr3-8 zdJaiTdg!`@>UlYyTU3;B@nG}a!!CY-Sxa<1gqgDbvp?_GQU-ykn@uw=ebgn&g+B(@ zY?aTytUR^hKhX4MvCd|8L+?=TL(P0pYdK^WOqEUXtc@PCtkWx@9}Rk~6k1cG z040Y%CtZ1z>Ci#=nF7yn1Kymz^0cE#=msQ(WGwy(8L!KDZNcf6xkdrWL-nJ2|q`rS>FNC1vua;@3l24&fER{V;EO zKfslGDW^nQ&s_5!IbE-iARLI_@Jqt3pF@2Ozc-+W0E`G7zJkQ@$;&TY92mIUI`e`M zCi@iJ;@xV4YgYPMxg&m>&sYB(cO)^?KR}=_&K94RBd4kPb%pBB{LM=q>evzH5LmIc zTp#2h!k}I{Gjoky@ECH8zb;x6vzL}rGIg?NuS$1i11>-u4#FmPI5EWdQgLM=QsCYL z?XQ~UJb3E~t64^#EURj?%&!-V_?5|i8~Lc?`OtgL)|8jDMT~xsW}WFVQafXUuUv~v z<2uS_LxH`~-lG}(R#bzYbTvQ$@JM80(XMwxDSJV(huH&z_aQxiaw8Meck4p%5r=Qf zLg@Jpp=Z%xyts3mNW4TF_2^bQ;Q`2Ic16!;b6Movx!PUe(b}B)6u)WoC>_-4z#Dc4 zFg`Nxqq+JwyrEB#0Z`Sq`3zfl>d_5Z53@!(#6Y0z-D1k@VtD(NlN7p~j@kBAiK>27 z;;%>9#=Md+It)_|fE%=`pK*WUUk>50Epb6%#?OVfcTuEw0&Oqb!(S^>S3Wi$&F%E++0M(Xk zi9C<_0@|lj%Ff6}6NNzv;UUB<6{V;o;~2CJQjk}C=ETz1C#*!t4a%q*x&UPc;qBe- zccB>U1XB*pL03@~D~aYbbiijV!>`Cw)cvM2Y_Y5uOOp0qZ+=izB|`(NJ|`N;g$14F z&BHQG(b7?nBL9M0J|${Yg1>Kl{c0ep5mBgUiqz8F*;bQxT|E1BY}V+@pQQyS^)4Yq z8iD5eLQl`J_6E2rDL~_`yG>*5-YHaQ2kvft4;$ewP+A^Ui9G9ScotsLSGXc7!;X1L z7eR$6oxcCy8$b{l&beYFw^Oy)HO|KEA}`%k6ze`uaR3Hun#$#5mcL70(~v~)>(`O! zgOb5=jnP#=5Nu8N@?X6U;_;q1)NB~*k-&R2!Cd}s<{PTq3G{ooo_0~n?+rhDS#Q>6bjGTnv zIGXqB1%O}>3ne~Ry-o9ln-|9|Zgqvc+C^km5u@AEr^)l)(o59M%a|GW=fP1Z;9$ga zRZ#`mlvcdK8=Qj+O};Pf9cx^EzN7<9EdT3mJ+mjltb7or$C z4IvmAvIG#v8Z!>}I6NChM(wYofT3*=Dxx4%MERt5U5tZnooI&I`$8g z7~jQDfxn7p6^4B$h$o=xL2mVw0u;#}^v7i|`%CP-hh%=XTZ|g=s~q_b&I%h;m_#lx zl7TXqZsz`lkZ=QhF%ROR5nMvf+^NKn6}%JK6s>iVYbRD*A`^L1Qv`os$r2B8`Wsq! z`SQx|_~er#_vX{wT^f}8){QO6;0D?%OE*mnUYvqNfZWf8{L?T5E_jH&qkVy*8tL~o ztOyW)|9s0T zLcuto6J{gUdx;+HKeCnye3^*|%vTQ7Wjg_-TSr}(1_PwMb}_?>LXK0IPr}ZSucA`v z(Nns>DUEOg8h}qc7egI;F#(!sY3?XEsh{aV8A$$*AzNbMQ~lBTnFJ^o z0KOc+%=9Tfn&dG_4D+c!G*Ab*Mi}u+tZs$D&0-I88X=a>;`DVY3?vrFVi!ea*9rFwx znsM+Ol}C*Z4?Tpg!k&wSBi0+`0Fe8!TPe=$eer7S_>W-h+Acif&GfsZy$}))d|77a zvOVwVq#2Qa@ADTQfnGH)iYmXX82naV9!$?UCc!$qd9_Qll+jl3$N9?h0QF+}FHV3? zFo%&M(lB(dZm)`9h$_Yd+MvVXljV>UGiM+D0#D{&!Y(T@WP_K^*Xp3i#Uz~ILNpRg zfC2%1#Ty`h-?0k8T=bl4Fb)ktWUDw6Dpvumz+7|Dhq~$MTejFVj~|Q2Br$4xn2gU` ziN`R+4iPZIt|g}Xm)ZrKIY-EcF?EIpHv}V$KmRJ={oWkeqNx;6GiV$AVw^!+dFQ0R zSlFdCE;mkM6I0Gs_>$GK7=HN5*n{vD6DS)~t5RBrn;>2DU3WrGIzI+fpixn1GoIVx z+#Ngzj6^HP!+{QDX6Yen_D8`tf!FjfSD>g@kNd&rWg(CJovy0ag@q`|biD_^rY72} zf>L9|czIqNvjhi`I@O+$mL_*7b_yaK$O7i`r0kc8G%i~%o5t@_Myc7^P|Cxs`^bc@ zEejS-237s(K?p`wCDDt38wlEEF0zEc%Dkq`Ar7EfWoE3cjyf{72t$HT9)`ZH=4VpK zMtl`w@0e?};u$B-UypS;eq2By#Q^kDkgs-s89F`4WC#wz)Pfoz5(K8E&?Ny;ooMzd z*=?KCPhtcn^M1L`)iUj#0Ik^Il`PZtyIr6?nQekzumuq1$Vvuo3t_&l=lSXB@pQM3 z023x-B<}IGOQhfzMyrD(Y;lQmiYL%*zh{=0X4^TL;bqPdwwYTpvkLJA@ILjWcswo zpKs$UGfq_#G}m#i#! zY*A?0`>o@%@BIIVNKbeL4}oWtv4or#rPIQU zfh)6a?Dj>XgU?>OQ1eKv>WtYTP@?a`@F`CTR4Z*X%Lri+6AQfJsf1P5x636nPwnIN98{J7F72 z?%o9(4Z#ouIaamg|Iz{!A9Jq1t`yD68km49yt%&0hXgBiKf!E5V|6PbWP{mzD; zIfPVb$}4Ojmj(>s*?!R5v-uIl=L`mP&!3&Rb7tAiM0QQ4jt1ub6;m zG5>c*$iBBc=f{JLWyW|ON(|VIW#Es(Oc>CI)UYN%!@w|L zG4b)z0Awh=HwX-^|1%K>^Z?N6P6=iL`brUGzWijx%z2+|JY%t;pAh-VR8u3hX%Y~u??i(rRO(ad|1u8TvaCz zUu0aTaM`E`Z3wAAsV$;)V9{dEpg%>d5H-exJ~XM%!nL(X-yq;9V#{?~$rIg}zaMMW zh+48Mq~$B|lp~w8;i5&|2&B(@Tu%|;HqSn}MP(nT?)CiuuhcYc(zf0tw`pE6^YEn!${zk#n!9l;aBgfQ!qmK zBK%5oksAUSIHuan1_oOn8UGH`JJK`Y#@ybF3&Q8bagwe~AD$mkQS>X0BxQ>CD#`qR zehoYDtNW?qWoG|-nSBk}19Sb5_Bw5L)k4|DxCznT53XYUiSgo8dBucpT<{q8E+M2v zMaqfal1K{K+_D2noa@@{tByIdoH(zV_KN42%w zHjw&Q5$DvK9G^)u3j2dfcrNNlrR>*$GUaaf%D(Wk6nE z^Kv2(Xo0mr6w8U|@k_0n-wqffF~}!=WnyB<>_L{BK}Y{{V_tnIWNJRXfs)Dm@O+{1 z-%oR1&0dj8sCD{dBy?|nzHwiNALk59K$-l{3h_SRRPC)_D)eVHlw}-qsViQhyx|2X z3FDJqYyfa7G-1ZcdGR67qD7!hty35tHn75cI9wD~3Z7Nn+@A;1^CG0gS#V;x9|{AD zCv;@O1Gk{gT8z;erdFC`mB?$l5 z%^tUQd{U;7K=jz)1hp%kev7u@)1#r5X)^V3y=GO&#NOVQR})mF25F_A->^bb&r%Kl~{ zNg?E99>mEWJ+PW$@^k@i=pjCRv}3w74idiV1LivbwY@4 zBT9!)%&=fg$H&5+61`w%#s3{$-fkD6MMCMI%-atos%asT#yFy87b2LWO3t`Ms|{Vy zFz-(&1h6tDD>E=v*0DVpgcQR(v85ZcPeXlssWe3nX0?e_uLgn33vfL1PXg0-sCvZ^ zj4+in4HOnZo&Dg(iW1N(EYqpeKpEePD6?`)Qs?c*j~AUjM^G9aauTUIo|mx4O8Jr+ zqZ>-I$?P>>phc3&!>!6tv+rFIuf!NwGWw1c%3xhyzbIMK6OI%}MVZ#b#Q78udgS)k z&Az6Btt*AApSmOseD!1a{zB=!*e$pqY-zb-@uh1#Z-*+_6i+O|XgoAQoFu5GO|^gP z#}UHXBcBEXx0c%3K&TX+YH-00PXxl`ggrANO0Lvu&}1#l%eN6-iBPdqW{NidD-o20 zmVcKrnAr2g!mk;MC(yWbXoEW(TNPx5aT~BP)_AHO3~k0>WQ5T``2X`w{_LTcLEJ?Q)e??INrVTkI7j%f zUts=1NoMCja=#!}0h3O=Kztm6mQY>RjAzVKtJ85!=; zbuby-EOQEkRGY-qQ{~ZhDokpgR)_DJ3H|pbNQ4|lTI%bMA15B-An$$%17<;vl3{Sl zyCMd<{BXZGsDP@Y;ITf1|58{p;_s z#Wx{;k=@ChHl%jw|90q{Xwjpb)O~Jp(j$Z1e`H9kKqHMYQ<5jlX8Mp=_nJG&YroF9 z*VMjx?tLlA1mVtXF%x3zqbq2$oZsog>|>M(17##{Y%DcQ@nqp^3*x5c)6vmf5?8E8Cc@9=%i9tiCm&)aDdhOo#q+_PkN6PT_{e9sOOZyyP!pa1KU2FcmD;o~}{G5m^AdT*yzW2@7%VmF|3`bYu zCMuyZHmmgFf253cFxO}WlULcBhOlS_d|TCbj!U`l5b%vFYwn{WJlE?*J@3n~k(SDr zj6C6UIHp{{_9r)Cn`qDz%q;&PwtaU2+-KldlM8akY8gVjr>zXiGP4CCbgtuVu=229 z7!ve@$-oFkWgl{rOJdbJ{?hF~Y2Qj_Pc57&**2iU*I}Z4=gHGar6D59xR#T^x_H~Q z-=_8C#Jy$BC@Cv@+w^hJ1Y1zO0&~+B>}a)-!}9;PBO!U1aiADn%;`T3X`Lp_-sB)_ z-1`;lzxQr&_zMn2z?eqPGYJV{M9py{V}FAI%QhLuCsY_$~>yI6x_R^L$mc zEQ;f}B8&i8fIcMXgm+4e3eI>9m~yfw^H))qS-yLxNB#Z}0JSC!nST&{r`ug+hEG%1 z3M$zt#AO;-GH2gk?32^JizPS2e4o_goc?{O6O0!O-I5m1kGw>)q6mnA3}k zE&>jHbAOb=h$H(Y=uzw+PfV4XZ+JL**w=gK9opX0@!JVT+zNPxuFzVEwl(@N zXY*4*I8LgVzq?jnZIjFQfHCs~4x<@HN8_2lf!&tvZCg%U!(FS+%P@!jtcxMunN zT**@OJCU0?3C$DNZ=nZE=P{S|tLNiVy+&HZNw}@;wM)Mwvw7uGhL zQUcr1!6(-qmgmSCTl+<+z+Aq4LkZavk1Sp)&2Ex$BX(h1XwLYeadwHKJ9?pmJlDs! zKI6B`y@;=5rw~|b_(>b{G#4*!7H**pDOB0tW>aUZzaV&SP4@H!|FKB={vB0?nVrcx z_fDS2xki)L=y*L)#lX`{Dt5oRR^XItM0AvpdFVgu{^BYr%B`fnR1@~bW-_!Xe)1QHm6>ar&G)GJ-ZW9JPt_MtK~UM*q@z!-BGMhRla2_Vfd;2iM52G z_L+5I^8I-C{;0Yf_mh{CJUI81WX#n);g_NilrYG0(isXQD!zzI^sH#wvKHJNzJ<0P z9igGl*%1Mw{#ts_YS^7(UeZQAU8N^_p>q8sXPKknWFq;L-aV2_yKNSZ?6rr44(mZn z@Oj)|)TN^WB)WO$EpvzFJeTP#XNV=+a2jh3 zrdwoA9zNZ5-$6|qKAXay6-+oQs&azEtz;uIp>Xm?bYw!a91WW?gG#=hT%n{&AuJmX zN@$qLpiJMVOh;$=336~SHWU+DEgzK{fY~46QsmfI(y0?CKt5)C?kRue6RcF?aJPkw zFmB}`iqLjliV#QGS~_L4Zi6g6uC=4%gmh6|o|m_s+8*lS2okU?8xQ_NIFK;)uFD?| z%lwW3mA8c!xH+7h5eQ%NIVTzkwxLrzzBK^P$3dsDsq>PeyeJbH_M`vx9MVOimkAdy zG%nSruJPSvbhPML#!lhjll-I~)>WQsFQz$Pk*ObbNR0U=s$XIjx+F%#ZLT4H9q%^6 z@@>Jqblj;`^lS?7-fU|?Se*Z$jL z+|_vJ`c{u+97|eXJ^k4DWzrX3Gm22zR*Fz?s61Vk@09?_a5-3WR|TKeu1AYwzN)q~ zT*3$Or_GkT-l0hgDqOYHIy;)_)0+7?YJ0ST_G@E43`YMZFBwet+rRHs=hlH+@-5!} zqwzT}+U^I*=~0hhI3?`){^N2zn&IFi$YfwuZam%b zlUtr%{3C2d*pisxL-Nj7`*w%%t9&BVZn(vtHr>TSB6`W6r?rZaxVaTZ{MG|w`O?0KU#Zu)l@p`>BlR@siy1_zSxZdjr;m~ML zPE9JK%SCSsncJrLpGP*_=(;%Of-d!bxVQ@kfrFzq$o~3!B6!YOd=ai1U&LQ|Sybg3 zu6Zq;tNf<31mjhnrG$)P{XpIMhK={(W<=qDla+V%N|44W0SLY zx9WVUk%Y5dn>5hVZyo+VI{J`|?@~yQF>i($stFMe3dX~AZ0a(e|GH!9(_(oFlKv8s z{<98^HCdYuX!o#@h+C$WTrc7lFYeV-DLtHwZ^8M8lc`SOY2Nb1b%w#)%Woc)v!9r=e0jq4)SeHkj3nA( z9$H7OE%!Mx(hnbr(SEj^9OXql(le6{lbpfVpnLW+l!aHK4GY$z-VYF;t*<}+o^(W#M-pzu1$$vneK)w*BAMwS+^j~zH$ z62v}s<IgETVdrUzQgrzEh?mxK@|~QqVSB0&yLvKifp-k`FXFXZ zvzWku;obH1Isy?oD!o;0xz*73=Cg=$AP9TSypQZFk9ndxuQ?uzaEX96LdVja^VN z{#eX8$uNwu$Fsk(}W@%gn&fRG4?;k zw0jFWzc^iLOdyzAwk;|}ue3>D%dvt3+(M^gUB*q6sc{eAyWMHDe2rVvu3 zEWM}@*%FCTRH#rh(ng93SyO6gh?E9JrIZ$ukdVsQCz48*c*~Y-A<6zbcLt56@8|bV zkM{d|-Fxm?p3mnwFJEf#c{sC#(9v8(lnWzzwl7W;usNo{9yV|kUBRbE^%##*XHItI zLyxnME7zG)z63l0f6mUxSh1h?1h zb$n?a;RjBvlwgH__mEL8forG#G9J!(Pm%^%sP_DSfC9I#Arbb06OHwRL- z9<|7{3&~q5d>d|(+N-uYB>Yklld+X&JXEcpbd=RsiAF!^$o8QfaP5{Z6aYV-^O955 zR*fZlTMdkVbSm=5<a+avYR0$u-@{Ss0nl}f2=QXKHRzZ32VN;JwEVvUXOitE4s{8_*1E;aQYwL$22 zD#_@YI5+`ZYmwOCuxXc=ds}|zi99T3vSG)HNJ{(A9WUKWp*Mb%A!Gbc(~x~rW>06| zab-p$_QaL3^Bw%&(XPI7iB~$luT&92bUk6-bbi7zE{ew=^*#UYqxdq zxpRgYQFGw~ZN$$+3VqOO`P9t(;a)i6ux2evc`(03qjg>aK5?+u&vSneX*JyCjUSb- z-(bzq9pj^qEg*$gua$WQi9~U-K`b*1J}P0mRN^Twk@e zUC8~rLHK3ytsluEi8eCXgTCZJRUi5>@f-?#f!EGQq>gu*%SyCcH}X4In#f%#b+6PC z`H!ztavTVn&ov=dH7W+nYmKaW>LQz`?*5|FT3;uKIQw$7IvZxI5voI1GP5?HgALqp zhQrJ+mqN~MeIAz05|@r_LI?R(n_}?v65~>6PG?=Wn;+AtHH%+9m!w@iSSCxWzXydV z<7#^t!G@*#+&}X82>$Un_ zREQ=_iq--7n2&e}FOj}*voCcE_+F?uFFkOOS7j|2?#7U$bIkokgHhs8#>hjnr0;_b z*|^w2sMc;+^l2r06Sz`?y0L2Q;fp0JwZUn$JTtd*<<|3GsD7qWg1qRoY>L5dhcKEe zxcsM04Kq+G+Bz|h*>=v69-g9G?}iNNV))^W>{#P@v7uI7vc**{ECMzUO7kgh|I1qS z+E1BdT7a9)*#yH_lDhRZ5wPsyGVUi93AMdVnB#z_P{=8ILX9fj|0oH;Rd{Rr}$y{O}ZO7 z-U+}B;OX#B-G|EwO&HnvMS$Z-7Xz^ zw}J$6z$%?x9h#{XTMu*B6G)RR|AmMor{ewQU6j6(;&yjS-C>o~1M?jzbEhda*4|eN zAdqBE>k1MtbXN)zrM`<%7`4wLFf5Pu{sqL3(MKUB?DFpvAQml?V-Ksm-+@xG<9T{Q zL`oz{;({7_92Y0|Tr_bW70~NrExb&(zrM33lgu+nFqV> z(axxcZ~Ibfy?6Oi6MI_ZLX*F0#~hTg&0kEUFTWnIu28&wWC0|=JNk?OC+LsaF^zK; z*cNEfRhutrqr;_GOQVWOx8vc0t6o>f<53w^koGsZ6U5|m0C*S!QZ$^QxcVC~?tZ9; z1nP^%_m2=jveh(p)z8J?V_V-g9sBynsJ%MlRO3^PdjtzVY~Y-AM;J+>aoKtJ44Jpy zp9(|c0TXx|=;(5a;U9^H>Yw z^0fvb$E3qH!nGN!YM!}dE_P6Lo%`~XV;-JM@_wz%mff{SMk411BO|}HB~HU>`*68( z{KLjT5fb;rGn-k6IWEbA5SHHawWHNCN~8K>V>VTUVKarP^;7Gr5Oux5iKIhuKI z%1TDeNCUg+0bHjiwOat$&4D}c8%Zl^dFM^&QWr1sHvHZklv;idQcf>kOmCOZd-l}+ zRxZcBuqHkf{TCgWJKe254!638U%RmwJk2|QENw1w(&k0Wc&GZ9azLD9vjhK84%0X3 zK$^aO9pnUySN-|q4R8;@m(Iu9*IvxIN6@CYE~Tk=w{ku5;(%j29mXj1CP(_SB9hzL z!WzMjMp}zfjL%aYjyeXBWSg#VOo0jC$`1GEI`i+5*`lhP<{;0&SQhS1#78?I>?=vY zG!cru8I@8C^ipJLMowCo6DM}CTq;jDlo*=(d&N2R`NX(a;sZjA%xKB+o`Q{i2jjO$ zP7~#S=mrMQ)3!~`{%|pQXK5*gpoCB;M@qxqF0Cn;p-MpzAuHLSq1@gf;^Q-XNbstk z4RI4nVETb2mRbO_P;RPq=MH8|YBz5E#-q6XF2Q2X5|6K#ZR(Z}M+)z*EOxqx?0eti zc0zYWVu+_{9+orF_dJkPwSBi|NmoWFTiB0m0)n9G3DX->kUf!G$H?{cXwlL$7fbxL z@{p0)B{5qWntJb`;Yw8K;fO?u z>9z>GfS@RsqL)dgxakw{NST@4_7-0thW^Wz42t|QsL3Pa)tsT)U8tdI$%RQ~k+`sh zb5@i+u#(WztoVI)$?s$Xl&|<)|L)+X4d*YeB>_2Z8rgBC9l~YIVX^0%2VY7Pj;+XM zgXrnjjwi03@nhkGZ=zx=k3fbdAHmVvQSf9>nc0XM^&?q8@@zKMFthjW-i-d4&OjvN zzLTL!5fk>C#(S>|Md4~mUix~oQ}Un4*nNmsF2}cfi$u?unrEx$T915>8!Qcba`kl9 z=_{~d8dbXu76v+x!K*B}1_@&5tR38uX$1h@-B@6=`xSu{}V%?)Nde@!EF0X(@Yk z{=;eGxw~!{fuwxIg)wUB%(O6;+#? zyOfIK&r_j*TtG)x?a02Z(>QFrBVDG7Ev%eIMeGUSEl|cyQ;V-Mr9htdcmT=@#S3Yh zvD+zIj=&>0$ixtV$H`RJd=5CF!&3&xLdeXG-J%_1E2Fmy&`CpzHZoyv0jEpTm~RlN z2ul+u4S&BTiE1#C=(%YO_hzQJh#+YR7naq>iEUtFBxO1i1H{hr)L&)?-EX|~`oW{v zV}N}KA~?y?(it!y&H!TR;nUN<{Vt8Y|dj z@yLa2&0Flk|_sg(1>HAO3`5435)Mj0bE_d3DT`I_?4h?ZR_LK|N z7bq1Y=oI&QxfP<7zDz8mfn2JWFqCOjkYx|c7fV{rNIE`4?zSk1L|^hF!f@*t%~jgW z^|qTxX>(Rp?+66Qtrl=M3frgD?Wb2>M0Yyemw*YWeVdEeKu&D&CkyuW%cj!6TnI^yoMl29TsnQFeB$1Dyut#;rsv#ZgDb8!iSvlev^0VRJIP~kk{$9x!5=P?B^0d zF(rt1?|YGN?jKx0qt>a>Zg67Eu)5EAxX-KqPK(8cDVbRw7JX6n9yKNO3O#c$B!l<< z1GD%g%n;TB8Qc_@rn!~97JT7W0GAGv;g}%RxL~{$#j`oHm|?@;2ht&5L1NCV*_jnd zc%{AD9^t!}583!QcT`=CP%f_4ZY($~=MiTT$swO_vYsm;Uz+5X}&OKA%J!=Xm>nzW|KT5QA7( z5}5|4o8X~{(35vFvT4<84=)Ck4!MK5ib}wJt7lUIOseX(zP8dV(m4XTD%zdd)8B@z z7ay>N-P~0Svyv05WV@`%d0su6$cNj7Y{BNHNt{aaxpcU&3-%!e7x%1?iGFHt()lyI zV?IBWLv1K=N;SI6^#F*D1gA14xKnhas#DM~>R9GE`nr~rKh2$pRdrrHc&Mb%HSpg( z9Uzg1sfj(SCN_VyT#>k|=mNg`{*tcN)LB8K8$dE1!A*{HqUqu{Ou*~Nh-pL~b7_a? zD_}s-pLHHWfyDDvSoBQgT__G*J)nwe1=`uMsc2s6sk%WyLsLWS(LtJ$KX%=-Lk7~_ zOO6W}X$s|!!f>}xnumhGR3bZMX|zr*Lb-tp~*sh5Xc`j6R3yjjBn1c z&+)mK6l5b)bCu;lBqST}B059}0OhD~=tSjR%NHIkPN}ZlN){rbVVf|;Qc+T*OIN`U z9?V$XwLF~*Hm=`RCTCM_hwqZyyOXFq@FCweJYx%cva-=3rAi_um1|i2#d58wa5?q0 z0_Pf{k=+;rWE=il`w=bP&8IfT#0aj(^Clh%J^ovfXIE5rCM;p($D1QvwkX`A?n%+K zHc-^p*ALl@t>n(8N;B$%eYOBtis$aY`-nuV*s!wGuwi0Lm>_Uw)$eT6M+YMCiFG%E zNLAAwr?xddl#$&1uUrL;Z~wENaI3kBDWN{}9+I~0!1g`E_V0r*K2oG-fB6_JxJo(V z|9G-zjaeaTdFe@gVrDB37?I0QY|X>kfk9p~nO~rKD{wk5ARPfM!zA$jL9t~f0`CDB zRKZEasHX#;W*bD@dTJSa*i0GQ?2|$qaq8XoJ^>FaZxt>J+%RsR5G1fZBBt7a3VsVJ zXJM<)iu|T61#WB7_&5R(a%JIgM#lQolg$Q5 z8DZn#WxZHE-T91_(k2W@(|hrrq@K)yREKZyPB=nWftX!QK|)!t4#`ULgV2Et4)vD3 zKlT;XgajQ;OgO50ZSU-S+qfRpwwgmw^ffA?Wu^?^R2u97!j-Q2p` zH5cc(jSOp9jpS@_Z4<@Jp|%I0XUd0*R+Z-ZSM3RoQdtC!X*k3k%CZT9@;n_^!3aIFgjMY-%90Aci8 zZ@P#e-FeC2Rnr(EjUo`IwBHlx{?*V_AA3Kp;7MgvVOvDATxiTbuMwZU9_<^E2V)e- zFb>bEhAY51;86IT$GzSMBMb*Rd<9Q!+#3;KDY(EloqF#nI#L$p5K2EhCPVO ztZSnmkfFJs*iirZX6{Jaz9EHPvAiN5NDogemJu1E@DXx&0ahj*ElwohW;L6p2H9L`K$AXGOtkkpt z57GEvtJjyEK>$X_=>%?{3~_+n6JS+9cTWL`I!RBHaE%xab(rccDwu!v0^;U=pt7$u z)#u-jdt6UdOUc|+-`K!FPqkJDkLI$Ox^RWZ+(1&qvV zYmjP>yVQ1+N~n+Ai!Ug>9<`B?KOYy*bpd*6IZqg??kEpya-~Yp9vk>$M~mhv*0}U- zlh-`;3JQxCb5-@&C&3)0U0iQ{?<3<0xsDpuU?` zuTGH?+p1ccL6+4Jrm$rlFI*+>3h+}9Z?=mlvg+7^NP*=W$reg0avlQ-ROl6#F}Q8` zdqfla!g@m8ih9CiP}Asz(D~0wN$Fn*=KoMc07L5H-M(KO>cqX?__{KW+PA*?KJ);E zwIJ52N<%eZ_})~1M$Xmd*js&Dz0vqPj@Div>8saoJhxVYd&*izI@u>R8e@b ziS1uccTRz`xD-)k@vL~zMAE?dDiLH{cO7M7dhA2=J{S*q6{_W_4^&<1s&cXp7FO1{ zc9FL|zMZH0I}f%dBWn(9-c!lm(}+lp@xj*%j_HL3FoO@C$pS{c9XYD ztwt4*pa~fZPX@S^+(`u+3y(PE0`1rJ|K5(R8)uD&az-)UD$Fqky zq`NP7h(wp}!gQC;)(W4@z*U%+exmB(8gVR!6aB7hp5P@w!0)B z1JssiB4PVZ5Yy|E`l(ZY?y~&jVGBt2-<9z+G~fT>a&o-fDJ}UcH=s7QizqD!6 zt;ag73Jm57Llh#U2c!g)T}~Uhwh?X+`FH^F#rDNO8xcG7Rd73yK^j zX~4YK9~127qitxN=}2*&l5~8$BcgN>T<&WfvT9+xXGUiKL7AMvlB2Vb|99eaG@2)# zdvf((UO5Itvg_T>Q*Se=WH3JvT#doEBHnn@#Sj?E+lEpEVM+0|c~~`MRQ?-mS;V*7 zRyxvez_H8ik!jfe?1AQR+bj3Mb9~w$YEp$;GCPR0F8pu7%fBlyf#EQwh!l4D$6Ao{ z{ozKUqc9XAMMEF9q;kxY8#hHf|ft`5bX8}K~B3pe$-t-%+laIj> z=XS4Q7Ksm?qFZ&#g;yj554Akeh4*k>Db&z~)1LNmrw8M__%7tX@XB)XMF8@o-+G z4#mX~10Kv`$e*h!Te55h{QS<)Y;?~o{SU*vKPVH^ZyyqbDl6QMX~V}F5V5%#*MDyF ztvV?{-0GrcNJ+4IZt#yyFMTXRa!tS>u>`8u9;u$7F1~^{CvU%uIC~Cm&m zDsajnviaS6a4H^dqmsuDcPodsrh-&pz~|v#)Mc+k&Z`;|a!C^^c7M&C&cs(Y)pVvg zx9}4`FU=+tOD_U~I%UAIFE$(SqcSTE-M|y`82L3dkVSO0W5nkvFmt0E_jquZn(Are z;9;1IGv6oRmJtHh9#-eEmT|U|{C(b;Esxvr-5YO$`8yGfwhZj6Nzahh>@Pn%ICxzM zM6Q}Dt2=bZFqR2UXN5H$5<(;ac<1j+wdh~4fy5*VSfLfDGQ0bc5IdAu0fj-Zb!mh= zvWa=qnxn;IKS6N%mq9L56QQ~+&%L{zNAUsx@44c+hbGzNPOoS=g|$FcPZq$R@g)o$ zsubFhkg~-exI!Uun#*Z52Jwlz1vh$XmKT0RLv9XslxKJU(+``2`UYn8^=Vdcfzuzw zyI3!O-LP_n$^T~Zov(5*g0k#f2Y6X=oPn-WG#3M`pdHiO8u-d%>6>4Rde}5m-oz?AyhgO`OO4(7 zq^oM7)%jgfYC~c-YF)C{JefxbC=@Vd-hk!H0f=SHTqM42tAjO?f(xtHJRNpbVAUdu?) zbI*W7GH(Y9yU}pJGTVFUC&2JYOH??-? ze=yCjIn--h{pcRAW-~E7*D+C{Wnib1l2vM)vmdtR8hBfq!F_wWEs4K01)H1>%G0>r zKMkBXB74(5@KQ77JIx2U4SS*(QO;ATgO(#R~%oID0U->!rklx|eu4(fOw_e>i zjs?WeJ67ZvbN)^e=_47dsRAK>DXvkJPq_IhwCE9R40<;|ajnLzP43RI652B|0rB*{Oj7g*V0|AnF|dBJdPAN zgTI2dFey%nMr`XI85z&JdL0U0KOYT!(p>hB1E>F1u4wPu2t@X)^#Jt%a`g_tc=qHy zBPvm9SsYnVEFb1sj=c8?U&6pJFkVkO^N{=%FU$~kPf#FI9gkIO2oe`-+z^+=jnsLi zjr^t)DK!za)D4FJxX{>;u)W+a!s*M~JChB7Jie2rv-qDNHe@?s2%n@8b%Xmgi=j}a zunO1c$EwnO@gYPhEXSBEBRXszqpq`F-5ey!z=tUqU-R zIytNuzh0Flwc&c-e&SXK*cY>LIJ&z7)t z=B5!cmHnDt97>eQ+w0b_$*RBWH`wHK9<;aS(5F*hfCd;Ye0i*4l(fkI;jHd#7h&V- z?f(XKJ#0lM-QK~@j2`?`mi;B4D^9zrbem8IcWh9|{<9C=gyPzrl=b9aX5Oj1yG@WV zd>kAmla=taS~QwKb91bgV?F1F5=Nr(p5M7$)Um{R#)RwDyge}W)KQ5j3EBgy7Ui%7 zxkTE1uyTFhBQcSs|1j}{eqqb0?Ly=y0{mmt_OWu>0%Gd`9E#pIhF86%-(J05eK;=l zyEQ}vmfPLDF)-B+ue5M8rq|P+Zq{uxCxZK5v8t!$`x~xZ{%=hGbG;5o!T$=DKryq) zpkVnQLB3xIES5$4w4@N@#7a$<=lrpdO9Hbt_{W+deadI>J*UhyJKyeke0-;Hy29#b z_E+vqkdj|pFwvc$Qzi7nhBe)cK*d&OwoN!JnAJquN@3}`jFsT^YdGfHWu!8-Hdh0 zV~}OJy$tPp_ZsGn#__+IatHx%2o%kOG{UE}?iE!E6)Mm@GhcPP5Ifn#s8ol(nuBq%A&2qsf?`=u-2`zuuW83iGJ%wYBxFn!Z+c0@ zsV*k()OqR(6+Y5n_0sm8WQ&B(N|)~Byvv@+BY$`l48}CLO62D{^uA5s;*lnNYuzYi#O%xh}?ClyRyTRdvG?-Tu6ZDPDz*= zm)ZnhJK%DK#f$D9MH~Y`nS$g(AUFU31ToXmZ5{Y?dT_urVh2mE5U$!l&5FLq zE!ov4bm^MNtWQ6aZ`5p-;XhAxRP^dz%N_=R8<*mB`6apE8Jy{ai%?Q_hx~`^3?u{nWheDt3s&cIN^)_c^d;Ke9pPkFnT%NDC;$GT8PMa7$u z)NpI7eFz9@eh)!nBH77=6s~1WzSr;KTDr~27UHzkMXuOvi5QWKm)1HVSYxVoII37+ zhdTsFLiX_?HX|-T4M{*572lKx3OOAbL)8Zgy9Yqr(OVPSQ0(a7a6$PUdNtc`i7mY` zGT$bRf%CvoolJEfDjZ?0(RFVcCk?1I!)9`s%_g> zoOE5NtMMqRf|?_y(~@XJS#ruvXs(7c?Zn*_#)A+-UW?q>nhY|z}EwT6jH^q{Rk*_=KS_Iz>$0-B-VF#groka=BDw zn-R+?FYHXRk9eNNFsOa}Q*x6)!6i{%XYu?u&t2)@mC(c7pZV33USuQinH7Ky zmjQyym78p)Xg@762qwM*7@M5dLU>bL&}835KO8!r4o>^n7XuKxZ0C-$Thd^Tl9K66 zOA0JjeKk~1a)1|e5GZ@i%;3m>9~3g5=qis^uVwT;y^v7u5W{H?kW|jD4V#r_qQUpY!5q1km{U3DJem5ekW)mgE z+@GiPH{BBobqX~1k`HiNT6k3WLtzH!EHQqN|{-Nz+L=CgxGRyr%5(S7F8L!L@Fr4t->qscg z*n1H|Uv<*7F8H*6XSyMzs9G-2@%?<v=*tJxe0S;A)Lq?6j*boy8TyU{a7;r%8US{gOwEEW@im z?(zWZLxGb#i!q*og--eCgUo1|Y&O-|S-1?C{X~eJ^QS$%w0#c+AzMVvl;dFxu8Bow zV3!t)lN$?Vm^Ncr1`9xbQ5>`m{Dsp{3s+yA0Heb8R%VRCVG&?#+XAiU#C>xWX;3*zg>_nd zdRMswii20_1BEB1eb36Df-Cn%?MF29<$d*zCO?VRUECDN8}e~gYmdiLMJfvzHjjjz^-Pv_!o`Hd6a?#DHClrUjagq1(l^XHMXI$UuEFv*mb`u%%*bM9Y_Xl_t^G)X+ zBp+5IZ&w>5Bn&=5YWcp(yKlckL+B*jjPfTA0_cq)FIQ6};+ScYyJuJV0ml4+v7+}@ z>gTM@)mY$B83vzBE!2JK z4VlbyKWNwk#_F@3hpq>c1YvFDI7d zK;~p{4}!pjX_u}idAzaXR&y2q-;oU*Vt%)SC|bCV+4#a@+c8$WoY*R9jtu4wzdZo} zd}Mle;rhPMN4Z@4j&h}*ftCFo`o!eCnl7?(UXnDzR;}&>rm+iP;akGY zqKn0}OzF_=rLJv8W28aZA-=~H%GlDJc|*zfuPSb3--0lAGelltGNZQQ$;-IMG= zL!L5_Y=)(Ob&U05FkO(FF6^|6xSCs1dmE;kyzfDd`6CabnT*9LKUh5zo&u!$`zx15 z9f>|az-x1=mul_)(>y5EWqY}=Nc7AJeQvIl9(JX)lJ=-q&IixFid z!JI~QXTYrl!oA|z3(TUsU5hcGgoXKQn|~HRYt8!$5CQ5;*PFhL5%2EL5w(G`bb`7I zFgB3EF~PD>znNpnzIV)DR`bi+SoN1}_8|-rG0t`dqic`FO|BM1D{aptl(r-rR7X)y z5;6pAs)rgP)0KT;eh0BaLwF(r6-5~jn)peME~@adxA?^T_i;;^f~*e37lp*=L< zxIx;sLob8K?d;bX8z;VB5moZ6x~$R=5ha(TWB93g|33m8U@SI*w^8wJ13>$9dqpIl!&HI}rX~#V zcbK~ZY7rGf4EoMMh@2m;)x3#$j=LwHI{l7lLpUFLD`bhLap9|FbT4^jQ5 zr!slzgGs)?Ip_eYv;j9!HyE=)HD|E@`4UF;`d2Qp_?FWwJn?bYr)Ct?BU?bsBvn@! zbGf!I%T);vul=70gJl?xx75CKc;YR->T5@6gfe4H?E|p!Ti(h8e8a0zv1iDstpT2( zp9kd@tews={Hh?zV;yhNw|@$3Lf_;LS-PVNBRsw4oV2j34=lXVJ)6)zzs}TB+vjxG zWwtQ0(|GXC6FP>q8>nl}33We5L5UFzzxay+jZqS*cAjwg$73I)nBPMNp#aPT;_J?h z1rI9DK9~1$dSbp8omk{<}RcGiDcqCm~zs{*j2QvJUx-Hyy$%nl5sA>A!sPBI4zCjkwL7D5BiLt(w!55QjjZq@agr0z|9cMTP>L zWK{!~xyS^@S6tIifvgpj>dmsSC{BfAqPwz%g!TIjVJxQ1J|tZeYgVan?y5VdIjmbB zuVH}1cN1*vMdgYBlC!p4GD18Z1HdU02L@M-l>^CJx_;=9u^Zlvg)t^Ae~woRAozcKeOv~5@`$HNuA=0OOp5hze zAH#N@EXJUF#9}D0DbPMdmUr8mWCP#)+i-D*GQI;-7KYQIo1=(|<37une=>Sczgq;R z`r>DaM)Qw4!hx-x6&>!b9AO<%3&1z{v(5$tO2hv-nvmofIHsiH<^WRZB8>K6@_h{@ z$O&7LYXkIQDQ~+8PCo;>_xT!AII;Jt4Ma-IeX6K7`NZRtJx)z*VG2TK>u0Lwi2X&) zbzwIZ9wgYC9CieCo?Vm}^z5QBFjlwrtR3T3ga0J^Qqv_LUtn~m;dabrHI!%$)!7oW z|HINQVO7g=?!WY5%girMX$0P@yVyUyGr)JR+s2&%BBnF)uraxWpEwj=)MYN7{jWv= zt?2_BA`fT{m}g198iJK@dsex7PVhx!gbd(rNL!EH3x_VxqwS?FOEmwKqhzg4E$AhCN!h_z5{wq+kc%RQ|@PtS9lA))k{5Qg;L6nGQ z4UF1r$xD&$z5w6B-=&hSKeq{U^g4xb5_;RMwS8*pTlPAcqFV{$@5Y1#z+u?# zAD-hhItGy3);$erPGR`M-4}oT7)pc2dE9%LUI~c!Xek8VY zh7T)YF)cRR7wN-HqHEL*=z;1}QlfE2yupl|KT#tW4Lb@{0Vf@`td!Ko)#z%%9Go$0 znzJ;QQQAo!7@y~d>iz-4?Lci#leOf18H=TMCLuvStf;_8gb3iScAGQO-ZQx+uR<zXmF%9Mxm{;3i)clD*_3jCKnBjH3&n z7E$u=z29LuZB&Ewj8WF#PqAag1m?c9Up z6!56UUm@y1Z0HQNLY}zdzuK&5r*7Rzo383*49C%$$C%jC6Bz9wUDJ90$JWnPn}b{( z_5zRzQ>n(ey=w*7IWf=6fR!v=J{SByYiJuqx<<>owpjuGp<;DyUhS|nuKUUv%rbs@WBjt=*0_tp{Pk)iCC*yN3c z4nJf^6jj&zw-iUzg_)VP%nZN&RPS>Y^mbThDs;6gTpk(O65|>kd_qvk-`1s|`^C|s zXME3M6ieNuABBl8uV)I~!w(M^2`F`KOH}F8O!NF&cca;f?ZDZ7q+a~2xiP`x*!Pv$ z+)+16obGFC`HmzT%xc=2VMi&x*_~{Vv>B_@RIV%A17b%1T)$4GXwO@nAj;=18+xle zG>lpzys^Yr*`b}TapezMJ^o;4JQPk|p@ugqZr}dd?X~Iq=8k-*r~b>@&^I#NjF*|c zPb&G?y^rZP{_MpC5bx*Saw@pcSkx;(E%#5>&GC3pce05Z%oPyx z5r~!!<7(l#z#Qddz6SDAZ-jJ0!?{t1{@QGwm%QnJax{YScRjbbmXc*{?(H8l9Yep> zfBAVvtnQLtSEMvNtgd9Y(vHOS^S%{f*&t}_z_&B{99L&bS4qr%ec2Qx8h5HsJnydm z6g7M-bdG#bwVQa?uzv1HdVc{-9-ZJ#KPEnzKR#uzPXd05G#O9^AnJCs261s`UM_`6 z*NRkDgY3&|u^;x=xRm+kX>5P71z9%4l`*l;D?~C&eeDVvfnbkmI=@7W*;w^)^N=;_ zt|RIL%KBC_2gRgcT#iP|x);JEiP6-!elQYT=Etnfl*7Nx_#|>-7fHmpxa435*~9Kf znd}6)fcCg({oSCWQLAwf@C-IR#tN4kId(uo^IO;scv)we7^p;U+@k_85AtA}Ew@hE zfKc8}qyFihnGP2a);YWp^%o_Nubj&>#8 zKp7T`3V_B~huCeCdilX0j|tAlpqZIm*!(?bkl=+3?IWy4br&pZb#_mWO$%cxVSZoO z*;@96l_f>d7 z!2jOeVn8bzje7~xq%N#hM$(=`(8VQFGj8H1@}-_Auy;mG*B8hzt01$g-)pg6@?>37|yF+ zPlcgF%zQ@x3QPRCmjGrH?*B;6#xICV`LfG+_~VGPJ4aY{APNSoD=x`pt2P0$O`tQ- zdCMV28~qr=)ZVcXMquQzF}NT!nOjy+pUR;2g`g!km9FtO9N0MRCfA-4(Q5f90dT6y zCrO$BFOY?$DIM~VxUxw41ENJr--gc3ZUzzJj}lZ}Gn7Ou(nDq`0&RMy@0mGh^S~Rv zhG9CqVjvWvzB}-n#fXETjYnN|8Pbvr1Z}CNBJr?r8L% z+=A(2Er^#!S*87J)Zs|0y|~cU{;0ns+-qFSrJ7?WpICg5Z7g+eg7lRf5Jkwcg!D!Y zN{Rt~-`xcVe|9>6Aw`h18$ZQ&-jLgNo?6kgyt%YiK&xFU>{zVGo#H z929)WV#{&o2(3-Ga$SxsLLSl*y2969FK_yrWGw)@@>rFLYJ?qaLsEAnMZYeyJ@luG zM^Vh{S&(xzf8Xa883e@vnKR}wxErW?DLe8EQ(nDq{uczts5Z4+>=;2n9MX1Mr!bGP z#PX_$4}R8rAwW#*BIgVumpjwdu%1Ix6zNW380c83U`teuX=IetJ>MaX zJ&qU|6&=dKlzaH-;xb)lsHq{vbkWRVmVic(L6+~ejT+14QZK@l{pFXz7}&YR$2zI* ze&%{@az4>~l24jbPkkLF&I=R}6eHmPOrW|Qj__}(3A3ykU_=_sa%odUg_l+Uj4Wlb zB&CyiCO!y5)k^t-h5*#>`1*`+hjvPMUQfN{g&342!)%YS;$V9oN(sM+LWn`baezcq zc+e-0B|ydQ_ZyW7^3tft?5~o@Krw~}ePArcLrsL&@}?rhbn7QhEIUg&g1lisH>76L zHF+24Nbg$u(tz1}6{xtKIdAW8)78X^@~#;yuiswOu8DVT%J3bu?hwltj&Cm%-T?j&23?P9{EVb?K}@7Kfb?zh{LM2#)ML|H zHQHB!D*4d@Q@%7J5{*lyO9&v(pbPoR->3NF2t&)c`q~caI}UYA!cJ^5kwA4RZ7QI1JN?*yi3+!t*UQMFx08x({GI!#i> z07O;U>E`*cC>Usy2JR}+xXw8gq^&df3zme8yj}iF8opgII-G1wKQ^wuhP$rO?^@B19qP*V{KM~u7W-O?iAijrT`Q!PaD%(6XpkEA=+?N#pnT8LU3(PZ_p>$=c$ zzW@j}e>l58wi%r^rgols5~k4Wo%B*b0E!f&g%_z;QcZ`@qZSBuxl zvc@)^Hh{DbmJ8Te4fR)VzLGj9;7G^+UATPsZQidEq*`MPJ7&%oV-XA@@dSd6#2gO| zVT<8SZ#l7^=-~~hkoA@+m(OwWB7Q(QzK7;e8+@{YOVGg|MjKeCX9iiPd%c)%^QxyG zJ`5p}xZtlYOm2|z^ zCH||U#B{6~S{}z$#K7QUUz!5-s=58a#-5_*-Sjr;pTifqTt~9zX*cHA*74z=bG%!9 zJNQO{?pQVK&!ME`Ca@60mu+!M>wV13;MjZ;Vpw>id?n-nFryLn3#F z#&tTQaaZlGJi-ETvaXD+-|3d=_ni|w%zhr2J_Peh%0Rytf}5f3_TI=TOomf6C#s^J z`ZX55bMnLas{RI01O1CFK!n=u`Qr}H|g zU2{IsDHw^D;X~J`AkQnA*XzG zG{z=&imH-Loumz zf%77D##@d$iKKDa0(?Aq9L1>OJ`HB6qPAkmIivR(FvyX;io9sxLq|~G=d7WNTz&7P z;SX0SBwm6j71$HGJo4QiuNu#&Umr~(K>C4c&t~25{swBOrZ#h8+y-*zgQ67^!{PAY z8aRW`2;CO=+Qh4}ZrxRwOxAD{_8b@B&9XYavghf`4S=BIRImt?+L(9Dfup{C8n*eU zcH<+3*8CK!%8=_;F6kC?S-1OC0X9i-RyO^qBb*K#=xu9eels_Z<*dUz*F$91nnz!f zv-*iI!73<0v<(~#*ONKeeRJ|)zcRElLi=t{t`GNwwezvlLUb5%0ZwKi?|aK!$|R_+ zj5+JCf4ltCUoc`FhldiOzv+rA8b9K4(TE@UmNolV=G*~j;NiV~l8&=%@k+4@|coY4Oa#-=m0MUvMH z$FYfWfu)4FH0A_tlW9<=Zg{Vy7?<-2&=?BdEeu&gaG{{U*; z$A77d$oq_`A=5M{ja3PJ9lWYg^xMGPW3;Tg?TIeEZScXUzk5tU2&@*DQSvpD(%qao zMhiJH`Cm(+1}lpa$&Vk=+eM_OSk**r4EnpQhF;H%pVNx0YuQ#?f7W>a0Oq;PXEy8@ z1(7xvj*7GFE~lPylc9+eysJ#tnCacW{Swv~#gj{aCCHSTy$%6 zdr_oyc=3hn3``Q$*w48cpBQt_t3&ATponsQzY^C)y4v5K)ANKb0L@ysSMXHMNtsQ7-z!QJ8nGKG!Pz-6@9p>r21GlmJ z0t4t)t_O`DZnaS`q4Za!_5~puJAE~1Ad?rT)t`V4G0&f-ZU~4P`?T1`@5Vteu;;=o z7+#QtWQ7)JmI4~`2ulw&FjJh{jDe30ykvBwE-U^usJvySH3pPs_}l?I z^n9Pi*IfwlPKH5Im!lRJ)I@PA#xLRoBOd$y)Y96N9Z05xGTJ)!mk0RKyaor*Rr)!= zw@cLC9&v#>#2n4Jquwql6!Yt?SqH0n=No8bz|P2RKpHhAV@`NUwtX-#bFg%OsEXJ8 zWHXtZk%3(qN^NtU{YoyYyK#iYj-R6Z=SEc>fGmKcV6fxMN57|JTY2|a9*CYXui-_E z{!1a3%DX?ANr%d~9ewdd2CF+8AZ$YJ8Dk)bxu7BG@^b;3zr%o5!heqlf=SIMFg?`h zGuvkU9N5@_4Lr$STpO4NHqWW4C@VN$GWTjIBf^KRWrOIlBt(D|?x~jd(}&V_=pdfB zSBsn=X1^?NOp|#keeDJ>A9X;NkYHl^iXg%BYB$WqW-c@1g-5S;j`Fy5=!rqih+BVr zD+L=lNnIA`FepiLDFN?nX^3eYJ!TqYQGhw5zf`y`|1bt7b6Nt(RsE^Ff;;n`Pc3ia z#90fOpwW&NXQhN7=Sm$NFzX}JSX$%tL35V%w$y}n1OV<(u4 z(W%d&#$DB}4icFzBZrpd9zw+(6}H*UKtj}GP2^{)rcl%mcT zC2j30`w*AXg|PG)K=hfn&PW47=6lJNSWLO{NigkNc?@oV%IElPYRkv801maovx1$g z)xve5{K6R5ZZ2%_)Psa(m#**OFvJo*-@$Zml;63d+yekq%oXXY(27b;$tDH4eV1dH zaF#gj1xTOGqu%U5Fc0G^b!NAcQXlL^AXdh{&(nZd&SL~HPG5&6d zM91O$vk7KdujOFy27jh$p zWK&#SE`vaK{6Uu$-@}elDV0603d=+oZ)TlE`^twbS#J$0?35NNzuw{jTpS%~E*(nfV2< ztIj>iYmdI#w+nc{b_+-|CQ}(A3p5FNYMPYBmw~jJI-oFNCZ>dPSvkKT{yCm1-11bwf!FzCBs15id ze2EA-ht-1$BmD-_7<{^IJWQeEE9-F@_&##5qx#I!!XmYdOxK6%pKtTpc`MEQGV`Or ztw!H`W5t?7^7BYIuUT1Z-Rs=EW^8`7sQlJ)t<~alo~m5=@-oeU- z-Ah&jpe;fs`S9fmJZejN?=Xjm6Q|q0CDd|_uwg4)&k5D%qIrYP*6p$**HxsBFZ@RBN_u#iR56c8ALxBhC!UkDIPIf0{m)=r zSOgD|-m895TKNVrta0`+Eu-hI@)(`?rJTg`g=vDt10HE!MIJ+GD+l_ETjs*nu3Hx>b9AR*u1kF%n`;SMyX5gL zVt@3S{(LA9w{@A}LujaA!_IR2ms;M-c(q@N-4D-E4V=lsTfl|mo}Qp#Z^$J7jhTX* z;n(ZBeX+Mf!*hsNPb%2C^$2II;G4C(;OgHdj1kizL&ds^xf{L#IR`_^|1~2 zV!oGet|BKCL{pO$BCe{C!&a@o4r;;*M>yEo4J0!sJn3y_XZmd5LbOEq15{$nX-99v zX5MPzC7r2GdTaPHJ9*&0ds!a()jerxFYje6s#s>5rx?`t_1aAl2RY}UzHj<3wZLMd zNny`+y;X^6R4yDn$9jjg^JyQ`Ue&p7Ez_pw%~;Aql4?%M1FA)~w6AxTc{Nb87i8yU=$Z;c-ovlrjMe9M*FMe5xA zO-|rR310jr99V5((>$V)NcQpayIrwP)@x&H#dAK2IX-}we*Wrbg6T*=Q_^wBzB!l| zr29q$yyv#4XRBhGELW<-F@CTv%_ze?DHU&gwP+^TWnkceg5B40u~=JC$`A|b>4^;ze>K1z!b%9&-)fz@@V*-DWu z*1!BFp7S;;Gg+8s{)_bg2>b51rn2q(sEmLj1fl}cq9`_s0i{T{fDRxkjvdg@EL1@d zslrH&fT9#>DhhT)q)CZNXwn2!I*|_2q<8Y$=LQsK=6!$jhwqK=^SIn|_St*wwbnkj z>W4}2T~2t%tihA=aMX>N0Ro@=fP;R|wekbsfdA|h2IZ9&g(XynN1}HxUgl5!0(`!m zow(lDr|SdG@AOHm-uJqlmmza-o+Yq_xsU3-3iv;_0VqaVBx zq;cq~;q_D$)G3#G3y68DRI~3dr6P_%njiV1%tL zH*I>fuBgq;pCNz?%K1LOPsVBHx5#e@>XZ&#h$US8itUv;cwvqetfap36COx5r>w&=i81$k=OHKfn}Y9W`6`EA zt}+NPyD*t>YHYu*l)W!EtmjI-x8t#^uN524e6MgFaR?o43v~FfWIk2|C`N~=XJwVD zv)*33>Jj!O)h|YXtF+z@ZlEzb--8 zL#D1+bUVOY(T6nREl76b&6|yaY@Yazs`vdBh*ZQ~G+TQtn|ZQ9*hpCAgk7AvC^MyN zV#u$qJ@BK3bI+@t>e~DsVYe@&n^)|VUG+19Bv1tX-vvokG2v%H>X=o$?Ba4~ik=K> zEU-tAK#_01mZ8p3R=0?lXh>HX_6|LK(tl9z@~$VId>z~cQ|<<_d>(w)DeA>85p44b z^b1e^CaEXem?v;~%QZ-3pDpnOs%tZpq~X)DPwdV?0RPQ@J5c{e*^!b%+SByS21mdh zxJey7(X?wf-u68wG&EicAHsUh`gq#;Ta3Ne@+!4$&00#zW^WB#b4a_ZImw@M{)wAg z!tOfwc0r~}%$K~3mr)Hg8&WQV;`#Q(8tg1Wg=lh%XCo^iYv7x{FVBWPB?QTf z9nZJnfC4dmwq%P_q_A+Dk zVx^6CB~)E`A9h0(*wN-qUPWSebfczT?}s>zn+@8Xt6tnW*}D{i$iWW<&2YD(DZtLcN)9#YKF_eM9R!?nY}40`B+`D z*b)H$>ve~73O@XX?nPoxzKZ#=v z!4S`|feC#XIjFld*tM>7bMPF%U$V<=63Mvh$wy$^*odW2VH@pN8Z8hGxXwB?zF=hz zn;^@?UX?3d*7TcWYiQ$QL8=#ec=X<;Rp%@TlbKJYI~)XaOoHJ_(&N?KwCB<3UBo=+ zGTXPDWDQOtl#22|eSl4lA{hame9IY%d$B^hAKq(?pHYZhD zkMa2|TEh96T;ysXOWvAs<%H2Pj$Xmj_C16IKh?Y$4&a1B{7l{pv_Z&g*a}(Z(lTwaZnfTvrV}2dSkKLIxfvL_6L?mAJq~ZWI74`jfT(#5g;fM8~r9Iye(CR&`u% zuaq5C=1T7>8mU&FJP5!n5c@NLydb@;_u&Tx*8S5TukZQzpDyz@zgH z59w`HKFXx-oBg2n@~!gV^ZnC6>5FqO3n^g9zKrqe&ImPA?!4*YqNu|8WtBK27(DrU zKMU!Z)dnB#mqPrs@s2U=h7ptC3$Q0MR&V_Popmoanh5|XHMwIYV2M5Of&lPN8^8g? z#huzpS?hDC5NdVRAr5uQV)f#74L1xAb{xC-hct~OBvf=eS(XpJazJiR-<|m1nQX2y z39*tqW1pD7*6o5=c}5ISP|Qe4$WDL5=%-6Uh~k2EIE}8}fUhj3_60{9^zewna&Cg< zT-zJ5$B;34VS>)38nJr*1l9t)b5dAFXJH|=E&rSem;S3$CZap=v^@>tfp7|MnT-}u z^_ue~e~cZfg(|%R9;^WmCghUj;9M~7tXYbCm0i9qu8Npfy&*4gyE?_(v8tJcblu;d zUG%vV;W=UcQOo>{-ek~PA;5%l(Vv33b0Fj4l1)N2@Tux~WKBnK!!6!JBx7ITsRPT+C!R2@Sa%BrMfHTlUE6>ApjS^mA`dG7dgpd^*v5KYY@~7 zKl}v{fFcVe^Tf_6`jdD0k|X|TcBImL@O6zIyxQ^r=98}C;Ypji45~-J%Rzf|2-2co zdAEe>hWVt@=A5_=%0QWrUosrJdF)4s>v#=5xKr@V;)5gf%_Bp!V(eu!`_wi9k~z6o zuw{?nZpbifHXA8jJK#qTh|@3PTO!nEA17)-$svE#WrT3K2o#*IEgT4$=_%5mY95MG zOeHV@+ZN}<4P`Jy&fx42w7}_7k`n!5ii4tT8A>WkA`5&=R?dF9;939PJKK4=Xq@Z z*g{e1Yms+<<6p%?t54lBzpy(7$$Jqz`&oiE{$7GM&*v~_LNRZafnFILIkB19x?`hV z8#Vi>+nf2~^IF0xP4Kp7>9gHm!~!^RpVA}Ga)j#K>Xh><6g~=D#1Tjd|6G>P;wmD`OlP&(<`oSB1O@>T z+8GNP>A;FSl0UIsj(+;pZVud;*h|o{EG5Zsj7c=0y>%zX35M#_4(}VQc*!oj90jZb zbb-oO5_he_PJ=KsZm27=Vs=IUg56I%!}9yBT}n2R7eP&jtz6@aZRMW|ANU|=s^djZ zHzv!gQ(ABplEUMz3^B3eZ$%2G3p2FDU+fXA%!A&xXo|e|n*x9h6~_{Fif?Qf)KxuA z(hgSAY{c~e`ch%VuHUxrsTA73PJSDTUbDOxfQy5kZ*w4P`hHfY{59Kremw-&qKEpY zr?M{!bf$n09W8%7T)`#tK#js$9e-)$*PI6=poJ;YY ze&^+(KRO@;r5m~kh?m`hEw_6{GAoBJPL)tm0{wo_3PxN_f?HkGnt2Be93I^y$-3e-UPtk@a!UyeidOzIoQ+JxZY@5;=z|&5xn}_>-`@`gvx9oJjJKe z_dqYRSJi$6;9@`mWQN5dTfEHq?T6qlDR%*QUyrJx5Jeh#_!d1wz8pys4-4tRqbxS^ zpS-+;Xj^uVu&L70gixE}gxS7Jml5{PODtY%z42BpUA*P>{(u@l$luF7b5Ir#QtK*6 zft7YESUc))zdNxT1CTHCiC$iS*X$_rc~2^;hEQ_b@oXbhil5z6o(=9iFPAgbjX+4d zu@vfrg`n1xZ?^SSOHubErG}3^ttjm?P}U#*mRZ-256f&AG2$JUxdRQ|N7YW^tN_fy zf0Bmt;Ac=K3ae{;j|-y4c=86Bjl7bLd?dDQZ%NNm)Tzh@m7ke#wqH?N|VxXG$>mEL`cWVh^z>BmT}Lcv*a@ zAg$Qed+-TF#Lhi}E$go+_j3Vh10Q9%1(6u!Cq_YN!Go`9@MSJLc^NOSs87x9J19-f z8aWmxPqhpLoZ8Ao{t#LwKns)igXG<&SLIyu@Flhr_n}F!n*o3TVDFBc&p;sT#5vgb zN-u-5Q!FHZA@b}@#xsS0H8}ShwdQ=g@uI&SFiGbG;z-emzo@D*HN|lHI~l{Z)n(cB z$-%KrZqB9G(kUF`@+MR&BW~ArAmSq$aU{3Dk4gtjUHA8Z%vnUEigj1x)w5xuj29@fS?jyo?ge zN73;>r!}f^fJ9$j#e_ zx*ZWB3ZZ#3w@}J_Dlikux!kqsLq?$p+TMy4qV ztvOv#TmcJK#%=V1Pzm#Z(`5a?4fP7!&1a$4((oW^q-9>T@!-pcTop--D;BiknVC^N zEzUT#RNAobIt#XR(jO;QkA4$62{@Mb$4uc*np4`Pk7!z}yw2-n8_F1Z(1|TfR_C}N zX4VkU=B*hisx$nW2}Kpk4A%LCi;6$s%WvM*Z2PiV?on*Xj97V;knv)~A$>D)JYtNO z>Eg_-{TFgZ%#_KMZ}YT{_$Ym~g`uo3L_O}z0XlVOlCG-4T?-93)Hktpyy4_HRTP1s zgirX{G^;KHPd*IJrI}a6X}%4OzPLENQ&)%1X`DUYqCeHdm0~t^*w@G-uq_LAu`o6a z{zSC^+Ghv6%q1KPX-RM@oSCt?L?=WtlSQQHoj3r^U;=GZmHlkV zq39~C_+*{BlV)ABzO1L5(XQuJ8O}HW1)dKjV>K3dO$Tg!ui6vxrt6Dmhg$Qm5j6mK z8Qq~?S>sF0vxO{Km7SoC*Zba0H>jziDo5>r0P+nZukZP>f@_BV!h(dR5!b)d$A;5N z5$0U)LqDs$^D@3A=FFAQ)lIb;sO!T6*;y~`GjSKz`xDG*Q@Tc8?;lhl4)~jY;MHwo zk^;=q6ZE7@=RrD3p0J(X#5m_`Ko6V;euX|1=?AIBO|l%2ENU$Q%OHx)?G%RaJ&i6P zddXd9ZNQ1LDPlVpI*Zy|M%5cou)cZ2tBye62ipK*9!b5vO2rK73&BAgmg>Jco&|)C z28l@oY_WnQja~q!<{@t?i1v=_hBx#*zwgwCv1M#zS!2|-n$B)^?l*!o|3AvgBaDG& z<8w^18>Q;q%y>h4p=@#W0eTBfi_Y^rHpMOINFTSjjB;hA)ym!YSg22HB&04FOaDO{ zE8&LiFP6DJxgx14yc;!pUf}J0V*BLxij)-R&~6qChZM7-m7+K) zQEo!d|7hxAJfpyA1=*QUAhP4ZuSBIc6tM@<8wUbXd&~^`YJhThz9Smc6Tj}_3>s_! zYE?1%jjF&xIwV(QH2Dc5H!=hD0T|_~(Dw^L@nOyX+=C+GU~D7CH{jwj1o9Avx*%b3 z(>5750`u)aH>@+9ZVR7jKGw|&2}MR10LA~2xyncCRsas^Khg-cywpJ(P1Yq=6YwF)Q|D#oo0Xj#Yzh9!^;U3 zT#B9d0=#W05*rbs;p^a8#ZN-z+a2fzwW^Gw+@i|LZr;Y4MYztAme9j@_c4@qk9|lv zMn%2qpVSQ6W7V0h`ucI9z<;M+EAD!sW;$IaZbLCzc2?;iu(fwINsyj4|4R~j33M_! zrXTSUJpiSUS8C5Wg@6-FNro|XT{V|>q3Bt*@;V8SEx*@Ph-oNaVFmQ72s8YMgu?UT zeGPrn6{l$t`yhpwl@LGA6|Tz*^G#>{2`mFfyv>w!0q>~bPGf>OR#Ll54;$I5@0-C| zJG*aV0q6wWb9s?Vvhob`k3jz>|6C}~hh7oHIVJ?e^RG@7>JDE%OE}}&*mzR7cS z*8zbu-?09!9yqHG>%jVcJ%**KwiVLUwDK}T^E_`bl|mH_3Nx~tZz&0!Ur=ZX(ovH*>i5F-y6N(C}< zukfLqI>63Ub&8YScPPv1bm(72;Yn)l&oNRFXQPqBHxpwBoXue*Bgp%Zu(|`x+Yajf zmCt&rtrmx8Wl2mG20DZ?8n_^UzDBLf};s=K(30j`;SV)Z|}QVaKf^)rY3o&*{ZbHYIgL4>tH+=N|ImnoIedp zl9){+64O9z`ggf`*#gLHJ4#t|PG%xnElJ@IXen zw@Yy7lNB}VjoT!~*M7@q7%3sBcTAWj9$@7!w+GhpVxJ0iZGfXc zIs{poQjgv!I6C;Q#q?0XMAkN>vw!c!w}jm*+hiIbHI=Al+TXAt1bDhW=$q!cnQRM! z^Fwt?`UgLFy`h;;RUo@wSy{;>YcL2_^@sa+S@{0aJy~UpWy5{my%IQ-pHvMyS&;Bb ztN64ftF-E5tk6_VsFVGr9@H5;Mcbv3Za-Y+)_OqHNUlnNrk#fNObd8`k01uU-Tkg0 z;*kt15cAN40TBma&!t-;U@iQYdnz8=G=8S6WuZEUDIvT&q=C{ae{VRs4nDi$mUeu0 zELWs|a!L4s79@H8AH^q%*jK*~l2#m$sG>iVWg+la@L%bx+>M=TwJcda^h%$n&wn__ zOjcNfW9;0YPoSAsc&nKvdKL!{s>LPAoBkNP@SRB}p#7SP*o`M#PTJ1oMTvQtfkNuV zpM>hS{vE(M-S`Lu!}@DuTCi7UCz&kGWBSq$e7(!-vVTVV=F_LOuat7r5D_MlqDvXdWJjw;))K=hLK6L_%-p=J#rlAQ^|LNpGM zMc6@NAsEmLg^}=p3(`Hv7wdGk?iqcP7zFAbQb6wY&(KM{l!UXyr$15VzcuLmrT_p; zC=1zw%<(5|bXaten4_0wp7!^SDjOhAKenEH9B+&@e}z@qlNyx=a&fh7%g>6;F%Kw zJltlXPuJjdCz_ragq{$Z7wA$!Q27(6-mjSKaPEkrO>t3zo72Q#O!nI=Ha3nk2)Z(%>cGdu+6si^sHW%=I%5ywK^jTUm*E`ly{g13I6e z)Ht&YxGilwVC~{!QYC9+rV8k8y|4>sq*Q?8#1}->=5%b#d4G8D zeL3fNNEDrkhVu|H=ZJcz1Z@q+ck}b-zL`S;3+x%vyFsXOvdahAuX8>{WhX;6JUKE* zZ=|@HFsV9s$?3saUIm`KPL-~%TuDS;`5^KNa%r*jHSH2Bp4@dlzSe{S=RtB^_Vhrs z%Rqi=^t#WO2=NmicPzli?LC@L?$g<3k5mSA||JJPpGK zc5Q7lQucfKf*nHP1%DDW1PurgI2jbsChP<9XX-+ajq zo!-)zR3-+kJ|H5oIr>I5m;5l+nHs6HR0^H~}CWW@& zw@A!a1A0=iGogGpA_J!oM2}%q=}qO*BWucB2PK1^obL$3KMSP%yYS2zZ)6s@H5SrNi#?=NWj14#G3D!zMPV(TIJo4~BVPgt zS+Wn#I@m-&nr_SwAewe^_O05b38xQKTGS;lGqqLF}E#F z#ol3YxD>sYsJ9Q^3KMb`dTSP-tFopeZzRRoJP~$U3|xcReSWvMDbyEoeOQ*|<*EIRv!) zi5h2L>K|%cDs9zMXlPNRJ8K7#(vp?DB)o)1!VnWb-wO_)MMb7gKY;iTX}U=Yo}9RR z`bs(YHWJ;25mL{94TLZWWOW7E1$TGH;I8s@9upYSdw$-@W{lBARlTYpuMKKj?WXpV zW9uTF&L`wB~a92#vqX%%_#;gntfc0U`JE?>8=jh7;A2c@#AHnk7PjP^`lb##2h zm|MPJR5);4>>pgC8@X={^!hg!acT z(+lK?yE5w92UtkU{Ma6D4+`J-Gg@?KHCn!T@jz`aZGr-{dS>eJJOdPQub*f-&W1P) z+~jKxvg?qF&qSmZRKOo;0(k{fIB*Y&V?Lj>gOCVA*o`l^25(xePVw8hcr&~4$Cj|n z3>wtEuztq_zv}IqaJ5Spto%>Z{9S zqXZPrCe!|-8zfPu4}D1&=OR(7kkw1!yDzLlpEIV|q!N&25aThDuosFTE;m}JGTZ<% z!Dzd>_RU(+peayl=rcJJgH#d5K;uU>)60T{bS-U69D=X$-NqER(k2V=(aCH_ZUqOB z9|A0))mL3iH)=WM#Ox2>nWOD`CuX69q=51YgFU22{{EYRt%y+rzo9SLgp>TdWs?Tu za^N4*4lQBb0FtpSvf@a7R!?7hD_ zIzm%YQjyu7t+edcC@KqIm|5!oSQoPx2Y4 z)VD8goE^^E4vt*hBhfl!U&R35TUU^wu4_U|3>mU}@w;)=B{$vTmCCLq_~k?D|J>6? z%}Nw;zB>JljlPuBfo-U4Q|MR~8wz@4F8$d6AAknv)>zGTK(ACpc)t60&{vgE3{fKfT&miPv+gDbEy!{$}}5Uw{DMH{4K^5V4pL0 za=jxAVhrk3XWQ$uCuXF59N&AwIljH?10Uw41FQnO$X*71-OYm9_}I#efa)SMvOJ5s zYIdko?Eb$+Z4z}P1&jlb@3%J(57*9)GL&K0oV7qV-C?@o=feHgORe?UTvaDYa%fN< z-77dW`Q?lGP|1xVu@#h~*)_+3KgdppOyNw$K|6wp+n#P!URXt|j0>D@gd%7@d><<@ z$MeC$`I?$z1cm3Rv=(15QsNAiZtTIgD1gpQpxs{UV?#MGJ@jA?UT?^GEFh#v?1ixY zfFvm$f?&*t@4_8sfAx>dbO|VgiOaTtwcwv`vJQNez+?D&@`?J{h)b?l>3FmE#t|l{ zJ4Ey;+}4p1i^LhGO;ii~%Ei)3mmEY!hPu;!Jirvs&QzvnVc=9QL--gY>SQT(RVJ#I z@Q>w6Z&3C3FJPjXtrW{+Xr|rY?oX&(R&I5@N*HJtBt`!()VBvOh zlFfS(wNRpm&ZZ^e9>&F?pB<56j~b?5V)aXxz^qDS9?|gDCttcdRSf`O>$t{Ny7_Yj zp8a9#;uHb7fITKgQ*tE}*em*(3oskkr+J2{L?xg$H^WeMWw5GIbgVbx*gFDh#Q(~gP0`1!B1{A zSwQ*CtO%JXO@Hx1qOPvaa5k0AxU|%uZsf}y2EPCK6Q@jMdtTuGq)WX6iEw!!0#V{h ze&9^P((8cEK_~ps?0AX?7rgbEC95-Xlw3yH(E>kij0F?@oKW|B`M6djrl1kXL2qz* zJ#7VA0yNQY221jgi!TBRJBR=VNIU1afwL5G4_M3x2p94NYmx|_VTz*Fe?jE6zDY_- z>;6CSXX)PRB$EEq3QSUXO@y; zW8tjk1-=`r9{(yVgbvsf#stKPHBwwmz4@ZMQFq(u4P|%UAw_D7cWWaQe4Z9N^t@P| zav9i^(mN;Rf-p&kF6a^VIO5R)rWtxyL`?t@60Im7_Y%^eop&00#cA2|Gxy;^f7Q@c zPZ~&e`Dnp@x<3@ox_x*}GNxF88H)ssA4+ih@p=?ETbiZQCc5n4V6J#~t}Wt51+wbO zTUr8<3)cu&&O1CY+f-A|Mvj>W3DU-B?mes;6i8%b=T_gsflTv_|YsKllwXtu1_; z=V0P91(3iD-_1b?SC+(hi$SU$!VLG8pwe@XTb0T%X=TTrg*tq!-G@e}>03{NsbXn5 zO;zebHZ(9AXU)v2I0K`zmm3>ctq*zvcBJh8tIfeG0(ui14S67NFP^DVp3LM{?gMrn zD>aDwcUig&nj2KTjrVrci!J5{E0D_NKFlu}*3SxtQPYaakJdX!GktC#+u?lT2QwSC zNTY}_b~pGel=t~xSk%#>2a@vB5?jeFL72+G z&S7+Q1+!DZgC6rU$3qdhR9XTaY}##I)QtRQAWx*aBkSG;3ml(Qtr$Zw`TeH$$;mA< z)O`4nDk2_XqS;Qc;9DmUbe_})u0til%4-&23LewS4=y`CiJ4dAs&z{@ZDma zz%aH-f~K0+eAzoVI530>K;B&?e+a9^a2`{?6oth5$?P6XxCEg5KI&Y$O5BA|(9#bk#r1-kN`jV-Wx6Rtt?_|mA%zj_n&domVR^>F||jbgcUV47ik z64r2orAJr`JeeT}|MFF?|Iux*^xpzIG$XHzNqFURu7K7~zGJ19l(&_IghOCWo#Lw@ z6ZjB?0WqmP5^3I3!pNrM?-~aqZND+V>DVA)`m+_}&U0|G+)eO9SS+65gh4YbSzxfI z+4jJx&-=bWsf6$c4l}RuMx>EYNmNz$o)55DNj@IK??Iaqw$Kn`$HlR~~E>AGhUqf+XUx6ipOL_qBPB8Iz8L##gNI z{Q6nW(h<>l9P<&5(@c4}gO^?b+pCFJG#kzXd2fXW0h^;X!N|Y}Ob|Tu`h$pwu;q5`8wuC>}%LR1N*{ zYJWFu4uFdrnA6*X@6KKNdcVDq5P!fb4=Hr`3AUdxpJ1E!0_acoaZ1PcFAjfJb4 z%3kt`nqMkOQc##L)RI#fD2dXfGaw2#mzULoEuPo?f`9RFu!no(T({$Mk>fp46 z?Xf;?9ObJ{Ocr);{Ju>iT_@?{8)zarz*zgzr6imvwh?3PQN%0gi#A2CT_1Gw|DY^9 zsx8+6WuoK;+?Xm5N(F5$c-!Gf#O>n9FyDdYCbVt;RZ`-Q8wk>_|B@|PhY{lcBE-bc+@#ELuAQAFUNO5XYJ}d*Vd;3!Hqa}buboPckA9l@qM{GA7c2)%#5g_<7A?cVDyh0@YsE17!1=# zp4>ec13t{ZX`Tawidd`hpw`wh(PgN-F9$>nZz@gAWZ3 z4JgD*TzH7lr8XXm0aVzPbws|rxzDLoVo7+EnZ4tLJ!|;H;&AYDp73IIr3%b9#)~bP zzP*-IKZmiKnnE8zUja}wjyYxD7!fJ#)7#H(hv>=8{kuaD&?IN+tcP`L$oF#0E^Buc zhOPz_9J(LY!0yJzW`!>fzn1^^ZyK-cXf;4ik18vqfTCQ9O<1D@fV(@qk1u$YG)7L*dloFJLkTVQzo-)|~Ta zVPY>zqq+avY1Kg|BvCq6-{&CbRfz}*r44bzK3qd@bWcAO4I?d70_Pgtw^d*QjH{;w zn{pQj3inAE_CSp9;3>d5UPSv2r`ONdZ{2Sfm%z!&(L__V4k+0$#_LaA8(IRxPS_jO z%2{uIbbeUGc%vV1UkmId{_^U;u&fH`n~1EmSW~eVM99(66d~d0=WNE9x5V-Iyo1s3 z9k{iS_;-?*Mxk$MY|vbDnNkKG@zXF^iSvNEkQ&=!hPpYN#l(b>p^gp2nchn}G0y>v zrOfsUnu}y0xmzL$5-&>e#-_`*rKF_xe)~a-?g4Nl9poru@$IVI4X)@1P?4PJ!9S@A zV3ht{9?-Mwte`qLjr#WX^o`6OglF5uZlaXC21OC`kcGY~d%iw^$uz&ypiIF+wA^B4 z(uLO1@)77Y7mm%Q+W|0=k zeRBx*t%ip_Sp&dBsh0!RpZ@X!DT32L^BL7@2Yh23*k)!~pjz2@!0kQ{vR05)Fl$R^ z^}}r%v(hUN)iFdw2^=H<;NYD+`3opUSZCtGnB%2BpiZCU>982gjjNd07t7 z5~jzYJNp9R(IfTk-+jj6!F<4^P{}c({@smolz8Ap%&$Il>Pi<2I*Wt{m>9)+;j#`v zb?tN@`d+k%1*NOVrwk=k*pO+!w{An8e^8Fp;OfNPo={Os6>=+@)~c7ZX56YzhJWgnP5TS)M@40& zBxx=QFNo5}^QxLDWPB?Bi?? z0gtcEVkj77EC-z_o`Ox@2rFU~C3sP*cU3s+JPQ6`@?*1p!X4|*d1J?xG9;MAcBqj-+38XJ9-rO3$Y z4Hh6KWEF5ZcM=G)DiOh&UHIKQz;jyL$V$@1YT&jgNf6PQnqGne0VxaloO2xoDC%Bi z_QcsQB2-$1sAgyFwXIqViHDHO3f7^JxJ4Ov6dzq%#tmB~}Wf(}<2~;U;N@C-8e=xWe&JI$C zAa%P8Nd}#mx+n&aTKV!l>QO2fL<`fykrFwTm&3%wGvS245|gKivI5c5dP+HhJEbfy*5B+p_$U_^7A zO2RiZUtl3^1zic2yQ>%w!0M^x^8b*^N@4hQIba`KtXB*R^5+C)>%7 zFE^ehKj}&PyX^8|ps<1C`hW#7vc518NJ}?YK#wH6)IBShzN;A$sRs6`Q3Tz4Y5uNv zTRRW{s;i{-&#fQbXd|qjkm5>YYO_n|hy>(owv_+8d()$-ynYphSHT-u!E?~lldNxG zP&~Y0b56kjq^`Y%fWX#MwXYz0)x)TO2!g^mmZ_oqxG}>&e~u+!3dB#`Q{OJToIP9} zX822_?fMJf4^oT#0k+OGN=lY4-+0tbwfTd89JmwbjY`vOi{)hh6sB>M>EiXWuT0ZT z9>8RfAr^i2fR)8g5|h%vEIl6uHy+PF#L*F{(RW71c6IYEJVDxd;6Yb;pZ~~`aEOc{ z74H|!gEUvinI;}4uTf~U&fa$s?hMp5c$I^muR+`V53U-x3`o7*Fcu-8WcGEL@k4qb zU^k|t9TO8U>l!jRm3zm5>VTR!eO6M$2@HsOhMC2<0%1YT0~3~e&)4PfG$t_^M?l1& zkvE1BVQ=h{@SwVvyR;~8Sg{gw@Y?ya+Jkp9 z=>H@0r=9>IoRaeQ-R_H2LP6#U=t@5r`7M{ai}?J1CHeAAeLc+?YvgMs7+s_gSS0&}CF#V0A8uZJ0u`x5srjMt{7I`sVL?3z+*H$TG~ez{#D z%kj!N;LLJo7efF!~ZW>%ZD@N^$4QmZ-c(>@Y04+1i_u1w}xYyWVsha6CsYkcr z1{`b(*H(uJW1ZJU35?9g6T%riF=}m*dg4(E%WWVz%Lm@OMr>DcBN7A*(xP+hf3puV z9r)vuo}ybh$<4>cW}=9|N*H5pxBKdcE0AOMCwmGtIucv~T1mjxemcQr3>_1YNcJo+ zC9(>j44NST9)fmu@3c^4H?w&Y<5GksQ}(K}1oX^DeR{@lxN1C>UEZwMhf=_ts+kky zk^C~|T-sI3hR(`g68uK@&R^56R}9yIe2J{|ZziXX4oQ;W0OkyJVD$QGWJIx+0fmaW zEdGbDlV%JsU&ox^92$a0^dd3T3xdIbBc@l4z*)7DE``w6`A{_kt(hJMkB$WdDfFBNtE-aGj5#5;pSz!!pbi6ZjNONzPC5@f$AR6L}9j5jhI+H=S6M zick0~2jrI)Y(FC5WXu}Q-f^p2L44j;4&)sSKY+eqLl_1Xwv}|qEL7)hcD8gZjaT+}!;YNk7ozKeyehsu&a<~9hCM8a~z{0PZ3d{t9sC5?r;4fALPMjiuLMshjF z)D&E>tn!ni_7u&4Cg&&{eXW;}F%Fj)5NL=YnR`xy+cehD!X|fYnrF})daRK~(>D?c z_FiCL{qC3@>@TZ(sutH(BnGYdToO@V04CG6``FO6e=NpMNH>+uh)4^r#qP`Y%T)1_C_{XIQ5 zq7JMu-ih206K>y$VpnD`;DQh@9RGo5RlKx^j1Do}y=8!2x{?BWTf6cxk1+0?zQBS^ zviOe`_P&L_Y+8xi5z!Gfq9*GMS9ZK^>sJkR8Eic>0k&bnxEPubqAA{>(ch=LGWTTg z)oy-71nt~u-67i13>T-Mi)DgVVo82mi3TDbe)^B++arv107hlg(P;JdnA9frqf4cs zUj;AAyiXi@dE2>c0s_WtL=wYhDQ^A9TAzu|qxc*VAos!P^J7~aWD#&-nT9hBS=<|e z)WY)Be!A*fpYl&32OIi$2!gbF2RIuuS^D}3Z)vwC9m(}$4^gp4{2Amiy*4oF^e1cE=xP3*TEZR&Byq$pyT67n~3+SQSTDty^tb zWkw<_(*072F#lm>6nN^FSq{i71SOx#!}W&BD3!mvi=iM~Oid2DUttY479pg#y?O)U ze{(BP{<8bJq~-_rL$|UQF~D-xa~hX6I$MQ?@?Otx1=APYHWUdSekSd66TzXDi;#I= zc|4<|)L|~n+=IZH|J(!AqH2H-meO|vSk|&1X+}t5mn;oYED)b{n6y!_L#DW+eK3Ic z857oTwXElGK>T>`uliSxv zsB@V#K1|fJ#YIA`>fj7`0)9R@>A(eAR?=pY7@Et4Zomebo}&;XDRM z(VagXJRASCFV4{jk;5~=t^L`+z~oxT7caWoSM9wxyf&tL0daX-o#M8*>yg_-By@R# z4)eegx$MmAb?~-!)3QGMXL!UQunyjTuniFOoVoj#)-_jR_gJ%3L|xB>%V@g6)o5Cx zC9XXE0EjW>;LtC7!yPGMhJdUzT)zU3_&S5Flo}-&?e;@HG`ISDh27ucr2>W(x3*fj zQphH8H(?wSq}OKT+Bn=K1P_2TUZ;aG%fHe%_wFa>;Z`hA+<7BWvU;~vn{#10r(g7^ zvF`+3E7EpNy2G|2Xn_C*c`2H3e!4WB`CO;~F5+o?Pr6)$I#EP~F}`jH^hI5-^)0vo ziwg^(d!#kU8-!_poiYbO8^UxfCzXy?o82*oD6`MLW(~n~7k_krM;ov>newTXmB;Mu zN89^^psj+N;$$r50HKD+U67AaziSWr>hmDDs=|SKG1XZQhvUKgZ8+KXHlyV)IE-4Y z)~#>61~M;{4WM)t?d7qfeHHZvMxlJUA7u)rhe8+~Cg9Zw2#BtE|2{FxaVQHwX@GtT z=(WIkcm)z2e$h9l*U-|ezOuqi1g==Mz(tHuX97hSgNc8LtS~}%A56zZr98el=+Z@F zM~0T);7O7e#kgxVT+5M?>HsA?fts3>Ws^^VO6 z`e}CkOe&{RE+OPv@r>Ll7=s+De@{x5^x>zXV!Is%zp(B~4c)#dAF920e(TfCWhpnQ z8Y{;=9A^jxn9~87e?Vr;Q`mTNCv>*AV2WROkvhfL(If1vzgqi`&L<$HRCfVjbQzkF z4&ryNhpMZg2{R+(V#ry8nw(s?5A8d6|Iihq4afi9RuhcW>0zr%Rz5vLkYK94oHf^RvTqEvm4Q++ zrTGKj1eN>m7-KUuQT;R70C&N#_TXDFvayih*82fffg<{pn^gm+aU(|$F=@0|CXkcD zdKjZyWz&XWaK)_$%RA7Cbmj~cE_WK8W=+Y+$ag@a!ROvhBm8)2F*X1^?`r$S6rkc; zNo{)ExWV)toExPRuHP?bsm-^d;Q-}ziCM!aB4D4uKK;3574797xSVk(*7)4h8S*0e zIuJiu?o?+gy>rQ?5L>H*uD4E043!B0G?K__pQ&1Iyw2gg4gI}>vU>5y@`_iYFi`Y8 z|0O_5#M?5-Tbu>+$_yL0g*2G(lc9;+Zb|ehKS;F+8NbLY34kc=jqS7!F=@QNXE-^_ zaVAP%U%ym3BVk1WlwT2bbGe&9v0+gx5v>S~U7*kX6kn?D69y1?7Fd6UoBX!is5PO9 z#nmHu7S2q<7c;jesY_ZTb9M$MCkd}*;|P-GpiJ4AF~b^DuDMbdhldAl-6jn2%ao^H zxS~DyX02b$g7d+|QQYt&amxN#(`R7kM+gzP!QTnUwvB~%AR6H=o@~1x(~quEq`?H# zuz41|*hJj^J?ckXT17+u$<>H%MfXpk;||0hY_D3(S1zN62`xUVg^gV=S0VTclL_EE z5sYQ?I97KN@irE z`Q-9d7zAn&l;k3_nZn)HqobwLJ_?RZ?<($-cj&Y1j|0Hf!#Jzc#fFN1_Wn|0w$SP# z{&BwevXT8l6V8p)DHddA^A=DzB+_?J{Kh$AKrssl$p;J#?o6C}F=p2#C_0V~3^JC& zl6|^i_;PZWHym)}EMdAZdw7r=nS35OKX-OtGaqMz^VKX018OA|ukYj^qY4#7MrWn? z4<$X>9SnFI6ATw1#}DsHppQq{YYVn5xTB6r=-L-%3?rX2l;Q-W*noTf&~qiY`pVbR zGi)T_8&v%?`J}3Z>AWbS_?e0BDo4)fQKn*{R5CFc&@jfPl&+jCy#TvH?mg(u-d!SFH! zLpkeFK!lWKPQGa3S`uEFCVFwc6PfS*xBBQ`&X}Tb0#$*#C&m2fUq{9t-ImoDU&jN> zf}CufJA6pMlAwEXfb`AZ5B-b{r!FITd8imDq9;=ZIW)Iz8wTOq`=*xoD#5=x$HXCV z49=wwNifL11&VOWRuWf$-Nu7c+kA*mboR(!@fl#0l?VK_5-|WEqXL=H!xM|n^m&i4 z506Z?mRYl0JeXCcbJ)q-KgX=sorZS+rbax*apXgj5ft=a zW;Gyn(XopJd|R8uMvkVA7YFDX{Ad7A6z<#W_h@`&E@LpML~t8Gb9Xfh?1&WO3D|%U z7*i8c-6nUf_{*0z$lZ!AB__d2u|}z{_)ocvfAs^mB$U?^Ytb#LZm}Oc!*Z2VPG5u@ z2bld+vBi?JlphjW$Ya}6eIKQ7WOriR1jObw7~Fax+^rE>gmdR>KFSEHe|j&KlC7%Z zde+-p7qd}zYr_4rClpSuLFOE7xYiJO4B)Z-1A-FhQi*$cm*BLRyZwO0i_|RF3v&<% zkV560H;8mOC9{y$e3vWbfjS4=<+9L_7fO}f=HHfI*&cL$K0pD%)GTVnF6|~i{!5rv zEoNW6$Q@ucEECRW^~$_Gu1}v%&ZY0OlK(S(hack=gn9v%Omc!@Ru-*ddJt(&Fz;>y zcN1TQ+j_-wn338fjQbP}X2qTf@Ey(+1)~Q&-C@fo>fG|OMSm-5o1hRvz#^A;?3zZ4 zmBCl5mU-~i4DKOa*D5+1efDx!jCZQP)ROREUi&MTt6cK#=|Yq}J62J&DCELRS9fxt^| z)@_Ewq)C5B@i7@7&40#j%VC(>^gO*0uHmg{`N((CCjn;K*n&-`=Z-xhY&*_WmY0~7JhruWT<0oUs?ChoPB+M}skKF5KKchxgz6f8 zECHB&D{xZ?sV3#b5&$e-;4f4XF4(j{PgseietMJ~N1RLkLXyr@J z$_6>Ub*^l4B@*g%U|jw9c;G4U7ZizI=YS_`r?K|4F6pG@VBIzDyEISU9!r_iGfeUC z@T>{+>{#5%n60%0_ZX>uv#tBr{xW|jln$OZT0@)F3m5X{XF}^(<0oYN9ZZ9Bk`i*U z9>ZsRw;$sd>dVT%TU1#F7qq)$Pg3LA3SYN471D$5vH;SCjeMyY*!>b9{CArv#aGjQMbV6^S26bqDctV+e3!*bn#Av%KY1)FmgD9xG&Qpjr{`A;hFD#F)v zG5H_2uhRh1KL-_>(tj|&E(s}gxpAk)^v)8EyV2fU>z>0E2eWA+yi~2&>mm@b3s-4dWH0=}v zB7xuj4bystC7|o*ZYDe zMkY4^d5KewUZO#An;qQ@M#s298Bx*MuIqyeGb{JQxq;lnycRvNlPw&!eC{W=+w%=| zZ#Ik=RUWNRQ2W0jWXz2a6_NxJLk199ijXaVv81IH_clMA>oC71Ky#Fe2=+Td{Ew##ENccVM zh#Y!Y?%F2fTzNSsiU$9-BLB@H%6O=GnW~lWpsnN&g_3mvjsxXp_RfPJfVTJ=;W%s; zFdMg`Ok}EM^^Eh@@k9Xy_v$2<){8?8r{B}<8^$c`(#8_~rz@J{mbw>$|I%$dRyA2y zWhQVBLg~1>+q(|`SsT3pSd|DA_GrWC0^3i9JG{V)xF7CZJzH+P>PTOLekNj(CD96h zacWqbCp%^3Gcyz0<`y5H03$rfQ86)`W#SE8d*D)x@yXa&P0uj39Y7QfaFS9$*_Nqy z3hb<`cxkcKo*lqTGry#aOY0xsj1?~TY^61Moyf5b zv>kWh%$A3Y*ZWWWMg)OQ1(0UfbR<|m{tWGtfo$*4@2lJ}Wz1iY34R~59IyksRo*_N z4deT*I6!ofIkq6Q^>NpnSC*Y$qG95Q3Ff4$s zpk-utO8BHFZ8PC;muF`EZI?DbDukj;cxB|R0T-!W&d>rtV-DUP_z#{8+CDp{nuqnO z+j@9pEUo%|dzFC}o^_d^0&8_<_}dR)@7T9;)Yro#WO-S-ojS#YQO8N#!K}*T??m$K z-d_CUcYvfX@LrN6{ZVV{V{Z8A0w8_@Go+w?b1yMzYFaNtUR57%G!i`OX7LYZs2iqU zl|+X)?19a`w+jQRIIcTrpiWOdOkQ1d%>Ne1ioUi75|!YA*cT6!N8;eR9v;Z_vh}IZ z*Ex*9oTSsFvs=5G226m%j(k`|dud>UZxKY@v~^&?0l2ZsoheD<{vTym9th?7{bfnC zn4)N7+DIx*3q_c;h)9=0SsNwU%a)x=h*Xy{CA3Jl>)zXK-g%$rIm_pK&gVQ+_Vx(Ri($kw7($QAGe-RQ7r2wfa}^Ms;hn|8ZoD8< z6UDgG;W39Z;<$OkgyX=*fJhD4rkI$GK|xwlkn(fOYpajJNFY1u_;)!(!847%exI4= zvbpZq#qE$4ooG6Jhu~^P=7G#)!X##@U%8#N`JFtvV;%CLgsjcHwgtRt-Jj?FgJS8o zrt&3NrvLbt@?@-P)EPQY-I2%ERP=ertAs{oQz?tR=p~gN_O18F953?wEaC`^-~}L` zn>`pU3!(J>DP3qf5VGw^EJ|%1vPU}z)@QrtoT~!P`S?FGkb{M1A%utu0S`_ z4K9p^HRWRT55O_F_4TYmpLJBG)V05`i{x%uvBXDeqWMZ7(v*YmmaT`UMV$t@VP_a*K83&<=$DOw?5T^=3pg}OFf8yfFQ zgbFAEr2Z$EnZg)`9y<;5MoL+@cM4+Yo2BH8BqWTfK}O{6FxSXzOS^Uo1M@S9fLI*@ z{vK$2m?{=!RRC9*d8lV{G0f~)W(g!6(${^9`j92t?ak#9B z>CUvpFR2GH#h2E%@1@BQq(J!i1(nhDTViWW35Fdag+0p^l8R$vq4KHwpbl^`Nivoe zM!E)#Zy$Y(Y;c24>Kv6#UGpH|*Wmq6_wD|hBBlqZSH4u6#5vdI3hf%M9s>^Le&t)? z`f(3XcAAOFjVFMPk=jgBX@D@x`)e1n17P;h&5Dr>w*sNdoG6HF-*H38sWd3=4Ez)m z>D`VGzvC7hA=ak6?H=-9RoU_`EV&Ct>4p{o|B8sn)M}S;xBd=u$#-I={5=XsZ$@W) zwHTP$YOo^ZZ(A?1{jBUeRO1NjDP9vaw#Ipm%j?@LJ6Agt-DE9%w&AY@NADPFWNb5$ zRo&gRFZj#SgnwdP3{6;9%EHKHVu<=*8MQeosd-#9%$s^*@4mEDk?;<(`8euB5? z;aKN_y|t0s)(Gz=Mi`oUP+ye9zvDefBm|_BJDTd*+B(^3Gf#x-j1G0>1y#Ncs;yZ^ zsTItZu{^yKjG?Fsym~?gSu2|wFq5Vv_NGbB|d$4e%{VC`-n5kuA^Pg>KcBv z?x7$%g}YcxwQVi7CyoU<*q*E!3jTUJB+N2`J}1%NHq`3;IpK$$JvkNOU%nkAH{>K& zic7|5z2OkM??LUBldU5&k~#@zzra6g4>2lloXXam;s3&c&~OX;9@1c5-n;jk1y&K% z|5@a{cqRNpZz$9^Q&S9f#`Q~7mmyCQ{JGik)}77lkq3R|dy6jnbdIJmDtK+Eu9RzY zC+7)v%FKx~=Y}i0W>S(&)*8VVjubaOT6o37Ur@#|Q^s|;vArgvU~CLv%QBCN9=G9c zoAac^)1B1{%lKWFZkRYIKg^PC5+?0Iy>sLdeHQ)1EV_-EI6>XGHf7|A2Q_;1N^iQg zO>0flDenSVH>Yh=Zb5|Mn8)m})e^+b5C#GPb^ZX=LSY)|3Z9w+F_g&UE&S z@VmJVcNO<%M|LKMxs9K(xL_E%U=_hSKSx!PkZ?rK{xzAgG%fJ%Y|MZ&{bjLDe3uz; z%}fv5$G%Wr@5QH-l<)Vj!*Q{ac1IhAh}O~pwhTe6549_@ddTwnSI^GIpCR9);|5L zB+u^CoLn}NYlI7r;f9RuCEq-&B_7mB*|FY)_M%hzC9IoEoh@$8qw~GJx`U9g++l6R zSVee$WN2M4STy|Rt^b2Lxzq()v~IbHtZ;EZo>-tez`wQH+NUJMaK)NvHc}4nEc%{` z*>t`N`;JT#qLG-$+s2Rw+5^0E={no^uK67F*-?!QE|#B_RH}P-ct+0K+4QXVkyV7A z=6XdLOR#}d=_dx@4fiSnsVl&QHMr^FZ-VCL%%ZQpwSYIits=ZeRY0ARYO5zgur5A0 z<5sR|0KBl-$att2zjt}R;AO6vl=Q}V3Uwd8^pF|)%1C#yeV4*~KQPV1v*~ltKOlb8 zKb;>zr?1u&3+JNmS-;d z54*p7_)zZ?wK}Eeb^oV2UhHgn`FV0bMr6zuInnES+_E}Ru_I-VlLu9P=-CDK)MP=& z6$IYn=4w&tC9w4;?LDXi>C3@8>g_94A#JuQ?2t_YViTnTzW?r;QC}`@S6?u}Sryn%BD7i!Adle*(TG@M#r0($SXKe4E;R zFq)PlohgG(iKdyaYo!S4>n$hBE<}4$W@_h2sczr3Gk~I`9Q$sp_U^$dYkS$0G#SV4 zoE#IM9(M*$(2QF{xfl2ka8i<7+zN^z@>bi(dI)IUz@kdUyhT49$G?ShFu1bOmm$*j z$qH9#Wr91;JB}7EoBFn4o zxWqG zN1oHW8hfa1#7xMY+{F-Ku!K=-{b9g_gR;5M^3FEbwihL=qzfqWgcua#uRDuAM?&05 z8g9eCDxRzTcnpcMva>W; zGA)GV`RAR8iq;2%2pjnbM`G0>RO+(m%?pSOGsQS4mu^9f5+wwz)0f~Yay0QID@SE8 zQ3$xi-~6wZXMEIwi-g@Xq@>dlWX^rFNpqX%(w=dvRJw1Gw`d@ab?#UZ895=Mo!1pT5m%(FgIt}ZsN@6A+>CztD#OSAy!$L?*7lg zn@HGFwzH+J&CKcBx7T(PFCMfPzwN9IAzFV`r#PbM17rw^Pqen_=mA0BQCKlaB8#*2d2$h&IIxpcGo6GJGwVkh)rD~(FD zUIUZ)`FSD$dTdl2`XFq?47ndBHeB&k`Zfdm4#qQeY@5uL7zF%0ux!ds`CHk?N6XG! zty9ELlvFJRX@bYzl1EXW`O&2-lJxEP<4lC4n0QF z0lpr!SQ3ikDgD`=Q_L=kl1Q(Mxlgl_=D(duxhz8PR@5Wf_jb>?NSPVz)$ZzE%euMI z?OiqrVj!%*x-758$-Hnfq9=F=_}=)W3t8OQsdq31#V8i1t`7#v<`rpH^7}gZOGu<;~fX%pYvF2xWn4&E$~R!Ht(CEZ|qX6~9eTr%U9;XLzDE22@P zYX^iwYiqY={&T_D61;j3Zpsa$zA#azT$)Aad!m`q__?z9N z`L79T15|E2Y(OFYnYnCFb9W{CtuR;T#0i!;8xwb=@1s`8E1A1s_?6}BAk{sao z_NbkOkd&3O1-~EM&>ie0SL)(*FS4kQkgyq5!a4l#^-?tbB->)3WC zAmlkdl;_K}S%~}9vYtR{05g|_|g?RGSMi`LCdPU zYQx5F&5y#&Rl~;WL);mPu`0*FpbSx3^@P;>d=|Yb!>K?Y20mC68ix&(TfrWk{z~qe zU3faNAcU;^?uj~uowAvoB9#P=@~pE8vsjllEU_Yc4RuT%T>>{-uLOj?iuc5ugXhfE z;2}x1v68H$xL}Cp`dswqLkO|S3h@BaJ|^OGX1Fs^)nX)ER-pnS?*C^H0%mtBMH&6p1Cvh zXpJU-n);VsK8=Bc_o0}xDYOWcE^nE=E8b+PsB5=XMaeVg5^;U zs$PgV7u`>SXZFER>GvEp^IoMp4z>4xxf*M?v$px558(gz+QgYyQr&JhF_zln;(SAG zsVBefQW`NN$%1HPUEq1l9<2TupmkLuf%o)x=x?};AJv%aIE^cJj@T?t%W@z$6g|?n zppACNw%7YwCJDKo>$(omTgTd?g_BR*?Tv?k&k}zqx8Z0X-957@m+sGQ8o*r~S!3Nb zU{dNFK%0sfvvcMop=cx%%Cl)rgyt#OsTma#1+uyg&Yxw6zIOBvz79*`gRc zqg-(nB)Q(X=nP`r>@_cI$3AN~EaNzu)8B?wMl1(+XB+rg$)CqykJH8_7MuQ5*U!p< z*fD#i`PFYj{d#a$#z1yy>bT7#IE-dC?jTu+Pl2^tvxb$lz73GZ*YcoBK;xN% zwa9Z#ZnGP5i??vo=P={-L84LB6Vm{8%F1>iJ(6yqB9(96wRP_VGpaC@k(8gH8kFt! z*@E}ljt20Vj80V)s3**b4WnV9N3^qu7--cv^Yw)Quk->0(wG~6$MM4y?pE=^%FsIY zE@yX9Qijw3IQ;=tA1(#IVAWgc8;RD19@O@To{+P69pPf`I!6(U15pk8FOXhxaUnc; zqcf$+DX}&41+Dwz<&&o*p`1pDMd}6Sy4;+bAO$&SZ8CPE$n73obj_i6aHzi6?lYS)@w`!~w_HSxw7ki_Z5}yn*r< z7ky4L9ui8NOgu$NfJxVs zUj7O#C zKI}8(NnXTcMx1sE8K6>-m6U^`yi017b%8GX2|=0a4ms!av2WcYzM`8^@VO9Lr*x)| z?Q)RZXH;w4!41DG-vcEo%s`KH?!Xf7YAF=d;>~bGik+$uc`X>{p+@B9^urw~3GMFy z^9BIiN*{K08u}cp&51l0r6mh~flSx2Ld&Ff<)}-QL)!>Fl9-W}eF#OaAX*|kR|6*z zp?rQNeD9{N(Mm#qDU^b}Hy3)JF4rX*JwqAs4q3ULwG$A}17EqcnJ1!D*7bHkDbiJX z`YdKV1`NRqr2iO{2bS=AP)Q}io=-R^>-e9SY@D&!G+?HaJ#4r>>c9F!WJwlC)gbl54O6Ma|7euog}?97NhPvZC?I6$$97`6>iTVTj= zDh&db5BB1?kQ71pTNDHohC|oq)}@;3uY?@GI#8_0Nr|Cl?GmQHlKytHCw8G~*ti2! zC685Mn4U#>(+Yv29e3h3EW144`*l;s%Da;x_~Q##u>GP?N!v`%O0q7*Z6l%v1~^M;7Al;uP9o$?>~Zrm!1K8bs**ba1%)ZGi9X z!CQdvY@40tJqtH^JV zPTNHkE`rT33?>qzq3F3l8rkH~8{!oalGf zZ|`c&hi3!rVP`LR(V<_1m>Yt&+be!IRCmHJpsrBzpdKE23SsYGfiZ-GS@dPW_G}=P zFgmZ?Rks`v>q%D9=lPF1O392`jG=SCW_q3!B4YP59xIs3HUyj^mZX4jnk=hZV^kJ+ zD>kP}G)uV7eKk4;RS+}wn#s@c>i$$$)c(3ioC9qKv5oD8K;1=lC~5oN4CwT_uy|1Y z%odoGqX3kGVxkoA>Je7($1fU=zj$pudt%NR$c8aJ3IH+sTZ*Ak5t}*Dq#&}JRE~o0 zKlSG9l(PH>dHOoa&Z$lVp#_L>TIM14LO=|j85YnyUzL6(OPEt%#hxO_vsCiT;J#A_MJC zDKVG?$Da%8_el=@%_|8-MP57;uSM*WMN}t7onRr`cu)8{nim3f)86e2oJQ7)JF4Ce z8xcXoq7aEv>te+517v-Bauw9+uQO(>Ca8--U26i|ejPh2>GkZd{(7?Rz@zlsedj@i z|0P;&Eh6BZ(o*5hAOYKumi4Vqnw`?5ioLR<05+{do14JLAa@rj;G!Si_`a;2X9C`~E}?zIcj1BB_Vzj7>FClt(13^87Y}lv2_Ib}c z_FHZiayrSB)8PtrVKM2@foa%^)njB;X--2R@vuGU3-zV(#5Dwuwrg@G)@*{*2Jg!$ z9s)LR5#j_sVHzM`oWW+i5Fsj_zzL~c4R71)9yF@6ZU(Dzfr@ftqjaa6T~g_mL#wbI z&ZrjnZik_LlGd?wH1Z&{7al_{!}~Nqyx?gr3tS5<@ouyz=|Rqw_K8!EfV{XGHhLOz zTxEOxTT5uP>UY*W7@qHx9;>>NV100H!&;1x?kx}EF9_?IfO|k$mL^lbtf^0*EY2bf{_F!|eIq&CrAU0Ij`47$+P--*XI(1JyS+=a~%>jAL8B-2q6x z51$+S?O!$&16tyV(K12(xJy?DtuS-nzPHYR@dU93zwc5Fe7tP-P6Kg{ST*3;388%6 z=W2I`WTkIVt%arD#M1(=Qb$CR=wqloF7yy0Z$kYCl9$s+=H;l04^eJflX zrP5L|^f$&l;0}M(-n_7Rw9Q6#SHp`7BK&Ue*fxu2PBg~OxFs_)17h90_hBS^xr}5P zm*M*Urq@7`fg#5I!^Qzv-w^`#6n~Z`O1cibGX_b23ctW?&E9I4$}7=X>t@r{2vk9} zTx}R}%RL1w$Bn#WBNfmFEBl+e_+_Qh2w z^PK&}`^>HLRUp;-WT|kU>r42*(FtVbE`SlI!Zrfu6)k<-I@z7U6{~W)YGl;plzQy* z2;g&RD&E(%p}EMiv3&)!{)z$sogo;GHR7(;Y&r6KuJUMb;Gt9~-p@BI|MX?Xt*ZmZ zz%m%RE%rY{6w)ACJQ5mIfg}8(r)ts9~B`Y-Xe_A3h)|hQIyag7*ex<3~&$Y zwf=}7>%O`$9AL5Uc$-aUO=D$-+}IeH!x-@N z+R{U!B(E0RB^|Dgg5E=Em_1vWUYPoh$t|&0r>q2m7K3V19*K&NXK!tDehseNaJ)o# zO<+e#e`il{+)-O-S5sCK6V!;8mWISO15M=YI&obUO@?ne0lEMaqzia3aM>M9fD6%# zQ7V^b(X7Fyj7?1gnDnoax!QTW9VBEE>CSi@t3o-22(7_3h&U_{0F_N{FtDy#Qhh{D zS>T%f(3wcek5*ZNXJmeEI~#K{#F_(|Y?yLVa7h=DH~K1Y%TL#xBD4 zYcu((WQo(L$$X4x^eT^)r0LTAy1M;!g18sk=2E-)-aD3Hkt^$-Ziqn7k!0Eo1RkFt z&c|=d8sQHPkgB~;;@$4m;@6}dhgjrE7xFJiaZ)0H@Ua0bbFtU|aNCm04wdF?2ovOx z8J0p;60JM)T0aDcCp}V~cv?NuHr_0!1(xyYADy|m&ehGac@^O=T5jlnypoA30caWL zO~%MniN`}rd!g_;DoIe62A*I$hJQlij&5B504%~?xiwL-b1b_kM6{>rb=XE>#ME}q zI*8C+RFlc32v1u!QZT>m?mwf_E54A8rvhXHKlcJ7Xzipfx#r+dbors7e(`@FbaSbFJGzL3^H% zzFDk3&2`{`RFsO;8GOUzPvd=h?O>axLdTx1rU45=5Pl|j?>N^yhZUMe`U@^Yrv+S1 zz8Si$TnjFj7X!K3oFJYo89VVT74vKFO0F^TBQx%ay^TJlOGJ$mC~%H@%>&NeuJK)e(}$k+x(kmgefew6 zpo=s%&VK8u{Mv>^KDQ(*%fDI+y)(pj=hbp^tn2ayPIBS@=m%pQ6=ZA?F!5{Xi@-BS zot*})jL1f{>XhND*XJVwi6wP=D%O^FEatcU(#b|$fLjMpG6<_!v6=?pP0jRyrJk(^ zeYo6I*8P?irILCH&l5^3QJ(nGqrrf|48h1sgl$`$71sj)bB(P0Ce<`xv@OsI z3?UN0&VbO)%)y?PdVA>RhSiQdS0*-Wm+f?8r;KA_FP1xg7x31k810{>E<&Iv$*u_Z zNAVd@h(5Ce2JQCz?DGMQQ7TU$w(&~v9^AoaT`V-?mZe)5(NG@x_HZum3pFK|4;w%y zxYd-Ev;%9@ye4=zGi7M@;21e4ON6gX7dWo>h{r);b|kFU&AF=)a9_=__}&>JOMr1f z7IZL6Qc~t(23F)m@c|_(zVz}@hbz8`iZ{;Q!!-q|+8}lRuA^lEh>2-JH`qv;LL<372!64VaAEiot4=Ncs=2MvTcok zp?RS}-y89keYKnf@7JI%L{dMjFRdH=adfVuIwd!1srTdM(7w8Z@~)U_+4{|Ej3lvB zvWBMvCD`5=<~G{CE`{^ZH*I1=SAbmNPPo;Yg`D%zfB_PieBac2f6^|sX5{WA8bKf6 zo{0zb4abt6*&M)78oJJYHQHMg3C%aTvB7mC1{R7K{x?uV^@@BVWUua%yGc+v9u4L@ zJw?(1#zy^UwVsC7Jy9y$hX>}}J%Zd0vbDtg*I;qmW~#tIk}$nhRfkBWoVp<*XM-;0HyMc`e{SClU+G{68y@)yNw&u^Jf znSdR$Q`Fi4Q>;fw5$xwja16|X2lWtC=Jl*s7Rqa3ik5Pk64^-Hg9=P`qucOE|6tci zqEWRrY#+-fndEtxXQp)frm~X0XdocUdm2PS3DKx5f->junf|7FW^Z&OVGGhtn41?8 zJgC`eD&&ULRsMn#K;iKVqaF>5j%nk6iEqqSTwSN=&5+Hf%?qs{yulOGgF&|@)H5m+ zTHQi&?k^u}Z%&}$fxqojF0N;)2;Uu468s1QZ%`RPBey;gvTFt;6x6z3bY~~9E5>K6 zh0TP)Ja?4jjcJn`^yMa=XPoPTl#-JydAO?MOciZnkaDsR96_lO0dcL@iO5Bj!9`1i z6IY?i`l*EI%F(^RNPH-PKWan52_SkfSABd4mqhqiR;$XTQJcDr-hV0XP@3yfW9SNjK)bZ6yn z(*fV$_X2q2j>_)>qE=HfYz*|DrL>8wl{DA!(<6;;qi&V0r8G0t)E>ZMD=^0ANv5du z^FdJ%no6732vf=v6*Iy%MbK?pr@G0Ao5R`?y4B-tC`P#ql}=O*k`St*yVw@Zn0X%f z{F5NU`g_tZe^e3@pg%H=RhpNtJGzZ8;TRS#+)rm_Hp?f^0`CU8{TY;T>%?uOlSuCb?4LY_|MM*J3?MEoj*L+;8Gm^ng`E5EW<0YE6R*d*;#ij_ z_6$&ZlUp^lJ^1PARzb^ajj&-cnQ=#q9<{_<^rm+3VNt+8|JX+LT;$c7Oa%F*KI^5| z2rna9EF(uEl`$ruY*xaSa5oqeWp9QA|GFalu)}rW^`M@?WR9AR2LP=~@FYlx-a~kp zoh!!%&*|isfYYJ>)wys6pmHDuZtz2-obSp@pLQ8MpkXV=#9T!;4xyw-J|!8Y)&f1o z@ALpaks*7|+#)lmH3K@6aY0 zCt7k26dcFR3tt>K1*t~6@xUafv=u`2(crCG&=3K&Mr8J#vHalD%JOoND{`vXqX4~+ zKFEvD0JHsV**V!;C4f%)=Rngu@jO}uGyZM%HLg1+^4!LHu5%jJ1nPg(byQMr%W$Xk zgnw2EaQVtRUT9svx6Uc1*TJbsl8<+MWiZe2KIfP8&J<|n?(Iw&mE4x?SZlrIwwFBo zHrRpM&PJfSM?^`wyGd6%QzR`fQjVF7TBEBCSxQZwDZRGbA$)AQ5alAp_cP%n2#vT% z!J?!u`6^gzp4m#jYfb%qmU@@WpDK!l#_9x>-fo*cLkCj(*i{s zS2p81r-KMfF}rqAGAkm0qS(T?NcDdym%^2U-ews{Ee(;=|FnC*15F@m;5TMm%m>>@ z<#yFyfn_)=D}^O~UH2{S+cs+LS8N4t2I%VRh-(3QA3)98jR{ch{glXc@k%tR=@sfd zerHkd$1_#|Yj6`l#t4_8l5+BNTNAny;HX4G(Tzk!^yXsHe;fEg1&(+oO!6d{aq0YAg@MTHb*qZNK*6^&oG3hoSBR&fQ3+-Ral_d(V4t>j z@JD8Z1SE{aw|uDmr>qGoodw&_3wS*RM1jZ=AdAJm$E|cP%j}KJv2x;jgU*0r@U@QZ*p<)Zhik!Q%q4 z9QnVH_pko_reZaGoMm1sbT83L#6cvvNbg@!Hr8nE{R+$tB)kP!)kpkt>4;LAcK_b$ zL9BxUP$m9X#!!*Qn_>rO-=M^sb$ujR*I#oUus+Zi0A2314 zqSMj%2PjT}CQ;kSx8)=B#eWw1pbUjqNlT#hiOm?Wu;evryr7=MI2e4$<~Mx}(DDS@ zB1(5PNFElBzc#On{eZT;%IuK=qwsg7=TH53(*Tr@D#F?CQDc$M~ImQ z^nbbX9)A9aC2PjAU7L(Bslg6Frc)ip-!={csnC#To^zA90BqRfhc6=o{$FMDWUhI% zihw@9<~L*^&;idJ5Xtn=33L$q*G4P_v;sW=wBWJ}JRJCt$fyP=h+!~93u^*`nJ_1q zEX>vJKW79|VV9U3fY`-2P#51?FbM$eL`VyrJFK7Y7G5XmewnsRdnBX*>?zSDO~SF@ zu%}#)XTRmfi6V`2O3IZTFS7GGQwk0B2gUM-tfQNQ{T0p>><#wHj9ptB=Ryk;tF?}% z-PllLeI-m>vGLwD&=K~!w52%3jK}un>i=__ri0%4{p(OoQCm1AS@PeaBp?H9Tr)vg zhfn$qUc33O?jqJ(+!xI0Nqc0x^ZMgAh*i!l2wKexkZIy;QcJ1vag<`*FI1{;is)Gq zWbj*mMx!vWUzt(%e3`su!JNi^i9@^fkrm1CO23qu2sJJI=!L zwrn@^{C^`gk=_Y8>ig!WJjjIMc;XVsjE)Hmlcx<2=*n795RY<`JN97Ae{y+@K(Sdv z;9W6@V6+t<BNC88U2!?K0ax9$)_msiMw{pLrzBAQ1pI-!Y zN&VjMH2#jzO(8&G0}#R z09f`X!Q9X0KX3$E0eC&dFNtjyR)m3E3X-H)Y~rFx{Tr36%9GgIAz znvwi4+eh?^t8#r~zE0Pk@E)@;faYFeq4m&)jFX_4m=~m=*!wpZ4}ouh`Tm-dw`jrq zC%l5yobDIU?LhF7+05gj{Gpl0T>LCNY8>3R5fPKPz>HoosfO0YhX)Vj16TxIr4A5> zfQBk6!a;oxmByZBgQrAhEP*d}ACq!Fm5wa)!P-d=l7CoZgC&iiJ8E%PoV; zBm{W>7qJX*c!R||AOt59@cf73AMhZb*RkmZ6$HRQ+)S&%@Gu8ri%D&wF~mGnU;!Vo z2}5HBTqAQK_iv5)*7Eg@sSYsLfv|8CbKd{7@G4xh0gNeg;dphi{-hkLb3hvMov!oz zIaz4>A|ZSZFa^xygk|G!z$t$XiX`vd?aPm6xb15ulHMBL67uu;r8o9F{eZ^v#wBw4 zg~)6JsZ4V@nLj&s4@M;)wKZ3(y|L_1^&zzQFg#72Ws2Q%c2kpwx%hChG8opc-9%8o z;{pe;@+tdd*;tI|Aw<#tsblzW25ORv>QabhKZYS@uNgA5!PH23DsYZ3@v=eolN}uJ z2ur^HUHHSl^gi0JQ5fO30rVYMddyz$IOq_rPZh#YlQI{IS3EKC+M9&OWwUOpi&w9FgXYEdl}3x zaIrX+=~#R>F2HI1X~=p?LsStC=m~B6+6Xb=7?f`9#dqHI2vmEMBTU0sxPvmW8uTn@ zZY3%La^^k)l4t0ziz1aY3Mf>pyvW+K8yn~Qugz|BQh;yP4Fhq^;l})(*nBpx@CLRA@mbvVkZM zjZHl5>RAJ`tbkuH$4Q_}<}Q;)0*&ymtZyWYPt}-$Y8lRUQV^g{!Al$;Eh)k(28!pK zvM0u9V~uW=^_%TwzfFvdNSrL{g8_j?$&37|ht>m^=68rur){6v_|ogDYMb$r%Rb|Y zA#$Y`p|>eA@fk+m&Z-8DYL@>6a83O=`HSUAU(kvkQ2FB2kstgJbU!X_$NvA)vZIOzNJ35Hwg3)*&{e;lS z{ee4Nq+P%>8_Fx+10B?bhaEd$0W7&y&v8b*eBq4Q;#){7go{BHeFQ+4iwK>b28v~v zeL;*DQZpuUk&Z$D=gOI5hensu8qpI3Btd08x;ON5MR*jv3Vh;b%;fAKgz3L@KxrK@ zAQNQHY{yg&4*k9QI~c;Ea904)!dTC8N@K?)e3%jkW{vnAANme;mO$KvY-zg$rofp4 z9fMzPg_s;NgT(hBCm-6$aVBdcCca1@>YXc?nVwp1A{&BR3;YqK_FL%|7WtGl!Ac|O zRhcGru~_xuW#enWfb)+1PoNRnU|5|9_=^z-QURY(L3n$Eh0^Sx0e$@{W5!2UPn9^x zzRZhD8reV!2cQB;;eHL^qEJZ>xPIMK<7Ptu^#_KDjzv%y2HwwQDq+SR@cXr9*+B<5Zdl>jq5&xor zxCjhMts6!?@84!A=&Ffe_Uh>rGwtx3)--&2h_Yqv zxpVpSLd0 zO#W0e&OE?Dk;gt9Ibu?p2W1eLDx^59e}?9Of2V5LvIdpNkfA`oQW;WU0>3Q@hNh6W z)DJ)irj707x6wrRhJaM&$#$pSv&=LF!fT}d0x<)M*#M|Z)7%)Wr)B-$o#jE!0QjF8P{GJfzFMU1miund_d-Wc>kFLLeWjkwM4w; z;%FZL!yns}3p-MvQr?QukPw&13?n9;ZA<;dQh#kMd=DH~*7p_M-j9UXSu5J)1k}&j zsu6`jc=#s~DNaG*z8S8Amq|fm9FY2zY|zyt@G_X6e5b@Ep z`U&XV!q>7aXyBYW>7NGGe}f(&lq`}~O+(>?#jpXX#$o!rPxtkQ5e{9`05xcqhiH}o zNd_t&toiDZ3x8v>s1sJh+Zpd`??7SrFBP4NH>&7F3by^qGb*c=2qWh>q&XWheIV8i z1?AUdJNZY=<`AAgfWLlU4G>k$g9_jTE2ZNX&;I`vb@TL&we4(2<8v%+ZLPX;-}+xr zk03Dn$Kr0X#xV`J1RH{=2LdllL!g&8Zl0*_d!L3>Hi|Z(P~AWYF;7qGLZafNat-=N zPdku9qCy@k?3!QWRBwN41MXiSzj|2_uH_I7a*Wt_LHInBNCD*BV^w#6%YvczVL1x~ zANB8}kR*>~z$?x>L1m1j{b_&0wODXh)o(;XP=Ed4oS}9cXyNl($C&2bUMv0EW;nA! zGTHt`k(hbraWOn9enTd`3Gpq#y&$dzf)T%=Wa>IDtpD}r^3FtyX*|_l=Sljt{UkWs zmEWnDp_PnrQMn+BL|1LRc=H<<^`jDAPig^JSk4G>=e7YW8<;7!1Ey(__-Y#=p-=A% z)cDgHN9Y$J#Q+2vh@(uWIahgT(@%QFCa90`+6SLnz~^f~AdWr^p9D1y^TUJJv^fnm zTmoR805%6>s$c#%MUIP(fkY+Vqgue5Rio|{j35Sz&^Y;Xkp-0{hg=|usYYwr-SQzT z$Dkp7)a7ruiVe)p(>-b-)5=Q1XE9*_c`Cb{j_-Mf^>(eQEav1!?M$T98`D#1^~UCE zPtr?Ld$@u5^q;OHz>M%Z0=+#<$LDV3Jq98egx@1JY(9Dv*y$pC^zz#J;92S=1&i|ARN}S<{lKCyCAEyVsZtDdFz(N z>h+mEBP$nm3(jan!#E>Yv*r=R4)97?tafscrKLa%7aEIM7kgFAIQj89E%;@ z20yCJVsJjzE`#oYs>#V|z2EaQ7=4Zb3+(7^%&=UOKTp7~d6ZTA#_wo~Y0)#Y4rCs_ z|6Lihdy>**;DcwI{eCdvrwY)bak>Jmd;?il)pj8k0u3Z#f&%L^;i?_Xd}n5W`IgM3 zf1LM|4`a*)GxsnL(XU(`Xyimi7dJx{=2c~EB<;>^8-Wd(HsGm37WF7>83E8&u2i5{}->n;x@e=e*0HRzFbZ5$Hf1JpIQw!|)jqhUD3_#wR zlWXJZ5smmC(*UF{!{uMUYFPj*Edy&H;ohm*j@q=JRL+d!NTbpl=2QW0+0icN+_82%gWjYMEr={B|gnu{1(nb&d& zbG~6axTEghdVJG_KbCbLgM=H!&F#;i(JDpD(m)UjpVq4g2X*8x+#=TL^Vbw#a*WTr z`B;>5gVb=3b+sGZ@fd#Z;Pm0OtT~53d5nmUCz;vaLo({B@?RLniWbq3bvUB z48teT3+zujexuMIz~vt+*Xexo-SIP*-{0P<8>>G%_unUtegKK-wnX77Jsg@(jE7B( zxec0>3V#9m??1Zmr7u6a@KcZcZ}w}pwX>4sv3|~o-3XGIO$}-dYy0CO`5*fB<-j5! z|*SD?iM@ zS`%6El^c*%|873$KX~#Ndl#gf+z;X;yfT~uBfuP%{h*e;0$~cHVOUAf9L2O3!-H06 z#JLc^@)L(qpk|xz&4sgYFdVrCCm$hGVAX8SyP}x)@qNNr6X|`)$O~!`Hj0&iUGebS zsmDZImpj>pJK}BaL%Y6yhHI@ZwER?%)CAYR;3JUjaN=|55(FzI9q03)5}*u&9u3Ag`R=ZOir!r=%WPf)d~^@-&LwPw|wKim;EDbfDL^+z0*!>8SY+cEg^Oa6ieEsWj* zU4%-Gx^sO`^dE3gZr_YuYSrH(g}ygA9<*xTjnz*wI$}|AK5}+&u^Zs5smu+e<5~jm zI(<7OhUj>@>v-ZwTU*(ap%Mr=br< zj$iM(irMXLAM6A%5oNvxc)l&($NrIuoT{B4KO4XovW*u(u>akFhzJ3W)$>cS@1;fJ z05;>CtKAdAO3@Oi4+$vc{3N7~>-xF#fbJrcAS4_GAz>o(lcq$>UemKQkp2=TPb9{# z7=L$X3)UCKardOBj@-fy4yo0EIft_SLeM+FIDgQLA`-6~hLf$Fgx4qL$t@I^{0z&^OP*C_5VQCNK=p$Hdbk(WZ}9^T=nRZhyqnWE|Mfu>`U z#dx3YTCDwk1Jk5YZsJ;|A81FslL^)`*%(AH6Oyt%1?}zKHlgH{EPtr60868c!X?7Y zO9%3uXw;03KXv&G|p7^#4E9`h;*U=P0QjAAWppqrTq zy5W=^EQ7^=4>a+Wuy6lgQcxz+hAqI2WV@gjx;PHMkmLo}2sd11fRW|QF{~qJ;+9b@W12{EDr+&k%3ny@)e=d?ID9Q&AgObww=OGx4 z0i!!{e$<0vT=~j+xE`^t-&IctF8D_DT3pN+3a^{7iS4NilQBs05ss&xm4pec!UwcZ z0ZWAl4s?g8SggvMnG)HxH$Fo5@2KMw#8YIY0?9bF8PyGz??J0+R83ZHXMuU5?{g}X zKF6wDh|@CeMoJjd_oRWtP-AQZ40!^{VB1*x4e&g41Adj*CnejPo znWLBuE5A8cc+H~Nlr={CRtP^k zw!$c3SNvYC11pRe8%WW9DwpAzUk(Jl&a*T2b9E??z3RUP`?%Biw~&bmw+YP&Oa8DE z!~OkX$LcuE5}QG=rf(e?n=$Ox`u3Y;;zO!<*KOZRofbZ?UDA48mF>rFM~+|Y?%t+3 zI`((3w&>ReZHgnUzsl5NLccXf?w=CcK1rIJ)HlJE0e4*4cqhoa+D$hO3cmCdhj(Vt zuN|@QOBqu4&lQ%*>}59$sQA0~`5L1of_#F94mqzXx*4ySU7S-Zu4v(XdSRwRM@iTR z3vW@~8t1oPB`QYx{<2w*=o0seH1@= z<&Bv;#u~g*bHcpe>4n}UBy1;}pX;xz|6F=UnjvHy6H^RT_K#ZtD`B>%9ENi!zBBP%I&|rk49;DFaFE>^g{ygJp%91 z7(#;2fU67N@&hP3f4XRxBfwL3=|lWiHj(E;_hRH3pIMYh+28Iq$TP0brF1M04krXq z%+wxOWegV<-j`Qy?RJ{|t|nIe^Mhuzv3KG&=AO$+@`j)L?ZZFK4WEu1n!!hDs9LZ^ z=O~<3!%eD&1tdV*MU}KtKb02Wepi=eLMljq@hSWaDVHs2ud{V(yrNHzX|8a-Krr92 zXhK5yU8*)^0UzamNxjw~7gBxfGHhXZ?J;kM>YWmz+GTS}ZS46dMt+zS_7iVL zq`;RMl`G-+O1x6*-R{~SVED;1io{AkJd*G}bAVxWvTNYLZEec2#ld`aH>r6+8w0Mk zzh7LfN4Ac{7}T&lvDSzMaSwJ*MlXO){}Vg-qvWgQE(`T!4}PtXyMK|BPeO+4hLQ8_rj>Z-vqIj+@jv zHBTzztS40|cNubHLU;CGO51iC_-?4(yEORltr)_Vxjb7WL|;J6xWP>_wD387(oF55 zHbqcBRarJ^w_)!AQ6s_S2i`rxg22^bUy@+lUhGTP6)mJlaQ-t_)B6^(RtbsI=v}85 zthd4ltaV%pwdGho3H2>9+-czC+{~3LoVbSe*X3K6I6XP}`1s!^`Kc_4!EL>Gr-b5) zh=6#-D_z_q-$CCZ%wBl<78>$VC~xgQaFcXjTk=sN>W=%)m*|QeD=gI+t5x+=QF@*T zWvOi%$OQUU9fPPgTA@whqb%y;$6wn;2AvgpLay+U2r;_ZyhBSZ%nISOe2Xo77N0qw zEapj_l}z86X>-fj%qzDkNR6=*j%MXpWx@Nuk;4rZN?m5Iyz(tqP-X)kwsuL0)3DEz z=k)X1Wv$L9KXe=K3Db8Q%%*L(TL}+xKQP+0O245LxnKWaA+Mi`$pO~~d~ga7YL=A~ z8*1Vexk;kA!rQn@BgHpt825}<^nBa7VY?W8{pa8!U96oR*G(JanP^r$3#%3sz1cvTU%H5*2MgaPM)&&?45x+;WM!rX^5C*= zU7H?}o#L+fqS&s4j@kX?-Td_?mEDu7!A+WAzM-B>nY{AJRC&hMoyseO|75(UY=#Q#lT-I$yG|Nmu+-xT7_^ z%gqi!{$#Ee#T)S6bIEkS`-ZPM58lOg``bwwZP@7cu7@Je*F64&S7Hb3gx? zwc?UIgOVuE@RnDOY(OU$0tf2HTyY3l6ko9u_SI%X8;`As5F5IpJ-y^UHx`nFXkCe# z@ArKFZ3f z1wDg>C%fa9FL|J^MC!r9t0$&DS{J5?4CSdaf3<6UO1z@^u)cMQm0^GpY<1)nl_fuB z8F=}<)5mqUa0q?%RdJaYW#LI*C6!1;--w>nK&L!m{G`E5Eyor|6Vy{jYtAPC{K(v) zi!J+ZNy_9)ds1V*N^-*|<8o#N50*k$ItVAeHs{&d1IqL#31#CM5V`arer|^kV^(sv zCKH_&Y#BN&ej3x?3S86H(rw^V=jH$4vXD!$J%1E01|GKPXlDIQYSIZ$YW>f76@@uw zXvQOztQ9N1U19H{P;CBkK=qLK=^vcasPDGAH&^p`Yf24X})2=Q_uWw zmTROT3qCL2mV}9BVw4ehJ5gk)U}6;6u^57UxrGfR=*y`IR4wnRYftJ|A{E>0r_lnb9}a_jZ2 zKL~BhiA}MrjS+7+l)+6zX4<|a_K8SV8Rfwhyc6E=536IYd7SJ8NJ$sygr1Tt3 zaOBd_=J6c}9lURJlFS{wpn6A!*2{PuEM%lV3j22Jl2zfbM5Y+QW`d)SGK9ff{i(EKh;pcFN)2s;m>Wz&jH6QF?AqBI1h>(Bd zKxHj`4;JOB7i_tV;pa+%>N^?9ruca$zXD?c1_E~@AVQk7UZI?iBpp~g;#6+tdctDE+L^ES> z%quVD9#pqTUD3dz?4Zd?^!*VZ@T3J#fJ_JI-0Gn`13=c#2rH1%fPoQijAR;Jcoikw z;C;#Z4zA6+b@7!mk>ww9HF!WQCNp&XbRD^F@HxW(fEH_Wl(R4JQPglyd6!VMPA4|A z?-aaqGXj+;Q#aT!KbZFj1@~Y`H8!wi=*&0lE2GowlIb>(5_XA3+|Z`1)CkGx@7!h> zFbtcM3-t)TW9dbY7Gj^3bbHzJ*(((S@l;ZoMpM5a6WMDW+mO*^aV{4}kk-fkfU@RO zc}6!&VjVc-TKako$a}w}BwM5Ib(30v@6(g}J`Uf<4~M(H zb}t_AN7rlMpZ}xpPu2tgT%n`@5Q%T%vaRc;HsP%OiUx>s#1o7{;j!= z?w7I#L-ZCt4$jS+hsx$%`5^v~>R_{eh@3ir5g*P^Yd65FOMvk|R@U?`hjKt?1(c{p z@fBs^^KmpXnV&tWP}vP-aaFYp_sf~)A%AmD>O}TlNnaZL5wMUbvqsb*S8kR#{Tv6< zM|#Rud!p2{Ef+^qmM-}&BEt=}w&)3=-!zfOsyx8(^iLk!I0gx;YS`=kcx)vgsz@Qg zqW9`cYZibhK*+Mki-H+6X{F{Jf^i$>T|0J1W>^XqaK^m?Wm-R#V^MYo7~X$&+Zv4Q zBlL10oCy!8ftz5CJV$liPj;;4?Q_W62cS_o9Sj@8DOUeS*_FV>xV7=zvQ%hP6j9@% zg%%SE(Pl|$p%5+7WN)RYv`j^eRum0Mt`s5J(!R))t!zY#goOdRbxcB@0 zzQuPx^UizDd6xh4fBw&zHYhJ~+Iukp`JdSFYp9^`;EHBgx@>TqUGsDtr85X3l{Q5w zc4OCo&-(TLG{_!RgZ|rYYT+mmkdZ8mf@X8*286OKU5;RqVFP{o@e}z1P%wXmdgA$~ zrm)3{Oq{wCd>LVPwa>y{R6__zO!2fiNyXLeHMb;`LO*fE!cCs>5OAkKp)fLeTZN1$ zGQgF$6frS8Ew2Jo9B<>_+&(TjDn5JY17H=9{@Cf;_0Vj|nen7W0XS@TetU)(EH0N5 zfY^h&gMbNTm`o_j(k)OV+|fAf`2Lk6f}{g^VQuPrbl106 z`YyEaoH2&}_q8leEMQI?nRbR%#G?I%e&?aE7r5${d8rh=x>r+gM-)rxF+M)-tGKWQ z@&cFV#3Y(+02N9Y(6 zNPV`*{-VWA}oC#TyKV&tr@Wt@YwgTt_zC&lWB&wAlSO|e7695DV zKJ)@y;y)s&d5LO4!Bt~S3CeGS-}K|-mxxe?L>CCBOLUbgK|e06&1h90y^zRS0pAI_!f46r7CCk;@|MHiGf!%{fc|w<I+YYR0mPN4WXtE>7PW4bTn zn(^%@16vaOk18Es1_h1{&`7o%C0M~+QsU!3i&FZ&_9i4U0W3h|#t}@Ua{zria9ezo zMY)o`03vLZq~Q(Nm4`3mDX=PfX{PML*x{!2!K3frY{n9Q)ruw*hSwu5K3Nc6PNR1C0Jp@R4A4>^<|RiYO8M&JlML zw1sckB@dB!N(Dmzz7LHz!t8i+S9|d74@4T`w?{k&c*%p5RIi8s3Mn)4SrpZsfB7;#Lz+ebi{$tK?YU{ISRyKU0Ml+whuYmIlv)DL^%e>&vm2xkV6%;$ z5pdbmTm`dy#mn)xE;dIj7IHJhVL>256c&8tAUF52wl%Vez+FUYMTg}+{U&FxP|dJ_ znTKFM1li%ywdouiH^OUiOx)r*b~1S3XvRL54KC^$2gcaGD85?tTQ7a|(^jdfX6%DT zOq2~JTXG=5qUXX*+66mcV&kG2qoYM|-@7h)v#_mv?PwhO>hR81kly~S!oxw)msa49 zqO406hQ8LiTj<-wFDsQoj7Cw$Dg+g%K*MvYTc}tuhnLj7r-NsP6hoA6?lR}m zp7_I}EM1EGxcDfJz-Zo<9q`nKq`3gn1&{`>X|a0-B2@LQuw-4E|! zt7;~AFTi$qTTZ%>Ve-i2JV4EqRG=F-0aIf(JI1hU&x5<#1#C7Fx!`_xJI>bQj^yv4 z@{qcZXksEy_fnmx?BpI4}Lk@(TqM^^Rc0Hnx) zp5XB+%Qo1qJm_a8-RtU|mk+JtQbC~uwwPhqMKHJhHAQ9zERAp>>h-EU1G&KO{JQum z0iO)n>;-rLyHY?|#KB*JC}RP3K&ysmNcvssX z-b^d9giKJkhJO1HcLSt}L#(Fm?qp5fc~&7mIa;*p2G59#ERU$r@_g=xYxyYbkLUiT zKZaTiodjFYE)u$oS=;`(gR2L9*23-+%QvAEaeA;Z2q12F4jz$}dghx|@xXg{VFqbN z8Ls;@TBKGe|B-dfl_bDDp^Xb)gZyDFbj{Nb&hprg(8uk8Z4d8i^8)(l$+SykuD<2D zdI57M(4L$4SOGu?vRNAhez{nAsCY7+1FZ;1gZblfgsFm%hygf^7LbjJF6?|W;^Z?M zk7DH1uJ$h9mtE-C+PsAh32L%&aI+@+;FS@zKW%*TB@B9+-1guX??l8($U$7+px#VX zFTWkpWPt3ZlZ&xFrfFP=a$TiQfB1q$5$!Z1eDUEylJ&;@>%(e1DA)aqO6!+L5j~zX z31KT}-B=A}*&Tk@7bFATM2IIoo2a-etIL<^)J+$^19aonEfp%z#r#84kPVmO1u9pf z8(g^-SzJMWTAFSZa)F?A7g-;<*mN|0u8XJ9^IqJTr8&53x$p8Tewj(up`RLii3>=ve8 z+MXPwnxGNzUm@c+ho%Vhgf90;6O?BmG_&m-ftF#Ci$Qvo9iTk8lxQsrNd*-dwu2g;KNodVsf5m=v%IdD zg{^LFA^QH^Jreab+5grS@Cmno=Bz(=lBE!QvsW4xf1q`5q-!U4f_?<`<8DGmNgN2+ z0{R-2b9i%3Uwa1!X?#hX zwcYKpBwCb3l&E7H_d^et4FpThM?tkZeEkMEP_VsuzMz5ujZ?w7zM4XTyMz(;3Ag4z zs3j`Bq|SfrfNPExHd;4Adr}n%JuE$78E@z+6H`=?>bDWv`=j>c*W8-asgGW@Z^c0K z(fH3zYF}>lHHTlLW1p2aIpuKfsY`IdU~_LGySh4IPd3LdNr3jlNX#0ej4lcS_t zxHT?GWW{%UlGyYj>Ip4=>o!`;&FJ0>cC{5N`wqru&Xa6kw47yhqtp3Om)o_shPr)A zoMAHvS|Rf7edXLi?O7l1D-1AE53!U~aKqK+j2J=Y*xS4%`hdzJ)O!T|Y)VypZ~(oy z>c>SWV(fD%ZamKTUgX(wZRSllPlvWilrq@qt>q-gFCv#LF4;}sVUutWc0j6!`XIR2 zl4m{1?0KaX60DktNX2DHZsz*nL`noyOqC$l0>#E?9TpDKE?3z_oZE^9M?Xjys90ua z=mzf}f6mYjk9Qw8L zUV%d@e^RQj>q4`h0c`@+&~|SLz@jCBdM)VR;JgY*twKYfwEyle)Xe(^@{bSMySoz4 z%<^RbNyJfJOZ^u2YV?xkWdK9d^y}ie*zi6C`%{$Fc6>ZBp6FN)1=AyoL6AeyiRL*1(x3*!Uiwe3 zQIHr!JCI1u2F?!R*zxsKsfsVAQs?{9)`ArUDk;S(f|7AH-muGWde_RF-9YChG&VLH zvkmFfN3M0KQUy~;0H~awcYSZR*HK2V9a(!#Iv3+eHl@>h?CZZtA{X+h%5s=TjuM+H+b0Qp&PZR9-r6a?KtNoR6Kea9fX#K4TfdJz_Ntdgm^k zdOyk_VGJ5dsDyt%yDOD4CFk9*mTEgG-N~D={i58!-&F-BR zj+y{FF&PM=#m&94)*$S7CI>#FV8$yJ(YT#twdvM zKf^L;h8Q1^Kfgd2o`a{#1P&Rf3E@rv!hgv<_g?FOl<(Y;q%!7^DAC#xxduIp&m!};0d`S1JqY%-_vczys# zr-`y8N;OW@u?cnLWQf)^0Q0E>n_A-3AT{a?GhZVR5C3%EE=Khb_r*oQP=vX0h&+@n zg~usINXHmk5qnbcO-q_jy9^#k{+>E_Rmn; zG}?ari#tnp*NAbWSK;fcoui#Okjj#1IgxU=%eDDvEf5esi%!$U1o1io+734Ci?V6O0k>2 zO`^m@zcfC4J*9=UKeh8XV}B7+SZw3;iaYhE6U63hDDaZ!)o-4~RLljnX@F?RqQGl&EL+yV;4K75r5k#MKO{VI0 zOLVQ=5st+0|E(S2))cyNd$uA5_?6er$mD{^O(*yd+Hg=T4i=V+9ur6<#*EwBvXd*h$HG1*yQ7!({Cu9O+aguy{>cWnwsT+wsMSVV+-VM?*SqG|@0HYtp6Ez#_1$@@G?@ z!_;v)+~Dy<-=+2AYZ;`bV(AaPdwr>cP#Uj-0Iuu{j9UUS72b~$vhl?S5Jcn@+P4)!G*VenESmQ$yHmu<4o%6Ri51{QhdbmDMam+jeFuQ_*IB1R zDXQ{lIrQZr$IttB9m-GQM4%KX);l0kkl zeAWmCLY^pJ!wr_*FsT99gb;Rn9o5WXRDQiXLV+^aA0C|D7{bvyKL@j8gs%@qU+(_u zaSj7&HSzkxe^8Qf2JDjB`$IH!+t}Uh=2&rA6xCk;uKG)gNd;B|LN1~8SA<3=;7i`# zsGAs?t*G)wQ)9TdtpI%CxzPrUU>fHxDD}=i?B)YlDUb9vN)M@(7$ zwjD?SYsv1yzb+8v98*fzDw~^6e%7;*{rr(`ib_Cmid=lzTKjS{YxqOGZOJO@u}jJGk(m7HWu$bt8ZgYy@F3LzKbGRS6-1O-89pem}NoIgG3 z;4>nBTfBuyJyFa1{UU$?oeltbDQG7LKR`38_J%VJHzd+rQQd&H55_0{YyYoY8CE!z5JsH3tS@m`~eKieUZ zCk7qZb^<`an-$BYFI>_ibj8;@f;Q?jIe+7RD2L7t7|8!r4kD{9;jT~sIQq5dn}z!k z+^R?j0wCm>_21+u@d6HYy;3OI_-N7UzgLv5!?^I|7E~S7pe#Fjz5y{mc<;}2qqC5p zENMm85oL)qu>Y74yfv5DQq1MjJ6Uqy$dV!fHe~RChugk3gw^>3DCRnZ6LH79BV`q zaC9z1vyL!-v&z)L<7ex*M{i%>CYn2&fux=OWuB}Rz7{=+nW`n@0kNcDlHV_#PmbF0 zQ9j{%rFYIB_*Q)NhvF%MXpB{}4f1#>>bP%q&7lq?b;PYewYhBdm}_s`)NpoB>vzuE z;8}K&rHk?$bTR)$l7goNH~=B36cN2@CqX zVT4wf7}vprk%O|Sp>}GF16E~4XA2by*BF0)nV&##aFo?-K$$7;4h_ALETeW(Dk%!z zblrTu+yZKMfU!27U44$)iOj`@e$yp^r86rTI&1|k`_ecov%)H1h8G7<_KVpQLi6bq zsMwx)Jr}vZ`;`g>#5yWTBO;3s;g1{%`~?@9sNbYDUFE~x777d^#+A?ymt(72AvP0T zOt!tY{&k^~ggz-Nhah|eG|NYy3kgn=^A z1SFU`3BN2Lncp|72dB${pDNKBzox+WuvRCgsk~mb03d<(!7qJJPF{hE6gMrQ9))v; z+>m-UbEXQGhtTp>{3vC#%1lfz;s&6UwZGcbv@0+RnATtDr^l9su=}2>8&3U$Bpe|o znCZ|$E&EkvzaIn~R-{4kN076B4Lms6r$LEnI{;T5P!pgyAw+J2votVkKGHcMGC6*e zqvY=*V_3qqb|5le?W4+CnM1$$=kR%gLCbsqBR>Uc8qKxN1FD?^XKx^VE?49iV5gnb z-j%@^`Y(;YZT;tW|JnxtAJC4&%v}F6M8F;=mqaiQX}y>1M~hY6tVfCYuPp$K02#0AX(oLydi>GHE5~QJ zQ+_9+;S8Cpo*K*{n!0OUc_GAUR{7mE#YjZFZ5Q$`|MyVU6A)t5DHs^IS-+kl5>}52 zgwpQb(rf9vg?Hf<B2bb|R6yFJnWBrmhT;1nqtRG1b8OMq@?x^}Ne`k(kJmRg(S@mn3{&#qF(q4k?(3;jCA$fwV%`D7~DRv{1fcN9;hZV9zSkID$$N~viCnhXSW zxzO&EcF*^0+3L4MnJFx9FJ65QX0}kZR^h%%_b^tVB|RXu>9DGy?gk(X(s}d{ckN)@ zO)_%@F;n7@cETIe1<+*TJfjaCRu;Y9CC?S=93l68n8pvU%-z(2d3#Iab2yqluGa63EH-JDU(7dTu z71{7HQ7y7U7#>pjwY9^Kg5;pUB#vx|EsuIZ%YbCIjnm;rEKLO}1$psYkb3qTG@&=j z3=M}u%;G4MQfVTKffjbR9uqf^Uhs;-2BEWLAfIzaB8SyLh?{!N3z@)n1EUXIbvEV~ z(4`(YlN)Unu}V? z2M33siy%iK*wa(%!Abt^;Ue(!s~@+apZ4GTfCxKB+o1xJ06`K6eVg3+;bqGNJn}D; zqA~p$l#7 z?Evn2V^>H*P9)!U_@jesn`oHrV4gN}wJczle}Q`Qr}hQbfBFkuyTBy{X!abn_0_yG zK|FE&9g3j0!)ADaJ-3@xeQz?n{a*1|!g{Y@WQ0fg`XsFL%7U^wHubvmA~yQhGV)KYpn4_M(T z9$wQBL{kq54m7+0bDl#+5d^L*VE(?~V}q>P)({kF|C8oZGRnhg!(xwJL+w?ze=aJr z5ey!E{s7T5S<%r9|MeZ{ww%U34`P1R>p?3f$dH;$LNKLCHxd$ndAX-`jwFom&aAk| z5tJn|*@UY62RX{gT5dw(;W;e_e{U$&1Z0oY4vqF~5Wya6hV@2Zb0^!@D7CrrJDm9_6 z%2~hd+t-L6rUztpJO8*^p)*^#La?B>{QgY9yMz`X;p=t~R)jP>kvuz)st`QT(4ZDk zXwkR7ZopvaKeW!~7wH4%7_VQ|_8G+1D(C6A+Ze*_8Uq(nU2WdR(XIx2rtV}_bz1aB zL^I~ZpD$K3?^<#V%d?xm^pyuvXv=ApUm{gd0dQQ5YU0b<^wDEa4_u9*6Q*2YayL+3 zfq50CyHDslIL?+##Z#SkyUx?Wnwn4ipu&n zbiM>-lCF(w%4`xyGBG;C$SO_@U4DTRRQA+rQ~tfmna(J|x~yG~4iYN7xE1dLN9%TT zItdWrp~qilf2b*9i9c2bp)$17SzVI0KV>U|TX@A@HPDC1Ie4 z!(E%ZA;*>smaUa$hRWM#CQyY2$w|!Zf|d@~*P1u&ka2_BP2>Ck2r4cdR^@I^MGg!U-xAka42Ek!qkIe?~Ydxn#nAK&+42vK9Mp7_4x5^ zWxrZKI*Yb(kD@BNd(CK4<>Qe;iL2OD7=o-JkjZE?&K{t80$e2%nJqwzaUF7>#4soc zRgKEUWfRcHpG@?p_#50Z@AI-n&Ay?hHfpnv4I^JqzvS7}{?V-*1gN{*@RJ7o1g3$` zYs75eFLMcLeQ+OGh~l%vX|L-mRLYhsJ)0EHN(!c8YIcvyo?%-tN`@jqMnIYv7&f^7 z`210{hUQq$YoY~abXS=iVd$M-{q2YmwEaMtjkPG>9cswvvnxIwg((f#D8%s$T|L}e z$eF?(ZnJRDjfplFGM+dHIQ3Rx9sS;4bU# z1v=z!_8mheAYaGI3H0?GnJh>72e*g7gv>!U4+}D=D+0~l$kVtEg7O*|XrhTAUcdI1 zD*g7aqX|IQg7^knw4uO6ohkhx&>6OvQfJ8IObkI&p`+81e3a?= zQAe-TeE`r{IWB@dDwg&{08s&egV4tRR*ABJ`MLDSdR@oqFnye;VcS*4mhR7%0HyRy z3`Sv=58Vd&p9;bL2p2-ee))-rY%T|nk7 zKM32*fjc?idKzjsTm;lrv7l*Y_`Ciisokh8{`1m>otTV`M_O->17q|E32L+gf(j!F z0GRBMV^{HPIJw!Sv&jc_aO~wSzt40|0btoS2^2oabo!!pfR`df3Yt}P#m;|pQ=vb#&-nrff6qw%c@L)iK&K8|GGLD7lb^Wi z(0D&gF76Bsy950wNYX%3n|m~pgNl)T=K}0et9AGF$ zt~(#tm~i_zy4~yT<5Jo>p^3Mq2VG2pdk9&pAT5EFBSpIBH*^gWZgmp#B>37qROw>D z45#FikbX+sa_90^YTAfZ54|J;qM1Kji#gOwZ{d0`>#^!T=sTYR&PT;g>w46ddE^p} zr;pV^b4ZNuf_=h~p*Ekc-O-X}f7H)GhctH

WF-<4wEGJxyJQqc0r@ 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 { + it("can add files and cancel", () => { + cy.web3Login() + cy.get("[data-cy=upload-modal-button").click() + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-cancel-button").click() + cy.get("[data-cy=files-app-header").should("be.visible") + }) + + it("can add/remove files and upload", () => { + cy.web3Login({ clearCSFBucket: true }) + cy.get("[data-cy=upload-modal-button").click() + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/logo.png") + cy.get(".scrollbar li").should("have.length", 2) + cy.get(".removeFileIcon").first().click() + cy.get(".scrollbar li").should("have.length", 1) + cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") + cy.get(".scrollbar li").should("have.length", 2) + cy.get("[data-cy=upload-ok-button").click() + cy.get("[data-cy=files-app-header").should("be.visible") + cy.get("[data-cy=file-item-row]").should("have.length", 2) + }) +}) diff --git a/packages/storage-ui/cypress/integration/settings.ts b/packages/storage-ui/cypress/integration/settings.ts new file mode 100644 index 0000000000..755944da7e --- /dev/null +++ b/packages/storage-ui/cypress/integration/settings.ts @@ -0,0 +1,30 @@ +describe("Settings", () => { + it("can navigate to the settings profile page", () => { + cy.web3Login() + cy.get("[data-cy=settings-nav]").click() + cy.get("[data-cy=settings-profile-header").should("be.visible") + cy.url().should("include", "/settings") + cy.get(".profile").click() + cy.url().should("include", "/settings/profile") + cy.get("[data-cy=settings-profile-header]").should("be.visible") + cy.get(".security").click() + cy.url().should("include", "/settings/security") + cy.get("[data-cy=settings-security-header").should("be.visible") + }) + + it("can navigate to the settings security page on a phone", () => { + cy.viewport("iphone-6") + cy.web3Login() + cy.get(".hamburger-menu").click() + cy.get("[data-cy=settings-nav]").click() + cy.get("[data-cy=settings-profile-header]").should("not.exist") + cy.url().should("include", "/settings") + cy.get(".profile").click() + cy.url().should("include", "/settings/profile") + cy.get("[data-cy=settings-profile-header").should("be.visible") + cy.go("back") + cy.get(".security").click() + cy.url().should("include", "/settings/security") + cy.get("[data-cy=settings-security-header").should("be.visible") + }) +}) diff --git a/packages/storage-ui/cypress/plugins/index.ts b/packages/storage-ui/cypress/plugins/index.ts new file mode 100644 index 0000000000..e03152c9d8 --- /dev/null +++ b/packages/storage-ui/cypress/plugins/index.ts @@ -0,0 +1,33 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** +import { existsSync, readFileSync } from "fs" + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ + +export default (on: any) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config + + on("task", { + readFileMaybe(filename: string) { + if (existsSync(filename)) { + return readFileSync(filename, "utf8") + } + + return null + } + }) +} diff --git a/packages/storage-ui/cypress/support/commands.ts b/packages/storage-ui/cypress/support/commands.ts new file mode 100644 index 0000000000..8d439ccb19 --- /dev/null +++ b/packages/storage-ui/cypress/support/commands.ts @@ -0,0 +1,207 @@ +/* eslint-disable @typescript-eslint/no-namespace */ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) + +import { ethers, Wallet } from "ethers" +import { testPrivateKey, testAccountPassword, localHost } from "../fixtures/loginData" +import { CustomizedBridge } from "./utils/CustomBridge" +import "cypress-file-upload" + +export type Storage = Record[] + +export interface Web3LoginOptions { + url?: string + apiUrlBase?: string + saveBrowser?: boolean + useLocalAndSessionStorage?: boolean + clearCSFBucket?: boolean +} + +const SESSION_FILE = "cypress/fixtures/storage/sessionStorage.json" +const LOCAL_FILE = "cypress/fixtures/storage/localStorage.json" +const REFRESH_TOKEN_KEY = "csf.refreshToken" + +Cypress.Commands.add("clearCsfBucket", (apiUrlBase: string) => { + cy.window().then((win) => { + cy.request("POST", `${apiUrlBase}/user/refresh`, { "refresh": win.sessionStorage.getItem(REFRESH_TOKEN_KEY) }) + .then((res) => res.body.access_token.token) + .then((accessToken) => { + cy.request({ + method: "POST", + url: `${apiUrlBase}/files/ls`, + body: { "path": "/", "source": { "type": "csf" } }, + auth: { "bearer": accessToken } + }).then((res) => { + const toDelete = res.body.map(({ name }: { name: string }) => `/${name}`) + cy.request({ + method: "POST", + url: `${apiUrlBase}/files/rm`, + body: { "paths": toDelete, "source": { "type": "csf" } }, + auth: { "bearer": accessToken } + }).then(res => { + if(!res.isOkStatusCode){ + throw new Error(`unexpected answer when deleting files: ${JSON.stringify(res, null, 2)}`) + } + }) + }) + }) + }) +}) + +Cypress.Commands.add("saveLocalAndSession", () => { + // save local and session storage in files + cy.window().then((win) => { + const newLocal: Storage = [] + const newSession: Storage = [] + + Object.keys(win.localStorage).forEach((key) => { + newLocal.push({ key, value: win.localStorage.getItem(key) || "" }) + }) + + Object.keys(win.sessionStorage).forEach((key) => { + newSession.push({ key, value: win.sessionStorage.getItem(key) || "" }) + }) + + const newLocalString = JSON.stringify(newLocal) + const newSessionString = JSON.stringify(newSession) + + cy.writeFile(SESSION_FILE, newSessionString) + cy.writeFile(LOCAL_FILE, newLocalString) + }) +}) + +Cypress.Commands.add("web3Login", ({ + saveBrowser = false, + url = localHost, + apiUrlBase = "https://stage.imploy.site/api/v1", + useLocalAndSessionStorage = true, + clearCSFBucket = false +}: Web3LoginOptions = {}) => { + let session: Storage = [] + let local: Storage = [] + + cy.task("readFileMaybe", SESSION_FILE) + .then((unparsedSession) => { + session = unparsedSession && JSON.parse(unparsedSession) || [] + }) + + cy.task("readFileMaybe", LOCAL_FILE) + .then((unparsedLocal) => { + local = unparsedLocal && JSON.parse(unparsedLocal) || [] + }) + + cy.on("window:before:load", (win) => { + const provider = new ethers.providers.JsonRpcProvider("https://rinkeby.infura.io/v3/4bf032f2d38a4ed6bb975b80d6340847", 4) + const signer = new Wallet(testPrivateKey, provider) + // inject ethereum object in the global window + Object.defineProperty(win, "ethereum", { + get: () => new CustomizedBridge(signer as any, provider as any) + }) + + // clear session storage in any case, if previous session storage should be + // kept will be decided after. + // Note that Cypress keep the session storage between test but clears localStorage + win.sessionStorage.clear() + win.localStorage.clear() + + if (useLocalAndSessionStorage) { + session.forEach(({ key, value }) => { + win.sessionStorage.setItem(key, value) + }) + + local.forEach(({ key, value }) => { + win.localStorage.setItem(key, value) + }) + } + }) + + cy.visit(url) + + // with nothing in localstorage (and in session storage) + // the whole login flow should kick in + cy.then(() => { + cy.log("Logging in", local.length > 0 && "there is something in session storage ---> direct login") + + if (local.length === 0) { + cy.log("nothing in session storage, --> click on web3 button") + cy.get("[data-cy=web3]").click() + cy.get(".bn-onboard-modal-select-wallets > :nth-child(1) > .bn-onboard-custom").click() + cy.get("[data-cy=sign-in-with-web3-button]").click() + cy.get("[data-cy=login-password-button]", { timeout: 20000 }).click() + cy.get("[data-cy=login-password-input]").type(`${testAccountPassword}{enter}`) + + if (saveBrowser) { + // this is taking forever for test accounts + cy.get("[data-cy=save-browser-button]").click() + } else { + cy.get("[data-cy=do-not-save-browser-button]").click() + } + } + }) + + cy.get("[data-cy=files-app-header", { timeout: 20000 }).should("be.visible") + + cy.saveLocalAndSession() + + if (clearCSFBucket) { + cy.clearCsfBucket(apiUrlBase) + } +}) + +// Must be declared global to be detected by typescript (allows import/export) +// eslint-disable @typescript/interface-name +declare global { + namespace Cypress { + interface Chainable { + /** + * Login using Metamask to an instance of Files. + * @param {String} options.url - (default: "http://localhost:3000") - what url to visit. + * @param {String} apiUrlBase - (default: "https://stage.imploy.site/api/v1") - what url to call for the api. + * @param {Boolean} options.saveBrowser - (default: false) - save the browser to localstorage. + * @param {Boolean} options.useLocalAndSessionStorage - (default: true) - use what could have been stored before to speedup login + * @param {Boolean} options.clearCSFBucket - (default: false) - whether any file in the csf bucket should be deleted. + * @example cy.web3Login({saveBrowser: true, url: 'http://localhost:8080'}) + */ + web3Login: (options?: Web3LoginOptions) => Chainable + + /** + * Removed any file or folder at the root + * @param {String} apiUrlBase - what url to call for the api. + * @example cy.clearCsfBucket("https://stage.imploy.site/api/v1") + */ + clearCsfBucket: (apiUrlBase: string) => Chainable + + /** + * Save local and session storage to local files + * @example cy.saveLocalAndSession() + */ + saveLocalAndSession: () => Chainable + } + } +} + +// Convert this to a module instead of script (allows import/export) +export { } diff --git a/packages/storage-ui/cypress/support/index.ts b/packages/storage-ui/cypress/support/index.ts new file mode 100644 index 0000000000..9fd31b5693 --- /dev/null +++ b/packages/storage-ui/cypress/support/index.ts @@ -0,0 +1,31 @@ +/// +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** +// Import commands.js using ES2015 syntax: +import "./commands" + +// the following gets rid of the exception "ResizeObserver loop limit exceeded" +// which someone on the internet says we can safely ignore +// source https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded +const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/ +Cypress.on("uncaught:exception", (err) => { + /* returning false here prevents Cypress from failing the test */ + if (resizeObserverLoopErrRe.test(err.message)) { + return false + } +}) + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/packages/storage-ui/cypress/support/utils/CustomBridge.ts b/packages/storage-ui/cypress/support/utils/CustomBridge.ts new file mode 100644 index 0000000000..4924ecbbff --- /dev/null +++ b/packages/storage-ui/cypress/support/utils/CustomBridge.ts @@ -0,0 +1,82 @@ +import { Eip1193Bridge } from "@ethersproject/experimental/lib/eip1193-bridge" +import { toUtf8String } from "ethers/lib/utils" +import { testAddress } from "../../fixtures/loginData" + +export class CustomizedBridge extends Eip1193Bridge { + async sendAsync(...args: Array) { + return this.send(...args) + } + + async isMetaMask() { + return true + } + + async send(...args: Array) { + const isCallbackForm = typeof args[0] === "object" && typeof args[1] === "function" + let callback + let method + let params + if (isCallbackForm) { + callback = args[1] + method = args[0].method + params = args[0].params + } else { + method = args[0] + params = args[1] + } + + if (method === "personal_sign") { + const addr = params[1] + const message = params[0] + + if ( + (addr as string).toLowerCase() !== testAddress.toLowerCase() + ) { + return Promise.reject( + `Wrong address, expected ${testAddress}, but got ${addr}` + ) + } + + try { + const sig = await this.signer.signMessage(toUtf8String(message)) + return sig + } catch (e) { + return Promise.reject( + `Error in CustomizedBridge for personal_sign: ${e.message}` + ) + } + } + + if (method === "eth_requestAccounts" || method === "eth_accounts") { + if (isCallbackForm) { + callback({ result: [testAddress] }) + } else { + return Promise.resolve([testAddress]) + } + } + + if (method === "eth_chainId") { + if (isCallbackForm) { + callback(null, { result: "0x4" }) + } else { + return Promise.resolve("0x4") + } + } + + try { + const result = await super.send(method, params) + + if (isCallbackForm) { + callback(null, { result }) + } else { + return result + } + } catch (error) { + if (isCallbackForm) { + callback(error, null) + } else { + throw error + } + } + } +} \ No newline at end of file diff --git a/packages/storage-ui/cypress/tsconfig.json b/packages/storage-ui/cypress/tsconfig.json new file mode 100644 index 0000000000..c58896952f --- /dev/null +++ b/packages/storage-ui/cypress/tsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "strict": true, + "target": "es5", + "jsx": "react", + "lib": ["es5", "dom"], + "types": ["cypress", "cypress-file-upload"] + }, + "include": ["**/*.ts"] + } \ No newline at end of file diff --git a/packages/storage-ui/package.json b/packages/storage-ui/package.json new file mode 100644 index 0000000000..822de85fb4 --- /dev/null +++ b/packages/storage-ui/package.json @@ -0,0 +1,97 @@ +{ + "name": "storage-ui", + "version": "1.0.0", + "private": true, + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/runtime": "^7.0.0", + "@chainsafe/browser-storage-hooks": "^1.0.1", + "@chainsafe/files-api-client":"1.11.4", + "@chainsafe/web3-context": "1.1.4", + "@lingui/core": "^3.7.2", + "@lingui/react": "^3.7.2", + "@sentry/react": "^5.28.0", + "@tkey/default": "3.12.0", + "@tkey/security-questions": "3.12.0", + "@tkey/web-storage": "3.12.0", + "@toruslabs/torus-direct-web-sdk": "4.10.0", + "babel-loader": "8.1.0", + "babel-plugin-macros": "^2.8.0", + "babel-preset-env": "^1.7.0", + "babel-preset-react": "^6.24.1", + "bnc-onboard": "1.19.1", + "clsx": "^1.1.1", + "dayjs": "^1.9.7", + "eth-crypto": "^1.8.0", + "ethers": "^5.1.4", + "formik": "^2.2.5", + "mime-matcher": "^1.0.5", + "react": "^16.14.0", + "react-beforeunload": "^2.4.0", + "react-dnd": "14.0.2", + "react-dnd-html5-backend": "14.0.0", + "react-dom": "^16.14.0", + "react-h5-audio-player": "^3.5.0", + "react-hotkeys-hook": "^2.4.0", + "react-markdown": "^5.0.3", + "react-pdf": "5.3.0", + "react-scripts": "3.4.4", + "react-swipeable": "^6.0.1", + "react-toast-notifications": "^2.4.0", + "react-use-hotjar": "1.0.8", + "react-zoom-pan-pinch": "^1.6.1", + "remark-gfm": "^1.0.0", + "typescript": "~4.0.5", + "yup": "^0.32.8", + "zxcvbn": "^4.4.2" + }, + "devDependencies": { + "@craco/craco": "^5.9.0", + "@ethersproject/experimental": "^5.1.2", + "@lingui/babel-preset-react": "^2.9.2", + "@lingui/cli": "^3.7.2", + "@lingui/macro": "3.7.2", + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "@types/jest": "^26.0.16", + "@types/node": "^14.14.10", + "@types/react": "^17.0.0", + "@types/react-beforeunload": "^2.1.0", + "@types/react-dom": "^16.9.10", + "@types/react-pdf": "^5.0.0", + "@types/react-toast-notifications": "^2.4.0", + "@types/yup": "^0.29.9", + "@types/zxcvbn": "^4.4.0", + "babel-plugin-macros": "^2.8.0", + "cypress": "^7.3.0", + "cypress-file-upload": "^5.0.7", + "eslint-plugin-cypress": "^2.11.3" + }, + "scripts": { + "postinstall": "yarn compile", + "start": "craco --max_old_space_size=4096 start", + "build": "craco --max_old_space_size=4096 build", + "sentry": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); node scripts/sentry.js)", + "release": "(export REACT_APP_SENTRY_RELEASE=$(sentry-cli releases propose-version); yarn compile && yarn build && node scripts/sentry.js)", + "test": "cypress open", + "test:ci": "cypress run", + "analyze": "source-map-explorer 'build/static/js/*.js'", + "extract": "lingui extract", + "compile": "lingui compile", + "lingui-version": "lingui --version", + "lint": "eslint './{src, cypress}/**/*.{js,jsx,ts,tsx}'" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/packages/storage-ui/public/_redirects b/packages/storage-ui/public/_redirects new file mode 100644 index 0000000000..50a463356b --- /dev/null +++ b/packages/storage-ui/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 \ No newline at end of file diff --git a/packages/storage-ui/public/abstract-image-large.png b/packages/storage-ui/public/abstract-image-large.png new file mode 100644 index 0000000000000000000000000000000000000000..8780e05d66e8d3d954c6d5437692bf32f5f8f99b GIT binary patch literal 166672 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 z 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

+ + + diff --git a/packages/storage-ui/public/manifest.json b/packages/storage-ui/public/manifest.json new file mode 100644 index 0000000000..6d00931386 --- /dev/null +++ b/packages/storage-ui/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "ChainSafe-logo.png", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/packages/storage-ui/public/pdf.worker.min.js b/packages/storage-ui/public/pdf.worker.min.js new file mode 100644 index 0000000000..ba03f4776e --- /dev/null +++ b/packages/storage-ui/public/pdf.worker.min.js @@ -0,0 +1,22 @@ +/** + * @licstart The following is the entire license notice for the + * Javascript code in this page + * + * Copyright 2020 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * Javascript code in this page + */ +!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(function(){return function(e){var t={};function __w_pdfjs_require__(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};e[r].call(a.exports,a,a.exports,__w_pdfjs_require__);a.l=!0;return a.exports}__w_pdfjs_require__.m=e;__w_pdfjs_require__.c=t;__w_pdfjs_require__.d=function(e,t,r){__w_pdfjs_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})};__w_pdfjs_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};__w_pdfjs_require__.t=function(e,t){1&t&&(e=__w_pdfjs_require__(e));if(8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);__w_pdfjs_require__.r(r);Object.defineProperty(r,"default",{enumerable:!0,value:e});if(2&t&&"string"!=typeof e)for(var a in e)__w_pdfjs_require__.d(r,a,function(t){return e[t]}.bind(null,a));return r};__w_pdfjs_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};__w_pdfjs_require__.d(t,"a",t);return t};__w_pdfjs_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};__w_pdfjs_require__.p="";return __w_pdfjs_require__(__w_pdfjs_require__.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"WorkerMessageHandler",{enumerable:!0,get:function(){return a.WorkerMessageHandler}});var a=r(1)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.WorkerMessageHandler=t.WorkerTask=void 0;var a=r(2),i=r(5),n=r(6),s=r(27),o=r(4),c=r(46),l=r(47),h=r(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,a.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){var r=!1;e.on("test",(function wphSetupTest(t){if(r)return;r=!0;if(!(t instanceof Uint8Array)){e.send("test",null);return}const a=255===t[0];e.postMessageTransfers=a;e.send("test",{supportTransfers:a})}));e.on("configure",(function wphConfigure(e){(0,a.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){var r,o=!1,u=null,d=[];const f=(0,a.getVerbosityLevel)(),g=e.apiVersion;if("2.6.347"!==g)throw new Error(`The API version "${g}" does not match the Worker version "2.6.347".`);const m=[];for(const e in[])m.push(e);if(m.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+m.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream||void 0===Promise.allSettled)throw new Error("The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.");var p=e.docId,b=e.docBaseUrl,y=e.docId+"_worker",v=new c.MessageHandler(y,p,t);v.postMessageTransfers=e.postMessageTransfers;function ensureNotTerminated(){if(o)throw new Error("Worker was terminated")}function startWorkerTask(e){d.push(e)}function finishWorkerTask(e){e.finish();var t=d.indexOf(e);d.splice(t,1)}async function loadDocument(e){await r.ensureDoc("checkHeader");await r.ensureDoc("parseStartXRef");await r.ensureDoc("parse",[e]);e||await r.ensureDoc("checkFirstPage");const[t,a]=await Promise.all([r.ensureDoc("numPages"),r.ensureDoc("fingerprint")]);return{numPages:t,fingerprint:a}}function getPdfManager(e,t){var r=(0,a.createPromiseCapability)();let i;var s=e.source;if(s.data){try{i=new n.LocalPdfManager(p,s.data,s.password,t,b);r.resolve(i)}catch(e){r.reject(e)}return r.promise}var o,c=[];try{o=new l.PDFWorkerStream(v)}catch(e){r.reject(e);return r.promise}var h=o.getFullReader();h.headersReady.then((function(){if(h.isRangeSupported){var e=s.disableAutoFetch||h.isStreamingSupported;i=new n.NetworkPdfManager(p,o,{msgHandler:v,password:s.password,length:h.contentLength,disableAutoFetch:e,rangeChunkSize:s.rangeChunkSize},t,b);for(let e=0;e{let r=[];for(const e of t)r=e.filter(e=>null!==e).reduce((e,t)=>e.concat(t),r);if(0===r.length)return e.bytes;const n=o.xref;let c=Object.create(null);if(n.trailer){const e=Object.create(null),t=n.trailer.get("Info")||null;t&&t.forEach((t,r)=>{(0,a.isString)(t)&&(0,a.isString)(r)&&(e[t]=(0,a.stringToPDFString)(r))});c={rootRef:n.trailer.getRaw("Root")||null,encrypt:n.trailer.getRaw("Encrypt")||null,newRef:n.getNewRef(),infoRef:n.trailer.getRaw("Info")||null,info:e,fileIds:n.trailer.getRaw("ID")||null,startXRef:o.startXRef,filename:i}}n.resetNewRef();return(0,s.incrementalUpdate)(e.bytes,c,r)})}));v.on("GetOperatorList",(function wphSetupRenderPage(e,t){var i=e.pageIndex;r.getPage(i).then((function(r){var n=new WorkerTask("GetOperatorList: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.getOperatorList({handler:v,sink:t,task:n,intent:e.intent,renderInteractiveForms:e.renderInteractiveForms,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(n);if(!n.terminated){v.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}),this);v.on("GetTextContent",(function wphExtractText(e,t){var i=e.pageIndex;t.onPull=function(e){};t.onCancel=function(e){};r.getPage(i).then((function(r){var n=new WorkerTask("GetTextContent: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.extractTextContent({handler:v,task:n,sink:t,normalizeWhitespace:e.normalizeWhitespace,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(n);n.terminated||t.error(e)}))}))}));v.on("FontFallback",(function(e){return r.fontFallback(e.id,v)}));v.on("Cleanup",(function wphCleanup(e){return r.cleanup(!0)}));v.on("Terminate",(function wphTerminate(e){o=!0;const t=[];if(r){r.terminate(new a.AbortException("Worker was terminated."));const e=r.cleanup();t.push(e);r=null}else(0,i.clearPrimitiveCaches)();u&&u(new a.AbortException("Worker was terminated."));d.forEach((function(e){t.push(e.finished);e.terminate()}));return Promise.all(t).then((function(){v.destroy();v=null}))}));v.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();v.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof a.PasswordException){var t=new WorkerTask("PasswordException: response "+e.code);startWorkerTask(t);v.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);r.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);v.send("DocException",e)}))}else e instanceof a.InvalidPDFException||e instanceof a.MissingPDFException||e instanceof a.UnexpectedResponseException||e instanceof a.UnknownErrorException?v.send("DocException",e):v.send("DocException",new a.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof h.XRefParseException){r.requestLoadedStream();r.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties}).then((function(e){if(o){e.terminate(new a.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(r=e).onLoadedStream().then((function(e){v.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return y}static initializeFromPort(e){var t=new c.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!o.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let r=0;for(let a=0;at});e.promise=new Promise((function(r,a){e.resolve=function(e){t=!0;r(e)};e.reject=function(e){t=!0;a(e)}}));return e};t.escapeString=function escapeString(e){return e.replace(/([\(\)\\])/g,"\\$1")};t.getModificationDate=function getModificationDate(e=new Date(Date.now())){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),(e.getUTCDate()+1).toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return i};t.info=function info(e){i>=a.INFOS&&console.log("Info: "+e)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;return e.every((function(e,r){return e===t[r]}))};t.isBool=function isBool(e){return"boolean"==typeof e};t.isNum=function isNum(e){return"number"==typeof e};t.isString=function isString(e){return"string"==typeof e};t.isSameOrigin=function isSameOrigin(e,t){let r;try{r=new URL(e);if(!r.origin||"null"===r.origin)return!1}catch(e){return!1}const a=new URL(t,r);return r.origin===a.origin};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t){if(!e)return null;try{const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.removeNullCharacters=function removeNullCharacters(e){if("string"!=typeof e){warn("The argument for removeNullCharacters must be a string.");return e}return e.replace(s,"")};t.setVerbosityLevel=function setVerbosityLevel(e){Number.isInteger(e)&&(i=e)};t.shadow=shadow;t.string32=function string32(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){const t=e.length,r=[];if("þ"===e[0]&&"ÿ"===e[1])for(let a=2;a=a.WARNINGS&&console.log("Warning: "+e)}function unreachable(e){throw new Error(e)}function assert(e,t){e||unreachable(t)}function shadow(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!1});return r}const n=function BaseExceptionClosure(){function BaseException(e){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=this.constructor.name}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=n;t.PasswordException=class PasswordException extends n{constructor(e,t){super(e);this.code=t}};t.UnknownErrorException=class UnknownErrorException extends n{constructor(e,t){super(e);this.details=t}};t.InvalidPDFException=class InvalidPDFException extends n{};t.MissingPDFException=class MissingPDFException extends n{};t.UnexpectedResponseException=class UnexpectedResponseException extends n{constructor(e,t){super(e);this.status=t}};t.FormatError=class FormatError extends n{};t.AbortException=class AbortException extends n{};const s=/\x00/g;function stringToBytes(e){assert("string"==typeof e,"Invalid argument for stringToBytes");const t=e.length,r=new Uint8Array(t);for(let a=0;ae[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){function compare(e,t){return e-t}const r=[e[0],e[2],t[0],t[2]].sort(compare),a=[e[1],e[3],t[1],t[3]].sort(compare),i=[];e=Util.normalizeRect(e);t=Util.normalizeRect(t);if(!(r[0]===e[0]&&r[1]===t[0]||r[0]===t[0]&&r[1]===e[0]))return null;i[0]=r[1];i[2]=r[2];if(!(a[0]===e[1]&&a[1]===t[1]||a[0]===t[1]&&a[1]===e[1]))return null;i[1]=a[1];i[3]=a[2];return i}}t.Util=Util;const h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];const u=function createObjectURLClosure(){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function createObjectURL(t,r,a=!1){if(!a&&URL.createObjectURL){const e=new Blob([t],{type:r});return URL.createObjectURL(e)}let i=`data:${r};base64,`;for(let r=0,a=t.length;r>2]+e[(3&n)<<4|s>>4]+e[r+1>6:64]+e[r+20?a:Dict.empty}const i=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=i.get(t);if(void 0===e){e=[];i.set(t,e)}e.push(r)}for(const[t,r]of i){if(1===r.length||!(r[0]instanceof Dict)){a._map[t]=r[0];continue}const i=new Dict(e);for(const e of r)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map))void 0===i._map[t]&&(i._map[t]=r);i.size>0&&(a._map[t]=i)}i.clear();return a.size>0?a:Dict.empty};return Dict}();t.Dict=s;var o=function RefClosure(){let e=Object.create(null);function Ref(e,t){this.num=e;this.gen=t}Ref.prototype={toString:function Ref_toString(){return 0===this.gen?this.num+"R":`${this.num}R${this.gen}`}};Ref.get=function(t,r){const a=0===r?t+"R":`${t}R${r}`,i=e[a];return i||(e[a]=new Ref(t,r))};Ref._clearCache=function(){e=Object.create(null)};return Ref}();t.Ref=o;t.RefSet=class RefSet{constructor(){this._set=new Set}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}};t.RefSetCache=class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}forEach(e){for(const t of this._map.values())e(t)}clear(){this._map.clear()}};function isName(e,t){return e instanceof i&&(void 0===t||e.name===t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var a=r(2),i=r(7),n=r(8),s=r(9),o=r(12);class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,a.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){let e=null;if(this._docBaseUrl){const t=(0,a.createValidAbsoluteUrl)(this._docBaseUrl);t?e=t.href:(0,a.warn)(`Invalid absolute docBaseUrl: "${this._docBaseUrl}".`)}return(0,a.shadow)(this,"docBaseUrl",e)}onLoadedStream(){(0,a.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,r){(0,a.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,a.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,a.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,a.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,a.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,r,a,i){super();this._docId=e;this._password=r;this._docBaseUrl=i;this.evaluatorOptions=a;const n=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,n);this._loadedStreamPromise=Promise.resolve(n)}async ensure(e,t,r){const a=e[t];return"function"==typeof a?a.apply(e,r):a}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,r,a,n){super();this._docId=e;this._password=r.password;this._docBaseUrl=n;this.msgHandler=r.msgHandler;this.evaluatorOptions=a;this.streamManager=new i.ChunkedStreamManager(t,{msgHandler:r.msgHandler,length:r.length,disableAutoFetch:r.disableAutoFetch,rangeChunkSize:r.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,r){try{const a=e[t];return"function"==typeof a?a.apply(e,r):a}catch(a){if(!(a instanceof n.MissingDataException))throw a;await this.requestRange(a.begin,a.end);return this.ensure(e,t,r)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var a=r(2),i=r(8);class ChunkedStream{constructor(e,t,r){this.bytes=new Uint8Array(e);this.start=0;this.pos=0;this.end=e;this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=r;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,r=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=r;e=t)return;if(t<=this.progressiveDataLength)return;const r=this.chunkSize,a=Math.floor(e/r),n=Math.floor((t-1)/r)+1;for(let r=a;r=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getBytes(e,t=!1){const r=this.bytes,a=this.pos,i=this.end;if(!e){i>this.progressiveDataLength&&this.ensureRange(a,i);const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}let n=a+e;n>i&&(n=i);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e,t=!1){const r=this.getBytes(e,t);this.pos-=r.length;return r}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}skip(e){e||(e=1);this.pos+=e}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,r){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),r=Math.floor((this.end-1)/e)+1,a=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;i.push(e);n+=(0,a.arrayByteLength)(e);r.isStreamingSupported&&this.onProgress({loaded:n});r.read().then(readChunk,t);return}const o=(0,a.arraysToBytes)(i);i=null;e(o)}catch(e){t(e)}};r.read().then(readChunk,t)}).then(t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})})}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,r=new Set;this._chunksNeededByRequest.set(t,r);for(const t of e)this.stream.hasChunk(t)||r.add(t);if(0===r.size)return Promise.resolve();const i=(0,a.createPromiseCapability)();this._promisesByRequest.set(t,i);const n=[];for(const e of r){let r=this._requestsByChunk.get(e);if(!r){r=[];this._requestsByChunk.set(e,r);n.push(e)}r.push(t)}if(n.length>0){const e=this.groupChunks(n);for(const t of e){const e=t.beginChunk*this.chunkSize,r=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,r)}}return i.promise.catch(e=>{if(!this.aborted)throw e})}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const r=this.getBeginChunk(e),a=this.getEndChunk(t),i=[];for(let e=r;e=0&&a+1!==n){t.push({beginChunk:r,endChunk:a+1});r=n}i+1===e.length&&t.push({beginChunk:r,endChunk:n+1});a=n}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,r=void 0===e.begin,a=r?this.progressiveDataLength:e.begin,i=a+t.byteLength,n=Math.floor(a/this.chunkSize),s=i0||o.push(r)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getLookupTableFactory=function getLookupTableFactory(e){let t;return function(){if(e){t=Object.create(null);e(t);e=null}return t}};t.getInheritableProperty=function getInheritableProperty({dict:e,key:t,getArray:r=!1,stopWhenFound:i=!0}){let n,s=0;for(;e;){const o=r?e.getArray(t):e.get(t);if(void 0!==o){if(i)return o;n||(n=[]);n.push(o)}if(++s>100){(0,a.warn)(`getInheritableProperty: maximum loop count exceeded for "${t}"`);break}e=e.get("Parent")}return n};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,a.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const r=[];let n;for(;e>=1e3;){e-=1e3;r.push("M")}n=e/100|0;e%=100;r.push(i[n]);n=e/10|0;e%=10;r.push(i[10+n]);r.push(i[20+e]);const s=r.join("");return t?s.toLowerCase():s};t.log2=function log2(e){if(e<=0)return 0;return Math.ceil(Math.log2(e))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.isWhiteSpace=function isWhiteSpace(e){return 32===e||9===e||13===e||10===e};t.XRefParseException=t.XRefEntryException=t.MissingDataException=void 0;var a=r(2);class MissingDataException extends a.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`);this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class XRefEntryException extends a.BaseException{}t.XRefEntryException=XRefEntryException;class XRefParseException extends a.BaseException{}t.XRefParseException=XRefParseException;const i=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFDocument=t.Page=void 0;var a=r(2),i=r(10),n=r(5),s=r(8),o=r(12),c=r(25),l=r(22),h=r(11),u=r(26),d=r(28);const f=[0,0,612,792];function isAnnotationRenderable(e,t){return"display"===t&&e.viewable||"print"===t&&e.printable}class Page{constructor({pdfManager:e,xref:t,pageIndex:r,pageDict:a,ref:i,globalIdFactory:n,fontCache:s,builtInCMapCache:o,globalImageCache:c}){this.pdfManager=e;this.pageIndex=r;this.pageDict=a;this.xref=t;this.ref=i;this.fontCache=s;this.builtInCMapCache=o;this.globalImageCache=c;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;const l={obj:0};this._localIdFactory=class extends n{static createObjId(){return`p${r}_${++l.obj}`}}}_getInheritableProperty(e,t=!1){const r=(0,s.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(r)?1!==r.length&&(0,n.isDict)(r[0])?n.Dict.merge({xref:this.xref,dictArray:r}):r[0]:r}get content(){return this.pageDict.get("Contents")}get resources(){return(0,a.shadow)(this,"resources",this._getInheritableProperty("Resources")||n.Dict.empty)}_getBoundingBox(e){const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,a.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,a.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||f)}get cropBox(){return(0,a.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");(!(0,a.isNum)(e)||e<=0)&&(e=1);return(0,a.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let r;if(e===t||(0,a.isArrayEqual)(e,t))r=t;else{const i=a.Util.intersect(e,t);i&&i[2]-i[0]!=0&&i[3]-i[1]!=0?r=i:(0,a.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,a.shadow)(this,"view",r||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,a.shadow)(this,"rotate",e)}getContentStream(){const e=this.content;let t;if(Array.isArray(e)){const r=this.xref,a=[];for(const t of e)a.push(r.fetchIfRef(t));t=new o.StreamsSequenceStream(a)}else t=(0,n.isStream)(e)?e:new o.NullStream;return t}save(e,t,r){const i=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const n=[];for(const s of e)isAnnotationRenderable(s,"print")&&n.push(s.save(i,t,r).catch((function(e){(0,a.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(n)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then(()=>new i.ObjectLoader(this.resources,e,this.xref).load())}getOperatorList({handler:e,sink:t,task:r,intent:i,renderInteractiveForms:n,annotationStorage:s}){const o=this.pdfManager.ensure(this,"getContentStream"),c=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),l=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),h=Promise.all([o,c]).then(([a])=>{const n=new u.OperatorList(i,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources),pageIndex:this.pageIndex,intent:i});return l.getOperatorList({stream:a,task:r,resources:this.resources,operatorList:n}).then((function(){return n}))});return Promise.all([h,this._parsedAnnotations]).then((function([e,t]){if(0===t.length){e.flush(!0);return{length:e.totalLength}}const o=[];for(const e of t)isAnnotationRenderable(e,i)&&o.push(e.getOperatorList(l,r,n,s).catch((function(e){(0,a.warn)(`getOperatorList - ignoring annotation data during "${r.name}" task: "${e}".`);return null})));return Promise.all(o).then((function(t){e.addOp(a.OPS.beginAnnotations,[]);for(const r of t)e.addOpList(r);e.addOp(a.OPS.endAnnotations,[]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,normalizeWhitespace:r,sink:a,combineTextItems:i}){const n=this.pdfManager.ensure(this,"getContentStream"),s=this.loadResources(["ExtGState","XObject","Font"]);return Promise.all([n,s]).then(([n])=>new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:n,task:t,resources:this.resources,normalizeWhitespace:r,combineTextItems:i,sink:a}))}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const r=[];for(let a=0,i=t.length;a{const e=[];for(const t of this.annotations)e.push(c.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory).catch((function(e){(0,a.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter(e=>!!e)}))});return(0,a.shadow)(this,"_parsedAnnotations",e)}}t.Page=Page;const g=new Uint8Array([37,80,68,70,45]),m=new Uint8Array([115,116,97,114,116,120,114,101,102]),p=new Uint8Array([101,110,100,111,98,106]),b=/^[1-9]\.[0-9]$/;function find(e,t,r=1024,a=!1){const i=t.length,n=e.peekBytes(r),s=n.length-i;if(s<=0)return!1;if(a){const r=i-1;let a=n.length-1;for(;a>=r;){let s=0;for(;s=i){e.pos+=a-r;return!0}a--}}else{let r=0;for(;r<=s;){let a=0;for(;a=i){e.pos+=r;return!0}r++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){let r;if((0,n.isStream)(t))r=t;else{if(!(0,a.isArrayBuffer)(t))throw new Error("PDFDocument: Unknown argument type");r=new o.Stream(t)}if(r.length<=0)throw new a.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=r;this.xref=new i.XRef(r,e);this._pagePromises=[];this._version=null;const s={font:0};this._globalIdFactory=class{static getDocId(){return"g_"+e.docId}static createFontId(){return"f"+ ++s.font}static createObjId(){(0,a.unreachable)("Abstract method `createObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new i.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=h.Linearization.create(this.stream)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)(e)}return(0,a.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,p)&&(t=e.pos+6-e.start)}else{const r=1024,a=m.length;let i=!1,n=e.end;for(;!i&&n>0;){n-=r-a;n<0&&(n=0);e.pos=n;i=find(e,m,r,!0)}if(i){e.skip(9);let r;do{r=e.getByte()}while((0,s.isWhiteSpace)(r));let a="";for(;r>=32&&r<=57;){a+=String.fromCharCode(r);r=e.getByte()}t=parseInt(a,10);isNaN(t)&&(t=0)}}return(0,a.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,g))return;e.moveStart();let t,r="";for(;(t=e.getByte())>32&&!(r.length>=12);)r+=String.fromCharCode(t);this._version||(this._version=r.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){const e=this.linearization,t=e?e.numPages:this.catalog.numPages;return(0,a.shadow)(this,"numPages",t)}_hasOnlyDocumentSignatures(e,t=0){return e.every(e=>{if((e=this.xref.fetchIfRef(e)).has("Kids")){if(++t>10){(0,a.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const r=(0,n.isName)(e.get("FT"),"Sig"),i=e.get("Rect"),s=Array.isArray(i)&&i.every(e=>0===e);return r&&s})}get formInfo(){const e={hasAcroForm:!1,hasXfa:!1},t=this.catalog.acroForm;if(!t)return(0,a.shadow)(this,"formInfo",e);try{const r=t.get("XFA"),a=Array.isArray(r)&&r.length>0||(0,n.isStream)(r)&&!r.isEmpty;e.hasXfa=a;const i=t.get("Fields"),s=Array.isArray(i)&&i.length>0,o=!!(1&t.get("SigFlags"))&&this._hasOnlyDocumentSignatures(i);e.hasAcroForm=s&&!o}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch form information.")}return(0,a.shadow)(this,"formInfo",e)}get documentInfo(){const e={Title:a.isString,Author:a.isString,Subject:a.isString,Keywords:a.isString,Creator:a.isString,Producer:a.isString,CreationDate:a.isString,ModDate:a.isString,Trapped:n.isName};let t=this._version;if("string"!=typeof t||!b.test(t)){(0,a.warn)("Invalid PDF header version number: "+t);t=null}const r={PDFFormatVersion:t,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection};let i;try{i=this.xref.trailer.get("Info")}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("The document information dictionary is invalid.")}if((0,n.isDict)(i))for(const t of i.getKeys()){const s=i.get(t);if(e[t])e[t](s)?r[t]="string"!=typeof s?s:(0,a.stringToPDFString)(s):(0,a.info)(`Bad value in document info for "${t}".`);else if("string"==typeof t){let e;if((0,a.isString)(s))e=(0,a.stringToPDFString)(s);else{if(!((0,n.isName)(s)||(0,a.isNum)(s)||(0,a.isBool)(s))){(0,a.info)(`Unsupported value in document info for (custom) "${t}".`);continue}e=s}r.Custom||(r.Custom=Object.create(null));r.Custom[t]=e}}return(0,a.shadow)(this,"documentInfo",r)}get fingerprint(){let e;const t=this.xref.trailer.get("ID");e=Array.isArray(t)&&t[0]&&(0,a.isString)(t[0])&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==t[0]?(0,a.stringToBytes)(t[0]):(0,l.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);const r=[];for(let t=0,a=e.length;t{if((0,n.isDict)(e,"Page")||(0,n.isDict)(e)&&!e.has("Type")&&e.has("Contents")){i&&!t.pageKidsCountCache.has(i)&&t.pageKidsCountCache.put(i,1);return[e,i]}throw new a.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}).catch(r=>{(0,a.info)(r);return t.getPageDict(e)})}getPage(e){if(void 0!==this._pagePromises[e])return this._pagePromises[e];const{catalog:t,linearization:r}=this,a=r&&r.pageFirst===e?this._getLinearizationPage(e):t.getPageDict(e);return this._pagePromises[e]=a.then(([r,a])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:r,ref:a,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,globalImageCache:t.globalImageCache}))}checkFirstPage(){return this.getPage(0).catch(async e=>{if(e instanceof s.XRefEntryException){this._pagePromises.length=0;await this.cleanup();throw new s.XRefParseException}})}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,n.clearPrimitiveCaches)()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=t.XRef=t.ObjectLoader=t.Catalog=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(22),c=r(23),l=r(24);function fetchDestination(e){return(0,i.isDict)(e)?e.get("D"):e}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(0,i.isDict)(this._catDict))throw new a.FormatError("Catalog object is not a dictionary.");this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.globalImageCache=new l.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache}get version(){const e=this._catDict.get("Version");return(0,i.isName)(e)?(0,a.shadow)(this,"version",e.name):(0,a.shadow)(this,"version",null)}get collection(){let e=null;try{const t=this._catDict.get("Collection");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,a.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,a.shadow)(this,"acroForm",e)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(0,i.isRef)(e))return(0,a.shadow)(this,"metadata",null);const t=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,t);let n;if(r&&(0,i.isDict)(r.dict)){const e=r.dict.get("Type"),t=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(t,"XML"))try{n=(0,a.stringToUTF8String)((0,a.bytesToString)(r.getBytes()))}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Skipping invalid metadata.")}}return(0,a.shadow)(this,"metadata",n)}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(0,i.isDict)(e))throw new a.FormatError("Invalid top-level pages dictionary.");return(0,a.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read document outline.")}return(0,a.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(0,i.isDict)(e))return null;e=e.getRaw("First");if(!(0,i.isRef)(e))return null;const t={items:[]},r=[{obj:e,parent:t}],n=new i.RefSet;n.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;r.length>0;){const t=r.shift(),l=s.fetchIfRef(t.obj);if(null===l)continue;if(!l.has("Title"))throw new a.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:l,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=l.get("Title"),d=l.get("F")||0,f=l.getArray("C"),g=l.get("Count");let m=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(m=c.ColorSpace.singletons.rgb.getRgb(f,0));const p={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,a.stringToPDFString)(u),color:m,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(p);e=l.getRaw("First");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:p});n.put(e)}e=l.getRaw("Next");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:t.parent});n.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read permissions.")}return(0,a.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(0,i.isDict)(e))return null;let t=e.get("P");if(!(0,a.isNum)(t))return null;t+=2**32;const r=[];for(const e in a.PermissionFlag){const i=a.PermissionFlag[e];t&i&&r.push(i)}return r}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,a.shadow)(this,"optionalContentConfig",null);const r=t.get("D");if(!r)return(0,a.shadow)(this,"optionalContentConfig",null);const n=t.get("OCGs");if(!Array.isArray(n))return(0,a.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of n){if(!(0,i.isRef)(e))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:(0,a.isString)(t.get("Name"))?(0,a.stringToPDFString)(t.get("Name")):null,intent:(0,a.isString)(t.get("Intent"))?(0,a.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(r,o);e.groups=s}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read optional content config: "+e)}return(0,a.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const r=[];if(Array.isArray(e))for(const a of e)(0,i.isRef)(a)&&t.includes(a)&&r.push(a.toString());return r}function parseOrder(e,r=0){if(!Array.isArray(e))return null;const a=[];for(const s of e){if((0,i.isRef)(s)&&t.includes(s)){n.put(s);a.push(s.toString());continue}const e=parseNestedOrder(s,r);e&&a.push(e)}if(r>0)return a;const s=[];for(const e of t)n.has(e)||s.push(e.toString());s.length&&a.push({name:null,order:s});return a}function parseNestedOrder(e,t){if(++t>s){(0,a.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const i=r.fetchIfRef(e);if(!Array.isArray(i))return null;const n=r.fetchIfRef(i[0]);if("string"!=typeof n)return null;const o=parseOrder(i.slice(1),t);return o&&o.length?{name:(0,a.stringToPDFString)(n),order:o}:null}const r=this.xref,n=new i.RefSet,s=10;return{name:(0,a.isString)(e.get("Name"))?(0,a.stringToPDFString)(e.get("Name")):null,creator:(0,a.isString)(e.get("Creator"))?(0,a.stringToPDFString)(e.get("Creator")):null,baseState:(0,i.isName)(e.get("BaseState"))?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}get numPages(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new a.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,a.shadow)(this,"numPages",e)}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof NameTree){const r=e.getAll();for(const e in r)t[e]=fetchDestination(r[e])}else e instanceof i.Dict&&e.forEach((function(e,r){r&&(t[e]=fetchDestination(r))}));return(0,a.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();return t instanceof NameTree||t instanceof i.Dict?fetchDestination(t.get(e)||null):null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read page labels.")}return(0,a.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let r=null,n="";const o=new NumberTree(e,this.xref).getAll();let c="",l=1;for(let e=0,h=this.numPages;e=1))throw new a.FormatError("Invalid start in PageLabel dictionary.");l=e}else l=1}switch(r){case"D":c=l;break;case"R":case"r":c=(0,s.toRomanNumerals)(l,"r"===r);break;case"A":case"a":const e=26,t=65,i=97,n="a"===r?i:t,o=l-1,h=String.fromCharCode(n+o%e),u=[];for(let t=0,r=o/e|0;t<=r;t++)u.push(h);c=u.join("");break;default:if(r)throw new a.FormatError(`Invalid style "${r}" in PageLabel dictionary.`);c=""}t[e]=n+c;l++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if((0,i.isName)(e))switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,a.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if((0,i.isName)(e))switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,a.shadow)(this,"pageMode",t)}get viewerPreferences(){const e={HideToolbar:a.isBool,HideMenubar:a.isBool,HideWindowUI:a.isBool,FitWindow:a.isBool,CenterWindow:a.isBool,DisplayDocTitle:a.isBool,NonFullScreenPageMode:i.isName,Direction:i.isName,ViewArea:i.isName,ViewClip:i.isName,PrintArea:i.isName,PrintClip:i.isName,PrintScaling:i.isName,Duplex:i.isName,PickTrayByPDFSize:a.isBool,PrintPageRange:Array.isArray,NumCopies:Number.isInteger},t=this._catDict.get("ViewerPreferences");let r=null;if((0,i.isDict)(t))for(const i in e){if(!t.has(i))continue;const n=t.get(i);if(!e[i](n)){(0,a.info)(`Bad value in ViewerPreferences for "${i}".`);continue}let s;switch(i){case"NonFullScreenPageMode":switch(n.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=n.name;break;default:s="UseNone"}break;case"Direction":switch(n.name){case"L2R":case"R2L":s=n.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":switch(n.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=n.name;break;default:s="CropBox"}break;case"PrintScaling":switch(n.name){case"None":case"AppDefault":s=n.name;break;default:s="AppDefault"}break;case"Duplex":switch(n.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=n.name;break;default:s="None"}break;case"PrintPageRange":if(n.length%2!=0)break;n.every((e,t,r)=>Number.isInteger(e)&&e>0&&(0===t||e>=r[t-1])&&e<=this.numPages)&&(s=n);break;case"NumCopies":n>0&&(s=n);break;default:if("boolean"!=typeof n)throw new a.FormatError("viewerPreferences - expected a boolean value for: "+i);s=n}if(void 0!==s){r||(r=Object.create(null));r[i]=s}else(0,a.info)(`Bad value in ViewerPreferences for "${i}".`)}return(0,a.shadow)(this,"viewerPreferences",r)}get openAction(){const e=this._catDict.get("OpenAction");let t=null;if((0,i.isDict)(e)){const r=new i.Dict(this.xref);r.set("A",e);const a={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:r,resultObj:a});if(Array.isArray(a.dest)){t||(t=Object.create(null));t.dest=a.dest}else if(a.action){t||(t=Object.create(null));t.action=a.action}}else if(Array.isArray(e)){t||(t=Object.create(null));t.dest=e}return(0,a.shadow)(this,"openAction",t)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e&&e.has("EmbeddedFiles")){const r=new NameTree(e.getRaw("EmbeddedFiles"),this.xref).getAll();for(const e in r){const i=new u(r[e],this.xref);t||(t=Object.create(null));t[(0,a.stringToPDFString)(e)]=i.serializable}}return(0,a.shadow)(this,"attachments",t)}get javaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e){const r=e.get("S");if(!(0,i.isName)(r,"JavaScript"))return;let n=e.get("JS");if((0,i.isStream)(n))n=(0,a.bytesToString)(n.getBytes());else if(!(0,a.isString)(n))return;t||(t=[]);t.push((0,a.stringToPDFString)(n))}if(e&&e.has("JavaScript")){const t=new NameTree(e.getRaw("JavaScript"),this.xref).getAll();for(const e in t){const r=t[e];(0,i.isDict)(r)&&appendIfJavaScriptDict(r)}}const r=this._catDict.get("OpenAction");(0,i.isDict)(r)&&(0,i.isName)(r.get("S"),"JavaScript")&&appendIfJavaScriptDict(r);return(0,a.shadow)(this,"javaScript",t)}fontFallback(e,t){const r=[];this.fontCache.forEach((function(e){r.push(e)}));return Promise.all(r).then(r=>{for(const a of r)if(a.loadedName===e){a.fallback(t);return}})}cleanup(e=!1){(0,i.clearPrimitiveCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();const t=[];this.fontCache.forEach((function(e){t.push(e)}));return Promise.all(t).then(e=>{for(const{dict:t}of e)delete t.translated;this.fontCache.clear();this.builtInCMapCache.clear()})}getPageDict(e){const t=(0,a.createPromiseCapability)(),r=[this._catDict.getRaw("Pages")],n=new i.RefSet,s=this.xref,o=this.pageKidsCountCache;let c,l=0;!function next(){for(;r.length;){const h=r.pop();if((0,i.isRef)(h)){c=o.get(h);if(c>0&&l+c=0){const t=h.objId;t&&!o.has(t)&&o.put(t,c);if(l+c<=e){l+=c;continue}}const u=h.get("Kids");if(!Array.isArray(u)){if((0,i.isName)(h.get("Type"),"Page")||!h.has("Type")&&h.has("Contents")){if(l===e){t.resolve([h,null]);return}l++;continue}t.reject(new a.FormatError("Page dictionary kids object is not an array."));return}for(let e=u.length-1;e>=0;e--)r.push(u[e])}t.reject(new Error(`Page index ${e} not found.`))}();return t.promise}getPageIndex(e){const t=this.xref;let r=0;return function next(n){return function pagesBeforeRef(r){let n,s=0;return t.fetchAsync(r).then((function(t){if((0,i.isRefsEqual)(r,e)&&!(0,i.isDict)(t,"Page")&&(!(0,i.isDict)(t)||t.has("Type")||!t.has("Contents")))throw new a.FormatError("The reference does not point to a /Page dictionary.");if(!t)return null;if(!(0,i.isDict)(t))throw new a.FormatError("Node must be a dictionary.");n=t.getRaw("Parent");return t.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(0,i.isDict)(e))throw new a.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let n=0,l=e.length;n0;){var h=l[0],u=l[1];if(!Number.isInteger(h)||!Number.isInteger(u))throw new a.FormatError(`Invalid XRef range fields: ${h}, ${u}`);if(!Number.isInteger(s)||!Number.isInteger(o)||!Number.isInteger(c))throw new a.FormatError(`Invalid XRef entry fields length: ${h}, ${u}`);for(t=i.entryNum;t=e.length);){r+=String.fromCharCode(a);a=e[t]}return r}function skipUntil(e,t,r){for(var a=r.length,i=e.length,n=0;t=a)break;t++;n++}return n}var e=/^(\d+)\s+(\d+)\s+obj\b/;const t=/\bendobj[\b\s]$/,r=/\s+(\d+\s+\d+\s+obj[\b\s<])$/;var o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]);const l=new Uint8Array([111,98,106]);var h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var u=this.stream;u.pos=0;for(var d,f,g=u.getBytes(),m=u.start,p=g.length,b=[],y=[];m=p)break;v=g[m]}while(10!==v&&13!==v);else++m}for(d=0,f=y.length;d0;){const s=t.fetchIfRef(n.shift());if(!(0,i.isDict)(s))continue;if(s.has("Kids")){const e=s.get("Kids");for(let t=0,i=e.length;t10){(0,a.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const n=r.get("Kids");if(!Array.isArray(n))return null;let s=0,o=n.length-1;for(;s<=o;){const a=s+o>>1,i=t.fetchIfRef(n[a]).get("Limits");if(et.fetchIfRef(i[1]))){r=t.fetchIfRef(n[a]);break}s=a+1}}if(s>o)return null}const n=r.get(this._type);if(Array.isArray(n)){let r=0,i=n.length-2;for(;r<=i;){const a=r+i>>1,s=a+(1&a),o=t.fetchIfRef(n[s]);if(eo))return t.fetchIfRef(n[s+1]);r=s+2}}(0,a.info)(`Falling back to an exhaustive search, for key "${e}", in "${this._type}" tree.`);for(let r=0,i=n.length;r>")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1)){(0,i.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}if((0,n.isEOF)(this.buf1)){if(!this.recoveryMode)throw new i.FormatError("End of file inside dictionary");return a}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(a,e):a;this.shift();return a;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,r=e.pos;let a,o,c=0;for(;-1!==(a=e.getByte());)if(0===c)c=69===a?1:0;else if(1===c)c=73===a?2:0;else{(0,i.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===a||10===a||13===a){o=e.pos;const r=e.peekBytes(10);for(let e=0,t=r.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,i.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===a){(0,i.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,i.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);a=e.peekByte();e.skip(l);(0,s.isWhiteSpace)(a)||l--;return e.pos-l-r}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let r,a,n=!1;for(;-1!==(r=e.getByte());)if(255===r){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:n=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:a=e.getUint16();a>2?e.skip(a-2):e.skip(-2)}if(n)break}const s=e.pos-t;if(-1===r){(0,i.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte());)if(126===r){const t=e.pos;r=e.peekByte();for(;(0,s.isWhiteSpace)(r);){e.skip();r=e.peekByte()}if(62===r){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte())&&62!==r;);const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}inlineStreamSkipEI(e){let t,r=0;for(;-1!==(t=e.getByte());)if(0===r)r=69===t?1:0;else if(1===r)r=73===t?2:0;else if(2===r)break}makeInlineImage(e){const t=this.lexer,r=t.stream,a=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1))throw new i.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=r.pos-t.beginInlineImagePos);const o=a.get("Filter","F");let c;if((0,n.isName)(o))c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);(0,n.isName)(e)&&(c=e.name)}const l=r.pos;let h;h="DCTDecode"===c||"DCT"===c?this.findDCTDecodeInlineStreamEnd(r):"ASCII85Decode"===c||"A85"===c?this.findASCII85DecodeInlineStreamEnd(r):"ASCIIHexDecode"===c||"AHx"===c?this.findASCIIHexDecodeInlineStreamEnd(r):this.findDefaultInlineStreamEnd(r);let u,d=r.makeSubStream(l,h,a);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const a=r.pos;r.pos=t.beginInlineImagePos;const i=r.getBytes(s);r.pos=a;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,a,h);d.dict=a;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:r}=this.lexer;r.pos=e;const a=t.length;for(;r.pos=a){r.pos+=s;return r.pos-e}s++}r.pos+=n}return-1}makeStream(e,t){const r=this.lexer;let a=r.stream;r.skipToNextLine();const o=a.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,i.info)(`Bad length "${c}" in stream`);c=0}a.pos=o+c;r.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const r=1;for(let n=1;n<=r;n++){const r=e.length-n,c=e.slice(0,r),l=this._findStreamLength(o,c);if(l>=0){const e=a.peekBytes(r+1)[r];if(!(0,s.isWhiteSpace)(e))break;(0,i.info)(`Found "${(0,i.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new i.FormatError("Missing endstream command.")}c=t;r.nextChar();this.shift();this.shift()}this.shift();a=a.makeSubStream(o,c,e);t&&(a=t.createStream(a,c));a=this.filter(a,e,c);a.dict=e;return a}filter(e,t,r){let a=t.get("Filter","F"),s=t.get("DecodeParms","DP");if((0,n.isName)(a)){Array.isArray(s)&&(0,i.warn)("/DecodeParms should not contain an Array, when /Filter contains a Name.");return this.makeFilter(e,a.name,r,s)}let o=r;if(Array.isArray(a)){const t=a,r=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,r=0,a=0;if(45===e){a=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){a=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){r=10;e=this.nextChar()}if(e<48||e>57){if(10===r&&0===a&&((0,s.isWhiteSpace)(e)||-1===e)){(0,i.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}throw new i.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}a=a||1;let n=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const a=e-48;if(t)o=10*o+a;else{0!==r&&(r*=10);n=10*n+a}}else if(46===e){if(0!==r)break;r=1}else if(45===e)(0,i.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==r&&(n/=r);t&&(n*=10**(c*o));return a*n}getString(){let e=1,t=!1;const r=this.strBuf;r.length=0;let a=this.nextChar();for(;;){let n=!1;switch(0|a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 40:++e;r.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else r.push(")");break;case 92:a=this.nextChar();switch(a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 110:r.push("\n");break;case 114:r.push("\r");break;case 116:r.push("\t");break;case 98:r.push("\b");break;case 102:r.push("\f");break;case 92:case 40:case 41:r.push(String.fromCharCode(a));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&a;a=this.nextChar();n=!0;if(a>=48&&a<=55){e=(e<<3)+(15&a);a=this.nextChar();if(a>=48&&a<=55){n=!1;e=(e<<3)+(15&a)}}r.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:r.push(String.fromCharCode(a))}break;default:r.push(String.fromCharCode(a))}if(t)break;n||(a=this.nextChar())}return r.join("")}getName(){let e,t;const r=this.strBuf;r.length=0;for(;(e=this.nextChar())>=0&&!u[e];)if(35===e){e=this.nextChar();if(u[e]){(0,i.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");r.push("#");break}const a=toHexDigit(e);if(-1!==a){t=e;e=this.nextChar();const n=toHexDigit(e);if(-1===n){(0,i.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);r.push("#",String.fromCharCode(t));if(u[e])break;r.push(String.fromCharCode(e));continue}r.push(String.fromCharCode(a<<4|n))}else r.push("#",String.fromCharCode(e))}else r.push(String.fromCharCode(e));r.length>127&&(0,i.warn)("Name token is longer than allowed by the spec: "+r.length);return n.Name.get(r.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,i.warn)("getHexString - ignoring invalid character: "+e):(0,i.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,r,a=this.currentChar,n=!0;this._hexStringNumWarn=0;for(;;){if(a<0){(0,i.warn)("Unterminated hex string");break}if(62===a){this.nextChar();break}if(1!==u[a]){if(n){t=toHexDigit(a);if(-1===t){this._hexStringWarn(a);a=this.nextChar();continue}}else{r=toHexDigit(a);if(-1===r){this._hexStringWarn(a);a=this.nextChar();continue}e.push(String.fromCharCode(t<<4|r))}n=!n;a=this.nextChar()}else a=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==u[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new i.FormatError("Illegal character: "+t)}let r=String.fromCharCode(t);const a=this.knownCommands;let s=a&&void 0!==a[r];for(;(t=this.nextChar())>=0&&!u[t];){const e=r+String.fromCharCode(t);if(s&&void 0===a[e])break;if(128===r.length)throw new i.FormatError("Command token too long: "+r.length);r=e;s=a&&void 0!==a[r]}if("true"===r)return!0;if("false"===r)return!1;if("null"===r)return null;"BI"===r&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(r)}peekObj(){const e=this.stream.pos,t=this.currentChar,r=this.beginInlineImagePos;let a;try{a=this.getObj()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,i.warn)("peekObj: "+e)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=r;return a}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,r=!1){const a=e.get(t);if(Number.isInteger(a)&&(r?a>=0:a>0))return a;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),r=t.getObj(),a=t.getObj(),s=t.getObj(),o=t.getObj();let c,l;if(!(Number.isInteger(r)&&Number.isInteger(a)&&(0,n.isCmd)(s,"obj")&&(0,n.isDict)(o)&&(0,i.isNum)(c=o.get("Linearized"))&&c>0))return null;if((l=getInt(o,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:l,hints:function getHints(e){const t=e.get("H");let r;if(Array.isArray(t)&&(2===(r=t.length)||4===r)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(o),objectNumberFirst:getInt(o,"O"),endFirst:getInt(o,"E"),numPages:getInt(o,"N"),mainXRefEntriesOffset:getInt(o,"T"),pageFirst:o.has("P")?getInt(o,"P",!0):0}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=t.StringStream=t.StreamsSequenceStream=t.Stream=t.RunLengthStream=t.PredictorStream=t.NullStream=t.FlateStream=t.DecodeStream=t.DecryptStream=t.AsciiHexStream=t.Ascii85Stream=void 0;var a=r(2),i=r(5),n=r(8),s=function StreamClosure(){function Stream(e,t,r,a){this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+r||this.bytes.length;this.dict=a}Stream.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function Stream_getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function Stream_getUint16(){var e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t},getInt32:function Stream_getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()},getBytes(e,t=!1){var r=this.bytes,a=this.pos,i=this.end;if(!e){const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}var n=a+e;n>i&&(n=i);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s},peekByte:function Stream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)},skip:function Stream_skip(e){e||(e=1);this.pos+=e},reset:function Stream_reset(){this.pos=this.start},moveStart:function Stream_moveStart(){this.start=this.pos},makeSubStream:function Stream_makeSubStream(e,t,r){return new Stream(this.bytes.buffer,e,t,r)}};return Stream}();t.Stream=s;var o=function StringStreamClosure(){function StringStream(e){const t=(0,a.stringToBytes)(e);s.call(this,t)}StringStream.prototype=s.prototype;return StringStream}();t.StringStream=o;var c=function DecodeStreamClosure(){var e=new Uint8Array(0);function DecodeStream(t){this._rawMinBufferLength=t||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=e;this.minBufferLength=512;if(t)for(;this.minBufferLengthi&&(r=i)}else{for(;!this.eof;)this.readBlock();r=this.bufferLength}this.pos=r;const n=this.buffer.subarray(a,r);return!t||n instanceof Uint8ClampedArray?n:new Uint8ClampedArray(n)},peekByte:function DecodeStream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},makeSubStream:function DecodeStream_makeSubStream(e,t,r){for(var a=e+t;this.bufferLength<=a&&!this.eof;)this.readBlock();return new s(this.buffer,e,t,r)},getByteRange(e,t){(0,a.unreachable)("Should not call DecodeStream.getByteRange")},skip:function DecodeStream_skip(e){e||(e=1);this.pos+=e},reset:function DecodeStream_reset(){this.pos=0},getBaseStreams:function DecodeStream_getBaseStreams(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}};return DecodeStream}();t.DecodeStream=c;var l=function StreamsSequenceStreamClosure(){function StreamsSequenceStream(e){this.streams=e;let t=0;for(let r=0,a=e.length;r>e;this.codeSize=i-=e;return t};FlateStream.prototype.getCode=function FlateStream_getCode(e){for(var t,r=this.str,i=e[0],n=e[1],s=this.codeSize,o=this.codeBuf;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h};FlateStream.prototype.generateHuffmanTable=function flateStreamGenerateHuffmanTable(e){var t,r=e.length,a=0;for(t=0;ta&&(a=e[t]);for(var i=1<>=1}for(t=h;t>=1)){var h,u;if(1===l){h=i;u=n}else{if(2!==l)throw new a.FormatError("Unknown block type in flate stream");var d,f=this.getBits(5)+257,g=this.getBits(5)+1,m=this.getBits(4)+4,p=new Uint8Array(e.length);for(d=0;d0;)S[d++]=w}h=this.generateHuffmanTable(S.subarray(0,f));u=this.generateHuffmanTable(S.subarray(f,k))}for(var A=(s=this.buffer)?s.length:0,T=this.bufferLength;;){var I=this.getCode(h);if(I<256){T+1>=A&&(A=(s=this.ensureBuffer(T+1)).length);s[T++]=I}else{if(256===I){this.bufferLength=T;return}var F=(I=t[I-=257])>>16;F>0&&(F=this.getBits(F));o=(65535&I)+F;I=this.getCode(u);(F=(I=r[I])>>16)>0&&(F=this.getBits(F));var P=(65535&I)+F;T+o>=A&&(A=(s=this.ensureBuffer(T+o)).length);for(var E=0;E15))throw new a.FormatError("Unsupported predictor: "+n);this.readBlock=2===n?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;var s=this.colors=r.get("Colors")||1,o=this.bits=r.get("BitsPerComponent")||8,l=this.columns=r.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=l*s*o+7>>3;c.call(this,t);return this}PredictorStream.prototype=Object.create(c.prototype);PredictorStream.prototype.readBlockTiff=function predictorStreamReadBlockTiff(){var e=this.rowBytes,t=this.bufferLength,r=this.ensureBuffer(t+e),a=this.bits,i=this.colors,n=this.str.getBytes(e);this.eof=!n.length;if(!this.eof){var s,o=0,c=0,l=0,h=0,u=t;if(1===a&&1===i)for(s=0;s>1;d^=d>>2;o=(1&(d^=d>>4))<<7;r[u++]=d}else if(8===a){for(s=0;s>8&255;r[u++]=255&g}}else{var m=new Uint8Array(i+1),p=(1<>l-a)&p;l-=a;c=c<=8){r[y++]=c>>h-8&255;h-=8}}h>0&&(r[y++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}};PredictorStream.prototype.readBlockPng=function predictorStreamReadBlockPng(){var e=this.rowBytes,t=this.pixBytes,r=this.str.getByte(),i=this.str.getBytes(e);this.eof=!i.length;if(!this.eof){var n=this.bufferLength,s=this.ensureBuffer(n+e),o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));var c,l,h,u=n;switch(r){case 0:for(c=0;c>1)+i[c];for(;c>1)+i[c]&255;u++}break;case 4:for(c=0;c0;e=(0,this.decrypt)(e,!t);var r,a=this.bufferLength,i=e.length,n=this.ensureBuffer(a+i);for(r=0;r=0;--a){r[i+a]=255&o;o>>=8}}}else this.eof=!0};return Ascii85Stream}();t.Ascii85Stream=f;var g=function AsciiHexStreamClosure(){function AsciiHexStream(e,t){this.str=e;this.dict=e.dict;this.firstDigit=-1;t&&(t*=.5);c.call(this,t)}AsciiHexStream.prototype=Object.create(c.prototype);AsciiHexStream.prototype.readBlock=function AsciiHexStream_readBlock(){var e=this.str.getBytes(8e3);if(e.length){for(var t=e.length+1>>1,r=this.ensureBuffer(this.bufferLength+t),a=this.bufferLength,i=this.firstDigit,n=0,s=e.length;n=48&&c<=57)o=15&c;else{if(!(c>=65&&c<=70||c>=97&&c<=102)){if(62===c){this.eof=!0;break}continue}o=9+(15&c)}if(i<0)i=o;else{r[a++]=i<<4|o;i=-1}}if(i>=0&&this.eof){r[a++]=i<<4;i=-1}this.firstDigit=i;this.bufferLength=a}else this.eof=!0};return AsciiHexStream}();t.AsciiHexStream=g;var m=function RunLengthStreamClosure(){function RunLengthStream(e,t){this.str=e;this.dict=e.dict;c.call(this,t)}RunLengthStream.prototype=Object.create(c.prototype);RunLengthStream.prototype.readBlock=function RunLengthStream_readBlock(){var e=this.str.getBytes(2);if(!e||e.length<2||128===e[0])this.eof=!0;else{var t,r=this.bufferLength,a=e[0];if(a<128){(t=this.ensureBuffer(r+a+1))[r++]=e[1];if(a>0){var i=this.str.getBytes(a);t.set(i,r);r+=a}}else{a=257-a;var n=e[1];t=this.ensureBuffer(r+a+1);for(var s=0;s>>t&(1<0;if(b<256){d[0]=b;f=1}else{if(!(b>=258)){if(256===b){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(b=0;t--){d[t]=o[r];r=l[r]}else d[f++]=d[0]}if(y){l[s]=u;c[s]=c[u]+1;o[s]=d[0];h=++s+n&s+n-1?h:0|Math.min(Math.log(s+n)/.6931471805599453+1,12)}u=b;if(a<(g+=f)){do{a+=512}while(ae.getByte()};this.ccittFaxDecoder=new i.CCITTFaxDecoder(s,{K:r.get("K"),EndOfLine:r.get("EndOfLine"),EncodedByteAlign:r.get("EncodedByteAlign"),Columns:r.get("Columns"),Rows:r.get("Rows"),EndOfBlock:r.get("EndOfBlock"),BlackIs1:r.get("BlackIs1")});n.DecodeStream.call(this,t)}CCITTFaxStream.prototype=Object.create(n.DecodeStream.prototype);CCITTFaxStream.prototype.readBlock=function(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}};return CCITTFaxStream}();t.CCITTFaxStream=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var a=r(2);const i=function CCITTFaxDecoder(){const e=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],t=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],i=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],n=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],s=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];function CCITTFaxDecoder(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let r,a=t.EndOfBlock;null==a&&(a=!0);this.eoblock=a;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(r=this._lookBits(12));)this._eatBits(1);1===r&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}CCITTFaxDecoder.prototype={readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,r=this.columns;let i,n,s,o,c;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let s,c,l;if(this.nextLine2D){for(o=0;t[o]=64);do{c+=l=this._getWhiteCode()}while(l>=64)}else{do{s+=l=this._getWhiteCode()}while(l>=64);do{c+=l=this._getBlackCode()}while(l>=64)}this._addPixels(t[this.codingPos]+s,n);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{s+=l=this._getWhiteCode()}while(l>=64);this._addPixels(t[this.codingPos]+s,n);n^=1}}let h=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){s=this._lookBits(12);if(this.eoline)for(;-1!==s&&1!==s;){this._eatBits(1);s=this._lookBits(12)}else for(;0===s;){this._eatBits(1);s=this._lookBits(12)}if(1===s){this._eatBits(12);h=!0}else-1===s&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&h&&this.byteAlign){s=this._lookBits(12);if(1===s){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(o=0;o<4;++o){s=this._lookBits(12);1!==s&&(0,a.info)("bad rtc code: "+s);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){s=this._lookBits(13);if(-1===s){this.eof=!0;return-1}if(s>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&s)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){c=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]s){c<<=s;1&this.codingPos||(c|=255>>8-s);this.outputBits-=s;s=0}else{c<<=this.outputBits;1&this.codingPos||(c|=255>>8-this.outputBits);s-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){c<<=s;s=0}}}while(s)}this.black&&(c^=255);return c},_addPixels(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}this.codingPos=i},_addPixelsNeg(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}else if(e0&&e=i){const t=r[e-i];if(t[0]===a){this._eatBits(a);return[!0,t[1],!0]}}}return[!1,0,!1]},_getTwoDimCode(){let t,r=0;if(this.eoblock){r=this._lookBits(7);t=e[r];if(t&&t[0]>0){this._eatBits(t[0]);return t[1]}}else{const t=this._findTableCode(1,7,e);if(t[0]&&t[2])return t[1]}(0,a.info)("Bad two dim code");return-1},_getWhiteCode(){let e,i=0;if(this.eoblock){i=this._lookBits(12);if(-1===i)return 1;e=i>>5==0?t[i]:r[i>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,r);if(e[0])return e[1];e=this._findTableCode(11,12,t);if(e[0])return e[1]}(0,a.info)("bad white code");this._eatBits(1);return 1},_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(-1===e)return 1;t=e>>7==0?i[e]:e>>9==0&&e>>7!=0?n[(e>>1)-64]:s[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,s);if(e[0])return e[1];e=this._findTableCode(7,12,n,64);if(e[0])return e[1];e=this._findTableCode(10,13,i);if(e[0])return e[1]}(0,a.info)("bad black code");this._eatBits(1);return 1},_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e},_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}};return CCITTFaxDecoder}();t.CCITTFaxDecoder=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var a=r(5),i=r(12),n=r(16),s=r(2);const o=function Jbig2StreamClosure(){function Jbig2Stream(e,t,r,a){this.stream=e;this.maybeLength=t;this.dict=r;this.params=a;i.DecodeStream.call(this,t)}Jbig2Stream.prototype=Object.create(i.DecodeStream.prototype);Object.defineProperty(Jbig2Stream.prototype,"bytes",{get(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});Jbig2Stream.prototype.ensureBuffer=function(e){};Jbig2Stream.prototype.readBlock=function(){if(this.eof)return;const e=new n.Jbig2Image,t=[];if((0,a.isDict)(this.params)){const e=this.params.get("JBIG2Globals");if((0,a.isStream)(e)){const r=e.getBytes();t.push({data:r,start:0,end:r.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const r=e.parseChunks(t),i=r.length;for(let e=0;e>>0}var n=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===n?s:s>0?-s:null}function decodeIAID(e,t,r){for(var a=e.getContexts("IAID"),i=1,n=0;n=B&&T=O){q=q<<1&y;for(f=0;f=0&&F=0&&(P=N[I][F])&&(q|=P<=e?O<<=1:O=O<<1|C[E][B]}for(d=0;d=k||B<0||B>=w?O<<=1:O=O<<1|i[E][B]}var M=x.readBit(A,O);F[P]=M}}return C}function decodeTextRegion(e,t,r,a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");var v,w,k=[];for(v=0;v1&&(a=e?y.readBits(b):decodeInteger(x,"IAIT",C));var F=s*A+a,P=e?f.symbolIDTable.decode(y):decodeIAID(x,C,c),E=t&&(e?y.readBit():decodeInteger(x,"IARI",C)),B=o[P],O=B[0].length,M=B.length;if(E){var D=decodeInteger(x,"IARDW",C),R=decodeInteger(x,"IARDH",C);B=decodeRefinement(O+=D,M+=R,g,B,(D>>1)+decodeInteger(x,"IARDX",C),(R>>1)+decodeInteger(x,"IARDY",C),!1,m,p)}var N,L,_,U=F-(1&u?0:M-1),q=I-(2&u?O-1:0);if(l){for(N=0;N>5&7,u=[31&c],d=r+6;if(7===c){h=536870911&(0,i.readUint32)(t,d-1);d+=3;var f=h+7>>3;u[0]=t[d++];for(;--f>0;)u.push(t[d++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=u;let g=4;a.number<=256?g=1:a.number<=65536&&(g=2);var m,p,b=[];for(m=0;m>>24&255;w[3]=y.height>>16&255;w[4]=y.height>>8&255;w[5]=255&y.height;for(m=d,p=t.length;m>2&3;d.huffmanDWSelector=f>>4&3;d.bitmapSizeSelector=f>>6&1;d.aggregationInstancesSelector=f>>7&1;d.bitmapCodingContextUsed=!!(256&f);d.bitmapCodingContextRetained=!!(512&f);d.template=f>>10&3;d.refinementTemplate=f>>12&1;h+=2;if(!d.huffman){s=0===d.template?4:1;a=[];for(n=0;n>2&3;g.stripSize=1<>4&3;g.transposed=!!(64&m);g.combinationOperator=m>>7&3;g.defaultPixelValue=m>>9&1;g.dsOffset=m<<17>>27;g.refinementTemplate=m>>15&1;if(g.huffman){var p=(0,i.readUint16)(c,h);h+=2;g.huffmanFS=3&p;g.huffmanDS=p>>2&3;g.huffmanDT=p>>4&3;g.huffmanRefinementDW=p>>6&3;g.huffmanRefinementDH=p>>8&3;g.huffmanRefinementDX=p>>10&3;g.huffmanRefinementDY=p>>12&3;g.huffmanRefinementSizeSelector=!!(16384&p)}if(g.refinement&&!g.refinementTemplate){a=[];for(n=0;n<2;n++){a.push({x:(0,i.readInt8)(c,h),y:(0,i.readInt8)(c,h+1)});h+=2}g.refinementAt=a}g.numberOfSymbolInstances=(0,i.readUint32)(c,h);h+=4;r=[g,o.referredTo,c,h,u];break;case 16:const e={},t=c[h++];e.mmr=!!(1&t);e.template=t>>1&3;e.patternWidth=c[h++];e.patternHeight=c[h++];e.maxPatternIndex=(0,i.readUint32)(c,h);h+=4;r=[e,o.number,c,h,u];break;case 22:case 23:const k={};k.info=readRegionSegmentInformation(c,h);h+=l;const S=c[h++];k.mmr=!!(1&S);k.template=S>>1&3;k.enableSkip=!!(8&S);k.combinationOperator=S>>4&7;k.defaultPixelValue=S>>7&1;k.gridWidth=(0,i.readUint32)(c,h);h+=4;k.gridHeight=(0,i.readUint32)(c,h);h+=4;k.gridOffsetX=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridOffsetY=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridVectorX=(0,i.readUint16)(c,h);h+=2;k.gridVectorY=(0,i.readUint16)(c,h);h+=2;r=[k,o.referredTo,c,h,u];break;case 38:case 39:var b={};b.info=readRegionSegmentInformation(c,h);h+=l;var y=c[h++];b.mmr=!!(1&y);b.template=y>>1&3;b.prediction=!!(8&y);if(!b.mmr){s=0===b.template?4:1;a=[];for(n=0;n>2&1;v.combinationOperator=w>>3&3;v.requiresBuffer=!!(32&w);v.combinationOperatorOverride=!!(64&w);r=[v];break;case 49:case 50:case 51:break;case 53:r=[o.number,c,h,u];break;case 62:break;default:throw new Jbig2Error(`segment type ${o.typeName}(${o.type}) is not implemented`)}var k="on"+o.typeName;k in t&&t[k].apply(t,r)}function processSegments(e,t){for(var r=0,a=e.length;r>3,r=new Uint8ClampedArray(t*e.height);if(e.defaultPixelValue)for(var a=0,i=r.length;a>3,h=s.combinationOperatorOverride?e.combinationOperator:s.combinationOperator,u=this.buffer,d=128>>(7&e.x),f=e.y*l+(e.x>>3);switch(h){case 0:for(r=0;r>=1)){i=128;n++}}f+=l}break;case 2:for(r=0;r>=1)){i=128;n++}}f+=l}break;default:throw new Jbig2Error(`operator ${h} is not supported`)}},onImmediateGenericRegion:function SimpleSegmentVisitor_onImmediateGenericRegion(e,t,r,a){var i=e.info,n=new DecodingContext(t,r,a),s=decodeBitmap(e.mmr,i.width,i.height,e.template,e.prediction,null,e.at,n);this.drawBitmap(i,s)},onImmediateLosslessGenericRegion:function SimpleSegmentVisitor_onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function SimpleSegmentVisitor_onSymbolDictionary(e,t,r,a,n,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,r){let a,i,n,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:a=getStandardTable(e.huffmanDHSelector+4);break;case 3:a=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:i=getStandardTable(e.huffmanDWSelector+2);break;case 3:i=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){n=getCustomHuffmanTable(o,t,r);o++}else n=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,r):getStandardTable(1);return{tableDeltaHeight:a,tableDeltaWidth:i,tableBitmapSize:n,tableAggregateInstances:s}}(e,r,this.customTables);c=new Reader(a,n,s)}var l=this.symbols;l||(this.symbols=l={});for(var h=[],u=0,d=r.length;u1)w=decodeTextRegion(e,t,a,g,0,S,1,r.concat(f),m,0,0,1,0,s,l,h,u,0,d);else{var C=decodeIAID(b,p,m),x=decodeInteger(b,"IARDX",p),A=decodeInteger(b,"IARDY",p);w=decodeRefinement(a,g,l,C=32){let r,a,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");a=i.readBits(2)+3;r=n[e-1].prefixLength;break;case 33:a=i.readBits(3)+3;r=0;break;case 34:a=i.readBits(7)+11;r=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){F=e?decodeMMRBitmap(I,l,h,!0):decodeBitmap(!1,l,h,r,!1,null,A,m);T[b]=F}for(P=0;P=0;y--){B=T[y][P][E]^B;O|=B<>8;R=d+P*f-E*g>>8;if(D>=0&&D+S<=a&&R>=0&&R+C<=n)for(b=0;b=n)){L=p[t];N=M[b];for(y=0;y=0&&e>1&7),l=1+(a>>4&7),h=[];let u,d,f=n;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[r]=new HuffmanTreeNode(e);else{let a=this.children[r];a||(this.children[r]=a=new HuffmanTreeNode(null));a.buildTree(e,t-1)}},decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}};function HuffmanTable(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,r=e.length;t0&&this.rootNode.buildTree(r,r.prefixLength-1)}}HuffmanTable.prototype={decode(e){return this.rootNode.decodeNode(e)},assignPrefixCodes(e){const t=e.length;let r=0;for(let a=0;a=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e},readBits(e){let t,r=0;for(t=e-1;t>=0;t--)r|=this.readBit()<=this.end?-1:this.data[this.position++]}};function getCustomHuffmanTable(e,t,r){let a=0;for(let i=0,n=t.length;i>r&1;r--}}if(a&&!l){const e=5;for(let t=0;tfunction parseJbig2Chunks(e){for(var t=new SimpleSegmentVisitor,r=0,a=e.length;r>=1}}return{imgData:u,width:c,height:l}}(e);this.width=r;this.height=a;return t}};return Jbig2Image}();t.Jbig2Image=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,r){this.data=e;this.bp=t;this.dataEnd=r;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,i=1&e[t];const n=a[r],s=n.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|i;return o}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var a=r(12),i=r(5),n=r(19),s=r(2);const o=function JpegStreamClosure(){function JpegStream(e,t,r,i){let n;for(;-1!==(n=e.getByte());)if(255===n){e.skip(-1);break}this.stream=e;this.maybeLength=t;this.dict=r;this.params=i;a.DecodeStream.call(this,t)}JpegStream.prototype=Object.create(a.DecodeStream.prototype);Object.defineProperty(JpegStream.prototype,"bytes",{get:function JpegStream_bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});JpegStream.prototype.ensureBuffer=function(e){};JpegStream.prototype.readBlock=function(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("Decode","D");if(this.forceRGB&&Array.isArray(t)){const r=this.dict.get("BitsPerComponent")||8,a=t.length,i=new Int32Array(a);let n=!1;const s=(1<0&&!e[s-1];)s--;n.push({children:[],index:0});var o,c=n[0];for(r=0;r0;)c=n.pop();c.index++;n.push(c);for(;n.length<=r;){n.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}i++}if(r+10){b--;return p>>b&1}p=t[r++];if(255===p){var e=t[r++];if(e){if(220===e&&d){r+=2;const e=(0,i.readUint16)(t,r);r+=2;if(e>0&&e!==n.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",e)}else if(217===e){if(d){const e=k*(8===n.precision?8:0);if(e>0&&Math.round(n.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError("unexpected marker "+(p<<8|e).toString(16))}}b=7;return p>>>7}function decodeHuffman(e){for(var t=e;;){switch(typeof(t=t[readBit()])){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){for(var t=0;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;var t=receive(e);return t>=1<0)y--;else for(var a=c,i=l;a<=i;){var n=decodeHuffman(t.huffmanTableAC),s=15&n,o=n>>4;if(0!==s){var h=e[a+=o];t.blockData[r+h]=receiveAndExtend(s)*(1<>4;if(0===(a=15&i))if(o<15){y=receive(o)+(1<>4;if(0!==o){var l=e[n+=c];t.blockData[r+l]=receiveAndExtend(o);n++}else{if(c<15)break;n+=16}}};var P,E,B,O,M=0;E=1===F?s[0].blocksPerLine*s[0].blocksPerColumn:f*n.mcusPerColumn;for(;M<=E;){var D=o?Math.min(E-M,o):E;if(D>0){for(C=0;C0?"unexpected":"excessive";(0,a.warn)(`decodeScan - ${e} MCU data, current marker is: ${P.invalid}`);r=P.offset}if(!(P.marker>=65488&&P.marker<=65495))break;r+=2}return r-m}function quantizeAndInverse(e,t,r){var a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y,v,w=e.quantizationTable,k=e.blockData;if(!w)throw new JpegError("missing required Quantization Table.");for(var S=0;S<64;S+=8){u=k[t+S];d=k[t+S+1];f=k[t+S+2];g=k[t+S+3];m=k[t+S+4];p=k[t+S+5];b=k[t+S+6];y=k[t+S+7];u*=w[S];if(0!=(d|f|g|m|p|b|y)){d*=w[S+1];f*=w[S+2];g*=w[S+3];m*=w[S+4];p*=w[S+5];i=(a=(a=5793*u+128>>8)+(i=5793*m+128>>8)+1>>1)-i;v=3784*(n=f)+1567*(s=b*=w[S+6])+128>>8;n=1567*n-3784*s+128>>8;l=(o=(o=2896*(d-(y*=w[S+7]))+128>>8)+(l=p<<4)+1>>1)-l;c=(h=(h=2896*(d+y)+128>>8)+(c=g<<4)+1>>1)-c;s=(a=a+(s=v)+1>>1)-s;n=(i=i+n+1>>1)-n;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;l=v;r[S]=a+h;r[S+7]=a-h;r[S+1]=i+l;r[S+6]=i-l;r[S+2]=n+c;r[S+5]=n-c;r[S+3]=s+o;r[S+4]=s-o}else{v=5793*u+512>>10;r[S]=v;r[S+1]=v;r[S+2]=v;r[S+3]=v;r[S+4]=v;r[S+5]=v;r[S+6]=v;r[S+7]=v}}for(var C=0;C<8;++C){u=r[C];if(0!=((d=r[C+8])|(f=r[C+16])|(g=r[C+24])|(m=r[C+32])|(p=r[C+40])|(b=r[C+48])|(y=r[C+56]))){i=(a=4112+((a=5793*u+2048>>12)+(i=5793*m+2048>>12)+1>>1))-i;v=3784*(n=f)+1567*(s=b)+2048>>12;n=1567*n-3784*s+2048>>12;s=v;l=(o=(o=2896*(d-y)+2048>>12)+(l=p)+1>>1)-l;c=(h=(h=2896*(d+y)+2048>>12)+(c=g)+1>>1)-c;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;(u=(a=a+s+1>>1)+h)<16?u=0:u>=4080?u=255:u>>=4;(d=(i=i+n+1>>1)+(l=v))<16?d=0:d>=4080?d=255:d>>=4;(f=(n=i-n)+c)<16?f=0:f>=4080?f=255:f>>=4;(g=(s=a-s)+o)<16?g=0:g>=4080?g=255:g>>=4;(m=s-o)<16?m=0:m>=4080?m=255:m>>=4;(p=n-c)<16?p=0:p>=4080?p=255:p>>=4;(b=i-l)<16?b=0:b>=4080?b=255:b>>=4;(y=a-h)<16?y=0:y>=4080?y=255:y>>=4;k[t+C]=u;k[t+C+8]=d;k[t+C+16]=f;k[t+C+24]=g;k[t+C+32]=m;k[t+C+40]=p;k[t+C+48]=b;k[t+C+56]=y}else{v=(v=5793*u+8192>>14)<-2040?0:v>=2024?255:v+2056>>4;k[t+C]=v;k[t+C+8]=v;k[t+C+16]=v;k[t+C+24]=v;k[t+C+32]=v;k[t+C+40]=v;k[t+C+48]=v;k[t+C+56]=v}}}function buildComponentData(e,t){for(var r=t.blocksPerLine,a=t.blocksPerColumn,i=new Int16Array(64),n=0;n=a)return null;var s=(0,i.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};for(var o=(0,i.readUint16)(e,n);!(o>=65472&&o<=65534);){if(++n>=a)return null;o=(0,i.readUint16)(e,n)}return{invalid:s.toString(16),marker:o,offset:n}}JpegImage.prototype={parse(t,{dnlScanLines:r=null}={}){function readDataBlock(){const e=(0,i.readUint16)(t,o);let r=(o+=2)+e-2;var n=findNextFileMarker(t,r,o);if(n&&n.invalid){(0,a.warn)("readDataBlock - incorrect length, current marker is: "+n.invalid);r=n.offset}var s=t.subarray(o,r);o+=s.length;return s}function prepareComponents(e){for(var t=Math.ceil(e.samplesPerLine/8/e.maxH),r=Math.ceil(e.scanLines/8/e.maxV),a=0;a>4==0)for(p=0;p<64;p++)k[e[p]]=t[o++];else{if(w>>4!=1)throw new JpegError("DQT - invalid table spec");for(p=0;p<64;p++){k[e[p]]=(0,i.readUint16)(t,o);o+=2}}u[15&w]=k}break;case 65472:case 65473:case 65474:if(n)throw new JpegError("Only single frame JPEGs supported");o+=2;(n={}).extended=65473===g;n.progressive=65474===g;n.precision=t[o++];const H=(0,i.readUint16)(t,o);o+=2;n.scanLines=r||H;n.samplesPerLine=(0,i.readUint16)(t,o);o+=2;n.components=[];n.componentIds={};var S,C=t[o++],x=0,A=0;for(m=0;m>4,I=15&t[o+1];x>4==0?f:d)[15&P]=buildHuffmanTable(E,O)}break;case 65501:o+=2;s=(0,i.readUint16)(t,o);o+=2;break;case 65498:const G=1==++h&&!r;o+=2;var M,D=t[o++],R=[];for(m=0;m>4];M.huffmanTableAC=d[15&L];R.push(M)}var _=t[o++],U=t[o++],q=t[o++];try{var j=decodeScan(t,o,n,R,s,_,U,q>>4,15&q,G);o+=j}catch(e){if(e instanceof DNLMarkerError){(0,a.warn)(e.message+" -- attempting to re-parse the JPEG image.");return this.parse(t,{dnlScanLines:e.scanLines})}if(e instanceof EOIMarkerError){(0,a.warn)(e.message+" -- ignoring the rest of the image data.");break e}throw e}break;case 65500:o+=4;break;case 65535:255!==t[o]&&o--;break;default:const W=findNextFileMarker(t,o-2,o-3);if(W&&W.invalid){(0,a.warn)("JpegImage.parse - unexpected data, current marker is: "+W.invalid);o=W.offset;break}if(o>=t.length-1){(0,a.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,i.readUint16)(t,o);o+=2}this.width=n.samplesPerLine;this.height=n.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(m=0;m>8)+S[u+1];return v},get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform},_convertYccToRgb:function convertYccToRgb(e){for(var t,r,a,i=0,n=e.length;i4)throw new JpegError("Unsupported color mode");var i=this._getLinearizedBlockData(e,t,a);if(1===this.numComponents&&r){for(var n=i.length,s=new Uint8ClampedArray(3*n),o=0,c=0;c>24&255,o>>16&255,o>>8&255,255&o);(0,a.warn)("Unsupported header type "+o+" ("+d+")")}l&&(t+=c)}else this.parseCodestream(e,0,e.length)},parseImageProperties:function JpxImage_parseImageProperties(e){for(var t=e.getByte();t>=0;){if(65361===(t<<8|(t=e.getByte()))){e.skip(4);var r=e.getInt32()>>>0,a=e.getInt32()>>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);var s=e.getUint16();this.width=r-i;this.height=a-n;this.componentsCount=s;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")},parseCodestream:function JpxImage_parseCodestream(e,t,r){var n={},s=!1;try{for(var o=t;o+1>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}k.SPqcds=u;if(n.mainHeader)n.QCD=k;else{n.currentTile.QCD=k;n.currentTile.QCC=[]}break;case 65373:m=(0,i.readUint16)(e,o);var C,x={};l=o+2;if(n.SIZ.Csiz<257)C=e[l++];else{C=(0,i.readUint16)(e,l);l+=2}switch(31&(h=e[l++])){case 0:d=8;f=!0;break;case 1:d=16;f=!1;break;case 2:d=16;f=!0;break;default:throw new Error("Invalid SQcd value "+h)}x.noQuantization=8===d;x.scalarExpounded=f;x.guardBits=h>>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}x.SPqcds=u;n.mainHeader?n.QCC[C]=x:n.currentTile.QCC[C]=x;break;case 65362:m=(0,i.readUint16)(e,o);var A={};l=o+2;var T=e[l++];A.entropyCoderWithCustomPrecincts=!!(1&T);A.sopMarkerUsed=!!(2&T);A.ephMarkerUsed=!!(4&T);A.progressionOrder=e[l++];A.layersCount=(0,i.readUint16)(e,l);l+=2;A.multipleComponentTransform=e[l++];A.decompositionLevelsCount=e[l++];A.xcb=2+(15&e[l++]);A.ycb=2+(15&e[l++]);var I=e[l++];A.selectiveArithmeticCodingBypass=!!(1&I);A.resetContextProbabilities=!!(2&I);A.terminationOnEachCodingPass=!!(4&I);A.verticallyStripe=!!(8&I);A.predictableTermination=!!(16&I);A.segmentationSymbolUsed=!!(32&I);A.reversibleTransformation=e[l++];if(A.entropyCoderWithCustomPrecincts){for(var F=[];l>4})}A.precinctsSizes=F}var E=[];A.selectiveArithmeticCodingBypass&&E.push("selectiveArithmeticCodingBypass");A.resetContextProbabilities&&E.push("resetContextProbabilities");A.terminationOnEachCodingPass&&E.push("terminationOnEachCodingPass");A.verticallyStripe&&E.push("verticallyStripe");A.predictableTermination&&E.push("predictableTermination");if(E.length>0){s=!0;throw new Error("Unsupported COD options ("+E.join(", ")+")")}if(n.mainHeader)n.COD=A;else{n.currentTile.COD=A;n.currentTile.COC=[]}break;case 65424:m=(0,i.readUint16)(e,o);(g={}).index=(0,i.readUint16)(e,o+2);g.length=(0,i.readUint32)(e,o+4);g.dataEnd=g.length+o-2;g.partIndex=e[o+8];g.partsCount=e[o+9];n.mainHeader=!1;if(0===g.partIndex){g.COD=n.COD;g.COC=n.COC.slice(0);g.QCD=n.QCD;g.QCC=n.QCC.slice(0)}n.currentTile=g;break;case 65427:if(0===(g=n.currentTile).partIndex){initializeTile(n,g.index);buildPackets(n)}parseTilePackets(n,e,o,m=g.dataEnd-o);break;case 65365:case 65367:case 65368:case 65380:m=(0,i.readUint16)(e,o);break;case 65363:throw new Error("Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("Unknown codestream code: "+c.toString(16))}o+=m}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,a.warn)("JPX: Trying to recover from: "+e.message)}this.tiles=function transformComponents(e){for(var t=e.SIZ,r=e.components,a=t.Csiz,i=[],n=0,s=e.tiles.length;n>2);y[w++]=e+p>>h;y[w++]=e>>h;y[w++]=e+m>>h}else for(d=0;d>h;y[w++]=g-.34413*m-.71414*p>>h;y[w++]=g+1.772*m>>h}if(k)for(d=0,w=3;d>h}else for(o=0;o>h;w+=a}}i.push(v)}return i}(n);this.width=n.SIZ.Xsiz-n.SIZ.XOsiz;this.height=n.SIZ.Ysiz-n.SIZ.YOsiz;this.componentsCount=n.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){for(var r,a=e.SIZ,i=[],n=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz),o=0;o0?Math.min(a.xcb,i.PPx-1):Math.min(a.xcb,i.PPx);i.ycb_=r>0?Math.min(a.ycb,i.PPy-1):Math.min(a.ycb,i.PPy);return i}function buildPrecincts(e,t,r){var a=1<t.trx0?Math.ceil(t.trx1/a)-Math.floor(t.trx0/a):0,l=t.try1>t.try0?Math.ceil(t.try1/i)-Math.floor(t.try0/i):0,h=c*l;t.precinctParameters={precinctWidth:a,precinctHeight:i,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,r){var a,i,n,s,o=r.xcb_,c=r.ycb_,l=1<>o,d=t.tby0>>c,f=t.tbx1+l-1>>o,g=t.tby1+h-1>>c,m=t.resolution.precinctParameters,p=[],b=[];for(i=d;iy.cbxMax&&(y.cbxMax=a);iy.cbyMax&&(y.cbyMax=i)}else b[s]=y={cbxMin:a,cbyMin:i,cbxMax:a,cbyMax:i};n.precinct=y}}t.codeblockParameters={codeblockWidth:o,codeblockHeight:c,numcodeblockwide:f-u+1,numcodeblockhigh:g-d+1};t.codeblocks=p;t.precincts=b}function createPacket(e,t,r){for(var a=[],i=e.subbands,n=0,s=i.length;ne.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[l],r=t.precinctParameters.numprecincts;ue.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[c],r=t.precinctParameters.numprecincts;ul.codingStyleParameters.decompositionLevelsCount)){var e=l.resolutions[r],n=e.precinctParameters.numprecincts;if(!(i>=n)){for(;t=0;--p){var b=c.resolutions[p],y=m*b.precinctParameters.precinctWidth,v=m*b.precinctParameters.precinctHeight;u=Math.min(u,y);d=Math.min(d,v);f=Math.max(f,b.precinctParameters.numprecinctswide);g=Math.max(g,b.precinctParameters.numprecinctshigh);h[p]={width:y,height:v};m<<=1}r=Math.min(r,u);a=Math.min(a,d);i=Math.max(i,f);n=Math.max(n,g);s[o]={resolutions:h,minWidth:u,minHeight:d,maxNumWide:f,maxNumHigh:g}}return{components:s,minWidth:r,minHeight:a,maxNumWide:i,maxNumHigh:n}}function buildPackets(e){for(var t=e.SIZ,r=e.currentTile.index,a=e.tiles[r],i=t.Csiz,n=0;n>>(l-=e)&(1<0;){var D=v.shift();void 0===(b=D.codeblock).data&&(b.data=[]);b.data.push({data:a,start:n+c,end:n+c+D.dataLength,codingpasses:D.codingpasses});c+=D.dataLength}}}return c}function copyCoefficients(e,t,r,a,i,o,c,l){for(var h=a.tbx0,u=a.tby0,d=a.tbx1-a.tbx0,f=a.codeblocks,g="H"===a.type.charAt(0)?1:0,m="H"===a.type.charAt(1)?t:0,p=0,b=f.length;p=o?D:D*(1<0?1-v:0)}var F=w.subbands[x],P=e[F.type];copyCoefficients(C,k,0,F,m?1:2**(g+P-I)*(1+T/2048),d+I-1,m,f)}b.push({width:k,height:S,items:C})}var E=p.calculate(b,i.tcx0,i.tcy0);return{left:i.tcx0,top:i.tcy0,width:E.width,height:E.height,items:E.items}}function initializeTile(e,t){for(var r=e.SIZ.Csiz,a=e.tiles[t],i=0;i>=1;t>>=1;a++}a--;(r=this.levels[a]).items[r.index]=i;this.currentLevel=a;delete this.value},incrementValue:function TagTree_incrementValue(){var e=this.levels[this.currentLevel];e.items[e.index]++},nextLevel:function TagTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];if(--e<0){this.value=r;return!1}this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return TagTree}(),r=function InclusionTreeClosure(){function InclusionTree(e,t,r){var a=(0,i.log2)(Math.max(e,t))+1;this.levels=[];for(var n=0;nr){this.currentLevel=a;this.propagateValues();return!1}e>>=1;t>>=1;a++}this.currentLevel=a-1;return!0},incrementValue:function InclusionTree_incrementValue(e){var t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()},propagateValues:function InclusionTree_propagateValues(){for(var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];--e>=0;)(t=this.levels[e]).items[t.index]=r},nextLevel:function InclusionTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];t.items[t.index]=255;if(--e<0)return!1;this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return InclusionTree}(),s=function BitModelClosure(){var e=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),t=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(a,i,n,s,o){this.width=a;this.height=i;let c;c="HH"===n?r:"HL"===n?t:e;this.contextLabelTable=c;var l=a*i;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);var u=new Uint8Array(l);if(0!==s)for(var d=0;d0,c=t+10){a=r-n;o&&(i[a-1]+=16);c&&(i[a+1]+=16);i[a]+=4}if(e+1=r)break;s[d]&=-2;if(!a[d]&&n[d]){var m=c[n[d]];if(e.readBit(o,m)){var p=this.decodeSignBit(g,u,d);i[d]=p;a[d]=1;this.setNeighborsSignificance(g,u,d);s[d]|=2}l[d]++;s[d]|=1}}},decodeSignBit:function BitModel_decodeSignBit(e,t,r){var a,i,n,s,o,c,l=this.width,h=this.height,u=this.coefficentsMagnitude,d=this.coefficentsSign;s=t>0&&0!==u[r-1];if(t+10&&0!==u[r-l];if(e+1=0){o=9+a;c=this.decoder.readBit(this.contexts,o)}else{o=9-a;c=1^this.decoder.readBit(this.contexts,o)}return c},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){for(var e,t=this.decoder,r=this.width,a=this.height,i=this.coefficentsMagnitude,n=this.neighborsSignificance,s=this.contexts,o=this.bitsDecoded,c=this.processingFlags,l=r*a,h=4*r,u=0;u>1,c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;a=(t|=0)-3;for(i=o+4;i--;a+=2)e[a]*=.8128930661159609;n=u*e[(a=t-2)-1];for(i=o+3;i--;a+=2){s=u*e[a+1];e[a]=d*e[a]-n-s;if(!i--)break;n=u*e[(a+=2)+1];e[a]=d*e[a]-n-s}n=h*e[(a=t-1)-1];for(i=o+2;i--;a+=2){s=h*e[a+1];e[a]-=n+s;if(!i--)break;n=h*e[(a+=2)+1];e[a]-=n+s}n=l*e[(a=t)-1];for(i=o+1;i--;a+=2){s=l*e[a+1];e[a]-=n+s;if(!i--)break;n=l*e[(a+=2)+1];e[a]-=n+s}if(0!==o){n=c*e[(a=t+1)-1];for(i=o;i--;a+=2){s=c*e[a+1];e[a]-=n+s;if(!i--)break;n=c*e[(a+=2)+1];e[a]-=n+s}}};return IrreversibleTransform}(),l=function ReversibleTransformClosure(){function ReversibleTransform(){o.call(this)}ReversibleTransform.prototype=Object.create(o.prototype);ReversibleTransform.prototype.filter=function reversibleTransformFilter(e,t,r){var a,i,n=r>>1;for(a=t|=0,i=n+1;i--;a+=2)e[a]-=e[a-1]+e[a+1]+2>>2;for(a=t+1,i=n;i--;a+=2)e[a]+=e[a-1]+e[a+1]>>1};return ReversibleTransform}();return JpxImage}();t.JpxImage=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA512=t.calculateSHA384=t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;var a=r(2),i=r(5),n=r(12),s=function ARCFourCipherClosure(){function ARCFourCipher(e){this.a=0;this.b=0;var t,r,a=new Uint8Array(256),i=0,n=e.length;for(t=0;t<256;++t)a[t]=t;for(t=0;t<256;++t){i=i+(r=a[t])+e[t%n]&255;a[t]=a[i];a[i]=r}this.s=a}ARCFourCipher.prototype={encryptBlock:function ARCFourCipher_encryptBlock(e){var t,r,a,i=e.length,n=this.a,s=this.b,o=this.s,c=new Uint8Array(i);for(t=0;t>5&255;f[n++]=i>>13&255;f[n++]=i>>21&255;f[n++]=i>>>29&255;f[n++]=0;f[n++]=0;f[n++]=0;var g=new Int32Array(16);for(n=0;n>>32-C)|0;b=k}c=c+b|0;l=l+y|0;h=h+v|0;u=u+w|0}return new Uint8Array([255&c,c>>8&255,c>>16&255,c>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255,255&h,h>>8&255,h>>16&255,h>>>24&255,255&u,u>>8&255,u>>16&255,u>>>24&255])}}();t.calculateMD5=o;var c=function Word64Closure(){function Word64(e,t){this.high=0|e;this.low=0|t}Word64.prototype={and:function Word64_and(e){this.high&=e.high;this.low&=e.low},xor:function Word64_xor(e){this.high^=e.high;this.low^=e.low},or:function Word64_or(e){this.high|=e.high;this.low|=e.low},shiftRight:function Word64_shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}},shiftLeft:function Word64_shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low=this.low<>>e|r<<32-e;this.high=r>>>e|t<<32-e},not:function Word64_not(){this.high=~this.high;this.low=~this.low},add:function Word64_add(e){var t=(this.low>>>0)+(e.low>>>0),r=(this.high>>>0)+(e.high>>>0);t>4294967295&&(r+=1);this.low=0|t;this.high=0|r},copyTo:function Word64_copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low},assign:function Word64_assign(e){this.high=e.high;this.low=e.low}};return Word64}(),l=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,r){return e&t^~e&r}function maj(e,t,r){return e&t^e&r^t&r}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}var e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,r,a){var i,n,s,o=1779033703,c=3144134277,l=1013904242,h=2773480762,u=1359893119,d=2600822924,f=528734635,g=1541459225,m=64*Math.ceil((a+9)/64),p=new Uint8Array(m);for(i=0;i>>29&255;p[i++]=a>>21&255;p[i++]=a>>13&255;p[i++]=a>>5&255;p[i++]=a<<3&255;var b,y=new Uint32Array(64);for(i=0;i>>10)+y[n-7]+littleSigma(y[n-15])+y[n-16]|0;var v,w,k=o,S=c,C=l,x=h,A=u,T=d,I=f,F=g;for(n=0;n<64;++n){v=F+sigmaPrime(A)+ch(A,T,I)+e[n]+y[n];w=sigma(k)+maj(k,S,C);F=I;I=T;T=A;A=x+v|0;x=C;C=S;S=k;k=v+w|0}o=o+k|0;c=c+S|0;l=l+C|0;h=h+x|0;u=u+A|0;d=d+T|0;f=f+I|0;g=g+F|0}return new Uint8Array([o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u,d>>24&255,d>>16&255,d>>8&255,255&d,f>>24&255,f>>16&255,f>>8&255,255&f,g>>24&255,g>>16&255,g>>8&255,255&g])}}();t.calculateSHA256=l;var h=function calculateSHA512Closure(){function ch(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.not();i.and(a);e.xor(i)}function maj(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.and(a);e.xor(i);i.assign(r);i.and(a);e.xor(i)}function sigma(e,t,r){e.assign(t);e.rotateRight(28);r.assign(t);r.rotateRight(34);e.xor(r);r.assign(t);r.rotateRight(39);e.xor(r)}function sigmaPrime(e,t,r){e.assign(t);e.rotateRight(14);r.assign(t);r.rotateRight(18);e.xor(r);r.assign(t);r.rotateRight(41);e.xor(r)}function littleSigma(e,t,r){e.assign(t);e.rotateRight(1);r.assign(t);r.rotateRight(8);e.xor(r);r.assign(t);r.shiftRight(7);e.xor(r)}function littleSigmaPrime(e,t,r){e.assign(t);e.rotateRight(19);r.assign(t);r.rotateRight(61);e.xor(r);r.assign(t);r.shiftRight(6);e.xor(r)}var e=[new c(1116352408,3609767458),new c(1899447441,602891725),new c(3049323471,3964484399),new c(3921009573,2173295548),new c(961987163,4081628472),new c(1508970993,3053834265),new c(2453635748,2937671579),new c(2870763221,3664609560),new c(3624381080,2734883394),new c(310598401,1164996542),new c(607225278,1323610764),new c(1426881987,3590304994),new c(1925078388,4068182383),new c(2162078206,991336113),new c(2614888103,633803317),new c(3248222580,3479774868),new c(3835390401,2666613458),new c(4022224774,944711139),new c(264347078,2341262773),new c(604807628,2007800933),new c(770255983,1495990901),new c(1249150122,1856431235),new c(1555081692,3175218132),new c(1996064986,2198950837),new c(2554220882,3999719339),new c(2821834349,766784016),new c(2952996808,2566594879),new c(3210313671,3203337956),new c(3336571891,1034457026),new c(3584528711,2466948901),new c(113926993,3758326383),new c(338241895,168717936),new c(666307205,1188179964),new c(773529912,1546045734),new c(1294757372,1522805485),new c(1396182291,2643833823),new c(1695183700,2343527390),new c(1986661051,1014477480),new c(2177026350,1206759142),new c(2456956037,344077627),new c(2730485921,1290863460),new c(2820302411,3158454273),new c(3259730800,3505952657),new c(3345764771,106217008),new c(3516065817,3606008344),new c(3600352804,1432725776),new c(4094571909,1467031594),new c(275423344,851169720),new c(430227734,3100823752),new c(506948616,1363258195),new c(659060556,3750685593),new c(883997877,3785050280),new c(958139571,3318307427),new c(1322822218,3812723403),new c(1537002063,2003034995),new c(1747873779,3602036899),new c(1955562222,1575990012),new c(2024104815,1125592928),new c(2227730452,2716904306),new c(2361852424,442776044),new c(2428436474,593698344),new c(2756734187,3733110249),new c(3204031479,2999351573),new c(3329325298,3815920427),new c(3391569614,3928383900),new c(3515267271,566280711),new c(3940187606,3454069534),new c(4118630271,4000239992),new c(116418474,1914138554),new c(174292421,2731055270),new c(289380356,3203993006),new c(460393269,320620315),new c(685471733,587496836),new c(852142971,1086792851),new c(1017036298,365543100),new c(1126000580,2618297676),new c(1288033470,3409855158),new c(1501505948,4234509866),new c(1607167915,987167468),new c(1816402316,1246189591)];return function hash(t,r,a,i){var n,s,o,l,h,u,d,f;if(i=!!i){n=new c(3418070365,3238371032);s=new c(1654270250,914150663);o=new c(2438529370,812702999);l=new c(355462360,4144912697);h=new c(1731405415,4290775857);u=new c(2394180231,1750603025);d=new c(3675008525,1694076839);f=new c(1203062813,3204075428)}else{n=new c(1779033703,4089235720);s=new c(3144134277,2227873595);o=new c(1013904242,4271175723);l=new c(2773480762,1595750129);h=new c(1359893119,2917565137);u=new c(2600822924,725511199);d=new c(528734635,4215389547);f=new c(1541459225,327033209)}var g,m,p,b=128*Math.ceil((a+17)/128),y=new Uint8Array(b);for(g=0;g>>29&255;y[g++]=a>>21&255;y[g++]=a>>13&255;y[g++]=a>>5&255;y[g++]=a<<3&255;var v=new Array(80);for(g=0;g<80;g++)v[g]=new c(0,0);var w,k,S=new c(0,0),C=new c(0,0),x=new c(0,0),A=new c(0,0),T=new c(0,0),I=new c(0,0),F=new c(0,0),P=new c(0,0),E=new c(0,0),B=new c(0,0),O=new c(0,0),M=new c(0,0);for(g=0;g=1;--e){r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e)n[e]=this._inv_s[n[e]];for(let r=0,a=16*e;r<16;++r,++a)n[r]^=t[a];for(let e=0;e<16;e+=4){const t=this._mix[n[e]],a=this._mix[n[e+1]],i=this._mix[n[e+2]],s=this._mix[n[e+3]];r=t^a>>>8^a<<24^i>>>16^i<<16^s>>>24^s<<8;n[e]=r>>>24&255;n[e+1]=r>>16&255;n[e+2]=r>>8&255;n[e+3]=255&r}}r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e){n[e]=this._inv_s[n[e]];n[e]^=t[e]}return n}_encrypt(e,t){const r=this._s;let a,i,n;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=a;--r)if(e[r]!==t){t=0;break}o-=t;n[n.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,r=n.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){r[e]=a^=r[e-32];e++;r[e]=i^=r[e-32];e++;r[e]=n^=r[e-32];e++;r[e]=s^=r[e-32];e++}}return r}}t.AES256Cipher=AES256Cipher;var f=function PDF17Closure(){function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;rn-32;){var s=e.length+a.length+r.length,o=new Uint8Array(64*s),c=concatArrays(e,a);c=concatArrays(c,r);for(var d=0,f=0;d<64;d++,f+=s)o.set(c,f);i=new AES128Cipher(a.subarray(0,16)).encrypt(o,a.subarray(16,32));for(var g=0,m=0;m<16;m++){g*=1;g%=3;g+=(i[m]>>>0)%3;g%=3}0===g?a=l(i,0,i.length):1===g?a=u(i,0,i.length):2===g&&(a=h(i,0,i.length));n++}return a.subarray(0,32)}function PDF20(){}function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;r>8&255;g[m++]=n>>16&255;g[m++]=n>>>24&255;for(u=0,d=t.length;u=4&&!h){g[m++]=255;g[m++]=255;g[m++]=255;g[m++]=255}var p=o(g,0,m),b=l>>3;if(c>=3)for(u=0;u<50;++u)p=o(p,0,b);var y,v=p.subarray(0,b);if(c>=3){for(m=0;m<32;++m)g[m]=e[m];for(u=0,d=t.length;u>3;if(a>=3)for(n=0;n<50;++n)d=o(d,0,d.length);if(a>=3){u=r;var g,m=new Uint8Array(f);for(n=19;n>=0;n--){for(g=0;g=4){var O=r.get("CF");(0,i.isDict)(O)&&(O.suppressEncryption=!0);this.cf=O;this.stmf=r.get("StmF")||t;this.strf=r.get("StrF")||t;this.eff=r.get("EFF")||this.stmf}}function buildObjectKey(e,t,r,a){var i,n,s=new Uint8Array(r.length+9);for(i=0,n=r.length;i>8&255;s[i++]=e>>16&255;s[i++]=255&t;s[i++]=t>>8&255;if(a){s[i++]=115;s[i++]=65;s[i++]=108;s[i++]=84}return o(s,0,i).subarray(0,Math.min(r.length+5,16))}function buildCipherConstructor(e,t,r,n,o){if(!(0,i.isName)(t))throw new a.FormatError("Invalid crypt filter name.");var c,l=e.get(t.name);null!=l&&(c=l.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new d};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new s(buildObjectKey(r,n,o,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(r,n,o,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(o)};throw new a.FormatError("Unknown crypto method")}CipherTransformFactory.prototype={createCipherTransform:function CipherTransformFactory_createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new m(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));var r=buildObjectKey(e,t,this.encryptionKey,!1),a=function buildCipherCipherConstructor(){return new s(r)};return new m(a,a)}};return CipherTransformFactory}();t.CipherTransformFactory=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var a=r(2),i=r(5),n=r(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,a.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const r=new Uint8ClampedArray(3);this.getRgbItem(e,t,r,0);return r}getRgbItem(e,t,r,i){(0,a.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,r,i,n,s,o){(0,a.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,a.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,r,a,i,n,s,o,c){const l=t*r;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,r){return Math.max(e,Math.min(t,r))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:e*((24/116)**3/8)}function convertToRgb(a,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),m=adjustToRange(0,1,c[l+2]*d),p=1===f?1:f**a.GR,b=1===g?1:g**a.GG,y=1===m?1:m**a.GB,v=a.MXA*p+a.MXB*b+a.MXC*y,w=a.MYA*p+a.MYB*b+a.MYC*y,k=a.MZA*p+a.MZB*b+a.MZC*y,S=s;S[0]=v;S[1]=w;S[2]=k;const C=o;!function normalizeWhitePointToFlat(r,a,i){if(1===r[0]&&1===r[2]){i[0]=a[0];i[1]=a[1];i[2]=a[2];return}const s=i;matrixProduct(e,a,s);const o=n;!function convertToFlat(e,t,r){r[0]=1*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(a.whitePoint,S,C);const x=s;!function compensateBlackPoint(e,t,r){if(0===e[0]&&0===e[1]&&0===e[2]){r[0]=t[0];r[1]=t[1];r[2]=t[2];return}const a=decodeL(0),i=(1-a)/(1-decodeL(e[0])),n=1-i,s=(1-a)/(1-decodeL(e[1])),o=1-s,c=(1-a)/(1-decodeL(e[2])),l=1-c;r[0]=t[0]*i+n;r[1]=t[1]*s+o;r[2]=t[2]*c+l}(a.blackPoint,C,x);const A=o;!function normalizeWhitePointToD65(r,a,i){const s=i;matrixProduct(e,a,s);const o=n;!function convertToD65(e,t,r){r[0]=.95047*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1.08883*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(i,x,A);const T=s;matrixProduct(r,A,T);h[u]=255*sRGBTransferFunction(T[0]);h[u+1]=255*sRGBTransferFunction(T[1]);h[u+2]=255*sRGBTransferFunction(T[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,r,i){super("CalRGB",3);if(!e)throw new a.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);r=r||new Float32Array([1,1,1]);i=i||new Float32Array([1,0,0,0,1,0,0,0,1]);const n=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=r[0];this.GG=r[1];this.GB=r[2];this.MXA=i[0];this.MYA=i[1];this.MZA=i[2];this.MXB=i[3];this.MYB=i[4];this.MZB=i[5];this.MXC=i[6];this.MYC=i[7];this.MZC=i[8];if(n<0||o<0||1!==s)throw new a.FormatError("Invalid WhitePoint components for "+this.name+", no fallback available");if(c<0||l<0||h<0){(0,a.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,a.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for `+this.name+", falling back to default.");this.GR=this.GG=this.GB=1}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,r,a,1)}getRgbBuffer(e,t,r,a,i,n,s){const o=1/((1<=6/29?e*e*e:108/841*(e-4/29);return t}function decode(e,t,r,a){return r+e*(a-r)/t}function convertToRgb(e,t,r,a,i,n){let s=t[r],o=t[r+1],c=t[r+2];if(!1!==a){s=decode(s,a,0,100);o=decode(o,a,e.amin,e.amax);c=decode(c,a,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,a.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,!1,r,a)}getRgbBuffer(e,t,r,a,i,n,s){const o=(1<=GlobalImageCache.MAX_IMAGES_TO_CACHE)}addPageIndex(e,t){let r=this._refCache.get(e);if(!r){r=new Set;this._refCache.put(e,r)}r.add(t)}getData(e,t){const r=this._refCache.get(e);if(!r)return null;if(r.size=GlobalImageCache.MAX_IMAGES_TO_CACHE?(0,a.info)("GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE."):this._imageCache.put(e,t))}clear(e=!1){e||this._refCache.clear();this._imageCache.clear()}}t.GlobalImageCache=GlobalImageCache},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getQuadPoints=getQuadPoints;t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;var a=r(2),i=r(10),n=r(5),s=r(23),o=r(8),c=r(26),l=r(12),h=r(27);t.AnnotationFactory=class AnnotationFactory{static create(e,t,r,a){return r.ensureCatalog("acroForm").then(i=>r.ensure(this,"_create",[e,t,r,a,i]))}static _create(e,t,r,i,s){const c=e.fetchIfRef(t);if(!(0,n.isDict)(c))return;const l=(0,n.isRef)(t)?t.toString():"annot_"+i.createObjId();let h=c.get("Subtype");h=(0,n.isName)(h)?h.name:null;const u={xref:e,ref:t,dict:c,subtype:h,id:l,pdfManager:r,acroForm:s instanceof n.Dict?s:n.Dict.empty};switch(h){case"Link":return new LinkAnnotation(u);case"Text":return new TextAnnotation(u);case"Widget":let e=(0,o.getInheritableProperty)({dict:c,key:"FT"});e=(0,n.isName)(e)?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(u);case"Btn":return new ButtonWidgetAnnotation(u);case"Ch":return new ChoiceWidgetAnnotation(u)}(0,a.warn)('Unimplemented widget field type "'+e+'", falling back to base field type.');return new WidgetAnnotation(u);case"Popup":return new PopupAnnotation(u);case"FreeText":return new FreeTextAnnotation(u);case"Line":return new LineAnnotation(u);case"Square":return new SquareAnnotation(u);case"Circle":return new CircleAnnotation(u);case"PolyLine":return new PolylineAnnotation(u);case"Polygon":return new PolygonAnnotation(u);case"Caret":return new CaretAnnotation(u);case"Ink":return new InkAnnotation(u);case"Highlight":return new HighlightAnnotation(u);case"Underline":return new UnderlineAnnotation(u);case"Squiggly":return new SquigglyAnnotation(u);case"StrikeOut":return new StrikeOutAnnotation(u);case"Stamp":return new StampAnnotation(u);case"FileAttachment":return new FileAttachmentAnnotation(u);default:h?(0,a.warn)('Unimplemented annotation type "'+h+'", falling back to base annotation.'):(0,a.warn)("Annotation is missing the required /Subtype.");return new Annotation(u)}}};function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const r=e.getArray("QuadPoints");if(!Array.isArray(r)||r.length%8>0)return null;const a=[];for(let e=0,i=r.length/8;et[2]||st[3])return null;a[e].push({x:n,y:s})}}return a}function getTransformMatrix(e,t,r){const[i,n,s,o]=a.Util.getAxialAlignedBoundingBox(t,r);if(i===s||n===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-i),l=(e[3]-e[1])/(o-n);return[c,0,0,l,e[0]-i*c,e[1]-n*l]}class Annotation{constructor(e){const t=e.dict;this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,contents:this.contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype}}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)&&!this._hasFlag(e,a.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,a.AnnotationFlag.PRINT)&&!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)}get viewable(){return 0===this.flags||this._isViewable(this.flags)}get printable(){return 0!==this.flags&&this._isPrintable(this.flags)}setContents(e){this.contents=(0,a.stringToPDFString)(e||"")}setModificationDate(e){this.modificationDate=(0,a.isString)(e)?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=a.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){const t=new Uint8ClampedArray(3);if(Array.isArray(e))switch(e.length){case 0:this.color=null;break;case 1:s.ColorSpace.singletons.gray.getRgbItem(e,0,t,0);this.color=t;break;case 3:s.ColorSpace.singletons.rgb.getRgbItem(e,0,t,0);this.color=t;break;case 4:s.ColorSpace.singletons.cmyk.getRgbItem(e,0,t,0);this.color=t;break;default:this.color=t}else this.color=t}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if((0,n.isDict)(e))if(e.has("BS")){const t=e.get("BS"),r=t.get("Type");if(!r||(0,n.isName)(r,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3])}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(0,n.isDict)(t))return;const r=t.get("N");if((0,n.isStream)(r)){this.appearance=r;return}if(!(0,n.isDict)(r))return;const a=e.get("AS");(0,n.isName)(a)&&r.has(a.name)&&(this.appearance=r.get(a.name))}loadResources(e){return this.appearance.dict.getAsync("Resources").then(t=>{if(!t)return;return new i.ObjectLoader(t,e,t.xref).load().then((function(){return t}))})}getOperatorList(e,t,r,i){if(!this.appearance)return Promise.resolve(new c.OperatorList);const n=this.appearance,s=this.data,o=n.dict,l=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=o.getArray("BBox")||[0,0,1,1],u=o.getArray("Matrix")||[1,0,0,1,0,0],d=getTransformMatrix(s.rect,h,u);return l.then(r=>{const i=new c.OperatorList;i.addOp(a.OPS.beginAnnotation,[s.rect,d,u]);return e.getOperatorList({stream:n,task:t,resources:r,operatorList:i}).then(()=>{i.addOp(a.OPS.endAnnotation,[]);n.reset();return i})})}async save(e,t,r){return null}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=a.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if((0,n.isName)(e))this.width=0;else if(Number.isInteger(e)){if(e>0){const r=(t[2]-t[0])/2,i=(t[3]-t[1])/2;if(r>0&&i>0&&(e>r||e>i)){(0,a.warn)("AnnotationBorderStyle.setWidth - ignoring width: "+e);e=1}}this.width=e}}setStyle(e){if((0,n.isName)(e))switch(e.name){case"S":this.style=a.AnnotationBorderStyleType.SOLID;break;case"D":this.style=a.AnnotationBorderStyleType.DASHED;break;case"B":this.style=a.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=a.AnnotationBorderStyleType.INSET;break;case"U":this.style=a.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e){if(Array.isArray(e)&&e.length>0){let t=!0,r=!0;for(const a of e){if(!(+a>=0)){t=!1;break}a>0&&(r=!1)}t&&!r?this.dashArray=e:this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=(0,n.isRef)(e)?e.toString():null;const r=t.get("RT");this.data.replyType=(0,n.isName)(r)?r.name:a.AnnotationReplyType.REPLY}if(this.data.replyType===a.AnnotationReplyType.GROUP){const e=t.get("IRT");this.data.title=(0,a.stringToPDFString)(e.get("T")||"");this.setContents(e.get("Contents"));this.data.contents=this.contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.title=(0,a.stringToPDFString)(t.get("T")||"");this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}}setCreationDate(e){this.creationDate=(0,a.isString)(e)?e:null}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,r=this.data;this.ref=e.ref;r.annotationType=a.AnnotationType.WIDGET;r.fieldName=this._constructFieldName(t);const i=(0,o.getInheritableProperty)({dict:t,key:"V",getArray:!0});r.fieldValue=this._decodeFormValue(i);r.alternativeText=(0,a.stringToPDFString)(t.get("TU")||"");r.defaultAppearance=(0,o.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA")||"";const s=(0,o.getInheritableProperty)({dict:t,key:"FT"});r.fieldType=(0,n.isName)(s)?s.name:null;this.fieldResources=(0,o.getInheritableProperty)({dict:t,key:"DR"})||e.acroForm.get("DR")||n.Dict.empty;r.fieldFlags=(0,o.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(r.fieldFlags)||r.fieldFlags<0)&&(r.fieldFlags=0);r.readOnly=this.hasFieldFlag(a.AnnotationFieldFlag.READONLY);if("Sig"===r.fieldType){r.fieldValue=null;this.setFlags(a.AnnotationFlag.HIDDEN)}}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,a.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,a.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,a.stringToPDFString)(e.get("T")));let r=e;for(;r.has("Parent");){r=r.get("Parent");if(!(0,n.isDict)(r))break;r.has("T")&&t.unshift((0,a.stringToPDFString)(r.get("T")))}return t.join(".")}_decodeFormValue(e){return Array.isArray(e)?e.filter(e=>(0,a.isString)(e)).map(e=>(0,a.stringToPDFString)(e)):(0,n.isName)(e)?(0,a.stringToPDFString)(e.name):(0,a.isString)(e)?(0,a.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,r,i){return r?Promise.resolve(new c.OperatorList):this._hasText?this._getAppearance(e,t,i).then(n=>{if(this.appearance&&null===n)return super.getOperatorList(e,t,r,i);const s=new c.OperatorList;if(!this.data.defaultAppearance||null===n)return s;const o=[1,0,0,1,0,0],h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u=getTransformMatrix(this.data.rect,h,o);s.addOp(a.OPS.beginAnnotation,[this.data.rect,u,o]);const d=new l.StringStream(n);return e.getOperatorList({stream:d,task:t,resources:this.fieldResources,operatorList:s}).then((function(){s.addOp(a.OPS.endAnnotation,[]);return s}))}):super.getOperatorList(e,t,r,i)}async save(e,t,r){if(this.data.fieldValue===r[this.data.id])return null;let i=await this._getAppearance(e,t,r);if(null===i)return null;const s=e.xref.fetchIfRef(this.ref);if(!(0,n.isDict)(s))return null;const o=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],c=e.xref.getNewRef(),l=new n.Dict(e.xref);l.set("N",c);const u=r[this.data.id],d=e.xref.encrypt;let f=null,g=null;if(d){f=d.createCipherTransform(this.ref.num,this.ref.gen);g=d.createCipherTransform(c.num,c.gen);i=g.encryptString(i)}s.set("V",u);s.set("AP",l);s.set("M","D:"+(0,a.getModificationDate)());const m=new n.Dict(e.xref);m.set("Length",i.length);m.set("Subtype",n.Name.get("Form"));m.set("Resources",this.fieldResources);m.set("BBox",o);const p=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,h.writeDict)(s,p,f);p.push("\nendobj\n");const b=[`${c.num} ${c.gen} obj\n`];(0,h.writeDict)(m,b,g);b.push(" stream\n");b.push(i);b.push("\nendstream\nendobj\n");return[{ref:this.ref,data:p.join("")},{ref:c,data:b.join("")}]}async _getAppearance(e,t,r){const i=this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD);if(!r||i)return null;const n=r[this.data.id];if(""===n)return"";const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=await this._getFontData(e,t),[l,h]=c;let u=c[2];u=this._computeFontSize(l,h,u,s);let d=l.descent;isNaN(d)&&(d=0);const f=2+Math.abs(d)*u,g=this.data.defaultAppearance,m=this.data.textAlignment;if(this.data.comb)return this._getCombAppearance(g,n,o,2,f);if(this.data.multiLine)return this._getMultilineAppearance(g,n,l,u,o,s,m,2,f);if(0===m||m>2)return"/Tx BMC q BT "+g+` 1 0 0 1 2 ${f} Tm (${(0,a.escapeString)(n)}) Tj ET Q EMC`;return"/Tx BMC q BT "+g+" 1 0 0 1 0 0 Tm "+this._renderText(n,l,u,o,m,2,f)+" ET Q EMC"}async _getFontData(e,t){const r=new c.OperatorList,a={fontSize:0,font:null,fontName:null,clone(){return this}};await e.getOperatorList({stream:new l.StringStream(this.data.defaultAppearance),task:t,resources:this.fieldResources,operatorList:r,initialState:a});return[a.font,a.fontName,a.fontSize]}_computeFontSize(e,t,r,a){if(null===r||0===r){const i=.7*(e.charsToGlyphs("M",!0)[0].width/1e3);r=Math.max(1,Math.floor(a/(1.5*i)));let n=new RegExp(`/${t}\\s+[0-9.]+\\s+Tf`);-1===this.data.defaultAppearance.search(n)&&(n=new RegExp(`/${t}\\s+Tf`));this.data.defaultAppearance=this.data.defaultAppearance.replace(n,`/${t} ${r} Tf`)}return r}_renderText(e,t,r,i,n,s,o){const c=t.charsToGlyphs(e),l=r/1e3;let h,u=0;for(const e of c)u+=e.width*l;h=1===n?(i-u)/2:2===n?i-u-s:s;h=h.toFixed(2);return`${h} ${o=o.toFixed(2)} Td (${(0,a.escapeString)(e)}) Tj`}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;(0,a.isString)(this.data.fieldValue)||(this.data.fieldValue="");let r=(0,o.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(r)||r<0||r>2)&&(r=null);this.data.textAlignment=r;let i=(0,o.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(a.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(a.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,r,i,n){const s=(r/this.data.maxLen).toFixed(2),o=[];for(const e of t)o.push(`(${(0,a.escapeString)(e)}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${n} Tm ${o.join(` ${s} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,r,a,i,n,s,o,c){const l=t.split(/\r\n|\r|\n/),h=[],u=i-2*o;for(const e of l){const t=this._splitLine(e,r,a,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,r,a,i,s,t,-a))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${n} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,r,a){if(e.length<=1)return[e];const i=r/1e3,n=t.charsToGlyphs(" ",!0)[0].width*i,s=[];let o=-1,c=0,l=0;for(let r=0,h=e.length;ra){s.push(e.substring(c,r));c=r;l=n;o=-1}else{l+=n;o=r}else{const n=t.charsToGlyphs(h,!1)[0].width*i;if(l+n>a)if(-1!==o){s.push(e.substring(c,o+1));c=r=o+1;o=-1;l=0}else{s.push(e.substring(c,r));c=r;l=n}else l+=n}}c1e3){u=Math.max(u,g);m+=f+2;g=0;f=0}d.push({transform:p,x:g,y:m,w:b.width,h:b.height});g+=b.width+2;f=Math.max(f,b.height)}var y=Math.max(u,g)+1,v=m+f+1,w=new Uint8ClampedArray(y*v*4),k=y<<2;for(h=0;h=0;){S[A-4]=S[A];S[A-3]=S[A+1];S[A-2]=S[A+2];S[A-1]=S[A+3];S[A+C]=S[A+C-4];S[A+C+1]=S[A+C-3];S[A+C+2]=S[A+C-2];S[A+C+3]=S[A+C-1];A-=k}}r.splice(s,4*l,a.OPS.paintInlineImageXObjectGroup);i.splice(s,4*l,[{width:y,height:v,kind:a.ImageKind.RGBA_32BPP,data:w},d]);return s+1}));addState(e,[a.OPS.save,a.OPS.transform,a.OPS.paintImageMaskXObject,a.OPS.restore],null,(function iterateImageMaskGroup(e,t){var r=e.fnArray,i=(t-(e.iCurr-3))%4;switch(i){case 0:return r[t]===a.OPS.save;case 1:return r[t]===a.OPS.transform;case 2:return r[t]===a.OPS.paintImageMaskXObject;case 3:return r[t]===a.OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: "+i)}),(function foundImageMaskGroup(e,t){var r,i=e.fnArray,n=e.argsArray,s=e.iCurr,o=s-3,c=s-2,l=s-1,h=Math.floor((t-o)/4);if((h=function handlePaintSolidColorImageMask(e,t,r,i){for(var n=e+2,s=0;s=4&&r[n-4]===r[s]&&r[n-3]===r[o]&&r[n-2]===r[c]&&r[n-1]===r[l]&&a[n-4][0]===h&&a[n-4][1]===u){d++;f-=5}for(var g=f+4,m=1;m=a)break}i=(i||e)[t[r]];if(i&&!Array.isArray(i)){s.iCurr=r;r++;if(!i.checkFn||(0,i.checkFn)(s)){n=i;i=null}else i=null}else r++}this.state=i;this.match=n;this.lastProcessed=r},push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t);this._optimize()},flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}},reset(){this.state=null;this.match=null;this.lastProcessed=0}};return QueueOptimizer}(),n=function NullOptimizerClosure(){function NullOptimizer(e){this.queue=e}NullOptimizer.prototype={push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t)},flush(){},reset(){}};return NullOptimizer}(),s=function OperatorListClosure(){function OperatorList(e,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];this.optimizer=t&&"oplist"!==e?new i(this):new n(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}OperatorList.prototype={get length(){return this.argsArray.length},get ready(){return this._resolved||this._streamSink.ready},get totalLength(){return this._totalLength+this.length},addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=1e3||this.weight>=995&&(e===a.OPS.restore||e===a.OPS.endText))&&this.flush()},addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(a.OPS.dependency,[e])}},addDependencies(e){for(const t of e)this.addDependency(t)},addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(var t=0,r=e.length;te.ref.num-t.ref.num);const u=[[0,1,65535]],d=[0,1];let f=0;for(const{ref:e,data:t}of r){f=Math.max(f,l);u.push([1,l,Math.min(e.gen,65535)]);l+=t.length;d.push(e.num);d.push(1);c.push(t)}s.set("Index",d);if(0!==t.fileIds.length){const e=function computeMD5(e,t){const r=Math.floor(Date.now()/1e3),i=t.filename||"",s=[r.toString(),i,e.toString()];let o=s.reduce((e,t)=>e+t.length,0);for(const e of Object.values(t.info)){s.push(e);o+=e.length}const c=new Uint8Array(o);let l=0;for(const e of s){writeString(e,l,c);l+=e.length}return(0,a.bytesToString)((0,n.calculateMD5)(c))}(l,t);s.set("ID",[t.fileIds[0],e])}const g=[1,Math.ceil(Math.log2(f)/8),2],m=(g[0]+g[1]+g[2])*u.length;s.set("W",g);s.set("Length",m);c.push(`${o.num} ${o.gen} obj\n`);writeDict(s,c,null);c.push(" stream\n");const p=c.reduce((e,t)=>e+t.length,0),b=`\nendstream\nendobj\nstartxref\n${l}\n%%EOF\n`,y=new Uint8Array(e.length+p+m+b.length);y.set(e);let v=e.length;for(const e of c){writeString(e,v,y);v+=e.length}for(const[e,t,r]of u){v=writeInt(e,g[0],v,y);v=writeInt(t,g[1],v,y);v=writeInt(r,g[2],v,y)}writeString(b,v,y);return y};var a=r(2),i=r(5),n=r(22);function writeDict(e,t,r){t.push("<<");for(const a of e.getKeys()){t.push(` /${a} `);writeValue(e.getRaw(a),t,r)}t.push(">>")}function writeValue(e,t,r){if((0,i.isName)(e))t.push("/"+e.name);else if((0,i.isRef)(e))t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,r){t.push("[");let a=!0;for(const i of e){a?a=!1:t.push(" ");writeValue(i,t,r)}t.push("]")}(e,t,r);else if("string"==typeof e){null!==r&&(e=r.encryptString(e));t.push(`(${(0,a.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):(0,i.isDict)(e)?writeDict(e,t,r):(0,i.isStream)(e)&&function writeStream(e,t,r){writeDict(e.dict,t,r);t.push(" stream\n");let i=(0,a.bytesToString)(e.getBytes());null!==r&&(i=r.encryptString(i));t.push(i);t.push("\nendstream\n")}(e,t,r)}function writeInt(e,t,r,a){for(let i=t+r-1;i>r-1;i--){a[i]=255&e;e>>=8}return r+t}function writeString(e,t,r){for(let a=0,i=e.length;ag){(0,a.warn)("Image exceeded maximum allowed size and was removed.");return}if(c.get("ImageMask","IM")||!1){var m=c.get("Width","W"),p=c.get("Height","H"),y=m+7>>3,v=t.getBytes(y*p,!0),w=c.getArray("Decode","D");(d=S.PDFImage.createMask({imgArray:v,width:m,height:p,imageIsFromDecodeStream:t instanceof b.DecodeStream,inverseDecode:!!w&&w[0]>0})).cached=!!n;f=[d];i.addOp(a.OPS.paintImageMaskXObject,f);n&&s.set(n,l,{fn:a.OPS.paintImageMaskXObject,args:f});return}var k=c.get("SMask","SM")||!1,C=c.get("Mask")||!1;if(r&&!k&&!C&&h+u<200){const n=new S.PDFImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});d=n.createImageData(!0);i.addOp(a.OPS.paintInlineImageXObject,[d]);return}let x="img_"+this.idFactory.createObjId(),A=!1;if(this.parsingType3Font)x=`${this.idFactory.getDocId()}_type3_${x}`;else if(l){A=this.globalImageCache.shouldCache(l,this.pageIndex);A&&(x=`${this.idFactory.getDocId()}_${x}`)}i.addDependency(x);f=[x,h,u];S.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then(e=>{d=e.createImageData(!1);return this._sendImgData(x,d,A)}).catch(e=>{(0,a.warn)(`Unable to decode image "${x}": "${e}".`);return this._sendImgData(x,null,A)});i.addOp(a.OPS.paintImageXObject,f);if(n){s.set(n,l,{fn:a.OPS.paintImageXObject,args:f});if(l){(0,a.assert)(!r,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);A&&this.globalImageCache.setData(l,{objId:x,fn:a.OPS.paintImageXObject,args:f})}}}handleSMask(e,t,r,a,i,n){var s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,d.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c);for(var l=new Uint8Array(256),h=new Float32Array(1),u=0;u<256;u++){h[0]=u/255;e(h,0,h,0);l[u]=255*h[0]|0}o.transferMap=l}return this.buildFormXObject(t,s,o,r,a,i.state.clone(),n)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,d.isPDFFunction)(e))return null;t=[e]}const r=[];let a=0,i=0;for(const e of t){const t=this.xref.fetchIfRef(e);a++;if((0,n.isName)(t,"Identity")){r.push(null);continue}if(!(0,d.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}r.push(o);i++}return 1!==a&&4!==a||0===i?null:r}handleTilingType(e,t,r,i,s,o,c){const l=new k.OperatorList,h=n.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),r]});return this.getOperatorList({stream:i,task:c,resources:h,operatorList:l}).then((function(){return(0,u.getTilingPatternIR)({fnArray:l.fnArray,argsArray:l.argsArray},s,t)})).then((function(t){o.addDependencies(l.dependencies);o.addOp(e,t)}),e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorTilingPattern});(0,a.warn)(`handleTilingType - ignoring pattern: "${e}".`)}})}handleSetFont(e,t,r,i,n,o){var c,l=0;if(t){t=t.slice();c=t[0].name;l=t[1]}return this.loadFont(c,r,e).then(t=>t.font.isType3Font?t.loadType3Data(this,e,n).then((function(){i.addDependencies(t.type3Dependencies);return t})).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont("Type3 font load error: "+e),dict:t.font,extraProperties:this.options.fontExtraProperties})}):t).then(e=>{o.font=e.font;o.fontSize=l;o.fontName=c;e.send(this.handler);return e.loadedName})}handleText(e,t){const r=t.font,i=r.charsToGlyphs(e);if(r.data){(!!(t.textRenderingMode&a.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||r.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(r,i,this.handler)}return i}ensureStateFont(e){if(e.font)return;const t=new a.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontState});(0,a.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:r,cacheKey:i,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;for(var d=[],f=t.getKeys(),g=Promise.resolve(),m=0,p=f.length;mthis.handleSetFont(e,null,c[0],r,s,o.state).then((function(e){r.addDependency(e);d.push([i,[e,c[1]]])})));break;case"BM":d.push([i,normalizeBlendMode(c)]);break;case"SMask":if((0,n.isName)(c,"None")){d.push([i,!1]);break}if((0,n.isDict)(c)){u=!1;g=g.then(()=>this.handleSMask(c,e,r,s,o,l));d.push([i,!0])}else(0,a.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(c);d.push([i,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,a.info)("graphic state operator "+i);break;default:(0,a.info)("Unknown graphic state operator "+i)}}return g.then((function(){d.length>0&&r.addOp(a.OPS.setGState,[d]);u&&c.set(i,h,d)}))}loadFont(e,t,r){const errorFont=()=>Promise.resolve(new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,extraProperties:this.options.fontExtraProperties}));var i,o=this.xref;if(t){if(!(0,n.isRef)(t))throw new a.FormatError('The "font" object should be a reference.');i=t}else{var c=r.get("Font");c&&(i=c.getRaw(e))}if(!i){const r=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,a.warn)(r+".");return errorFont()}this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontMissing});(0,a.warn)(r+" -- attempting to fallback to a default font.");i=PartialEvaluator.fallbackFontDict}if(this.fontCache.has(i))return this.fontCache.get(i);t=o.fetchIfRef(i);if(!(0,n.isDict)(t))return errorFont();if(t.translated)return t.translated;var l=(0,a.createPromiseCapability)(),h=this.preEvaluateFont(t);const{descriptor:u,hash:d}=h;var f,g,m=(0,n.isRef)(i);m&&(f="f"+i.toString());if(d&&(0,n.isDict)(u)){u.fontAliases||(u.fontAliases=Object.create(null));var p=u.fontAliases;if(p[d]){var b=p[d].aliasRef;if(m&&b&&this.fontCache.has(b)){this.fontCache.putAlias(i,b);return this.fontCache.get(i)}}else p[d]={fontID:this.idFactory.createFontId()};m&&(p[d].aliasRef=i);f=p[d].fontID}if(m)this.fontCache.put(i,l.promise);else{f||(f=this.idFactory.createFontId());this.fontCache.put("id_"+f,l.promise)}(0,a.assert)(f&&f.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${f}`;t.translated=l.promise;try{g=this.translateFont(h)}catch(e){g=Promise.reject(e)}g.then(e=>{if(void 0!==e.fontType){o.stats.fontTypes[e.fontType]=!0}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,extraProperties:this.options.fontExtraProperties}))}).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontTranslate});try{var r=u&&u.get("FontFile3"),i=r&&r.get("Subtype"),n=(0,s.getFontType)(h.type,i&&i.name);o.stats.fontTypes[n]=!0}catch(e){}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,extraProperties:this.options.fontExtraProperties}))});return l.promise}buildPath(e,t,r,i=!1){var n=e.length-1;r||(r=[]);if(n<0||e.fnArray[n]!==a.OPS.constructPath){if(i){(0,a.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(a.OPS.save,null)}e.addOp(a.OPS.constructPath,[[t],r]);i&&e.addOp(a.OPS.restore,null)}else{var s=e.argsArray[n];s[0].push(t);Array.prototype.push.apply(s[1],r)}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:r}){return p.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:r}).catch(e=>{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorColorSpace});(0,a.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e})}async handleColorN(e,t,r,i,s,o,c,l){var h,d=r[r.length-1];if((0,n.isName)(d)&&(h=s.get(d.name))){var f=(0,n.isStream)(h)?h.dict:h,g=f.get("PatternType");if(g===x){var m=i.base?i.base.getRgb(r,0):null;return this.handleTilingType(t,m,o,h,f,e,c)}if(g===A){var p=f.get("Shading"),b=f.getArray("Matrix");h=u.Pattern.parseShading(p,b,this.xref,o,this.handler,this._pdfFunctionFactory,l);e.addOp(t,h.getIR());return}throw new a.FormatError("Unknown PatternType: "+g)}throw new a.FormatError("Unknown PatternName: "+d)}async parseMarkedContentProps(e,t){let r;if((0,n.isName)(e)){r=t.get("Properties").get(e.name)}else{if(!(0,n.isDict)(e))throw new a.FormatError("Optional content properties malformed.");r=e}const i=r.get("Type").name;if("OCG"===i)return{type:i,id:r.objId};if("OCMD"===i){const e=r.get("OCGs");if(Array.isArray(e)||(0,n.isDict)(e)){const t=[];Array.isArray(e)?r.get("OCGs").forEach(e=>{t.push(e.toString())}):t.push(e.objId);let a=null;r.get("VE")&&(a=!0);return{type:i,ids:t,policy:(0,n.isName)(r.get("P"))?r.get("P").name:null,expression:a}}if((0,n.isRef)(e))return{type:i,id:e.toString()}}return null}getOperatorList({stream:e,task:t,resources:r,operatorList:i,initialState:s=null}){r=r||n.Dict.empty;s=s||new EvalState;if(!i)throw new Error('getOperatorList: missing "operatorList" parameter');var o=this,c=this.xref;let l=!1;const h=new g.LocalImageCache,d=new g.LocalColorSpaceCache,f=new g.LocalGStateCache;var m=r.get("XObject")||n.Dict.empty,b=r.get("Pattern")||n.Dict.empty,y=new StateManager(s),v=new EvaluatorPreprocessor(e,c,y),w=new TimeSlotManager;function closePendingRestoreOPS(e){for(var t=0,r=v.savedStatesDepth;t0&&i.addOp(a.OPS.setGState,[e]);I=null;continue}}next(new Promise((function(e,s){if(!x)throw new a.FormatError("GState must be referred to by name.");const c=r.get("ExtGState");if(!(c instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const l=c.get(x);if(!(l instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");o.setGState({resources:r,gState:l,operatorList:i,cacheKey:x,task:t,stateManager:y,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorExtGState});(0,a.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case a.OPS.moveTo:case a.OPS.lineTo:case a.OPS.curveTo:case a.OPS.curveTo2:case a.OPS.curveTo3:case a.OPS.closePath:case a.OPS.rectangle:o.buildPath(i,F,I,l);continue;case a.OPS.markPoint:case a.OPS.markPointProps:case a.OPS.beginCompat:case a.OPS.endCompat:continue;case a.OPS.beginMarkedContentProps:if(!(0,n.isName)(I[0])){(0,a.warn)("Expected name for beginMarkedContentProps arg0="+I[0]);continue}if("OC"===I[0].name){next(o.parseMarkedContentProps(I[1],r).then(e=>{i.addOp(a.OPS.beginMarkedContentProps,["OC",e])}).catch(e=>{if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorMarkedContent});(0,a.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}}));return}I=[I[0].name];break;case a.OPS.beginMarkedContent:case a.OPS.endMarkedContent:default:if(null!==I){for(k=0,S=I.length;k{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});(0,a.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}})}getTextContent({stream:e,task:t,resources:r,stateManager:i=null,normalizeWhitespace:s=!1,combineTextItems:o=!1,sink:c,seenStyles:h=Object.create(null)}){r=r||n.Dict.empty;i=i||new StateManager(new TextState);var u=/\s/g,d={items:[],styles:Object.create(null)},f={initialized:!1,str:[],width:0,height:0,vertical:!1,lastAdvanceWidth:0,lastAdvanceHeight:0,textAdvanceScale:0,spaceWidth:0,fakeSpaceMin:1/0,fakeMultiSpaceMin:1/0,fakeMultiSpaceMax:-0,textRunBreakAllowed:!1,transform:null,fontName:null},p=this,b=this.xref,y=null;const v=new g.LocalImageCache,w=new g.LocalGStateCache;var k,S=new EvaluatorPreprocessor(e,b,i);function ensureTextContentItem(){if(f.initialized)return f;var e=k.font;if(!(e.loadedName in h)){h[e.loadedName]=!0;d.styles[e.loadedName]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}f.fontName=e.loadedName;var t=[k.fontSize*k.textHScale,0,0,k.fontSize,0,k.textRise];if(e.isType3Font&&k.fontSize<=1&&!(0,a.isArrayEqual)(k.fontMatrix,a.FONT_IDENTITY_MATRIX)){const r=e.bbox[3]-e.bbox[1];r>0&&(t[3]*=r*k.fontMatrix[3])}var r=a.Util.transform(k.ctm,a.Util.transform(k.textMatrix,t));f.transform=r;if(e.vertical){f.width=Math.sqrt(r[0]*r[0]+r[1]*r[1]);f.height=0;f.vertical=!0}else{f.width=0;f.height=Math.sqrt(r[2]*r[2]+r[3]*r[3]);f.vertical=!1}var i=k.textLineMatrix[0],n=k.textLineMatrix[1],s=Math.sqrt(i*i+n*n);i=k.ctm[0];n=k.ctm[1];var o=Math.sqrt(i*i+n*n);f.textAdvanceScale=o*s;f.lastAdvanceWidth=0;f.lastAdvanceHeight=0;var c=e.spaceWidth/1e3*k.fontSize;if(c){f.spaceWidth=c;f.fakeSpaceMin=.3*c;f.fakeMultiSpaceMin=1.5*c;f.fakeMultiSpaceMax=4*c;f.textRunBreakAllowed=!e.isMonospace}else{f.spaceWidth=0;f.fakeSpaceMin=1/0;f.fakeMultiSpaceMin=1/0;f.fakeMultiSpaceMax=0;f.textRunBreakAllowed=!1}f.initialized=!0;return f}function replaceWhitespace(e){for(var t,r=0,a=e.length;r=32&&t<=127;)r++;return r0&&addFakeSpaces(f,r.str)}var g=0,m=0;if(t.vertical){i+=m=c*k.fontMatrix[0]*k.fontSize+d}else{a+=g=(c*k.fontMatrix[0]*k.fontSize+d)*k.textHScale}k.translateTextMatrix(g,m);r.str.push(h)}if(t.vertical){r.lastAdvanceHeight=i;r.height+=Math.abs(i)}else{r.lastAdvanceWidth=a;r.width+=a}return r}function addFakeSpaces(e,t){if(!(e0;)t.push(" ")}function flushTextContentItem(){if(f.initialized){f.vertical?f.height*=f.textAdvanceScale:f.width*=f.textAdvanceScale;d.items.push(function runBidiTransform(e){var t=e.str.join(""),r=(0,m.bidi)(t,-1,e.vertical);return{str:s?replaceWhitespace(r.str):r.str,dir:r.dir,width:e.width,height:e.height,transform:e.transform,fontName:e.fontName}}(f));f.initialized=!1;f.str.length=0}}function enqueueChunk(){const e=d.items.length;if(e>0){c.enqueue(d,e);d.items=[];d.styles=Object.create(null)}}var C=new TimeSlotManager;return new Promise((function promiseBody(e,l){const next=function(t){enqueueChunk();Promise.all([t,c.ready]).then((function(){try{promiseBody(e,l)}catch(e){l(e)}}),l)};t.ensureNotTerminated();C.reset();for(var u,g={},m=[];!(u=C.check());){m.length=0;g.args=m;if(!S.read(g))break;k=i.state;var x,A=g.fn;m=g.args;switch(0|A){case a.OPS.setFont:var I=m[0].name,F=m[1];if(k.font&&I===k.fontName&&F===k.fontSize)break;flushTextContentItem();k.fontName=I;k.fontSize=F;next(handleSetFont(I,null));return;case a.OPS.setTextRise:flushTextContentItem();k.textRise=m[0];break;case a.OPS.setHScale:flushTextContentItem();k.textHScale=m[0]/100;break;case a.OPS.setLeading:flushTextContentItem();k.leading=m[0];break;case a.OPS.moveText:var P=!!k.font&&0===(k.font.vertical?m[0]:m[1]);x=m[0]-m[1];if(o&&P&&f.initialized&&x>0&&x<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(m[0],m[1]);f.width+=m[0]-f.lastAdvanceWidth;f.height+=m[1]-f.lastAdvanceHeight;addFakeSpaces(m[0]-f.lastAdvanceWidth-(m[1]-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.setLeadingMoveText:flushTextContentItem();k.leading=-m[1];k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.nextLine:flushTextContentItem();k.carriageReturn();break;case a.OPS.setTextMatrix:x=k.calcTextLineMatrixAdvance(m[0],m[1],m[2],m[3],m[4],m[5]);if(o&&null!==x&&f.initialized&&x.value>0&&x.value<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(x.width,x.height);f.width+=x.width-f.lastAdvanceWidth;f.height+=x.height-f.lastAdvanceHeight;addFakeSpaces(x.width-f.lastAdvanceWidth-(x.height-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.setTextMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);k.setTextLineMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);break;case a.OPS.setCharSpacing:k.charSpacing=m[0];break;case a.OPS.setWordSpacing:k.wordSpacing=m[0];break;case a.OPS.beginText:flushTextContentItem();k.textMatrix=a.IDENTITY_MATRIX.slice();k.textLineMatrix=a.IDENTITY_MATRIX.slice();break;case a.OPS.showSpacedText:if(!i.state.font){p.ensureStateFont(i.state);continue}for(var E,B=m[0],O=0,M=B.length;Of.fakeMultiSpaceMax)||(f.height+=E)}else{E=(x=-x)*k.textHScale;k.translateTextMatrix(E,0);(D=f.textRunBreakAllowed&&x>f.fakeMultiSpaceMax)||(f.width+=E)}D?flushTextContentItem():x>0&&addFakeSpaces(x,f.str)}break;case a.OPS.showText:if(!i.state.font){p.ensureStateFont(i.state);continue}buildTextContentItem(m[0]);break;case a.OPS.nextLineShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.carriageReturn();buildTextContentItem(m[0]);break;case a.OPS.nextLineSetSpacingShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.wordSpacing=m[0];k.charSpacing=m[1];k.carriageReturn();buildTextContentItem(m[2]);break;case a.OPS.paintXObject:flushTextContentItem();y||(y=r.get("XObject")||n.Dict.empty);var R=m[0].name;if(R&&v.getByName(R))break;next(new Promise((function(e,l){if(!R)throw new a.FormatError("XObject must be referred to by name.");let u=y.getRaw(R);if(u instanceof n.Ref){if(v.getByRef(u)){e();return}u=b.fetch(u)}if(!(0,n.isStream)(u))throw new a.FormatError("XObject should be a stream");const d=u.dict.get("Subtype");if(!(0,n.isName)(d))throw new a.FormatError("XObject should have a Name subtype");if("Form"!==d.name){v.set(R,u.dict.objId,!0);e();return}const f=i.state.clone(),g=new StateManager(f),m=u.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&g.transform(m);enqueueChunk();const w={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};p.getTextContent({stream:u,task:t,resources:u.dict.get("Resources")||r,stateManager:g,normalizeWhitespace:s,combineTextItems:o,sink:w,seenStyles:h}).then((function(){w.enqueueInvoked||v.set(R,u.dict.objId,!0);e()}),l)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case a.OPS.setGState:if((R=m[0].name)&&w.getByName(R))break;next(new Promise((function(e,t){if(!R)throw new a.FormatError("GState must be referred to by name.");const i=r.get("ExtGState");if(!(i instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const s=i.get(R);if(!(s instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();k.fontName=null;k.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{w.set(R,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return}if(d.items.length>=c.desiredSize){u=!0;break}}if(u)next(T);else{flushTextContentItem();enqueueChunk();e()}})).catch(e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}})}extractDataStructures(e,t,r){const i=this.xref;let c;var l=e.get("ToUnicode")||t.get("ToUnicode"),h=l?this.readToUnicode(l):Promise.resolve(void 0);if(r.composite){var u=e.get("CIDSystemInfo");(0,n.isDict)(u)&&(r.cidSystemInfo={registry:(0,a.stringToPDFString)(u.get("Registry")),ordering:(0,a.stringToPDFString)(u.get("Ordering")),supplement:u.get("Supplement")});var d=e.get("CIDToGIDMap");(0,n.isStream)(d)&&(c=d.getBytes())}var f,g=[],m=null;if(e.has("Encoding")){f=e.get("Encoding");if((0,n.isDict)(f)){m=f.get("BaseEncoding");m=(0,n.isName)(m)?m.name:null;if(f.has("Differences"))for(var p=f.get("Differences"),b=0,y=0,v=p.length;y0;r.dict=e;return h.then(e=>{r.toUnicode=e;return this.buildToUnicode(r)}).then(e=>{r.toUnicode=e;c&&(r.cidToGidMap=this.readCidToGidMap(c,e));return r})}_buildSimpleFontToUnicode(e,t=!1){(0,a.assert)(!e.composite,"Must be a simple font.");const r=[],i=e.defaultEncoding.slice(),n=e.baseEncodingName,c=e.differences;for(const e in c){const t=c[e];".notdef"!==t&&(i[e]=t)}const h=(0,y.getGlyphsUnicode)();for(const a in i){let s=i[a];if(""!==s)if(void 0!==h[s])r[a]=String.fromCharCode(h[s]);else{let i=0;switch(s[0]){case"G":3===s.length&&(i=parseInt(s.substring(1),16));break;case"g":5===s.length&&(i=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const r=s.substring(1);if(t){i=parseInt(r,16);break}i=+r;if(Number.isNaN(i)&&Number.isInteger(parseInt(r,16)))return this._buildSimpleFontToUnicode(e,!0)}break;default:const r=(0,l.getUnicodeForGlyph)(s,h);-1!==r&&(i=r)}if(i>0&&i<=1114111&&Number.isInteger(i)){if(n&&i===+a){const e=(0,o.getEncoding)(n);if(e&&(s=e[a])){r[a]=String.fromCharCode(h[s]);continue}}r[a]=String.fromCodePoint(i)}}}return new s.ToUnicodeMap(r)}buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._buildSimpleFontToUnicode(e));return Promise.resolve(e.toUnicode)}if(!e.composite)return Promise.resolve(this._buildSimpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof i.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const t=e.cidSystemInfo.registry,r=e.cidSystemInfo.ordering,o=n.Name.get(t+"-"+r+"-UCS2");return i.CMapFactory.create({encoding:o,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){const r=e.cMap,i=[];r.forEach((function(e,r){if(r>65535)throw new a.FormatError("Max size of CID is 65,535");const n=t.lookup(r);n&&(i[e]=String.fromCharCode((n.charCodeAt(0)<<8)+n.charCodeAt(1)))}));return new s.ToUnicodeMap(i)}))}return Promise.resolve(new s.IdentityToUnicodeMap(e.firstChar,e.lastChar))}readToUnicode(e){var t=e;return(0,n.isName)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof i.IdentityCMap?new s.IdentityToUnicodeMap(0,65535):new s.ToUnicodeMap(e.getMap())})):(0,n.isStream)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof i.IdentityCMap)return new s.IdentityToUnicodeMap(0,65535);var t=new Array(e.length);e.forEach((function(e,r){for(var a=[],i=0;i{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,a.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e}):Promise.resolve(null)}readCidToGidMap(e,t){for(var r=[],a=0,i=e.length;a>1;(0!==n||t.has(i))&&(r[i]=n)}return r}extractWidths(e,t,r){var a,i,o,c,l,h,u,d,f=this.xref,g=[],m=0,p=[];if(r.composite){m=e.has("DW")?e.get("DW"):1e3;if(d=e.get("W"))for(i=0,o=d.length;i{if(e){const r=[];let a=f;for(let t=0,i=e.length;tthis.extractDataStructures(o,r,t)).then(e=>{this.extractWidths(o,l,e);"Type3"===u&&(e.isType3Font=!0);return new s.Font(v.name,x,e)})}static buildFontPaths(e,t,r){function buildPath(t){e.renderer.hasBuiltPath(t)||r.send("commonobj",[`${e.loadedName}_path_${t}`,"FontPath",e.renderer.getPathJs(t)])}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new n.Dict;e.set("BaseFont",n.Name.get("PDFJS-FallbackFont"));e.set("Type",n.Name.get("FallbackType"));e.set("Subtype",n.Name.get("FallbackType"));e.set("Encoding",n.Name.get("WinAnsiEncoding"));return(0,a.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:r,extraProperties:a=!1}){this.loadedName=e;this.font=t;this.dict=r;this._extraProperties=a;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._extraProperties)])}}fallback(e){if(!this.font.data)return;this.font.disableFontFace=!0;const t=this.font.glyphCacheValues;PartialEvaluator.buildFontPaths(this.font,t,e)}loadType3Data(e,t,r){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");var i=Object.create(e.options);i.ignoreErrors=!1;var n=e.clone(i);n.parsingType3Font=!0;const s=this.font,o=this.type3Dependencies;var c=Promise.resolve(),l=this.dict.get("CharProcs"),h=this.dict.get("Resources")||t,u=Object.create(null);for(const e of l.getKeys())c=c.then((function(){var t=l.get(e),i=new k.OperatorList;return n.getOperatorList({stream:t,task:r,resources:h,operatorList:i}).then((function(){u[e]=i.getIR();for(const e of i.dependencies)o.add(e)})).catch((function(t){(0,a.warn)(`Type3 font resource "${e}" is not available.`);const r=new k.OperatorList;u[e]=r.getIR()}))}));this.type3Loaded=c.then((function(){s.charProcOperatorList=u}));return this.type3Loaded}}class StateManager{constructor(e){this.state=e;this.stateStack=[]}save(){var e=this.state;this.stateStack.push(this.state);this.state=e.clone()}restore(){var e=this.stateStack.pop();e&&(this.state=e)}transform(e){this.state.ctm=a.Util.transform(this.state.ctm,e)}}class TextState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=a.FONT_IDENTITY_MATRIX;this.textMatrix=a.IDENTITY_MATRIX.slice();this.textLineMatrix=a.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}setTextMatrix(e,t,r,a,i,n){var s=this.textMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}setTextLineMatrix(e,t,r,a,i,n){var s=this.textLineMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}translateTextMatrix(e,t){var r=this.textMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}translateTextLineMatrix(e,t){var r=this.textLineMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}calcTextLineMatrixAdvance(e,t,r,a,i,n){var s=this.font;if(!s)return null;var o=this.textLineMatrix;if(e!==o[0]||t!==o[1]||r!==o[2]||a!==o[3])return null;var c=i-o[4],l=n-o[5];if(s.vertical&&0!==c||!s.vertical&&0!==l)return null;var h,u,d=e*a-t*r;if(s.vertical){h=-l*r/d;u=l*e/d}else{h=c*a/d;u=-c*t/d}return{width:h,height:u,value:s.vertical?u:h}}calcRenderMatrix(e){var t=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return a.Util.transform(e,a.Util.transform(this.textMatrix,t))}carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()}clone(){var e=Object.create(this);e.textMatrix=this.textMatrix.slice();e.textLineMatrix=this.textLineMatrix.slice();e.fontMatrix=this.fontMatrix.slice();return e}}class EvalState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=a.TextRenderingMode.FILL;this.fillColorSpace=p.ColorSpace.singletons.gray;this.strokeColorSpace=p.ColorSpace.singletons.gray}clone(){return Object.create(this)}}class EvaluatorPreprocessor{static get opMap(){const e=(0,c.getLookupTableFactory)((function(e){e.w={id:a.OPS.setLineWidth,numArgs:1,variableArgs:!1};e.J={id:a.OPS.setLineCap,numArgs:1,variableArgs:!1};e.j={id:a.OPS.setLineJoin,numArgs:1,variableArgs:!1};e.M={id:a.OPS.setMiterLimit,numArgs:1,variableArgs:!1};e.d={id:a.OPS.setDash,numArgs:2,variableArgs:!1};e.ri={id:a.OPS.setRenderingIntent,numArgs:1,variableArgs:!1};e.i={id:a.OPS.setFlatness,numArgs:1,variableArgs:!1};e.gs={id:a.OPS.setGState,numArgs:1,variableArgs:!1};e.q={id:a.OPS.save,numArgs:0,variableArgs:!1};e.Q={id:a.OPS.restore,numArgs:0,variableArgs:!1};e.cm={id:a.OPS.transform,numArgs:6,variableArgs:!1};e.m={id:a.OPS.moveTo,numArgs:2,variableArgs:!1};e.l={id:a.OPS.lineTo,numArgs:2,variableArgs:!1};e.c={id:a.OPS.curveTo,numArgs:6,variableArgs:!1};e.v={id:a.OPS.curveTo2,numArgs:4,variableArgs:!1};e.y={id:a.OPS.curveTo3,numArgs:4,variableArgs:!1};e.h={id:a.OPS.closePath,numArgs:0,variableArgs:!1};e.re={id:a.OPS.rectangle,numArgs:4,variableArgs:!1};e.S={id:a.OPS.stroke,numArgs:0,variableArgs:!1};e.s={id:a.OPS.closeStroke,numArgs:0,variableArgs:!1};e.f={id:a.OPS.fill,numArgs:0,variableArgs:!1};e.F={id:a.OPS.fill,numArgs:0,variableArgs:!1};e["f*"]={id:a.OPS.eoFill,numArgs:0,variableArgs:!1};e.B={id:a.OPS.fillStroke,numArgs:0,variableArgs:!1};e["B*"]={id:a.OPS.eoFillStroke,numArgs:0,variableArgs:!1};e.b={id:a.OPS.closeFillStroke,numArgs:0,variableArgs:!1};e["b*"]={id:a.OPS.closeEOFillStroke,numArgs:0,variableArgs:!1};e.n={id:a.OPS.endPath,numArgs:0,variableArgs:!1};e.W={id:a.OPS.clip,numArgs:0,variableArgs:!1};e["W*"]={id:a.OPS.eoClip,numArgs:0,variableArgs:!1};e.BT={id:a.OPS.beginText,numArgs:0,variableArgs:!1};e.ET={id:a.OPS.endText,numArgs:0,variableArgs:!1};e.Tc={id:a.OPS.setCharSpacing,numArgs:1,variableArgs:!1};e.Tw={id:a.OPS.setWordSpacing,numArgs:1,variableArgs:!1};e.Tz={id:a.OPS.setHScale,numArgs:1,variableArgs:!1};e.TL={id:a.OPS.setLeading,numArgs:1,variableArgs:!1};e.Tf={id:a.OPS.setFont,numArgs:2,variableArgs:!1};e.Tr={id:a.OPS.setTextRenderingMode,numArgs:1,variableArgs:!1};e.Ts={id:a.OPS.setTextRise,numArgs:1,variableArgs:!1};e.Td={id:a.OPS.moveText,numArgs:2,variableArgs:!1};e.TD={id:a.OPS.setLeadingMoveText,numArgs:2,variableArgs:!1};e.Tm={id:a.OPS.setTextMatrix,numArgs:6,variableArgs:!1};e["T*"]={id:a.OPS.nextLine,numArgs:0,variableArgs:!1};e.Tj={id:a.OPS.showText,numArgs:1,variableArgs:!1};e.TJ={id:a.OPS.showSpacedText,numArgs:1,variableArgs:!1};e["'"]={id:a.OPS.nextLineShowText,numArgs:1,variableArgs:!1};e['"']={id:a.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1};e.d0={id:a.OPS.setCharWidth,numArgs:2,variableArgs:!1};e.d1={id:a.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1};e.CS={id:a.OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1};e.cs={id:a.OPS.setFillColorSpace,numArgs:1,variableArgs:!1};e.SC={id:a.OPS.setStrokeColor,numArgs:4,variableArgs:!0};e.SCN={id:a.OPS.setStrokeColorN,numArgs:33,variableArgs:!0};e.sc={id:a.OPS.setFillColor,numArgs:4,variableArgs:!0};e.scn={id:a.OPS.setFillColorN,numArgs:33,variableArgs:!0};e.G={id:a.OPS.setStrokeGray,numArgs:1,variableArgs:!1};e.g={id:a.OPS.setFillGray,numArgs:1,variableArgs:!1};e.RG={id:a.OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1};e.rg={id:a.OPS.setFillRGBColor,numArgs:3,variableArgs:!1};e.K={id:a.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1};e.k={id:a.OPS.setFillCMYKColor,numArgs:4,variableArgs:!1};e.sh={id:a.OPS.shadingFill,numArgs:1,variableArgs:!1};e.BI={id:a.OPS.beginInlineImage,numArgs:0,variableArgs:!1};e.ID={id:a.OPS.beginImageData,numArgs:0,variableArgs:!1};e.EI={id:a.OPS.endInlineImage,numArgs:1,variableArgs:!1};e.Do={id:a.OPS.paintXObject,numArgs:1,variableArgs:!1};e.MP={id:a.OPS.markPoint,numArgs:1,variableArgs:!1};e.DP={id:a.OPS.markPointProps,numArgs:2,variableArgs:!1};e.BMC={id:a.OPS.beginMarkedContent,numArgs:1,variableArgs:!1};e.BDC={id:a.OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1};e.EMC={id:a.OPS.endMarkedContent,numArgs:0,variableArgs:!1};e.BX={id:a.OPS.beginCompat,numArgs:0,variableArgs:!1};e.EX={id:a.OPS.endCompat,numArgs:0,variableArgs:!1};e.BM=null;e.BD=null;e.true=null;e.fa=null;e.fal=null;e.fals=null;e.false=null;e.nu=null;e.nul=null;e.null=null}));return(0,a.shadow)(this,"opMap",e())}static get MAX_INVALID_PATH_OPS(){return(0,a.shadow)(this,"MAX_INVALID_PATH_OPS",20)}constructor(e,t,r){this.parser=new f.Parser({lexer:new f.Lexer(e,EvaluatorPreprocessor.opMap),xref:t});this.stateManager=r;this.nonProcessedArgs=[];this._numInvalidPathOPS=0}get savedStatesDepth(){return this.stateManager.stateStack.length}read(e){for(var t=e.args;;){var r=this.parser.getObj();if(r instanceof n.Cmd){var i=r.cmd,s=EvaluatorPreprocessor.opMap[i];if(!s){(0,a.warn)(`Unknown command "${i}".`);continue}var o=s.id,c=s.numArgs,l=null!==t?t.length:0;if(s.variableArgs)l>c&&(0,a.info)(`Command ${i}: expected [0, ${c}] args, but received ${l} args.`);else{if(l!==c){for(var h=this.nonProcessedArgs;l>c;){h.push(t.shift());l--}for(;l=a.OPS.moveTo&&o<=a.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new a.FormatError("Invalid "+e);(0,a.warn)("Skipping "+e);null!==t&&(t.length=0);continue}}this.preprocessCommand(o,t);e.fn=o;e.args=t;return!0}if(r===n.EOF)return!1;if(null!==r){null===t&&(t=[]);t.push(r);if(t.length>33)throw new a.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case a.OPS.save:this.stateManager.save();break;case a.OPS.restore:this.stateManager.restore();break;case a.OPS.transform:this.stateManager.transform(t)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CMapFactory=t.IdentityCMap=t.CMap=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(12),c=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"];class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,r){this.codespaceRanges[e-1].push(t,r);this.numCodespaceRanges++}mapCidRange(e,t,r){if(t-e>2**24-1)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=r++}mapBfRange(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var a=r.length-1;e<=t;){this._map[e++]=r;r=r.substring(0,a)+String.fromCharCode(r.charCodeAt(a)+1)}}mapBfRangeToArray(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const a=r.length;let i=0;for(;e<=t&&i>>0;const s=i[n];for(let e=0,t=s.length;e=t&&a<=i){r.charcode=a;r.length=n+1;return}}}r.charcode=0;r.length=1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,r){(0,a.unreachable)("should not call mapCidRange")}mapBfRange(e,t,r){(0,a.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,r){(0,a.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,a.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,a.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;var l=function BinaryCMapReaderClosure(){function hexToInt(e,t){for(var r=0,a=0;a<=t;a++)r=r<<8|e[a];return r>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,r){for(var a=0,i=r;i>=0;i--){a+=e[i]+t[i];e[i]=255&a;a>>=8}}function incHex(e,t){for(var r=1,a=t;a>=0&&r>0;a--){r+=e[a];e[a]=255&r;r>>=8}}function BinaryCMapStream(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}BinaryCMapStream.prototype={readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber(){var e,t=0;do{var r=this.readByte();if(r<0)throw new a.FormatError("unexpected EOF in bcmap");e=!(128&r);t=t<<7|127&r}while(!e);return t},readSigned(){var e=this.readNumber();return 1&e?~(e>>>1):e>>>1},readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1},readHexNumber(e,t){var r,i=this.tmpBuf,n=0;do{var s=this.readByte();if(s<0)throw new a.FormatError("unexpected EOF in bcmap");r=!(128&s);i[n++]=127&s}while(!r);for(var o=t,c=0,l=0;o>=0;){for(;l<8&&i.length>0;){c=i[--n]<>=8;l-=8}},readHexSigned(e,t){this.readHexNumber(e,t);for(var r=1&e[t]?255:0,a=0,i=0;i<=t;i++){a=(1&a)<<8|e[i];e[i]=a>>1^r}},readString(){for(var e=this.readNumber(),t="",r=0;r=0;){var m=c>>5;if(7!==m){var p=!!(16&c),b=15&c;if(b+1>16)throw new Error("processBinaryCMap: Invalid dataSize.");var y,v=n.readNumber();switch(m){case 0:n.readHex(h,b);n.readHexNumber(u,b);addHex(u,h,b);t.addCodespaceRange(b+1,hexToInt(h,b),hexToInt(u,b));for(y=1;y>>0}function expectString(e){if(!(0,a.isString)(e))throw new a.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new a.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfchar"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseBfRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfrange"))return;expectString(r);var n=strToInt(r);expectString(r=t.getObj());var s=strToInt(r);r=t.getObj();if(Number.isInteger(r)||(0,a.isString)(r)){var o=Number.isInteger(r)?String.fromCharCode(r):r;e.mapBfRange(n,s,o)}else{if(!(0,i.isCmd)(r,"["))break;r=t.getObj();for(var c=[];!(0,i.isCmd)(r,"]")&&!(0,i.isEOF)(r);){c.push(r);r=t.getObj()}e.mapBfRangeToArray(n,s,c)}}throw new a.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidchar"))return;expectString(r);var a=strToInt(r);expectInt(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseCidRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidrange"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=strToInt(r);expectInt(r=t.getObj());var s=r;e.mapCidRange(a,n,s)}}function parseCodespaceRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcodespacerange"))return;if(!(0,a.isString)(r))break;var n=strToInt(r);r=t.getObj();if(!(0,a.isString)(r))break;var s=strToInt(r);e.addCodespaceRange(r.length,n,s)}throw new a.FormatError("Invalid codespace range.")}function parseWMode(e,t){var r=t.getObj();Number.isInteger(r)&&(e.vertical=!!r)}function parseCMapName(e,t){var r=t.getObj();(0,i.isName)(r)&&(0,a.isString)(r.name)&&(e.name=r.name)}function parseCMap(e,t,r,n){var o,c;e:for(;;)try{var l=t.getObj();if((0,i.isEOF)(l))break;if((0,i.isName)(l)){"WMode"===l.name?parseWMode(e,t):"CMapName"===l.name&&parseCMapName(e,t);o=l}else if((0,i.isCmd)(l))switch(l.cmd){case"endcmap":break e;case"usecmap":(0,i.isName)(o)&&(c=o.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Invalid cMap data: "+e);continue}!n&&c&&(n=c);return n?extendCMap(e,r,n):Promise.resolve(e)}function extendCMap(e,t,r){return createBuiltInCMap(r,t).then((function(t){e.useCMap=t;if(0===e.numCodespaceRanges){for(var r=e.useCMap.codespaceRanges,a=0;a=this.firstChar&&e<=this.lastChar?e:-1},amend(e){(0,a.unreachable)("Should not call amend()")}};return IdentityToUnicodeMap}();t.IdentityToUnicodeMap=k;var S=function OpenTypeFileBuilderClosure(){function writeInt16(e,t,r){e[t]=r>>8&255;e[t+1]=255&r}function writeInt32(e,t,r){e[t]=r>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}function writeData(e,t,r){var a,i;if(r instanceof Uint8Array)e.set(r,t);else if("string"==typeof r)for(a=0,i=r.length;ar;){r<<=1;a++}var i=r*t;return{range:i,entry:a,rangeShift:t*e-i}};OpenTypeFileBuilder.prototype={toArray:function OpenTypeFileBuilder_toArray(){var e=this.sfnt,t=this.tables,r=Object.keys(t);r.sort();var i,n,s,o,c,h=r.length,u=12+16*h,d=[u];for(i=0;i>>0;d.push(u)}var f=new Uint8Array(u);for(i=0;i>>0}writeInt32(f,u+4,m);writeInt32(f,u+8,d[i]);writeInt32(f,u+12,t[c].length);u+=16}return f},addTable:function OpenTypeFileBuilder_addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}};return OpenTypeFileBuilder}(),C=function FontClosure(){function Font(e,t,r){var i;this.name=e;this.loadedName=r.loadedName;this.isType3Font=r.isType3Font;this.missingFile=!1;this.glyphCache=Object.create(null);this.isSerifFont=!!(r.flags&b.Serif);this.isSymbolicFont=!!(r.flags&b.Symbolic);this.isMonospace=!!(r.flags&b.FixedPitch);var n=r.type,s=r.subtype;this.type=n;this.subtype=s;let o="sans-serif";this.isMonospace?o="monospace":this.isSerifFont&&(o="serif");this.fallbackName=o;this.differences=r.differences;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.composite=r.composite;this.cMap=r.cMap;this.ascent=r.ascent/1e3;this.descent=r.descent/1e3;this.fontMatrix=r.fontMatrix;this.bbox=r.bbox;this.defaultEncoding=r.defaultEncoding;this.toUnicode=r.toUnicode;this.fallbackToUnicode=r.fallbackToUnicode||new w;this.toFontChar=[];if("Type3"!==r.type){this.cidEncoding=r.cidEncoding;this.vertical=!!r.vertical;if(this.vertical){this.vmetrics=r.vmetrics;this.defaultVMetrics=r.defaultVMetrics}if(t&&!t.isEmpty){[n,s]=function getFontFileType(e,{type:t,subtype:r,composite:i}){let n,s;if(function isTrueTypeFile(e){var t=e.peekBytes(4);return 65536===(0,l.readUint32)(t,0)||"true"===(0,a.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))n=i?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){var t=e.peekBytes(4);return"OTTO"===(0,a.bytesToString)(t)}(e))n=i?"CIDFontType2":"OpenType";else if(function isType1File(e){var t=e.peekBytes(2);if(37===t[0]&&33===t[1])return!0;if(128===t[0]&&1===t[1])return!0;return!1}(e))n=i?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);if(t[0]>=1&&t[3]>=1&&t[3]<=4)return!0;return!1}(e))if(i){n="CIDFontType0";s="CIDFontType0C"}else{n="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,a.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");n=t;s=r}return[n,s]}(t,r);n===this.type&&s===this.subtype||(0,a.info)(`Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${n}/${s}.`);try{var c;switch(n){case"MMType1":(0,a.info)("MMType1 font ("+e+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var h="Type1C"===s||"CIDFontType0C"===s?new T(t,r):new A(e,t,r);adjustWidths(r);c=this.convert(e,h,r);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";c=this.checkAndRepair(e,t,r);if(this.isOpenType){adjustWidths(r);n="OpenType"}break;default:throw new a.FormatError(`Font ${n} is not supported`)}}catch(e){(0,a.warn)(e);this.fallbackToSystemFont();return}this.data=c;this.fontType=getFontType(n,s);this.fontMatrix=r.fontMatrix;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.toUnicode=r.toUnicode;this.seacMap=r.seacMap}else{t&&(0,a.warn)('Font file is empty in "'+e+'" ('+this.loadedName+")");this.fallbackToSystemFont()}}else{for(i=0;i<256;i++)this.toFontChar[i]=this.differences[i]||r.defaultEncoding[i];this.fontType=a.FontType.TYPE3}}function int16(e,t){return(e<<8)+t}function signedInt16(e,t){var r=(e<<8)+t;return 32768&r?r-65536:r}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,a.bytesToString)(t)}function buildToFontChar(e,t,r){for(var a,i=[],n=0,s=e.length;nc){if(++s>=g.length){(0,a.warn)("Ran out of space in font private use area.");break}o=g[s][0];c=g[s][1]}var u=o++;0===h&&(h=r);i[u]=h;n[l]=u}}return{toFontChar:n,charCodeToGlyphId:i,nextAvailableFontCharCode:o}}function createCmapTable(e,t){var r,i,n,s,o=function getRanges(e,t){var r=[];for(var a in e)e[a]>=t||r.push({fontCharCode:0|a,glyphId:e[a]});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));for(var i=[],n=r.length,s=0;s65535?2:1,l="\0\0"+string16(c)+"\0\0"+(0,a.string32)(4+8*c);for(r=o.length-1;r>=0&&!(o[r][0]<=65535);--r);var h=r+1;o[r][0]<65535&&65535===o[r][1]&&(o[r][1]=65534);var u,d,f,g,m=o[r][1]<65535?1:0,p=h+m,b=S.getSearchParams(p,2),y="",v="",w="",k="",C="",x=0;for(r=0,i=h;r0){v+="ÿÿ";y+="ÿÿ";w+="\0";k+="\0\0"}var I="\0\0"+string16(2*p)+string16(b.range)+string16(b.entry)+string16(b.rangeShift)+v+"\0\0"+y+w+k+C,F="",P="";if(c>1){l+="\0\0\n"+(0,a.string32)(4+8*c+4+I.length);F="";for(r=0,i=o.length;r(u|=0)||!l)&&(l=u);h 123 are reserved for internal usage");o|=1<65535&&(h=65535)}else{l=0;h=255}var f=e.bbox||[0,0,0,0],g=r.unitsPerEm||1/(e.fontMatrix||a.FONT_IDENTITY_MATRIX)[0],m=e.ascentScaled?1:g/1e3,p=r.ascent||Math.round(m*(e.ascent||f[3])),b=r.descent||Math.round(m*(e.descent||f[1]));b>0&&e.descent>0&&f[1]<0&&(b=-b);var y=r.yMax||p,v=-r.yMin||-b;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,a.string32)(i)+(0,a.string32)(n)+(0,a.string32)(s)+(0,a.string32)(o)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(p)+string16(b)+"\0d"+string16(y)+string16(v)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){var t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,a.string32)(t)+"\0\0\0\0"+(0,a.string32)(e.fixedPitch)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createNameTable(e,t){t||(t=[[],[]]);var r,a,i,n,s,o=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||"",t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],c=[];for(r=0,a=o.length;r0;if(u&&"CIDFontType2"===t&&this.cidEncoding.startsWith("Identity-")){const t=(0,o.getGlyphMapForStandardFonts)(),r=[];for(const e in t)r[+e]=t[e];if(/Arial-?Black/i.test(e)){var d=(0,o.getSupplementalGlyphMapForArialBlack)();for(const e in d)r[+e]=d[e]}else if(/Calibri/i.test(e)){const e=(0,o.getSupplementalGlyphMapForCalibri)();for(const t in e)r[+t]=e[t]}this.toUnicode instanceof k||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new w(r)}else if(/Symbol/i.test(i))this.toFontChar=buildToFontChar(s.SymbolSetEncoding,(0,n.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(i)){/Wingdings/i.test(e)&&(0,a.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(s.ZapfDingbatsEncoding,(0,n.getDingbatsGlyphsUnicode)(),this.differences)}else if(u)this.toFontChar=buildToFontChar(this.defaultEncoding,(0,n.getGlyphsUnicode)(),this.differences);else{const t=(0,n.getGlyphsUnicode)(),r=[];this.toUnicode.forEach((e,a)=>{if(!this.composite){var i=this.differences[e]||this.defaultEncoding[e];const r=(0,c.getUnicodeForGlyph)(i,t);-1!==r&&(a=r)}r[+e]=a});if(this.composite&&this.toUnicode instanceof k&&/Verdana/i.test(e)){const e=(0,o.getGlyphMapForStandardFonts)();for(const t in e)r[+t]=e[t]}this.toFontChar=r}this.loadedName=i.split("-")[0];this.fontType=getFontType(t,r)},checkAndRepair:function Font_checkAndRepair(e,t,r){const o=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const r=Object.create(null);r["OS/2"]=null;r.cmap=null;r.head=null;r.hhea=null;r.hmtx=null;r.maxp=null;r.name=null;r.post=null;for(let a=0;a>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0,s=e.pos;e.pos=e.start?e.start:0;e.skip(i);var o=e.getBytes(n);e.pos=s;if("head"===t){o[8]=o[9]=o[10]=o[11]=0;o[17]|=32}return{tag:t,checksum:r,length:n,offset:i,data:o}}function readOpenTypeHeader(e){return{version:(0,a.bytesToString)(e.getBytes(4)),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,r,a,i,n){var s={length:0,sizeOfInstructions:0};if(r-t<=12)return s;var o=e.subarray(t,r),c=signedInt16(o[0],o[1]);if(c<0){!function writeSignedInt16(e,t,r){e[t+1]=r;e[t]=r>>>8}(o,0,c=-1);a.set(o,i);s.length=o.length;return s}var l,h=10,u=0;for(l=0;lo.length)return s;if(!n&&f>0){a.set(o.subarray(0,d),i);a.set([0,0],i+d);a.set(o.subarray(g,y),i+d+2);y-=f;o.length-y>3&&(y=y+3&-4);s.length=y;return s}if(o.length-y>3){y=y+3&-4;a.set(o.subarray(0,y),i);s.length=y;return s}a.set(o,i);s.length=o.length;return s}function readNameTable(e){var r=(t.start?t.start:0)+e.offset;t.pos=r;var i=[[],[]],n=e.length,s=r+n;if(0!==t.getUint16()||n<6)return i;var o,c,l=t.getUint16(),h=t.getUint16(),u=[];for(o=0;os)){t.pos=g;var m=f.name;if(f.encoding){for(var p="",b=0,y=f.length;b0&&(h+=S-1)}}else{if(b||v){(0,a.warn)("TT: nested FDEFs not allowed");p=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:l,i:h}}else if(!b&&!v){s=f[f.length-1];if(isNaN(s))(0,a.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,a.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!m.includes(s)){g.push({data:l,i:h,stackTop:f.length-1});m.push(s);if(!(o=t.functionsDefined[s])){(0,a.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}l=o.data;h=o.i}}}if(!b&&!v){let e=0;k<=142?e=c[k]:k>=192&&k<=223?e=-1:k>=224&&(e=-2);if(k>=113&&k<=117){i=f.pop();isNaN(i)||(e=2*-i)}for(;e<0&&f.length>0;){f.pop();e++}for(;e>0;){f.push(NaN);e--}}}t.tooComplexToFollowFunctions=p;var C=[l];h>l.length&&C.push(new Uint8Array(h-l.length));if(d>u){(0,a.warn)("TT: complementing a missing function tail");C.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){var r,a,i=0;for(r=0,a=t.length;r>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:r,minorVersion:i,numFonts:n,offsetTable:s};switch(r){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new a.FormatError(`Invalid TrueType Collection majorVersion: ${r}.`)}(e);for(let n=0;n0||!(r.cMap instanceof u.IdentityCMap));if("OTTO"===l.version&&!t||!h.head||!h.hhea||!h.maxp||!h.post){g=new d.Stream(h["CFF "].data);f=new T(g,r);adjustWidths(r);return this.convert(e,f,r)}delete h.glyf;delete h.loca;delete h.fpgm;delete h.prep;delete h["cvt "];this.isOpenType=!0}if(!h.maxp)throw new a.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+h.maxp.offset;var p=t.getInt32();const b=t.getUint16();let v=b+1,w=!0;if(v>65535){w=!1;v=b;(0,a.warn)("Not enough space in glyfs to duplicate first glyph.")}var k=0,C=0;if(p>=65536&&h.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){h.maxp.data[14]=0;h.maxp.data[15]=2}t.pos+=4;k=t.getUint16();t.pos+=4;C=t.getUint16()}h.maxp.data[4]=v>>8;h.maxp.data[5]=255&v;var x=function sanitizeTTPrograms(e,t,r,i){var n={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,n);t&&sanitizeTTProgram(t,n);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,a.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(var r=0,i=e.functionsUsed.length;rt){(0,a.warn)("TT: invalid function id: "+r);e.hintsValid=!1;return}if(e.functionsUsed[r]&&!e.functionsDefined[r]){(0,a.warn)("TT: undefined function: "+r);e.hintsValid=!1;return}}}(n,i);if(r&&1&r.length){var s=new Uint8Array(r.length+1);s.set(r.data);r.data=s}return n.hintsValid}(h.fpgm,h.prep,h["cvt "],k);if(!x){delete h.fpgm;delete h.prep;delete h["cvt "]}!function sanitizeMetrics(e,t,r,i,n){if(t){e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=8;e.pos+=2;var s=e.getUint16();if(s>i){(0,a.info)("The numOfMetrics ("+s+") should not be greater than the numGlyphs ("+i+")");s=i;t.data[34]=(65280&s)>>8;t.data[35]=255&s}var o=i-s-(r.length-4*s>>1);if(o>0){var c=new Uint8Array(r.length+2*o);c.set(r.data);if(n){c[r.length]=r.data[2];c[r.length+1]=r.data[3]}r.data=c}}else r&&(r.data=null)}(t,h.hhea,h.hmtx,v,w);if(!h.head)throw new a.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,r){var i=e.data,n=function int32(e,t,r,a){return(e<<24)+(t<<16)+(r<<8)+a}(i[0],i[1],i[2],i[3]);if(n>>16!=1){(0,a.info)("Attempting to fix invalid version in head table: "+n);i[0]=0;i[1]=1;i[2]=0;i[3]=0}var s=int16(i[50],i[51]);if(s<0||s>1){(0,a.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);var o=t+1;if(r===o<<1){i[50]=0;i[51]=0}else{if(r!==o<<2)throw new a.FormatError("Could not fix indexToLocFormat: "+s);i[50]=0;i[51]=1}}}(h.head,b,m?h.loca.length:0);var A=Object.create(null);if(m){var I=int16(h.head.data[50],h.head.data[51]),F=function sanitizeGlyphLocations(e,t,r,a,i,n,s){var o,c,l;if(a){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,r){e[t]=r>>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,r){e[t]=r>>9&255;e[t+1]=r>>1&255}}var h=n?r+1:r,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;var f,g,m=t.data,p=m.length,b=new Uint8Array(p);const y=[];for(f=0,g=0;fp&&(e=p);y.push({index:f,offset:e,endOffset:0})}y.sort((e,t)=>e.offset-t.offset);for(f=0;fe.index-t.index);var v=Object.create(null),w=0;l(d,0,w);for(f=0,g=o;fs&&(s=k.sizeOfInstructions);l(d,g,w+=S)}if(0===w){var C=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(f=0,g=o;fx+w)t.data=b.subarray(0,x+w);else{t.data=new Uint8Array(x+w);t.data.set(b.subarray(0,w))}t.data.set(b.subarray(0,x),w);l(e.data,d.length-o,w+x)}else t.data=b.subarray(0,w);return{missingGlyphs:v,maxSizeOfInstructions:s}}(h.loca,h.glyf,b,I,x,w,C);A=F.missingGlyphs;if(p>=65536&&h.maxp.length>=22){h.maxp.data[26]=F.maxSizeOfInstructions>>8;h.maxp.data[27]=255&F.maxSizeOfInstructions}}if(!h.hhea)throw new a.FormatError('Required "hhea" table is not found');if(0===h.hhea.data[10]&&0===h.hhea.data[11]){h.hhea.data[10]=255;h.hhea.data[11]=255}var P={unitsPerEm:int16(h.head.data[18],h.head.data[19]),yMax:int16(h.head.data[42],h.head.data[43]),yMin:signedInt16(h.head.data[38],h.head.data[39]),ascent:int16(h.hhea.data[4],h.hhea.data[5]),descent:signedInt16(h.hhea.data[6],h.hhea.data[7])};this.ascent=P.ascent/P.unitsPerEm;this.descent=P.descent/P.unitsPerEm;h.post&&function readPostScriptTable(e,r,i){var n=(t.start?t.start:0)+e.offset;t.pos=n;var s,o=n+e.length,c=t.getInt32();t.skip(28);var l,h=!0;switch(c){case 65536:s=y;break;case 131072:var u=t.getUint16();if(u!==i){h=!1;break}var d=[];for(l=0;l=32768){h=!1;break}d.push(f)}if(!h)break;for(var g=[],m=[];t.pos65535)throw new a.FormatError("Max size of CID is 65,535");var r=-1;O?r=t:void 0!==B[t]&&(r=B[t]);r>=0&&r>>0,g=!1;if(!o||o.platformId!==u||o.encodingId!==d){if(0!==u||0!==d&&1!==d&&3!==d)if(1===u&&0===d)g=!0;else if(3!==u||1!==d||!i&&o){if(r&&3===u&&0===d){g=!0;l=!0}}else{g=!0;r||(l=!0)}else g=!0;g&&(o={platformId:u,encodingId:d,offset:f});if(l)break}}o&&(t.pos=s+o.offset);if(!o||-1===t.peekByte()){(0,a.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var m=t.getUint16();t.skip(4);var p,b,y=!1,v=[];if(0===m){for(p=0;p<256;p++){var w=t.getByte();w&&v.push({charCode:p,glyphId:w})}y=!0}else if(4===m){var k=t.getUint16()>>1;t.skip(6);var S,C=[];for(S=0;S>1)-(k-S);n.offsetIndex=T;x=Math.max(x,T+n.end-n.start+1)}else n.offsetIndex=-1}var I=[];for(p=0;p=61440&&t<=61695&&(t&=255);E[t]=N[e].glyphId}if(r.glyphNames&&e.length)for(let t=0;t<256;++t)if(void 0===E[t]&&e[t]){U=e[t];const a=r.glyphNames.indexOf(U);a>0&&hasGlyph(a)&&(E[t]=a)}}0===E.length&&(E[0]=0);let H=v-1;w||(H=0);var z=adjustMapping(E,hasGlyph,H);this.toFontChar=z.toFontChar;h.cmap={tag:"cmap",data:createCmapTable(z.charCodeToGlyphId,v)};h["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;var r=t.getUint16();t.skip(60);var a=t.getUint16();if(r<4&&768&a)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(h["OS/2"],t)||(h["OS/2"]={tag:"OS/2",data:createOS2Table(r,z.charCodeToGlyphId,P)});if(!m)try{g=new d.Stream(h["CFF "].data);f=new i.CFFParser(g,r,!0).parse();f.duplicateFirstGlyph();var G=new i.CFFCompiler(f);h["CFF "].data=G.compile()}catch(e){(0,a.warn)("Failed to compile font "+r.loadedName)}if(h.name){var W=readNameTable(h.name);h.name.data=createNameTable(e,W)}else h.name={tag:"name",data:createNameTable(this.name)};var X=new S(l.version);for(var V in h)X.addTable(V,h[V].data);return X.toArray()},convert:function Font_convert(e,t,r){r.fixedPitch=!1;r.builtInEncoding&&function adjustToUnicode(e,t){if(!e.hasIncludedToUnicodeMap&&!(e.hasEncoding||t===e.defaultEncoding||e.toUnicode instanceof k)){var r=[],a=(0,n.getGlyphsUnicode)();for(var i in t){var s=t[i],o=(0,c.getUnicodeForGlyph)(s,a);-1!==o&&(r[i]=String.fromCharCode(o))}e.toUnicode.amend(r)}}(r,r.builtInEncoding);let i=1;t instanceof T&&(i=t.numGlyphs-1);var o=t.getGlyphMapping(r),l=adjustMapping(o,t.hasGlyphId.bind(t),i);this.toFontChar=l.toFontChar;var h=t.numGlyphs;function getCharCodes(e,t){var r=null;for(var a in e)if(t===e[a]){r||(r=[]);r.push(0|a)}return r}function createCharCode(e,t){for(var r in e)if(t===e[r])return 0|r;l.charCodeToGlyphId[l.nextAvailableFontCharCode]=t;return l.nextAvailableFontCharCode++}var u=t.seacs;if(u&&u.length){var d=r.fontMatrix||a.FONT_IDENTITY_MATRIX,f=t.getCharset(),g=Object.create(null);for(var m in u){var p=u[m|=0],b=s.StandardEncoding[p[2]],y=s.StandardEncoding[p[3]],v=f.indexOf(b),w=f.indexOf(y);if(!(v<0||w<0)){var C={x:p[0]*d[0]+p[1]*d[2]+d[4],y:p[0]*d[1]+p[1]*d[3]+d[5]},x=getCharCodes(o,m);if(x)for(let e=0,t=x.length;e=0?a:0}}else if(l)for(i in t)c[i]=t[i];else{o=s.StandardEncoding;for(i=0;i=0?a:0}}var h,u=e.differences;if(u)for(i in u){var d=u[i];if(-1===(a=r.indexOf(d))){h||(h=(0,n.getGlyphsUnicode)());var f=recoverGlyphName(d,h);f!==d&&(a=r.indexOf(f))}c[i]=a>=0?a:0}return c}var A=function Type1FontClosure(){function findBlock(e,t,r){for(var a,i=e.length,n=t.length,s=i-n,o=r,c=!1;o=n){o+=a;for(;o=0&&(n[s]=r)}return type1FontGlyphMapping(e,n,a)},hasGlyphId:function Type1Font_hasGlyphID(e){return!(e<0||e>=this.numGlyphs)&&(0===e||this.charstrings[e-1].charstring.length>0)},getSeacs:function Type1Font_getSeacs(e){var t,r,a=[];for(t=0,r=e.length;t0;y--)b[y]-=b[y-1];g.setByName(p,b)}}s.topDict.privateDict=g;var v=new i.CFFIndex;for(l=0,h=a.length;l=t)throw new a.FormatError("Invalid CFF header");if(0!==r){(0,a.info)("cff data is shifted");e=e.subarray(r);this.bytes=e}var i=e[0],n=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(i,n,s,o),endPos:s}}parseDict(e){var t=0;function parseOperand(){var r=e[t++];if(30===r)return function parseFloatOperand(){var r="";const a=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];var i=e.length;for(;t>4,o=15&n;if(15===s)break;r+=a[s];if(15===o)break;r+=a[o]}return parseFloat(r)}();if(28===r)return r=((r=e[t++])<<24|e[t++]<<16)>>16;if(29===r)return r=(r=(r=(r=e[t++])<<8|e[t++])<<8|e[t++])<<8|e[t++];if(r>=32&&r<=246)return r-139;if(r>=247&&r<=250)return 256*(r-247)+e[t++]+108;if(r>=251&&r<=254)return-256*(r-251)-e[t++]-108;(0,a.warn)('CFFParser_parseDict: "'+r+'" is a reserved command.');return NaN}var r=[],i=[];t=0;for(var n=e.length;t10)return!1;for(var o=r.stackSize,c=r.stack,l=i.length,h=0;h>16;h+=2;o++}else if(14===u){if(o>=4){o-=4;if(this.seacAnalysisEnabled){r.seac=c.slice(o,o+4);return!1}}d=e[u]}else if(u>=32&&u<=246){c[o]=u-139;o++}else if(u>=247&&u<=254){c[o]=u<251?(u-247<<8)+i[h]+108:-(u-251<<8)-i[h]-108;h++;o++}else if(255===u){c[o]=(i[h]<<24|i[h+1]<<16|i[h+2]<<8|i[h+3])/65536;h+=4;o++}else if(19===u||20===u){r.hints+=o>>1;h+=r.hints+7>>3;o%=2;d=e[u]}else{if(10===u||29===u){var g;if(!(g=10===u?n:s)){d=e[u];(0,a.warn)("Missing subrsIndex for "+d.id);return!1}var m=32768;g.count<1240?m=107:g.count<33900&&(m=1131);var p=c[--o]+m;if(p<0||p>=g.count||isNaN(p)){d=e[u];(0,a.warn)("Out of bounds subrIndex for "+d.id);return!1}r.stackSize=o;r.callDepth++;if(!this.parseCharString(r,g.get(p),n,s))return!1;r.callDepth--;o=r.stackSize;continue}if(11===u){r.stackSize=o;return!0}d=e[u]}if(d){if(d.stem){r.hints+=o>>1;if(3===u||23===u)r.hasVStems=!0;else if(r.hasVStems&&(1===u||18===u)){(0,a.warn)("CFF stem hints are in wrong order");i[h-1]=1===u?3:23}}if("min"in d&&!r.undefStack&&o=2&&d.stem?o%=2:o>1&&(0,a.warn)("Found too many parameters for stack-clearing command");o>0&&c[o-1]>=0&&(r.width=c[o-1])}if("stackDelta"in d){"stackFn"in d&&d.stackFn(c,o);o+=d.stackDelta}else if(d.stackClearing)o=0;else if(d.resetStack){o=0;r.undefStack=!1}else if(d.undefStack){o=0;r.undefStack=!0;r.firstStackClearing=!1}}}r.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:r,fdSelect:i,fdArray:n,privateDict:s}){for(var o=[],c=[],l=e.count,h=0;h=n.length){(0,a.warn)("Invalid fd index for glyph index.");f=!1}f&&(g=(m=n[p].privateDict).subrsIndex)}else t&&(g=t);f&&(f=this.parseCharString(d,u,g,r));if(null!==d.width){const e=m.getByName("nominalWidthX");c[h]=e+d.width}else{const e=m.getByName("defaultWidthX");c[h]=e}null!==d.seac&&(o[h]=d.seac);f||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){var t=this.createDict(l,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(e.hasName("Private")){var t=e.getByName("Private");if(Array.isArray(t)&&2===t.length){var r=t[0],a=t[1];if(0===r||a>=this.bytes.length)this.emptyPrivateDictionary(e);else{var i=a+r,n=this.bytes.subarray(a,i),s=this.parseDict(n),o=this.createDict(l,s,e.strings);e.privateDict=o;if(o.getByName("Subrs")){var c=o.getByName("Subrs"),h=a+c;if(0===c||h>=this.bytes.length)this.emptyPrivateDictionary(e);else{var u=this.parseIndex(h);o.subrsIndex=u.obj}}}}else e.removeByName("Private")}else this.emptyPrivateDictionary(e)}parseCharsets(e,t,r,n){if(0===e)return new CFFCharset(!0,h.ISO_ADOBE,i.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,h.EXPERT,i.ExpertCharset);if(2===e)return new CFFCharset(!0,h.EXPERT_SUBSET,i.ExpertSubsetCharset);var s=this.bytes,o=e,c=s[e++];const l=[n?0:".notdef"];var u,d,f;t-=1;switch(c){case 0:for(f=0;f=65535)(0,a.warn)("Not enough space in charstrings to duplicate first glyph.");else{var e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}hasGlyphId(e){return!(e<0||e>=this.charStrings.count)&&this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,r,a){this.major=e;this.minor=t;this.hdrSize=r;this.offSize=a}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-391<=this.strings.length?this.strings[e-391]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+391:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;var r=t.length;if(0===r)return!0;for(var i=0;i=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new a.FormatError("Already tracking location of "+e);this.offsets[e]=t}offset(e){for(var t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,r){if(!(e in this.offsets))throw new a.FormatError("Not tracking location of "+e);for(var i=r.data,n=this.offsets[e],s=0,o=t.length;s>24&255;i[h]=f>>16&255;i[u]=f>>8&255;i[d]=255&f}}}class CFFCompiler{constructor(e){this.cff=e}compile(){var e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},r=this.compileHeader(e.header);t.add(r);var i=this.compileNameIndex(e.names);t.add(i);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){var n=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(var s=0,o=e.fdArray.length;s=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e]}compileHeader(e){return[e.major,e.minor,e.hdrSize,e.offSize]}compileNameIndex(e){for(var t=new CFFIndex,r=0,i=e.length;r"~"||"["===l||"]"===l||"("===l||")"===l||"{"===l||"}"===l||"<"===l||">"===l||"/"===l||"%"===l)&&(l="_");o[c]=l}""===(o=o.join(""))&&(o="Bad_Font_Name");t.add((0,a.stringToBytes)(o))}return this.compileIndex(t)}compileTopDicts(e,t,r){for(var a=[],i=new CFFIndex,n=0,s=e.length;n>8&255,255&s]);else{n=new Uint8Array(1+2*s);n[0]=0;let t=0;const i=e.charset.length;let o=!1;for(let s=1;s>8&255;n[s+1]=255&c}}return this.compileTypedArray(n)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let r,a;switch(t){case 0:r=new Uint8Array(1+e.fdSelect.length);r[0]=t;for(a=0;a>8&255,255&i,n];for(a=1;a>8&255,255&a,t);n=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(a>>8&255,255&a);r=new Uint8Array(s)}return this.compileTypedArray(r)}compileTypedArray(e){for(var t=[],r=0,a=e.length;r>8&255,255&a],o=1;for(i=0;i>8&255,255&c):3===n?s.push(c>>16&255,c>>8&255,255&c):s.push(c>>>24&255,c>>16&255,c>>8&255,255&c);r[i]&&(c+=r[i].length)}for(i=0;i=65520&&e<=65535?0:e>=62976&&e<=63743?i()[e]||e:173===e?45:e};t.reverseIfRtl=function reverseIfRtl(e){var t=e.length;if(t<=1||!function isRTLRangeFor(e){var t=n[13];return e>=t.begin&&e=(t=n[11]).begin&&e=0;a--)r+=e[a];return r};t.getUnicodeRangeFor=function getUnicodeRangeFor(e){for(var t=0,r=n.length;t=a.begin&&e=5&&i<=7))return-1;a=e.substring(1)}if(a===a.toUpperCase()&&(r=parseInt(a,16))>=0)return r}return-1}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var a=r(2),i=r(31),n=r(34),s=r(33),o=r(12),c=function FontRendererFactoryClosure(){function getLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function getUshort(e,t){return e[t]<<8|e[t+1]}function getSubroutineBias(e){const t=e.length;let r=32768;t<1240?r=107:t<33900&&(r=1131);return r}function parseCmap(e,t,r){var i,n,s,o=1===getUshort(e,t+2)?getLong(e,t+8):getLong(e,t+16),c=getUshort(e,t+o);if(4===c){getUshort(e,t+o+2);var l=getUshort(e,t+o+6)>>1;n=t+o+14;i=[];for(s=0;s>1;r=0&&e>16,s=0,o=0;i+=10;if(n<0)do{a=e[i]<<8|e[i+1];var c,l,h=e[i+2]<<8|e[i+3];i+=4;if(1&a){c=(e[i]<<24|e[i+1]<<16)>>16;l=(e[i+2]<<24|e[i+3]<<16)>>16;i+=4}else{c=e[i++];l=e[i++]}if(2&a){s=c;o=l}else{s=0;o=0}var u=1,d=1,f=0,g=0;if(8&a){u=d=(e[i]<<24|e[i+1]<<16)/1073741824;i+=2}else if(64&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;d=(e[i+2]<<24|e[i+3]<<16)/1073741824;i+=4}else if(128&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;f=(e[i+2]<<24|e[i+3]<<16)/1073741824;g=(e[i+4]<<24|e[i+5]<<16)/1073741824;d=(e[i+6]<<24|e[i+7]<<16)/1073741824;i+=8}var m=r.glyphs[h];if(m){t.push({cmd:"save"});t.push({cmd:"transform",args:[u,f,g,d,s,o]});compileGlyf(m,t,r);t.push({cmd:"restore"})}}while(32&a);else{var p,b,y=[];for(p=0;p0;)w.push({flags:a})}for(p=0;p>16;i+=2;break;case 2:s-=e[i++];break;case 18:s+=e[i++]}w[p].x=s}for(p=0;p>16;i+=2;break;case 4:o-=e[i++];break;case 36:o+=e[i++]}w[p].y=o}var S=0;for(i=0;i>1;v=!0;break;case 4:c+=n.pop();moveTo(o,c);v=!0;break;case 5:for(;n.length>0;){o+=n.shift();c+=n.shift();lineTo(o,c)}break;case 6:for(;n.length>0;){lineTo(o+=n.shift(),c);if(0===n.length)break;c+=n.shift();lineTo(o,c)}break;case 7:for(;n.length>0;){c+=n.shift();lineTo(o,c);if(0===n.length)break;lineTo(o+=n.shift(),c)}break;case 8:for(;n.length>0;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:b=n.pop();y=null;if(r.isCFFCIDFont){const e=r.fdSelect.getFDIndex(i);if(e>=0&&eMath.abs(c-S)?o+=n.shift():c+=n.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new a.FormatError("unknown operator: 12 "+w)}break;case 14:if(n.length>=4){var C=n.pop(),x=n.pop();c=n.pop();o=n.pop();t.push({cmd:"save"});t.push({cmd:"translate",args:[o,c]});var A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[C]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId);t.push({cmd:"restore"});A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[x]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId)}return;case 18:l+=n.length>>1;v=!0;break;case 19:case 20:h+=(l+=n.length>>1)+7>>3;v=!0;break;case 21:c+=n.pop();moveTo(o+=n.pop(),c);v=!0;break;case 22:moveTo(o+=n.pop(),c);v=!0;break;case 23:l+=n.length>>1;v=!0;break;case 24:for(;n.length>2;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}o+=n.shift();c+=n.shift();lineTo(o,c);break;case 25:for(;n.length>6;){o+=n.shift();c+=n.shift();lineTo(o,c)}u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:n.length%2&&(o+=n.shift());for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d;c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:n.length%2&&(c+=n.shift());for(;n.length>0;)bezierCurveTo(u=o+n.shift(),f=c,d=u+n.shift(),g=f+n.shift(),o=d+n.shift(),c=g);break;case 28:n.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:b=n.pop()+r.gsubrsBias;(y=r.gsubrs[b])&&parse(y);break;case 30:for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===n.length)break;u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c)}break;case 31:for(;n.length>0;){u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c);if(0===n.length)break;u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(w<32)throw new a.FormatError("unknown operator: "+w);if(w<247)n.push(w-139);else if(w<251)n.push(256*(w-247)+e[h++]+108);else if(w<255)n.push(256*-(w-251)-e[h++]-108);else{n.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}v&&(n.length=0)}}(e)}(e,t,this,r)}}return{create:function FontRendererFactory_create(e,t){for(var r,i,n,s,o,c,l=new Uint8Array(e.data),h=getUshort(l,4),u=0,d=12;ua)return!0;for(var i=a-e,n=i;n>8&255,255&s);else{s=65536*s|0;this.output.push(255,s>>24&255,s>>16&255,s>>8&255,255&s)}}this.output.push.apply(this.output,t);r?this.stack.splice(i,e):this.stack.length=0;return!1}};return Type1CharString}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,r){if(r>=e.length)return new Uint8Array(0);var a,i,n=0|t;for(a=0;a>8;n=52845*(c+n)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}function Type1Parser(e,t,r){if(t){var a=e.getBytes(),s=!((isHexDigit(a[0])||(0,i.isWhiteSpace)(a[0]))&&isHexDigit(a[1])&&isHexDigit(a[2])&&isHexDigit(a[3])&&isHexDigit(a[4])&&isHexDigit(a[5])&&isHexDigit(a[6])&&isHexDigit(a[7]));e=new n.Stream(s?decrypt(a,55665,4):function decryptAscii(e,t,r){var a,i,n=0|t,s=e.length,o=new Uint8Array(s>>>1);for(a=0,i=0;a>8;n=52845*(h+n)+22719&65535}}}return o.slice(r,i)}(a,55665,4))}this.seacAnalysisEnabled=!!r;this.stream=e;this.nextChar()}Type1Parser.prototype={readNumberArray:function Type1Parser_readNumberArray(){this.getToken();for(var e=[];;){var t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e},readNumber:function Type1Parser_readNumber(){var e=this.getToken();return parseFloat(e||0)},readInt:function Type1Parser_readInt(){var e=this.getToken();return 0|parseInt(e||0,10)},readBoolean:function Type1Parser_readBoolean(){return"true"===this.getToken()?1:0},nextChar:function Type1_nextChar(){return this.currentChar=this.stream.getByte()},getToken:function Type1Parser_getToken(){for(var e=!1,t=this.currentChar;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}var r="";do{r+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,i.isWhiteSpace)(t)&&!isSpecial(t));return r},readCharStrings:function Type1Parser_readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)},extractFontProgram:function Type1Parser_extractFontProgram(e){var t=this.stream,r=[],a=[],i=Object.create(null);i.lenIV=4;for(var n,s,c,l,h,u={subrs:[],charstrings:[],properties:{privateData:i}};null!==(n=this.getToken());)if("/"===n)switch(n=this.getToken()){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;null!==(n=this.getToken())&&"end"!==n;)if("/"===n){var d=this.getToken();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();a.push({glyph:d,encoded:h})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();r[e]=h}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var f=this.readNumberArray();f.length>0&&f.length,0;break;case"StemSnapH":case"StemSnapV":u.properties.privateData[n]=this.readNumberArray();break;case"StdHW":case"StdVW":u.properties.privateData[n]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":u.properties.privateData[n]=this.readNumber();break;case"ForceBold":u.properties.privateData[n]=this.readBoolean()}for(var g=0;g-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=m.width)}}return u},extractFontHeader:function Type1Parser_extractFontHeader(e){for(var t;null!==(t=this.getToken());)if("/"===t)switch(t=this.getToken()){case"FontMatrix":var r=this.readNumberArray();e.fontMatrix=r;break;case"Encoding":var i,n=this.getToken();if(/^\d+$/.test(n)){i=[];var s=0|parseInt(n,10);this.getToken();for(var o=0;o=d||I<=0)(0,a.info)("Bad shading domain.");else{var P,E=new Float32Array(l.numComps),B=new Float32Array(1);for(let e=0;e<=10;e++){B[0]=u+e*I;T(B,0,E,0);P=l.getRgb(E,0);var O=a.Util.makeCssRgb(P[0],P[1],P[2]);F.push([e/10,O])}var M="transparent";if(e.has("Background")){P=l.getRgb(e.get("Background"),0);M=a.Util.makeCssRgb(P[0],P[1],P[2])}if(!m){F.unshift([0,M]);F[1][0]+=g.SMALL_NUMBER}if(!p){F[F.length-1][0]-=g.SMALL_NUMBER;F.push([1,M])}this.colorStops=F}}RadialAxial.prototype={getIR:function RadialAxial_getIR(){var e,t,r,i,n,s=this.coordsArr,l=this.shadingType;if(l===o){t=[s[0],s[1]];r=[s[2],s[3]];i=null;n=null;e="axial"}else if(l===c){t=[s[0],s[1]];r=[s[3],s[4]];i=s[2];n=s[5];e="radial"}else(0,a.unreachable)("getPattern type unknown: "+l);var h=this.matrix;if(h){t=a.Util.applyTransform(t,h);r=a.Util.applyTransform(r,h);if(l===c){var u=a.Util.singularValueDecompose2dScale(h);i*=u[0];n*=u[1]}}return["RadialAxial",e,this.bbox,this.colorStops,t,r,i,n]}};return RadialAxial}();g.Mesh=function MeshClosure(){function MeshStreamReader(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;var r=t.numComps;this.tmpCompsBuf=new Float32Array(r);var a=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(a):this.tmpCompsBuf}MeshStreamReader.prototype={get hasData(){if(this.stream.end)return this.stream.pos0)return!0;var e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0},readBits:function MeshStreamReader_readBits(e){var t=this.buffer,r=this.bufferLength;if(32===e){if(0===r)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var a=this.stream.getByte();this.buffer=a&(1<>r)>>>0}if(8===e&&0===r)return this.stream.getByte();for(;r>r},align:function MeshStreamReader_align(){this.buffer=0;this.bufferLength=0},readFlag:function MeshStreamReader_readFlag(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function MeshStreamReader_readCoordinate(){var e=this.context.bitsPerCoordinate,t=this.readBits(e),r=this.readBits(e),a=this.context.decode,i=e<32?1/((1<o?o:t;r=r>c?c:r;a=a>c)*h;l&=(1<r?e=r:e0&&(d=i[h-1]);var f=a[1];h>1,c=a.length>>1,u=new l(s),d=Object.create(null),f=8192,g=new Float32Array(c);return function constructPostScriptFromIRResult(e,t,r,a){var i,s,l="",h=g;for(i=0;i(v=n[2*i+1]))&&(s=v);p[i]=s}if(f>0){f--;d[l]=p}r.set(p,a)}else r.set(m,a)}}}}();var c=function PostScriptStackClosure(){function PostScriptStack(e){this.stack=e?Array.prototype.slice.call(e,0):[]}PostScriptStack.prototype={push:function PostScriptStack_push(e){if(this.stack.length>=100)throw new Error("PostScript function stack overflow.");this.stack.push(e)},pop:function PostScriptStack_pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()},copy:function PostScriptStack_copy(e){if(this.stack.length+e>=100)throw new Error("PostScript function stack overflow.");for(var t=this.stack,r=t.length-e,a=e-1;a>=0;a--,r++)t.push(t[r])},index:function PostScriptStack_index(e){this.push(this.stack[this.stack.length-e-1])},roll:function PostScriptStack_roll(e,t){var r,a,i,n=this.stack,s=n.length-e,o=n.length-1,c=s+(t-Math.floor(t/e)*e);for(r=s,a=o;r0?n.push(r<>a);break;case"ceiling":r=n.pop();n.push(Math.ceil(r));break;case"copy":r=n.pop();n.copy(r);break;case"cos":r=n.pop();n.push(Math.cos(r));break;case"cvi":r=0|n.pop();n.push(r);break;case"cvr":break;case"div":a=n.pop();r=n.pop();n.push(r/a);break;case"dup":n.copy(1);break;case"eq":a=n.pop();r=n.pop();n.push(r===a);break;case"exch":n.roll(2,1);break;case"exp":a=n.pop();r=n.pop();n.push(r**a);break;case"false":n.push(!1);break;case"floor":r=n.pop();n.push(Math.floor(r));break;case"ge":a=n.pop();r=n.pop();n.push(r>=a);break;case"gt":a=n.pop();r=n.pop();n.push(r>a);break;case"idiv":a=n.pop();r=n.pop();n.push(r/a|0);break;case"index":r=n.pop();n.index(r);break;case"le":a=n.pop();r=n.pop();n.push(r<=a);break;case"ln":r=n.pop();n.push(Math.log(r));break;case"log":r=n.pop();n.push(Math.log(r)/Math.LN10);break;case"lt":a=n.pop();r=n.pop();n.push(r=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}function PostScriptCompiler(){}PostScriptCompiler.prototype={compile:function PostScriptCompiler_compile(e,t,r){var a,i,n,s,o,c,l,h,u=[],d=[],f=t.length>>1,g=r.length>>1,m=0;for(let e=0;ee.min){s.unshift("Math.max(",i,", ");s.push(")")}if(n=0&&(t>=65&&t<=90||t>=97&&t<=122);)r.push(String.fromCharCode(t));const a=r.join("");switch(a.toLowerCase()){case"if":return o.IF;case"ifelse":return o.IFELSE;default:return o.getOperator(a)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const r=parseFloat(t.join(""));if(isNaN(r))throw new a.FormatError("Invalid floating point number: "+r);return r}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t,r){var c=!0,l=e.length;if(0===l||r)return createBidiText(e,c,r);s.length=l;o.length=l;var h,u,d=0;for(h=0;h=0&&"ET"===o[k];--k)o[k]="EN";for(k=h+1;k0&&(C=o[h-1]);var x=v;S+1A&&isOdd(A)&&(I=A)}for(A=T;A>=I;--A){var F=-1;for(h=0,u=m.length;h=0){reverseValues(s,F,h);F=-1}}else F<0&&(F=h);F>=0&&reverseValues(s,F,m.length)}for(h=0,u=s.length;h"!==P||(s[h]="")}return createBidiText(s.join(""),c)};var a=r(2),i=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],n=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,r){for(var a=t,i=e.length;a>>8;t[r++]=255&i}}}else{if(!(0,a.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e;r=t.byteLength}const i=r>>2,n=r-4*i,s=new Uint32Array(t.buffer,0,i);let o=0,c=0,l=this.h1,h=this.h2;const u=3432918353,d=461845907;for(let e=0;e>>17;o=o*d&4294901760|13715*o&65535;l^=o;l=l<<13|l>>>19;l=5*l+3864292196}else{c=s[e];c=c*u&4294901760|11601*c&65535;c=c<<15|c>>>17;c=c*d&4294901760|13715*c&65535;h^=c;h=h<<13|h>>>19;h=5*h+3864292196}o=0;switch(n){case 3:o^=t[4*i+2]<<16;case 2:o^=t[4*i+1]<<8;case 1:o^=t[4*i];o=o*u&4294901760|11601*o&65535;o=o<<15|o>>>17;o=o*d&4294901760|13715*o&65535;1&i?l^=o:h^=o}this.h1=l;this.h2=h}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&4294901760|36045*e&65535;t=4283543511*t&4294901760|(2950163797*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;e=444984403*e&4294901760|60499*e&65535;t=3301882366*t&4294901760|(3120437893*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;const r=(e>>>0).toString(16),a=(t>>>0).toString(16);return r.padStart(8,"0")+a.padStart(8,"0")}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var a=r(2),i=r(5),n=r(23),s=r(12),o=r(18),c=r(21);function decodeAndClamp(e,t,r,a){(e=t+e*r)<0?e=0:e>a&&(e=a);return e}function resizeImageMask(e,t,r,a,i,n){var s=i*n;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);var c,l,h,u,d=r/i,f=a/n,g=0,m=new Uint16Array(i),p=r;for(c=0;c0&&Number.isInteger(r.height)&&r.height>0&&(r.width!==p||r.height!==b)){(0,a.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");p=r.width;b=r.height}if(p<1||b<1)throw new a.FormatError(`Invalid image width: ${p} or height: ${b}`);this.width=p;this.height=b;this.interpolate=f.get("Interpolate","I")||!1;this.imageMask=f.get("ImageMask","IM")||!1;this.matte=f.get("Matte")||!1;var y=r.bitsPerComponent;if(!y&&!(y=f.get("BitsPerComponent","BPC"))){if(!this.imageMask)throw new a.FormatError("Bits per component missing in image: "+this.imageMask);y=1}this.bpc=y;if(!this.imageMask){let o=f.getRaw("ColorSpace")||f.getRaw("CS");if(!o){(0,a.info)("JPX images (which do not require color spaces)");switch(r.numComps){case 1:o=i.Name.get("DeviceGray");break;case 3:o=i.Name.get("DeviceRGB");break;case 4:o=i.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${r.numComps} color components not supported.`)}}this.colorSpace=n.ColorSpace.parse({cs:o,xref:e,resources:s?t:null,pdfFunctionFactory:u,localColorSpaceCache:d});this.numComps=this.colorSpace.numComps}this.decode=f.getArray("Decode","D");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||h&&!n.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var v=(1<>3)*r,c=e.byteLength;if(!a||i&&!(o===c))if(i){(n=new Uint8ClampedArray(o)).set(e);for(s=c;s>7&1;o[d+1]=l>>6&1;o[d+2]=l>>5&1;o[d+3]=l>>4&1;o[d+4]=l>>3&1;o[d+5]=l>>2&1;o[d+6]=l>>1&1;o[d+7]=1&l;d+=8}if(d>=1}}}else{var b=0;l=0;for(d=0,c=n;d>y;r<0?r=0:r>u&&(r=u);o[d]=r;l&=(1<f[y+1]){m=255;break}}s[l]=m}}if(s)for(l=0,u=3,h=t*i;l>3;if(!e){var f;"DeviceGray"===this.colorSpace.name&&1===u?f=a.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==u||this.needsDecode||(f=a.ImageKind.RGB_24BPP);if(f&&!this.smask&&!this.mask&&r===l&&i===h){n.kind=f;t=this.getImageBytes(h*d);if(this.image instanceof s.DecodeStream)n.data=t;else{var g=new Uint8ClampedArray(t.length);g.set(t);n.data=g}if(this.needsDecode){(0,a.assert)(f===a.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var m=n.data,p=0,b=m.length;p>3,l=this.getImageBytes(s*c),h=this.getComponents(l);if(1!==o){this.needsDecode&&this.decodeBuffer(h);i=n*s;var u=255/((1<{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,r=this.callbackCapabilities[e];if(!r)throw new Error("Cannot resolve callback "+e);delete this.callbackCapabilities[e];if(t.callback===i)r.resolve(t.data);else{if(t.callback!==n)throw new Error("Unexpected callback case");r.reject(wrapReason(t.reason))}return}const a=this.actionHandler[t.action];if(!a)throw new Error("Unknown action from worker: "+t.action);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(a(t.data))})).then((function(a){r.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,data:a})}),(function(a){r.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,reason:wrapReason(a)})}))}else t.streamId?this._createStreamSink(t):a(t.data)};r.addEventListener("message",this._onComObjOnMessage)}on(e,t){const r=this.actionHandler;if(r[e])throw new Error(`There is already an actionName called "${e}"`);r[e]=t}send(e,t,r){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},r)}sendWithPromise(e,t,r){const i=this.callbackId++,n=(0,a.createPromiseCapability)();this.callbackCapabilities[i]=n;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:i,data:t},r)}catch(e){n.reject(e)}return n.promise}sendWithStream(e,t,r,i){const n=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:r=>{const s=(0,a.createPromiseCapability)();this.streamControllers[n]={controller:r,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};this._postMessage({sourceName:o,targetName:c,action:e,streamId:n,data:t,desiredSize:r.desiredSize},i);return s.promise},pull:e=>{const t=(0,a.createPromiseCapability)();this.streamControllers[n].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:n,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,a.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,a.createPromiseCapability)();this.streamControllers[n].cancelCall=t;this.streamControllers[n].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:n,reason:wrapReason(e)});return t.promise}},r)}_createStreamSink(e){const t=this,r=this.actionHandler[e.action],i=e.streamId,n=this.sourceName,s=e.sourceName,o=this.comObj,u={enqueue(e,r=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=r;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,a.createPromiseCapability)();this.ready=this.sinkCapability.promise}t._postMessage({sourceName:n,targetName:s,stream:l,streamId:i,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:c,streamId:i});delete t.streamSinks[i]}},error(e){(0,a.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:h,streamId:i,reason:wrapReason(e)})}},sinkCapability:(0,a.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[i]=u;new Promise((function(t){t(r(e.data,u))})).then((function(){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,success:!0})}),(function(e){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,r=this.sourceName,i=e.sourceName,n=this.comObj;switch(e.stream){case f:e.success?this.streamControllers[t].startCall.resolve():this.streamControllers[t].startCall.reject(wrapReason(e.reason));break;case d:e.success?this.streamControllers[t].pullCall.resolve():this.streamControllers[t].pullCall.reject(wrapReason(e.reason));break;case u:if(!this.streamSinks[t]){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0});break}this.streamSinks[t].desiredSize<=0&&e.desiredSize>0&&this.streamSinks[t].sinkCapability.resolve();this.streamSinks[t].desiredSize=e.desiredSize;const{onPull:g}=this.streamSinks[e.streamId];new Promise((function(e){e(g&&g())})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,a.assert)(this.streamControllers[t],"enqueue should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].controller.enqueue(e.chunk);break;case c:(0,a.assert)(this.streamControllers[t],"close should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].isClosed=!0;this.streamControllers[t].controller.close();this._deleteStreamController(t);break;case h:(0,a.assert)(this.streamControllers[t],"error should have stream controller");this.streamControllers[t].controller.error(wrapReason(e.reason));this._deleteStreamController(t);break;case o:e.success?this.streamControllers[t].cancelCall.resolve():this.streamControllers[t].cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(t);break;case s:if(!this.streamSinks[t])break;const{onCancel:m}=this.streamSinks[e.streamId];new Promise((function(t){t(m&&m(wrapReason(e.reason)))})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,reason:wrapReason(e)})}));this.streamSinks[t].sinkCapability.reject(wrapReason(e.reason));this.streamSinks[t].isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e){await Promise.allSettled([this.streamControllers[e].startCall,this.streamControllers[e].pullCall,this.streamControllers[e].cancelCall].map((function(e){return e&&e.promise})));delete this.streamControllers[e]}_postMessage(e,t){t&&this.postMessageTransfers?this.comObj.postMessage(e,t):this.comObj.postMessage(e)}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var a=r(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,a.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const r=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(r);return r}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);this._rangeRequestReaders.slice(0).forEach((function(t){t.cancel(e)}))}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,r){this._msgHandler=r;this.onProgress=null;const a=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=a.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}])})); \ No newline at end of file diff --git a/packages/storage-ui/public/robots.txt b/packages/storage-ui/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/packages/storage-ui/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/packages/storage-ui/public/serviceworker/redirect.html b/packages/storage-ui/public/serviceworker/redirect.html new file mode 100644 index 0000000000..3ed34e79f7 --- /dev/null +++ b/packages/storage-ui/public/serviceworker/redirect.html @@ -0,0 +1,316 @@ + + + + + + + Redirect + + + + +
+
+
+
+
+
+

+ You can close this window now +

+
+ + + + diff --git a/packages/storage-ui/public/serviceworker/sw.js b/packages/storage-ui/public/serviceworker/sw.js new file mode 100644 index 0000000000..e49ffdfb2b --- /dev/null +++ b/packages/storage-ui/public/serviceworker/sw.js @@ -0,0 +1,312 @@ +// This service worker handles all OAuth redirects and calls, as well as parsing +// tokens returned, parsing said tokens and communication with the DirectAuth SDK. +// For more information see https://github.com/torusresearch/torus-direct-web-sdk/blob/master/README.md +// and https://docs.tor.us/direct-auth/integrating-directauth + +/* eslint-disable */ +function getScope() { + return self.registration.scope; +} + +self.addEventListener("message", function (event) { + if (event.data && event.data.type === "SKIP_WAITING") { + self.skipWaiting(); + } +}); + +self.addEventListener("fetch", function (event) { + try { + const url = new URL(event.request.url); + if (url.pathname.includes("redirect") && url.href.includes(getScope())) { + event.respondWith( + new Response( + new Blob( + [ + ` + + + + + + + Redirect + + + +
+
+
+
+
+
+

You can close this window now

+
+ + + + + +${""} + `, + ], + { type: "text/html" } + ) + ) + ); + } + } catch (error) { + console.error(error); + } +}); diff --git a/packages/storage-ui/public/site.webmanifest b/packages/storage-ui/public/site.webmanifest new file mode 100644 index 0000000000..fa99de77db --- /dev/null +++ b/packages/storage-ui/public/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/packages/storage-ui/scripts/sentry.js b/packages/storage-ui/scripts/sentry.js new file mode 100644 index 0000000000..efa38ef60a --- /dev/null +++ b/packages/storage-ui/scripts/sentry.js @@ -0,0 +1,37 @@ +const SentryCli = require("@sentry/cli") +const dotenv = require("dotenv") +dotenv.config() + +async function createReleaseAndUpload() { + const release = process.env.REACT_APP_SENTRY_RELEASE + const environment = process.env.REACT_APP_SENTRY_ENV + + if (!release || !environment) { + console.warn("REACT_APP_SENTRY_RELEASE or REACT_APP_SENTRY_ENV is not set") + return + } + + const cli = new SentryCli() + + try { + console.log("Creating sentry release " + release) + await cli.releases.new(release) + + console.log("Uploading source maps") + await cli.releases.uploadSourceMaps(release, { + include: ["build/static/js"], + rewrite: true, + validate: true, + }) + + console.log("Finalizing release") + // await cli.releases.setCommits(release, {auto: true}) + await cli.releases.newDeploy(release, { env: environment }) + + await cli.releases.finalize(release) + } catch (e) { + console.error("Creating a release on Sentry failed.", e) + } +} + +createReleaseAndUpload() diff --git a/packages/storage-ui/src/App.tsx b/packages/storage-ui/src/App.tsx new file mode 100644 index 0000000000..a5ff25fcfa --- /dev/null +++ b/packages/storage-ui/src/App.tsx @@ -0,0 +1,132 @@ +import React, { useCallback, useEffect } from "react" +import { init as initSentry, ErrorBoundary, showReportDialog } from "@sentry/react" +import { Web3Provider } from "@chainsafe/web3-context" +import { ThemeSwitcher } from "@chainsafe/common-theme" +import "@chainsafe/common-theme/dist/font-faces.css" +import { Button, CssBaseline, Modal, Router, ToasterProvider, Typography } from "@chainsafe/common-components" +import FilesRoutes from "./Components/StorageRoutes" +import AppWrapper from "./Components/Layouts/AppWrapper" +import { useHotjar } from "react-use-hotjar" +import { LanguageProvider } from "./Contexts/LanguageContext" +import { lightTheme } from "./Themes/LightTheme" +import { darkTheme } from "./Themes/DarkTheme" +import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { StorageProvider } from "./Contexts/StorageContext" + +if ( + process.env.NODE_ENV === "production" && + process.env.REACT_APP_SENTRY_DSN_URL +) { + initSentry({ + dsn: process.env.REACT_APP_SENTRY_DSN_URL, + release: process.env.REACT_APP_SENTRY_RELEASE, + environment: process.env.REACT_APP_SENTRY_ENV + }) +} + +const availableLanguages = [ + { id: "en", label: "English" }, + { id: "fr", label: "Français" } +] + +const onboardConfig = { + dappId: process.env.REACT_APP_BLOCKNATIVE_ID || "", + walletSelect: { + wallets: [ + { walletName: "coinbase" }, + { + walletName: "trust", + rpcUrl: + "https://mainnet.infura.io/v3/a7e16429d2254d488d396710084e2cd3" + }, + { walletName: "metamask", preferred: true }, + { walletName: "authereum" }, + { walletName: "opera" }, + { walletName: "operaTouch" }, + { walletName: "torus" }, + { walletName: "status" }, + { + walletName: "walletConnect", + infuraKey: "a7e16429d2254d488d396710084e2cd3", + preferred: true + } + ] + } +} + +const App: React.FC<{}> = () => { + const { initHotjar } = useHotjar() + const { canUseLocalStorage } = useLocalStorage() + const hotjarId = process.env.REACT_APP_HOTJAR_ID + const apiUrl = process.env.REACT_APP_API_URL || "https://stage.imploy.site/api/v1" + // This will default to testnet unless mainnet is specifically set in the ENV + const directAuthNetwork = (process.env.REACT_APP_DIRECT_AUTH_NETWORK === "mainnet") ? "mainnet" : "testnet" + + useEffect(() => { + if (hotjarId && process.env.NODE_ENV === "production") { + initHotjar(hotjarId, "6", () => console.log("Hotjar initialized")) + } + }, [hotjarId, initHotjar]) + + const fallBack = useCallback(({ error, componentStack, eventId, resetError }) => ( + + + An error occurred and has been logged. If you would like to + provide additional info to help us debug and resolve the issue, + click the `"`Provide Additional Details`"` button + + {error?.message.toString()} + {componentStack} + {eventId} + + + + ), []) + + return ( + + window.location.reload()} + > + + + + + + + + + + + + + + + + + + + ) +} + +export default App diff --git a/packages/storage-ui/src/Components/Elements/CustomButton.tsx b/packages/storage-ui/src/Components/Elements/CustomButton.tsx new file mode 100644 index 0000000000..7859c1bdfb --- /dev/null +++ b/packages/storage-ui/src/Components/Elements/CustomButton.tsx @@ -0,0 +1,56 @@ +import { Button, IButtonProps } from "@chainsafe/common-components" +import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" +import React, { ReactNode } from "react" +import clsx from "clsx" + +const useStyles = makeStyles(({ palette }: ITheme) => + createStyles({ + root: { + "&.gray": { + backgroundColor: palette.additional["gray"][3], + color: palette.additional["gray"][9] + } + } + }) +) + +const CUSTOM_VARIANTS = ["gray"] + +const temp = [...CUSTOM_VARIANTS] +type customVariant = typeof temp[0] + +type buttonVariant = IButtonProps["variant"] | customVariant + +interface ICustomButton extends Omit { + children: ReactNode + variant?: buttonVariant + className?: string +} + +const CustomButton: React.FC = ({ + className, + children, + variant, + ...rest +}: ICustomButton) => { + const classes = useStyles() + + const setVariant = + variant && CUSTOM_VARIANTS.includes(variant) + ? "primary" + : variant + ? variant + : "primary" + + return ( + + ) +} + +export default CustomButton diff --git a/packages/storage-ui/src/Components/Elements/CustomModal.tsx b/packages/storage-ui/src/Components/Elements/CustomModal.tsx new file mode 100644 index 0000000000..ebe8af890d --- /dev/null +++ b/packages/storage-ui/src/Components/Elements/CustomModal.tsx @@ -0,0 +1,61 @@ +import { IModalProps, Modal } from "@chainsafe/common-components" +import { createStyles, makeStyles } from "@chainsafe/common-theme" +import React, { ReactNode } from "react" +import clsx from "clsx" +import { CSFTheme } from "../../Themes/types" + +const useStyles = makeStyles(({ constants, breakpoints }: CSFTheme) => + createStyles({ + root: { + "&:before": { + backgroundColor: constants.modalDefault.fadeBackground + } + }, + inner: { + [breakpoints.down("md")]: { + backgroundColor: constants.modalDefault.background, + top: "unset", + bottom: 0, + left: 0, + width: "100% !important", + transform: "unset", + borderRadiusLeftTop: `${constants.generalUnit * 1.5}px`, + borderRadiusRightTop: `${constants.generalUnit * 1.5}px`, + borderRadiusLeftBottom: 0, + borderRadiusRightBottom: 0 + } + }, + close: { + [breakpoints.down("md")]: {} + } + }) +) + +interface ICustomModal extends IModalProps { + children: ReactNode + className?: string +} + +const CustomModal: React.FC = ({ + className, + children, + injectedClass, + ...rest +}: ICustomModal) => { + const classes = useStyles() + + return ( + + {children} + + ) +} + +export default CustomModal diff --git a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx new file mode 100644 index 0000000000..b811457445 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx @@ -0,0 +1,233 @@ +import React, { useCallback, useState } from "react" +import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import clsx from "clsx" +import { + Link, + Typography, + ChainsafeFilesLogo, + HamburgerMenu, + MenuDropdown, + PowerDownSvg, + useHistory +} from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { Trans } from "@lingui/macro" +import { CSFTheme } from "../../Themes/types" +import { useFilesApi } from "../../Contexts/FilesApiContext" + +const useStyles = makeStyles( + ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { + return createStyles({ + root: { + position: "fixed", + display: "flex", + flexDirection: "row", + top: 0, + transitionDuration: `${animation.translate}ms`, + visibility: "hidden", + [breakpoints.up("md")]: { + width: `calc(100% - ${constants.navWidth}px)`, + padding: `${0}px ${constants.contentPadding}px ${0}px ${ + constants.contentPadding + }px`, + left: Number(constants.navWidth), + opacity: 0, + + backgroundColor: constants.header.rootBackground, + + "& > *:first-child": { + flex: "1 1 0" + }, + "&.active": { + opacity: 1, + height: "auto", + visibility: "visible", + padding: `${constants.headerTopPadding}px ${ + constants.contentPadding + }px ${0}px ${constants.contentPadding}px`, + zIndex: zIndex?.layer1 + } + }, + [breakpoints.down("md")]: { + left: 0, + width: "100%", + justifyContent: "space-between", + alignItems: "center", + position: "fixed", + backgroundColor: palette.additional["gray"][3], + "&.active": { + opacity: 1, + visibility: "visible", + height: Number(constants.mobileHeaderHeight), + zIndex: Number(zIndex?.layer1) + } + } + }, + hamburgerMenu: { + position: "absolute", + "& span": { + backgroundColor: constants.header.hamburger + } + }, + logo: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + [breakpoints.up("md")]: { + "& img": { + height: constants.generalUnit * 5, + width: "auto" + } + }, + [breakpoints.down("md")]: { + position: "absolute", + left: "50%", + top: "50%", + transform: "translate(-50%,-50%)", + "& img": { + height: constants.generalUnit * 3.25, + width: "auto" + } + } + }, + accountControls: { + display: "flex", + justifyContent: "flex-end", + alignItems: "center", + flexDirection: "row", + [breakpoints.up("md")]: { + marginLeft: constants.accountControlsPadding + }, + "& > *:first-child": { + marginRight: constants.generalUnit * 2 + } + }, + searchModule: { + [breakpoints.down("md")]: { + height: constants.mobileHeaderHeight, + position: "absolute", + width: "100%", + zIndex: zIndex?.background, + "&.active": {} + } + }, + options: { + backgroundColor: constants.header.optionsBackground, + color: constants.header.optionsTextColor, + border: `1px solid ${constants.header.optionsBorder}`, + minWidth: 145 + }, + menuItem: { + width: "100%", + display: "flex", + flexDirection: "row", + alignItems: "center", + color: constants.header.menuItemTextColor, + "& svg": { + width: constants.generalUnit * 2, + height: constants.generalUnit * 2, + marginRight: constants.generalUnit, + fill: palette.additional["gray"][7], + stroke: palette.additional["gray"][7] + } + }, + icon: { + "& svg": { + fill: constants.header.iconColor + } + }, + title : { + marginLeft: constants.generalUnit + } + }) + } +) + +interface IAppHeader { + navOpen: boolean + setNavOpen: (state: boolean) => void +} + +const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { + const { desktop } = useThemeSwitcher() + const classes = useStyles() + const { isLoggedIn, secured, logout } = useFilesApi() + const [searchActive, setSearchActive] = useState(false) + const { history } = useHistory() + + const signOut = useCallback(async () => { + logout() + history.replace("/", {}) + }, [logout, history]) + + return ( +
+ {isLoggedIn && ( + <> + {desktop ? ( + <> + +
+ signOut(), + contents: ( +
+ + + Sign Out + +
+ ) + } + ]} + /> +
+ + ) : ( + <> + {!searchActive && ( + <> + setNavOpen(!navOpen)} + variant={navOpen ? "active" : "default"} + className={clsx(classes.hamburgerMenu, "hamburger-menu")} + /> + + + + Files + +   + beta + + + )} + + )} + + )} +
+ ) +} + +export default AppHeader diff --git a/packages/storage-ui/src/Components/Layouts/AppNav.tsx b/packages/storage-ui/src/Components/Layouts/AppNav.tsx new file mode 100644 index 0000000000..8b0fbc3bb9 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppNav.tsx @@ -0,0 +1,346 @@ +import { + createStyles, + makeStyles, + useThemeSwitcher +} from "@chainsafe/common-theme" +import React, { useCallback } from "react" +import clsx from "clsx" +import { + Link, + Typography, + ChainsafeFilesLogo, + DatabaseSvg, + SettingSvg, + PowerDownSvg, + ProgressBar, + Button, + formatBytes, + DeleteSvg } from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { FREE_PLAN_LIMIT } from "../../Utils/Constants" +import { Trans } from "@lingui/macro" +import { CSFTheme } from "../../Themes/types" +import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorage } from "../../Contexts/StorageContext" + +const useStyles = makeStyles( + ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { + return createStyles({ + root: { + width: 0, + overflow: "hidden", + transitionDuration: `${animation.translate}ms`, + display: "flex", + flexDirection: "column", + position: "fixed", + left: 0, + opacity: 0, + "&.active": { + opacity: 1 + }, + [breakpoints.up("md")]: { + padding: `${constants.topPadding}px ${ + constants.generalUnit * 4.5 + }px`, + top: 0, + height: "100%", + backgroundColor: constants.nav.backgroundColor, + "&.active": { + width: `${constants.navWidth}px` + } + }, + [breakpoints.down("md")]: { + height: `calc(100% - ${constants.mobileHeaderHeight}px)`, + top: `${constants.mobileHeaderHeight}px`, + backgroundColor: constants.nav.mobileBackgroundColor, + zIndex: zIndex?.layer1, + padding: `0 ${constants.generalUnit * 4}px`, + maxWidth: "100vw", + visibility: "hidden", + "&.active": { + visibility: "visible", + width: `${constants.mobileNavWidth}px` + } + } + }, + blocker: { + display: "block", + backgroundColor: constants.nav.blocker, + position: "fixed", + top: Number(constants.mobileHeaderHeight), + left: 0, + height: `calc(100% - ${constants.mobileHeaderHeight}px)`, + width: "100%", + transitionDuration: `${animation.translate}ms`, + zIndex: zIndex?.background, + opacity: 0, + visibility: "hidden", + "&.active": { + visibility: "visible", + [breakpoints.down("md")]: { + opacity: 0.5 + } + } + }, + logo: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + + [breakpoints.up("md")]: { + "& img": { + height: constants.generalUnit * 5, + width: "auto" + }, + "& > *:first-child": { + marginRight: constants.generalUnit + } + }, + [breakpoints.down("md")]: { + position: "absolute", + left: "50%", + top: "50%", + transform: "translate(-50%,-50%)", + "& img": { + height: constants.generalUnit * 3.25, + width: "auto" + } + } + }, + navMenu: { + display: "flex", + flexDirection: "column", + marginBottom: constants.generalUnit * 8.5, + transitionDuration: `${animation.translate}ms` + }, + linksArea: { + display: "flex", + flexDirection: "column", + flex: "1 1 0", + justifyContent: "center", + transitionDuration: `${animation.translate}ms`, + "& > span": { + marginBottom: constants.generalUnit * 2 + }, + [breakpoints.up("md")]: { + height: 0 + }, + [breakpoints.down("md")]: { + transitionDuration: `${animation.translate}ms`, + color: palette.additional["gray"][3], + "&.active": {} + } + }, + navHead: { + fontWeight: 600, + color: constants.nav.headingColor + }, + navItem: { + textDecoration: "none", + display: "flex", + flexDirection: "row", + alignItems: "center", + cursor: "pointer", + padding: `${constants.generalUnit * 1.5}px 0`, + transitionDuration: `${animation.transform}ms`, + "& span": { + transitionDuration: `${animation.transform}ms`, + [breakpoints.up("md")]: { + color: constants.nav.itemColor + }, + [breakpoints.down("md")]: { + color: constants.nav.itemColorHover + } + }, + "& svg": { + transitionDuration: `${animation.transform}ms`, + width: Number(constants.svgWidth), + marginRight: constants.generalUnit * 2, + [breakpoints.up("md")]: { + fill: constants.nav.itemIconColor + }, + [breakpoints.down("md")]: { + fill: constants.nav.itemIconColorHover + } + }, + "&:hover": { + "& span": { + color: constants.nav.itemColorHover + }, + "& svg": { + fill: constants.nav.itemIconColorHover + } + }, + [breakpoints.down("md")]: { + minWidth: Number(constants.mobileNavWidth) + } + }, + navItemText: { + [breakpoints.down("md")]: { + color: palette.additional["gray"][3] + } + }, + menuItem: { + width: 100, + display: "flex", + flexDirection: "row", + alignItems: "center", + "& svg": { + width: constants.generalUnit * 2, + height: constants.generalUnit * 2, + marginRight: constants.generalUnit + } + }, + spaceUsedMargin: { + marginBottom: constants.generalUnit + }, + betaCaption: { + marginBottom: constants.generalUnit * 0.5 + } + }) + } +) + +interface IAppNav { + navOpen: boolean + setNavOpen: (state: boolean) => void +} + +const AppNav: React.FC = ({ navOpen, setNavOpen }: IAppNav) => { + const { desktop } = useThemeSwitcher() + const classes = useStyles() + + const { spaceUsed } = useStorage() + + const { isLoggedIn, logout } = useFilesApi() + + + const signOut = useCallback(() => { + logout() + }, [logout]) + + const handleOnClick = useCallback(() => { + if (!desktop && navOpen) { + setNavOpen(false) + } + }, [desktop, navOpen, setNavOpen]) + + return ( +
+ {isLoggedIn && ( + <> + {desktop && ( +
+ + + + Files + +   + + beta + + +
+ )} +
+ + Folders + + + + {desktop ? Resources : Account} + + +
+
+ {desktop && ( +
+ {`${formatBytes(spaceUsed)} of ${formatBytes( + FREE_PLAN_LIMIT + )} used`} + +
+ )} + {!desktop && ( +
{ + handleOnClick() + signOut() + }} + > + + + Sign Out + +
+ )} +
+ {!desktop && ( +
setNavOpen(false)} + className={clsx(classes.blocker, { + active: navOpen + })} + >
+ )} + + )} +
+ ) +} + +export default AppNav \ No newline at end of file diff --git a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx new file mode 100644 index 0000000000..423b6d9fb6 --- /dev/null +++ b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx @@ -0,0 +1,91 @@ +import { useFilesApi } from "../../Contexts/FilesApiContext" +import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" +import React, { useState } from "react" +import { ReactNode } from "react" +import clsx from "clsx" +import { CssBaseline } from "@chainsafe/common-components" +import AppHeader from "./AppHeader" +import AppNav from "./AppNav" + +interface IAppWrapper { + children: ReactNode | ReactNode[] +} + +const useStyles = makeStyles( + ({ animation, breakpoints, constants }: ITheme) => { + return createStyles({ + root: { + minHeight: "100vh" + }, + bodyWrapper: { + transitionDuration: `${animation.translate}ms`, + [breakpoints.up("md")]: { + padding: "0", + "&.active": { + // This moves the content areas based on the size of the nav bar + + padding: `${0}px ${constants.contentPadding}px ${0}px ${ + Number(constants.navWidth) + + Number(constants.contentPadding) + }px` + } + }, + [breakpoints.down("md")]: {} + }, + content: { + [breakpoints.up("md")]: { + height: "100%", + minHeight: "100vh", + transitionDuration: `${animation.translate}ms`, + padding: 0, + "&.active": { + height: "initial", + padding: `${constants.contentTopPadding}px 0 0` + } + }, + [breakpoints.down("md")]: { + minHeight: "100vh", + "&.active": { + height: "initial", + padding: `${constants.mobileHeaderHeight}px 0 0` + } + } + } + }) + } +) + +const AppWrapper: React.FC = ({ children }: IAppWrapper) => { + const classes = useStyles() + const [navOpen, setNavOpen] = useState(false) + const { isLoggedIn, secured } = useFilesApi() + + return ( +
+ + +
+ +
+ {children} +
+
+
+ ) +} + +export default AppWrapper diff --git a/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx new file mode 100644 index 0000000000..6afa13b119 --- /dev/null +++ b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx @@ -0,0 +1,421 @@ +import React, { useState } from "react" +import { Button, FacebookLogoIcon, GithubLogoIcon, GoogleLogoIcon, Typography } from "@chainsafe/common-components" +import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import { CSFTheme } from "../../../Themes/types" +import { t, Trans } from "@lingui/macro" +import { useFilesApi } from "../../../Contexts/FilesApiContext" +import { useWeb3 } from "@chainsafe/web3-context" +import { LOGIN_TYPE } from "@toruslabs/torus-direct-web-sdk" +import { ROUTE_LINKS } from "../../StorageRoutes" +import clsx from "clsx" +import { IdentityProvider } from "@chainsafe/files-api-client" + +const useStyles = makeStyles( + ({ constants, palette, breakpoints, typography }: CSFTheme) => + createStyles({ + root: { + backgroundColor: constants.loginModule.background, + border: `1px solid ${constants.landing.border}`, + boxShadow: constants.landing.boxShadow, + alignItems: "center", + borderRadius: 6, + [breakpoints.up("md")]:{ + minHeight: "64vh", + justifyContent: "space-between", + width: 440 + }, + [breakpoints.down("md")]: { + padding: `${constants.generalUnit * 4}px ${constants.generalUnit * 2}px`, + justifyContent: "center", + width: `calc(100vw - ${constants.generalUnit * 2}px)` + } + }, + buttonSection: { + [breakpoints.up("md")]: { + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)" + }, + [breakpoints.down("md")]: { + display: "flex", + flexDirection: "column", + justifyContent: "space-evenly" + } + }, + connectingWallet: { + textAlign: "center", + alignItems: "center", + display: "flex", + flexDirection: "column", + "& > *": { + fontWeight: 400 + }, + [breakpoints.up("md")]: { + padding: `${constants.generalUnit * 30}px ${constants.generalUnit * 8}px`, + "& > *": { + paddingBottom: `${constants.generalUnit * 5}px` + } + }, + [breakpoints.down("md")]: { + justifyContent: "space-evenly" + } + }, + button: { + width: 240, + fontWeight: typography.fontWeight.medium, + marginBottom: constants.generalUnit * 2, + "& .icon" : { + fontSize: 25 + }, + "&:last-child": { + marginBottom: 0 + } + }, + error: { + color: palette.error.main, + paddingBottom: constants.generalUnit * 2, + maxWidth: 240 + }, + headerText: { + [breakpoints.up("md")]: { + paddingTop: constants.generalUnit * 4, + paddingBottom: constants.generalUnit * 8 + }, + [breakpoints.down("md")]: { + paddingTop: constants.generalUnit * 3, + paddingBottom: constants.generalUnit * 3, + textAlign: "center" + } + }, + footer: { + backgroundColor: constants.landing.footerBg, + color: constants.landing.footerText, + padding: `${constants.generalUnit * 2.5}px ${constants.generalUnit * 1.5}px`, + width: "100%", + "& > *": { + marginRight: constants.generalUnit * 3.5 + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + connectWalletFooter: { + backgroundColor: constants.landing.background, + color: constants.landing.footerText, + padding: `${constants.generalUnit * 4.375}px ${constants.generalUnit * 7}px`, + width: "100%", + textAlign: "center", + "& > *": { + fontWeight: 400 + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + loader: { + marginTop: constants.generalUnit, + padding: 0 + }, + buttonLink: { + color: palette.additional["gray"][10], + outline: "none", + textDecoration: "underline", + cursor: "pointer", + textAlign: "center" + }, + web3Button: { + minHeight: 41 + } + }) +) + +interface IInitialScreen { + className?: string +} + +const InitialScreen = ({ className }: IInitialScreen) => { + const { selectWallet, resetAndSelectWallet } = useFilesApi() + const { desktop } = useThemeSwitcher() + const { wallet } = useWeb3() + const classes = useStyles() + const [loginMode, setLoginMode] = useState<"web3" | LOGIN_TYPE | undefined>() + const [error, setError] = useState() + const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" + const [isConnecting, setIsConnecting] = useState(false) + + const handleSelectWalletAndConnect = async () => { + setError(undefined) + try { + await selectWallet() + } catch (error) { + setError(t`There was an error connecting your wallet`) + } + } + + const handleResetAndSelectWallet = async () => { + setError(undefined) + try { + await resetAndSelectWallet() + } catch (error) { + setError(t`There was an error connecting your wallet`) + } + } + + const resetLogin = async () => { + setError(undefined) + setLoginMode(undefined) + } + + const handleLogin = async (loginType: IdentityProvider) => { + setError("") + setIsConnecting(true) + setLoginMode(loginType) + try { + // await login(loginType) + } catch (error) { + let errorMessage = t`There was an error authenticating` + console.log(error) + if (Array.isArray(error) && error[0]) { + if ( + error[0].type === "signature" && + error[0].message === "Invalid signature" + ) { + errorMessage = t`Failed to validate signature. + If you are using a contract wallet, please make + sure you have activated your wallet.` + } + } + // WalletConnect be sassy + if (error?.message === "Just nope" || error?.code === 4001) { + errorMessage = t`Failed to get signature` + } + if (error?.message === "user closed popup") { + errorMessage = t`The authentication popup was closed` + } + setError(errorMessage) + } + setIsConnecting(false) + } + + const Footer = () => ( +
+ ) + + return ( +
+ { + ((desktop && !isConnecting && !error) || (isConnecting && loginMode !== "web3")) && ( + + + Get Started + + + ) + } + { + !error ? + loginMode !== "web3" ? ( + <> +
+ {maintenanceMode && ( + + + The system is undergoing maintenance, thank you for being patient. + + + )} + + + + +
+ + + ) : ( + wallet ? + !isConnecting ? ( + <> +
+ + +
+ Go back +
+
+
+ + ) : ( + <> + {/*
+ Connect Wallet to Files + {status === "awaiting confirmation" && + + You will need to sign a message in your wallet to complete sign in. + } + {status === "logging in" && <> + + Hold on, we are logging you in... + + + } +
*/} + + ) + : <> +
+ + +
+
+ + ) : ( + <> +
+ Connection failed + + {error} + + +
+ + ) + } +
+ ) +} + +export default InitialScreen diff --git a/packages/storage-ui/src/Components/Pages/LoginPage.tsx b/packages/storage-ui/src/Components/Pages/LoginPage.tsx new file mode 100644 index 0000000000..cd25b2ff61 --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/LoginPage.tsx @@ -0,0 +1,166 @@ +import React from "react" +import { makeStyles, createStyles, useThemeSwitcher } from "@chainsafe/common-theme" +import { CSFTheme } from "../../Themes/types" +import InitialScreen from "../Modules/LoginModule/InitialScreen" +import { ChainsafeFilesLogo, ChainsafeLogo, Typography } from "@chainsafe/common-components" +import { ROUTE_LINKS } from "../StorageRoutes" +import { Trans } from "@lingui/macro" +import BottomDarkSVG from "../../Media/landing/layers/dark/Bottom.dark.svg" +import TopDarkSVG from "../../Media/landing/layers/dark/Top.dark.svg" +import BottomLightSVG from "../../Media/landing/layers/light/Bottom.light.svg" +import TopLightSVG from "../../Media/landing/layers/light/Top.light.svg" + + +const useStyles = makeStyles( + ({ constants, breakpoints, typography, zIndex }: CSFTheme) => + createStyles({ + root: { + position: "relative", + minHeight: "100vh", + overflow: "hidden" + }, + bgBottom: { + position: "absolute", + left: "50%", + transform: "translate(-50%, 0%)", + zIndex: zIndex?.background, + [breakpoints.up("md")]: { + bottom: constants.generalUnit * 4, + maxHeight: `calc(80vh - ${constants.generalUnit * 4}px)` + }, + [breakpoints.down("md")]: { + bottom: constants.generalUnit * 5, + width: "80vw" + } + }, + bgTop: { + position: "absolute", + top: constants.generalUnit * 10, + zIndex: zIndex?.background, + [breakpoints.up("md")]: { + left: "calc(50% + 15vw)", + transform: "translate(-50%, 0%)", + width: "30vw" + }, + [breakpoints.down("md")]: { + width: "50vw", + right: constants.generalUnit * 2 + } + }, + bgForeground: { + position: "absolute", + left: "50%", + top: "calc(50% + 3vh)", + transform: "translate(-50%, -50%)", + zIndex: zIndex?.layer0, + [breakpoints.up("md")]: { + minHeight: "85vh", + maxHeight: "90vh" + }, + [breakpoints.down("md")]: { + width: "120vw" + } + }, + title: { + display: "flex", + alignItems: "center", + justifyContent: "center", + marginTop: "2rem", + fontWeight: typography.fontWeight.regular, + [breakpoints.up("md")]:{ + ...typography.h2 + }, + [breakpoints.down("md")]:{ + ...typography.h4 + } + }, + cta: { + position: "absolute", + bottom: 0, + right: 0, + padding: `${constants.generalUnit * 2.5}px ${constants.generalUnit * 1.5}px`, + display: "flex", + flexDirection: "column", + alignItems: "center", + textDecoration: "none", + "& *:first-child": { + marginBottom: constants.generalUnit + }, + [breakpoints.down("md")]: { + display: "none" + } + }, + inner: { + display: "flex", + flexDirection: "column", + flex: "1 1 0", + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + zIndex: zIndex?.layer1, + backgroundColor: constants.loginModule.background, + border: `1px solid ${constants.landing.border}`, + boxShadow: constants.landing.boxShadow, + borderRadius: 6, + [breakpoints.down("md")]: { + justifyContent: "center", + width: "100%" + } + }, + logo: { + height: 60, + width: 60 + }, + filesLogo: { + height: 60, + width: 60, + marginRight: "1rem" + } + }) +) + +const LoginPage = () => { + const classes = useStyles() + const { themeKey } = useThemeSwitcher() + + return ( +
+ + + ChainSafe Storage + + <> + + { + themeKey === "dark" ? + <> + + + + : + <> + + + + + } + + + + + Learn more about ChainSafe + + + + +
+ ) +} + +export default LoginPage diff --git a/packages/storage-ui/src/Components/Pages/PinsPage.tsx b/packages/storage-ui/src/Components/Pages/PinsPage.tsx new file mode 100644 index 0000000000..e8ad702b32 --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/PinsPage.tsx @@ -0,0 +1,26 @@ +import React from "react" +import { makeStyles, createStyles } from "@chainsafe/common-theme" +import { CSFTheme } from "../../Themes/types" +import { Typography } from "@chainsafe/common-components" + +const useStyles = makeStyles(({ constants, breakpoints, typography, zIndex }: CSFTheme) => + createStyles({ + root: { + position: "relative", + minHeight: "100vh", + overflow: "hidden" + } + }) +) + +const PinsPage = () => { + const classes = useStyles() + + return ( +
+ Pins +
+ ) +} + +export default PinsPage diff --git a/packages/storage-ui/src/Components/StorageRoutes.tsx b/packages/storage-ui/src/Components/StorageRoutes.tsx new file mode 100644 index 0000000000..d950084f26 --- /dev/null +++ b/packages/storage-ui/src/Components/StorageRoutes.tsx @@ -0,0 +1,41 @@ +import React from "react" +import { Switch, ConditionalRoute } from "@chainsafe/common-components" +import LoginPage from "./Pages/LoginPage" +import { useFilesApi } from "../Contexts/FilesApiContext" +import PinsPage from "./Pages/PinsPage" + +export const ROUTE_LINKS = { + Landing: "/", + Pins: "/pins", + PrivacyPolicy: "https://files.chainsafe.io/privacy-policy", + Terms: "https://files.chainsafe.io/terms-of-service", + ChainSafe: "https://chainsafe.io/" +} + +export const SETTINGS_PATHS = ["profile", "plan", "security"] as const +export type SettingsPath = typeof SETTINGS_PATHS[number] + +const FilesRoutes = () => { + const { isLoggedIn } = useFilesApi() + + return ( + + + + + ) +} + +export default FilesRoutes diff --git a/packages/storage-ui/src/Contexts/FilesApiContext.tsx b/packages/storage-ui/src/Contexts/FilesApiContext.tsx new file mode 100644 index 0000000000..ca668139a9 --- /dev/null +++ b/packages/storage-ui/src/Contexts/FilesApiContext.tsx @@ -0,0 +1,399 @@ +import { useWeb3 } from "@chainsafe/web3-context" +import * as React from "react" +import { useState, useEffect, useMemo, useCallback } from "react" +import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" +import jwtDecode from "jwt-decode" +import axios from "axios" +import { decryptFile } from "../Utils/encryption" +import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" +export type { IdentityProvider as OAuthProvider } + +const tokenStorageKey = "csf.refreshToken" +const isReturningUserStorageKey = "csf.isReturningUser" + +type FilesApiContextProps = { + apiUrl?: string + withLocalStorage?: boolean + children: React.ReactNode | React.ReactNode[] +} + +type FilesApiContext = { + filesApiClient: IFilesApiClient + isLoggedIn: boolean | undefined + secured: boolean | undefined + isReturningUser: boolean + selectWallet: () => Promise + resetAndSelectWallet: () => Promise + getProviderUrl: (provider: OAuthIdentityToken) => Promise + loginWithGithub: (code: string, state: string) => Promise + loginWithGoogle: ( + code: string, + state: string, + scope: string | undefined, + authUser: string | undefined, + hd: string | undefined, + prompt: string | undefined, + ) => Promise + loginWithFacebook: (code: string, state: string) => Promise + logout: () => void +} + +const FilesApiContext = React.createContext(undefined) + +const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesApiContextProps) => { + const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" + + const { wallet, onboard, checkIsReady, isReady } = useWeb3() + const { localStorageRemove, localStorageGet, localStorageSet } = useLocalStorage() + const { sessionStorageRemove, sessionStorageGet, sessionStorageSet } = useSessionStorage() + + // initializing api + const initialAxiosInstance = useMemo(() => axios.create({ + // Disable the internal Axios JSON de serialization as this is handled by the client + transformResponse: [] + }), []) + + const initialApiClient = useMemo(() => { + return new FilesApiClient({}, apiUrl, initialAxiosInstance) + }, [apiUrl, initialAxiosInstance] + ) + + const [filesApiClient, setFilesApiClient] = useState(initialApiClient) + const [isLoadingUser, setIsLoadingUser] = useState(true) + + // access tokens + const [accessToken, setAccessToken] = useState(undefined) + const [secured, setSecured] = useState(undefined) + const [refreshToken, setRefreshToken] = useState(undefined) + const [decodedRefreshToken, setDecodedRefreshToken] = useState< + { exp: number; enckey?: string; mps?: string; uuid: string } | undefined + >(undefined) + + // returning user + const isReturningUserLocal = localStorageGet(isReturningUserStorageKey) + const [isReturningUser, setIsReturningUser] = useState(isReturningUserLocal ? true : false) + + const setTokensAndSave = useCallback((accessToken: Token, refreshToken: Token) => { + setAccessToken(accessToken) + setRefreshToken(refreshToken) + refreshToken.token && withLocalStorage && localStorageSet(tokenStorageKey, refreshToken.token) + !withLocalStorage && sessionStorageSet(tokenStorageKey, refreshToken.token) + accessToken.token && filesApiClient.setToken(accessToken.token) + }, [filesApiClient, localStorageSet, sessionStorageSet, withLocalStorage]) + + const setReturningUser = () => { + // set returning user + localStorageSet(isReturningUserStorageKey, "returning") + setIsReturningUser(true) + } + + useEffect(() => { + const initializeApiClient = async () => { + const axiosInstance = axios.create({ + // Disable the internal Axios JSON de serialization as this is handled by the client + transformResponse: [] + }) + + axiosInstance.interceptors.response.use( + (response) => { + return response + }, + async (error) => { + if (!error?.config?._retry && error?.response?.status === 401 && !maintenanceMode) { + error.config._retry = true + const refreshTokenLocal = + (withLocalStorage) + ? localStorageGet(tokenStorageKey) + : sessionStorageGet(tokenStorageKey) + if (refreshTokenLocal) { + const refreshTokenApiClient = new FilesApiClient( + {}, + apiUrl, + axiosInstance + ) + try { + const { + access_token, + refresh_token + } = await refreshTokenApiClient.getRefreshToken({ + refresh: refreshTokenLocal + }) + + setTokensAndSave(access_token, refresh_token) + error.response.config.headers.Authorization = `Bearer ${access_token.token}` + return axios(error.response.config) + } catch (err) { + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + setRefreshToken(undefined) + return Promise.reject(error) + } + } else { + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + setRefreshToken(undefined) + return Promise.reject(error) + } + } + return Promise.reject(error) + } + ) + + const apiClient = new FilesApiClient({}, apiUrl, axiosInstance) + const savedRefreshToken = localStorageGet(tokenStorageKey) + setFilesApiClient(apiClient) + if (!maintenanceMode && savedRefreshToken) { + try { + const { + access_token, + refresh_token + } = await apiClient.getRefreshToken({ refresh: savedRefreshToken }) + + setTokensAndSave(access_token, refresh_token) + } catch (error) { + console.error("There was an error refreshing the saved token") + console.error(error) + } + } + setIsLoadingUser(false) + } + + initializeApiClient() + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []) + + const selectWallet = async () => { + if (onboard && !isReady) { + let walletSelected = !!wallet + if (!walletSelected) { + walletSelected = await onboard.walletSelect() + } + walletSelected && (await checkIsReady()) + } + } + + const resetAndSelectWallet = async () => { + if (onboard) { + const walletReady = await onboard.walletSelect() + walletReady && (await checkIsReady()) + } + } + + const thresholdKeyLogin = async ( + signature: string, + identityToken: string, + publicKey: string + ) => { + if (maintenanceMode) { + throw new Error("App is undergoing maintenance") + } + try { + const { + access_token, + refresh_token + } = await filesApiClient.verifyServiceIdentityToken({ + signature: signature, + public_key: publicKey, + service_identity_token: identityToken + }) + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (error) { + return Promise.reject(error) + } + } + + useEffect(() => { + if (refreshToken && refreshToken.token) { + try { + const decoded = jwtDecode<{ mps?: string; enckey?: string; exp: number; uuid: string }>( + refreshToken.token + ) + + setDecodedRefreshToken(decoded) + } catch (error) { + console.error("Error decoding access token") + } + } + }, [refreshToken]) + + useEffect(() => { + if (accessToken && accessToken.token && filesApiClient) { + filesApiClient?.setToken(accessToken.token) + const decodedAccessToken = jwtDecode<{ perm: { secured?: string } }>( + accessToken.token + ) + if (decodedAccessToken.perm.secured === "true") { + setSecured(true) + } else { + setSecured(false) + } + } + }, [accessToken, filesApiClient]) + + const isLoggedIn = () => { + if (isLoadingUser) { + return undefined + } + if (!decodedRefreshToken) { + return false + } else { + try { + const isLoggedIn = Date.now() / 1000 < decodedRefreshToken.exp + return isLoggedIn + } catch (error) { + return false + } + } + } + + const getProviderUrl = async (provider: OAuthIdentityToken) => { + try { + const { url } = await filesApiClient.getOauth2Provider(provider) + return Promise.resolve(url) + } catch { + return Promise.reject("There was an error logging in") + } + } + + const loginWithGithub = async (code: string, state: string) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeGithub(code, state) + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch { + return Promise.reject("There was an error logging in") + } + } + + const loginWithGoogle = async ( + code: string, + state: string, + scope: string | undefined, + authUser: string | undefined, + hd: string | undefined, + prompt: string | undefined + ) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeGoogle( + code, + state, + scope, + authUser, + hd, + prompt + ) + + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (err) { + return Promise.reject("There was an error logging in") + } + } + + const loginWithFacebook = async (code: string, state: string) => { + try { + const { + access_token, + refresh_token + } = await filesApiClient.postOauth2CodeFacebook(code, state) + + setTokensAndSave(access_token, refresh_token) + setReturningUser() + return Promise.resolve() + } catch (err) { + return Promise.reject("There was an error logging in") + } + } + + const logout = () => { + setAccessToken(undefined) + setRefreshToken(undefined) + setDecodedRefreshToken(undefined) + filesApiClient.setToken("") + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) + } + + const secureThresholdKeyAccount = async (encryptedKey: string) => { + try { + if (decodedRefreshToken && refreshToken) { + await filesApiClient.secure({ + encryption_key: encryptedKey + }) + + const { + access_token, + refresh_token + } = await filesApiClient.getRefreshToken({ + refresh: refreshToken.token + }) + + setTokensAndSave(access_token, refresh_token) + return true + } else { + return false + } + } catch (error) { + return false + } + } + + const validateMasterPassword = async ( + candidatePassword: string + ): Promise => { + if (!decodedRefreshToken || !decodedRefreshToken.mps) return false + try { + const toDecryptArray = Buffer.from(decodedRefreshToken.mps, "base64") + const decrypted = await decryptFile(toDecryptArray, candidatePassword) + if (decrypted) { + const decryptedUuid = new TextDecoder().decode(decrypted) + return decodedRefreshToken.uuid === decryptedUuid + } else { + return false + } + } catch (error) { + return false + } + } + + return ( + + {children} + + ) +} + +const useFilesApi = () => { + const context = React.useContext(FilesApiContext) + if (context === undefined) { + throw new Error("useAuth must be used within a AuthProvider") + } + return context +} + +export { FilesApiProvider, useFilesApi } + diff --git a/packages/storage-ui/src/Contexts/FilesReducers.tsx b/packages/storage-ui/src/Contexts/FilesReducers.tsx new file mode 100644 index 0000000000..fc5e8984b1 --- /dev/null +++ b/packages/storage-ui/src/Contexts/FilesReducers.tsx @@ -0,0 +1,119 @@ +import { DownloadProgress, UploadProgress } from "./StorageContext" + +export function uploadsInProgressReducer( + uploadsInProgress: UploadProgress[], + action: + | { type: "add"; payload: UploadProgress } + | { type: "progress"; payload: { id: string; progress: number } } + | { type: "complete"; payload: { id: string } } + | { type: "error"; payload: { id: string; errorMessage?: string } } + | { type: "remove"; payload: { id: string } } +): UploadProgress[] { + const getProgressIndex = () => + uploadsInProgress.findIndex((progress) => progress.id === action.payload.id) + switch (action.type) { + case "add": { + return [...uploadsInProgress, action.payload] + } + case "progress": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].progress = action.payload.progress + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "complete": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].complete = true + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "error": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress[progressIndex].error = true + uploadsInProgress[progressIndex].errorMessage = + action.payload.errorMessage + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + case "remove": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + uploadsInProgress.splice(progressIndex, 1) + return [...uploadsInProgress] + } else { + return uploadsInProgress + } + } + default: + return uploadsInProgress + } +} + +export function downloadsInProgressReducer( + downloadsInProgress: DownloadProgress[], + action: + | { type: "add"; payload: DownloadProgress } + | { type: "progress"; payload: { id: string; progress: number } } + | { type: "complete"; payload: { id: string } } + | { type: "error"; payload: { id: string; errorMessage?: string } } + | { type: "remove"; payload: { id: string } } +): DownloadProgress[] { + const getProgressIndex = () => + downloadsInProgress.findIndex( + (download) => download.id === action.payload.id + ) + switch (action.type) { + case "add": { + return [...downloadsInProgress, action.payload] + } + case "progress": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].progress = action.payload.progress + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "complete": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].complete = true + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "error": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress[progressIndex].error = true + downloadsInProgress[progressIndex].errorMessage = + action.payload.errorMessage + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + case "remove": { + const progressIndex = getProgressIndex() + if (progressIndex > -1) { + downloadsInProgress.splice(progressIndex, 1) + return [...downloadsInProgress] + } else { + return downloadsInProgress + } + } + default: + return downloadsInProgress + } +} diff --git a/packages/storage-ui/src/Contexts/LanguageContext.tsx b/packages/storage-ui/src/Contexts/LanguageContext.tsx new file mode 100644 index 0000000000..b9fcd1d17b --- /dev/null +++ b/packages/storage-ui/src/Contexts/LanguageContext.tsx @@ -0,0 +1,140 @@ +import React, { useState, useEffect, useCallback } from "react" +import { i18n } from "@lingui/core" +import { I18nProvider } from "@lingui/react" +import * as plurals from "make-plural/plurals" +import { useLocalStorage } from "@chainsafe/browser-storage-hooks" +import dayjs from "dayjs" + +export type LanguageContext = { + availableLanguages: Language[] + selectedLanguage: string + selectedLocale: string + setActiveLanguage(newLanguage: string): void | Promise +} + +type Language = { + id: string + label: string +} + +type LanguageProviderProps = { + children: React.ReactNode | React.ReactNode[] + availableLanguages: Language[] +} + +const DEFAULT_LANGUAGE = "en" +const DEFAULT_LOCALE = "en-GB" +const PREFERED_LANGUAGE_KEY = "csf.preferedLanguage" + +const defaultContext: LanguageContext = { + availableLanguages: [], + selectedLanguage: DEFAULT_LANGUAGE, + selectedLocale: DEFAULT_LOCALE, + setActiveLanguage: () => {console.error("setActiveLanguage not implemented")} +} + +const LanguageContext = React.createContext(defaultContext) + +const getLanguages = (preferred = ""): string[] => { + const { languages, language } = window.navigator + + if (Array.isArray(languages)) { + // Dedupe array of languages + const deduped = [...new Set(languages.map((l) => l.split("-")[0]))] + const preferredFirst = preferred + ? [preferred, ...deduped.filter((lang) => preferred !== lang)] + : deduped + + return preferredFirst + } + + if (language) { + return [preferred, language.split("-")[0]] + } + + // If language not detected use english + return [preferred, DEFAULT_LANGUAGE] +} + +const getLocales = (): string[] => { + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // @ts-ignore + const { languages, language, userLanguage } = window.navigator + const localeRegex = new RegExp("[a-z]{2,3}-[A-Z]{2}") + + if (Array.isArray(languages)) { + return languages.filter((l) => localeRegex.test(l)) + } + + if (language && localeRegex.test(language)) { + return [language] + } + + if (userLanguage && localeRegex.test(userLanguage)) { + return [userLanguage] + } + // If language not detected use english + return [DEFAULT_LOCALE] +} + +const LanguageProvider = ({ children, availableLanguages }: LanguageProviderProps) => { + const [selectedLanguage, setSelectedLanguage] = useState("") + const { localStorageGet, localStorageSet } = useLocalStorage() + const userLocales = getLocales() + + const setLanguage = useCallback((newLanguage: string, setPrefered = true) => { + if (!availableLanguages.find((l) => l.id === newLanguage)) { + console.error("Locale is not available, evalutaing:", newLanguage) + return + } + + import(`../locales/${newLanguage}/messages.js`) + .then((newCatalog) => { + i18n.load(newLanguage, newCatalog.default.messages) + i18n.loadLocaleData(newLanguage, { plurals: (plurals as Record)[newLanguage] }) + i18n.activate(newLanguage) + setSelectedLanguage(newLanguage) + setPrefered && localStorageSet(PREFERED_LANGUAGE_KEY, newLanguage) + dayjs.locale(newLanguage) + }) + .catch(console.error) + }, [availableLanguages, localStorageSet]) + + + useEffect(() => { + const prefered = localStorageGet(PREFERED_LANGUAGE_KEY) + const userLanguages = getLanguages(prefered || "") + const matchingLanguages = [...new Set(userLanguages)].filter((x) => + new Set(availableLanguages.map((l) => l.id)).has(x) + ) + + const defaultLanguage = matchingLanguages[0] || DEFAULT_LANGUAGE + + // passing false because this language wasn't + // set explicitely by the user + setLanguage(defaultLanguage, false) + }, [availableLanguages, localStorageGet, setLanguage]) + + return ( + + {children} + + ) +} + +function useLanguageContext() { + const context = React.useContext(LanguageContext) + if (context === undefined) { + throw new Error("useLanguageContext must be used within a LanguageProvider") + } + return context +} + +export { LanguageProvider, useLanguageContext } diff --git a/packages/storage-ui/src/Contexts/StorageContext.tsx b/packages/storage-ui/src/Contexts/StorageContext.tsx new file mode 100644 index 0000000000..ad9a06ecf2 --- /dev/null +++ b/packages/storage-ui/src/Contexts/StorageContext.tsx @@ -0,0 +1,312 @@ +import { + CSFFilesFullInfoResponse, + FileContentResponse, + DirectoryContentResponse, + BucketType, + Bucket as FilesBucket, + SearchEntry +} from "@chainsafe/files-api-client" +import React, { useCallback, useEffect, useReducer } from "react" +import { useState } from "react" +import { v4 as uuidv4 } from "uuid" +import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesReducers" +import { CancelToken } from "axios" +import { t } from "@lingui/macro" +import { useBeforeunload } from "react-beforeunload" +import { useFilesApi } from "./FilesApiContext" + +type StorageContextProps = { + children: React.ReactNode | React.ReactNode[] +} + +export type UploadProgress = { + id: string + fileName: string + progress: number + error: boolean + errorMessage?: string + complete: boolean + noOfFiles: number + path: string +} + +export type DownloadProgress = { + id: string + fileName: string + progress: number + error: boolean + errorMessage?: string + complete: boolean +} + +interface GetFileContentParams { + cid: string + cancelToken?: CancelToken + onDownloadProgress?: (progressEvent: ProgressEvent) => void + file: FileSystemItem + path: string +} + +type Bucket = FilesBucket + +type StorageContext = { + pins: Bucket[] + uploadsInProgress: UploadProgress[] + downloadsInProgress: DownloadProgress[] + spaceUsed: number + createPin: (bucketId: string, files: File[], path: string) => Promise + downloadPin: (bucketId: string, itemToDownload: FileSystemItem, path: string) => void + getPinContent: (bucketId: string, params: GetFileContentParams) => Promise + refreshPins: () => Promise +} + +// This represents a File or Folder on the +interface IFileSystemItem extends FileContentResponse { + isFolder: boolean +} + +type FileSystemItem = IFileSystemItem + +const REMOVE_UPLOAD_PROGRESS_DELAY = 5000 + +const StorageContext = React.createContext(undefined) + +const StorageProvider = ({ children }: StorageContextProps) => { + const { + filesApiClient, + isLoggedIn + } = useFilesApi() + const [spaceUsed, setSpaceUsed] = useState(0) + const [pins, setPins] = useState([]) + + const refreshPins = useCallback(async () => { + const result = await filesApiClient.listBuckets() + + setPins(result.filter(b => b.type === "pinning")) + return Promise.resolve() + }, [filesApiClient]) + + useEffect(() => { + refreshPins() + }, [refreshPins]) + + // Space used counter + useEffect(() => { + const getSpaceUsage = async () => { + try { + // TODO: Update this to include Share buckets where the current user is the owner + const totalSize = pins.filter(b => b.type === "pinning") + .reduce((totalSize, bucket) => { return totalSize += (bucket as any).size}, 0) + + setSpaceUsed(totalSize) + } catch (error) { + console.error(error) + } + } + if (isLoggedIn) { + getSpaceUsage() + } + }, [filesApiClient, isLoggedIn, pins]) + + // Reset encryption keys on log out + useEffect(() => { + if (!isLoggedIn) { + setPins([]) + } + }, [isLoggedIn]) + + const [uploadsInProgress, dispatchUploadsInProgress] = useReducer( + uploadsInProgressReducer, + [] + ) + + const [downloadsInProgress, dispatchDownloadsInProgress] = useReducer( + downloadsInProgressReducer, + [] + ) + + const [closeIntercept, setCloseIntercept] = useState() + + useEffect(() => { + if (downloadsInProgress.length > 0) { + setCloseIntercept("Download in progress, are you sure?") + } else if (uploadsInProgress.length > 0) { + setCloseIntercept("Upload in progress, are you sure?") + } else if (closeIntercept !== undefined) { + setCloseIntercept(undefined) + } + }, [closeIntercept, downloadsInProgress, uploadsInProgress]) + + useBeforeunload(() => { + if (closeIntercept !== undefined) { + return closeIntercept + } + }) + + const createPin = useCallback(async (bucketId: string, files: File[], path: string) => { + const bucket = pins.find(b => b.id === bucketId) + + if (!bucket) { + console.error("No encryption key for this bucket is available.") + return + } + + const id = uuidv4() + const uploadProgress: UploadProgress = { + id, + fileName: files[0].name, // TODO: Do we need this? + complete: false, + error: false, + noOfFiles: files.length, + progress: 0, + path + } + dispatchUploadsInProgress({ type: "add", payload: uploadProgress }) + try { + // TODO: Make API Request to upload here + + // setting complete + dispatchUploadsInProgress({ type: "complete", payload: { id } }) + setTimeout(() => { + dispatchUploadsInProgress({ type: "remove", payload: { id } }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + + return Promise.resolve() + } catch (error) { + console.error(error) + // setting error + let errorMessage = t`Something went wrong. We couldn't upload your file` + + // we will need a method to parse server errors + if (Array.isArray(error) && error[0].message.includes("conflict")) { + errorMessage = t`A file with the same name already exists` + } + dispatchUploadsInProgress({ + type: "error", + payload: { id, errorMessage } + }) + setTimeout(() => { + dispatchUploadsInProgress({ type: "remove", payload: { id } }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + } + }, [pins]) + + const getPinContent = useCallback(async ( + bucketId: string, + { cid, cancelToken, onDownloadProgress, file, path }: GetFileContentParams + ) => { + const bucket = pins.find(b => b.id === bucketId) + + if (!bucket) { + throw new Error("No encryption key for this bucket found") + } + + if (!file) { + console.error("No file passed, and no file found for cid:", cid, "in pathContents:", path) + throw new Error("No file found.") + } + + try { + const result = await filesApiClient.getFileContent( + { + path: path, + source: { + id: bucket.id + } + }, + cancelToken, + onDownloadProgress + ) + + return result.data + } catch (error) { + console.error(error) + return Promise.reject() + } + }, [pins, filesApiClient]) + + const downloadPin = useCallback(async (bucketId: string, itemToDownload: FileSystemItem, path: string) => { + const toastId = uuidv4() + try { + const downloadProgress: DownloadProgress = { + id: toastId, + fileName: itemToDownload.name, + complete: false, + error: false, + progress: 0 + } + dispatchDownloadsInProgress({ type: "add", payload: downloadProgress }) + const result = await getPinContent(bucketId, { + cid: itemToDownload.cid, + file: itemToDownload, + path: `${path}/${itemToDownload.name}`, + onDownloadProgress: (progressEvent) => { + dispatchDownloadsInProgress({ + type: "progress", + payload: { + id: toastId, + progress: Math.ceil( + (progressEvent.loaded / itemToDownload.size) * 100 + ) + } + }) + } + }) + if (!result) return + const link = document.createElement("a") + link.href = URL.createObjectURL(result) + link.download = itemToDownload?.name || "file" + link.click() + dispatchDownloadsInProgress({ + type: "complete", + payload: { id: toastId } + }) + URL.revokeObjectURL(link.href) + setTimeout(() => { + dispatchDownloadsInProgress({ + type: "remove", + payload: { id: toastId } + }) + }, REMOVE_UPLOAD_PROGRESS_DELAY) + return Promise.resolve() + } catch (error) { + dispatchDownloadsInProgress({ type: "error", payload: { id: toastId } }) + return Promise.reject() + } + }, [getPinContent]) + + return ( + + {children} + + ) +} + +const useStorage = () => { + const context = React.useContext(StorageContext) + if (context === undefined) { + throw new Error("useFiles must be used within a FilesProvider") + } + return context +} + +export { StorageProvider, useStorage } +export type { + FileSystemItem, + DirectoryContentResponse, + CSFFilesFullInfoResponse as FileFullInfo, + BucketType, + SearchEntry +} diff --git a/packages/storage-ui/src/Media/Empty.svg.tsx b/packages/storage-ui/src/Media/Empty.svg.tsx new file mode 100644 index 0000000000..aaa58a7a6f --- /dev/null +++ b/packages/storage-ui/src/Media/Empty.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as EmptySvg } from "./svgs/empty.svg" + +export default EmptySvg diff --git a/packages/storage-ui/src/Media/devices.png b/packages/storage-ui/src/Media/devices.png new file mode 100644 index 0000000000000000000000000000000000000000..0e5a094f333640e1e743962989d5b16ad078dd8a GIT binary patch literal 81819 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≻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 BZiD~; literal 0 HcmV?d00001 diff --git a/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx b/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx new file mode 100644 index 0000000000..e82e22a630 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/ForegroundSVG.tsx @@ -0,0 +1,16 @@ +import React from "react" +import ForegroundSource from "./foreground.svg" + +interface IForegroundSVG { + className?: string +} + +export const ForegroundSVG = ({ className }: IForegroundSVG) => { + return ( + foreground + ) +} \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx b/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx new file mode 100644 index 0000000000..52f7e6560b --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/Bottom.dark.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as BottomDarkSVG } from "./bottom-bg.svg" + +export default BottomDarkSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx b/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx new file mode 100644 index 0000000000..30fb95e015 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/Top.dark.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as TopDarkSVG } from "./top-bg.svg" + +export default TopDarkSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg b/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg new file mode 100644 index 0000000000..a5c254d37e --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/bottom-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg b/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg new file mode 100644 index 0000000000..6011e4802e --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/dark/top-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/desktop-mobile.png b/packages/storage-ui/src/Media/landing/layers/desktop-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..251a0b9b5198891986faf143167244f05fa9e931 GIT binary patch literal 98840 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 P00000NkvXXu0mjf4NxK( literal 0 HcmV?d00001 diff --git a/packages/storage-ui/src/Media/landing/layers/foreground.svg b/packages/storage-ui/src/Media/landing/layers/foreground.svg new file mode 100644 index 0000000000..b6ea5f39f4 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/foreground.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx b/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx new file mode 100644 index 0000000000..26a66ffe6c --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/Bottom.light.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as BottomLightSVG } from "./bottom-bg.svg" + +export default BottomLightSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx b/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx new file mode 100644 index 0000000000..0602d788fc --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/Top.light.svg.tsx @@ -0,0 +1,3 @@ +import { ReactComponent as TopLightSVG } from "./top-bg.svg" + +export default TopLightSVG \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg b/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg new file mode 100644 index 0000000000..712931b231 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/bottom-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg b/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg new file mode 100644 index 0000000000..1f386565f6 --- /dev/null +++ b/packages/storage-ui/src/Media/landing/layers/light/top-bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/storage-ui/src/Media/landing/layers/password-key.png b/packages/storage-ui/src/Media/landing/layers/password-key.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe52b28039e12d5da26a27368531442e7c733a4 GIT binary patch literal 42006 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%0D$1YjJzw<` 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 N3Nk9v)siM5{{daEB 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/storage-ui/src/Media/svgs/empty.svg b/packages/storage-ui/src/Media/svgs/empty.svg new file mode 100644 index 0000000000..859415ebd6 --- /dev/null +++ b/packages/storage-ui/src/Media/svgs/empty.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/storage-ui/src/Themes/Constants.ts b/packages/storage-ui/src/Themes/Constants.ts new file mode 100644 index 0000000000..e16784ccd7 --- /dev/null +++ b/packages/storage-ui/src/Themes/Constants.ts @@ -0,0 +1,161 @@ +import { IConstants } from "@chainsafe/common-theme" + +export const UI_CONSTANTS = { + mobileButtonHeight: 44, + headerHeight: 60, + navWidth: 8 * 27, + contentPadding: 8 * 15, + contentTopPadding: 8 * 15, + mobileHeaderHeight: 8 * 6.3, + svgWidth: 8 * 2.5, + topPadding: 8 * 3, + mobileNavWidth: 8 * 30, + headerTopPadding: 8 * 3, + accountControlsPadding: 8 * 7 +} + +export interface CsfColors extends IConstants { + landing: { + background: string + border: string + boxShadow: string + footerBg: string + footerText: string + } + loginModule: { + explainerBg: string + background: string + itemBackground: string + iconColor: string + textColor: string + subText: string + flagBg: string + flagText: string + completeBg: string + completeText: string + } + header: { + rootBackground: string + optionsBackground: string + optionsTextColor: string + optionsBorder: string + menuItemTextColor: string + iconColor: string + hamburger: string + } + modalDefault: { + fadeBackground: string + background: string + } + nav: { + backgroundColor: string + blocker: string + mobileBackgroundColor: string + headingColor: string + itemColor: string + itemColorHover: string + itemIconColor: string + itemIconColorHover: string + } + createFolder: { + backgroundColor: string + color: string + } + actionModal: { + backgroundColor: string + color: string + } + previewModal: { + controlsBackground: string + controlsColor: string + closeButtonColor: string + fileOpsColor: string + fileNameColor: string + optionsBackground: string + optionsTextColor: string + optionsBorder: string + menuItemIconColor: string + menuItemTextColor: string + message: string + previewTopNavHeight: number + previewBottomNavHeight: number + } + searchModule: { + resultsBackground: string + resultsBackdrop: string + resultsHeading: string + resultsFolder: string + resultsRow: string + noResults: string + } + uploadModal: { + background: string + color: string + icon: string + iconHover: string + addMore: string + addMoreBackground: string + footerBackground: string + } + fileInfoModal: { + background: string + color: string + copyButtonBackground: string + copyButtonColor: string + infoContainerBorderTop: string + } + moveFileModal: { + background: string + color: string + } + filesTable: { + color: string + uploadText: string + gridItemShadow: string + } + fileSystemItemRow: { + icon: string + menuIcon: string + dropdownIcon: string + optionsBackground: string + optionsColor: string + optionsBorder: string + itemBackground: string + itemColor: string + } + masterKey: { + desktop: { + color: string + link: string + checkbox: string + } + mobile: { + color: string + link: string + checkbox: string + } + } + profile: { + icon: string + } + uploadAlert: { + icon: string + } + settingsPage: { + darkSwitch: { + backgroundColor: string + color: string + border?: string + borderColor?: string + } + lightSwitch: { + backgroundColor: string + color: string + border?: string + borderColor?: string + } + } + surveyBanner: { + color: string + } +} \ No newline at end of file diff --git a/packages/storage-ui/src/Themes/DarkTheme.ts b/packages/storage-ui/src/Themes/DarkTheme.ts new file mode 100644 index 0000000000..0dff2a4757 --- /dev/null +++ b/packages/storage-ui/src/Themes/DarkTheme.ts @@ -0,0 +1,599 @@ +import { createTheme } from "@chainsafe/common-theme" +import { CsfColors, UI_CONSTANTS } from "./Constants" + +export const darkTheme = createTheme({ + globalStyling: { + ":root": { + "--csf-primary": "#5165DC", + + "--blue1": "#111D2C", + "--blue2": "#112A45", + "--blue3": "#15395B", + "--blue4": "#164C7E", + "--blue5": "#1765AD", + "--blue6": "#177DDC", + "--blue7": "#3C9AE8", + "--blue8": "#65B7F3", + "--blue9": "#8DCFF8", + "--blue10": "#B7E3FA", + + "--gray1": "#141414", + "--gray2": "#1D1D1D", + "--gray3": "#262626", + "--gray4": "#303030", + "--gray5": "#434343", + "--gray6": "#5A5A5A", + "--gray7": "#7D7D7D", + "--gray8": "#ACACAC", + "--gray9": "#DBDBDB", + "--gray10": "#FFFFFF", + + "--red1": "#2A1215", + "--red2": "#431418", + "--red3": "#58181C", + "--red4": "#791A1F", + "--red5": "#A61D24", + "--red6": "#D32029", + "--red7": "#E84749", + "--red8": "#F37370", + "--red9": "#F89F9A", + "--red10": "#FAC8C3", + + "--volcano1": "#2B1611", + "--volcano2": "#441D12", + "--volcano3": "#592716", + "--volcano4": "#7C3118", + "--volcano5": "#AA3E19", + "--volcano6": "#D84A1B", + "--volcano7": "#E87040", + "--volcano8": "#F3956A", + "--volcano9": "#F8B692", + "--volcano10": "#FAD4BC", + + "--orange1": "#2B1D11", + "--orange2": "#442A11", + "--orange3": "#593815", + "--orange4": "#7C4A15", + "--orange5": "#AA6215", + "--orange6": "#D87A16", + "--orange7": "#E89A3C", + "--orange8": "#F3B765", + "--orange9": "#F8CF8D", + "--orange10": "#FAE3B7", + + "--gold1": "#2B2111", + "--gold2": "#443111", + "--gold3": "#594214", + "--gold4": "#7C5914", + "--gold5": "#AA7714", + "--gold6": "#D89614", + "--gold7": "#E8B339", + "--gold8": "#F3CC62", + "--gold9": "#F8DF8B", + "--gold10": "#FAEDB5", + + "--yellow1": "#2B2611", + "--yellow2": "#443B11", + "--yellow3": "#595014", + "--yellow4": "#595014", + "--yellow5": "#AA9514", + "--yellow6": "#D8BD14", + "--yellow7": "#E8D639", + "--yellow8": "#F3EA62", + "--yellow9": "#F8F48B", + "--yellow10": "#FAFAB5", + + "--lime1": "#1F2611", + "--lime2": "#2E3C10", + "--lime3": "#3E4F13", + "--lime4": "#536D13", + "--lime5": "#6F9412", + "--lime6": "#8BBB11", + "--lime7": "#A9D134", + "--lime8": "#C9E75D", + "--lime9": "#E4F88B", + "--lime10": "#F0FAB5", + + "--green1": "#162312", + "--green2": "#1D3712", + "--green3": "#274916", + "--green4": "#306317", + "--green5": "#3C8618", + "--green6": "#49AA19", + "--green7": "#6ABE39", + "--green8": "#8FD460", + "--green9": "#B2E58B", + "--green10": "#D5F2BB", + + "--cyan1": "#112123", + "--cyan2": "#113536", + "--cyan3": "#144848", + "--cyan4": "#146262", + "--cyan5": "#138585", + "--cyan6": "#13A8A8", + "--cyan7": "#33BCB7", + "--cyan8": "#58D1C9", + "--cyan9": "#84E2D8", + "--cyan10": "#B2F1E8", + + "--geekblue1": "#131629", + "--geekblue2": "#161D40", + "--geekblue3": "#1C2755", + "--geekblue4": "#203175", + "--geekblue5": "#263EA0", + "--geekblue6": "#2B4ACB", + "--geekblue7": "#5273E0", + "--geekblue8": "#7F9EF3", + "--geekblue9": "#A8C1F8", + "--geekblue10": "#D2E0FA", + + "--purple1": "#1A1325", + "--purple2": "#24163A", + "--purple3": "#301C4D", + "--purple4": "#3E2069", + "--purple5": "#51258F", + "--purple6": "#642AB5", + "--purple7": "#854ECA", + "--purple8": "#AB7AE0", + "--purple9": "#CDA8F0", + "--purple10": "#EBD7FA", + + "--magenta1": "#291321", + "--magenta2": "#40162F", + "--magenta3": "#551C3B", + "--magenta4": "#75204F", + "--magenta5": "#A02669", + "--magenta6": "#CB2B83", + "--magenta7": "#E0529C", + "--magenta8": "#F37FB7", + "--magenta9": "#F8A8CC", + "--magenta10": "#FAD2E3" + }, + body: { + backgroundColor: "var(--gray1)", + color: "var(--gray9)" + } + }, + themeConfig: { + palette: { + primary: { + main: "var(--gray3)", + hover: "var(--gray10)" + }, + secondary: { + main: "var(--gray10)", + hover: "#000" + }, + common: { + black: { + main: "var(--gray1)" + } + }, + additional: { + blue: { + 1: "var(--blue1)", + 2: "var(--blue2)", + 3: "var(--blue3)", + 4: "var(--blue4)", + 5: "var(--blue5)", + 6: "var(--blue6)", + 7: "var(--blue7)", + 8: "var(--blue8)", + 9: "var(--blue9)", + 10: "var(--blue10)" + }, + gray: { + 1: "var(--gray1)", + 2: "var(--gray2)", + 3: "var(--gray3)", + 4: "var(--gray4)", + 5: "var(--gray5)", + 6: "var(--gray6)", + 7: "var(--gray7)", + 8: "var(--gray8)", + 9: "var(--gray9)", + 10: "var(--gray10)" + }, + red: { + 1: "var(--red1)", + 2: "var(--red2)", + 3: "var(--red3)", + 4: "var(--red4)", + 5: "var(--red5)", + 6: "var(--red6)", + 7: "var(--red7)", + 8: "var(--red8)", + 9: "var(--red9)", + 10: "var(--red10)" + }, + volcano: { + 1: "var(--volcano1)", + 2: "var(--volcano2)", + 3: "var(--volcano3)", + 4: "var(--volcano4)", + 5: "var(--volcano5)", + 6: "var(--volcano6)", + 7: "var(--volcano7)", + 8: "var(--volcano8)", + 9: "var(--volcano9)", + 10: "var(--volcano10)" + }, + orange: { + 1: "var(--orange1)", + 2: "var(--orange2)", + 3: "var(--orange3)", + 4: "var(--orange4)", + 5: "var(--orange5)", + 6: "var(--orange6)", + 7: "var(--orange7)", + 8: "var(--orange8)", + 9: "var(--orange9)", + 10: "var(--orange10)" + }, + gold: { + 1: "var(--gold1)", + 2: "var(--gold2)", + 3: "var(--gold3)", + 4: "var(--gold4)", + 5: "var(--gold5)", + 6: "var(--gold6)", + 7: "var(--gold7)", + 8: "var(--gold8)", + 9: "var(--gold9)", + 10: "var(--gold10)" + }, + yellow: { + 1: "var(--yellow1)", + 2: "var(--yellow2)", + 3: "var(--yellow3)", + 4: "var(--yellow4)", + 5: "var(--yellow5)", + 6: "var(--yellow6)", + 7: "var(--yellow7)", + 8: "var(--yellow8)", + 9: "var(--yellow9)", + 10: "var(--yellow10)" + }, + lime: { + 1: "var(--lime1)", + 2: "var(--lime2)", + 3: "var(--lime3)", + 4: "var(--lime4)", + 5: "var(--lime5)", + 6: "var(--lime6)", + 7: "var(--lime7)", + 8: "var(--lime8)", + 9: "var(--lime9)", + 10: "var(--lime10)" + }, + green: { + 1: "var(--green1)", + 2: "var(--green2)", + 3: "var(--green3)", + 4: "var(--green4)", + 5: "var(--green5)", + 6: "var(--green6)", + 7: "var(--green7)", + 8: "var(--green8)", + 9: "var(--green9)", + 10: "var(--green10)" + }, + cyan: { + 1: "var(--cyan1)", + 2: "var(--cyan2)", + 3: "var(--cyan3)", + 4: "var(--cyan4)", + 5: "var(--cyan5)", + 6: "var(--cyan6)", + 7: "var(--cyan7)", + 8: "var(--cyan8)", + 9: "var(--cyan9)", + 10: "var(--cyan10)" + }, + geekblue: { + 1: "var(--geekblue1)", + 2: "var(--geekblue2)", + 3: "var(--geekblue3)", + 4: "var(--geekblue4)", + 5: "var(--geekblue5)", + 6: "var(--geekblue6)", + 7: "var(--geekblue7)", + 8: "var(--geekblue8)", + 9: "var(--geekblue9)", + 10: "var(--geekblue10)" + }, + purple: { + 1: "var(--purple1)", + 2: "var(--purple2)", + 3: "var(--purple3)", + 4: "var(--purple4)", + 5: "var(--purple5)", + 6: "var(--purple6)", + 7: "var(--purple7)", + 8: "var(--purple8)", + 9: "var(--purple9)", + 10: "var(--purple10)" + }, + magenta: { + 1: "var(--magenta1)", + 2: "var(--magenta2)", + 3: "var(--magenta3)", + 4: "var(--magenta4)", + 5: "var(--magenta5)", + 6: "var(--magenta6)", + 7: "var(--magenta7)", + 8: "var(--magenta8)", + 9: "var(--magenta9)", + 10: "var(--magenta10)" + } + } + }, + constants: { + ...UI_CONSTANTS, + ...({ + landing: { + background: "var(--gray2)", + border: "var(--gray4)", + boxShadow: "unset", + footerBg: "var(--gray4)", + footerText: "var(--gray8)" + }, + loginModule: { + explainerBg: "var(--gray2)", + background: "var(--gray2)", + itemBackground: "var(--gray4)", + iconColor: "#9E9E9E", // Gray 7.5 + textColor: "var(--gray9)", + subText: "var(--gray8)", + flagBg: "var(--gray9)", + flagText: "var(--gray1)", + completeBg: "#0C082B", // Gray 9.5 + completeText: "var(--gray9)" + }, + modalDefault: { + fadeBackground: "var(--gray7)", + background: "var(--gray2)" + }, + header: { + rootBackground: "var(--gray1)", + optionsBackground: "var(--gray2)", + optionsTextColor: "var(--gray5)", + optionsBorder: "var(--gray5)", + menuItemTextColor: "var(--gray10)", + iconColor: "var(--gray7)", + hamburger: "var(--gray10)" + }, + nav: { + backgroundColor: "var(--gray2)", + blocker: "var(--gray2)", + mobileBackgroundColor: "var(--gray2)", + headingColor: "var(--gray9)", + itemColor: "var(--gray9)", + itemColorHover: "var(--gray9)", + itemIconColor: "var(--gray9)", + itemIconColorHover: "var(--gray9)" + }, + createFolder: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)" + }, + actionModal: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)" + }, + previewModal: { + controlsBackground: "var(--gray1)", + controlsColor: "var(--gray10)", + closeButtonColor: "var(--gray9)", + fileOpsColor: "var(--gray9)", + fileNameColor: "var(--gray9)", + optionsBackground: "var(--gray2)", + optionsTextColor: "var(--gray9)", + optionsBorder: "var(--gray5)", + menuItemIconColor: "var(--gray9)", + menuItemTextColor: "var(--gray10)", + message: "var(--gray8)", + previewBottomNavHeight: 64, + previewTopNavHeight: 64 + }, + searchModule: { + resultsBackground: "var(--gray2)", + resultsBackdrop: "var(--gray2)", + resultsHeading: "var(--gray9)", + resultsFolder: "var(--gray9)", + resultsRow: "var(--gray9)", + noResults: "var(--gray9)" + }, + uploadModal: { + background: "var(--gray2)", + color: "var(--gray9)", + icon: "var(--gray9)", + iconHover: "var(--gray9)", + addMore: "var(--gray9)", + addMoreBackground: "var(--gray4)", + footerBackground: "var(--gray2)" + }, + fileInfoModal: { + background: "var(--gray2)", + color: "var(--gray9)", + copyButtonBackground: "var(--gray1)", + copyButtonColor: "var(--gray8)", + infoContainerBorderTop: "var(--gray4)" + }, + moveFileModal: { + background: "var(--gray2)", + color: "var(--gray9)" + }, + filesTable: { + color: "var(--gray7)", + uploadText: "var(--gray7)", + gridItemShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)" + }, + fileSystemItemRow: { + icon: "var(--gray9)", + menuIcon: "var(--gray9)", + dropdownIcon: "var(--gray9)", + optionsBackground: "var(--gray2)", + optionsColor: "var(--gray9)", + optionsBorder: "var(--gray5)", + itemBackground: "var(--gray1)", + itemColor: "var(--gray9)" + }, + masterKey: { + desktop: { + color: "var(--gray9)", + link: "var(--gray10)", + checkbox: "var(--gray9)" + }, + mobile: { + color: "var(--gray9)", + link: "var(--gray10)", + checkbox: "var(--gray9)" + } + }, + profile: { + icon: "var(--gray9)" + }, + uploadAlert: { + icon: "var(--gray9)" + }, + settingsPage:{ + darkSwitch: { + backgroundColor: "var(--gray2)", + color: "var(--gray9)", + border: "1px solid", + borderColor: "var(--csf-primary)" + }, + lightSwitch: { + backgroundColor: "var(--gray9)", + color: "var(--gray1)" + } + }, + surveyBanner: { + color: "var(--gray9)" + } + } as CsfColors) + }, + overrides: { + RadioInput: { + radio: { + checked: { + borderColor: "var(--csf-primary)" + }, + checkedBefore: { + backgroundColor: "var(--csf-primary)" + } + } + }, + SearchBar: { + input: { + root: { + backgroundColor: "var(--gray1)", + color: "var(--gray9)" + } + } + }, + TextInput: { + label: { + color: "var(--gray9)" + }, + input: { + root: { + backgroundColor: "var(--gray1)", + borderColor: "var(--gray4)", + color: "var(--gray9)" + } + } + }, + Breadcrumb: { + home: { + fill: "var(--gray9)" + } + }, + Typography: { + root: { + "& a": { + color: "var(--gray9)" + } + }, + h5: { + fontWeight: 600, + color: "var(--gray9)" + } + }, + Toaster: { + closeIcon: { + fill: "var(--gray9)" + }, + message: { + color: "var(--gray9)" + }, + typeIcon: { + root: { + fill: "var(--gray9)" + }, + success: { + fill: "var(--green8)" + }, + error: { + fill: "var(--red8)" + } + } + }, + Button: { + variants: { + primary: { + root: { + backgroundColor: "var(--gray5)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + active: { + backgroundColor: "var(--gray7)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + hover: { + backgroundColor: "var(--gray7)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + }, + focus: { + color: "none", + backgroundColor: "none", + "& svg": { + fill: "none" + } + } + }, + outline: { + root: { + backgroundColor: "var(--gray3) !important", + borderColor: "var(--gray4)", + color: "var(--gray9)", + "& svg": { + fill: "var(--gray9)" + } + } + } + } + }, + CheckboxInput: { + checkbox: { + checked: { + "& span > svg": { + opacity: 1, + fill: "var(--gray9)" + } + } + } + } + } + } +}) diff --git a/packages/storage-ui/src/Themes/LightTheme.ts b/packages/storage-ui/src/Themes/LightTheme.ts new file mode 100644 index 0000000000..ae73b0a67b --- /dev/null +++ b/packages/storage-ui/src/Themes/LightTheme.ts @@ -0,0 +1,196 @@ +import { createTheme } from "@chainsafe/common-theme" +import { CsfColors, UI_CONSTANTS } from "./Constants" + +export const lightTheme = createTheme({ + globalStyling: { + ":root": { + "--csf-primary": "#5165DC" + } + }, + themeConfig: { + palette: { + primary: { + main: "var(--csf-primary)" + }, + secondary: { + } + }, + constants: { + ...UI_CONSTANTS, + ...({ + landing: { + background: "var(--gray3)", + border: "var(--gray4)", + boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)", + footerBg: "var(--gray4)", + footerText: "var(--gray8)" + }, + loginModule: { + explainerBg: "var(--gray2)", + background: "var(--gray2)", + itemBackground: "var(--gray4)", + iconColor: "#9E9E9E", // Gray 7.5 + textColor: "var(--gray9)", + subText: "var(--gray8)", + flagBg: "var(--gray9)", + flagText: "var(--gray1)", + completeBg: "#0C082B", // Gray 9.5 + completeText: "var(--gray3)" + }, + modalDefault: { + fadeBackground: "var(--gray9)", + background: "var(--gray1)" + }, + header: { + rootBackground: "var(--gray1)", + optionsBackground: "var(--gray1)", + optionsTextColor: "initial", + optionsBorder: "var(--gray4)", + menuItemTextColor: "var(--gray8)", + iconColor: "initial", + hamburger: "var(--gray10)" + }, + nav: { + backgroundColor: "var(--gray3)", + blocker: "var(--gray9)", + mobileBackgroundColor: "var(--gray9)", + headingColor: "inherit", + itemColor: "inherit", + itemColorHover: "var(--gray7)", + itemIconColor: "inherit", + itemIconColorHover: "var(--gray7)" + }, + createFolder: { + backgroundColor: "var(--gray1)", + color: "var(--gray10)" + }, + actionModal: { + backgroundColor: "var(--gray1)", + color: "var(--gray10)" + }, + previewModal: { + controlsBackground: "var(--gray9)", + controlsColor: "var(--gray8)", + closeButtonColor: "var(--gray2)", + fileOpsColor: "var(--gray2)", + fileNameColor: "var(--gray1)", + optionsBackground: "var(--gray1)", + optionsTextColor: "initial", + optionsBorder: "var(--gray4)", + menuItemIconColor: "var(--gray7)", + menuItemTextColor: "var(--gray8)", + message: "var(--gray6)", + previewBottomNavHeight: 64, + previewTopNavHeight: 64 + }, + searchModule:{ + resultsBackground: "var(--gray1)", + resultsBackdrop: "var(--gray9)", + resultsHeading: "var(--gray8)", + resultsFolder: "var(--gray8)", + resultsRow: "var(--gray8)", + noResults: "var(--gray7)" + }, + uploadModal: { + background: "var(--gray1)", + color: "var(--gray10)", + icon: "var(--gray10)", + iconHover: "var(--gray10)", + addMore: "var(--gray9)", + addMoreBackground: "var(--gray3)", + footerBackground: "var(--gray4)" + }, + fileInfoModal: { + background: "var(--gray1)", + color: "var(--gray10)", + copyButtonBackground: "var(--gray1)", + copyButtonColor: "var(--gray10)", + infoContainerBorderTop: "var(--gray5)" + }, + moveFileModal: { + background: "var(--gray1)", + color: "var(--gray10)" + }, + filesTable: { + color: "", + uploadText: "var(--gray2)", + gridItemShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)" + }, + fileSystemItemRow: { + icon: "var(--gray8)", + menuIcon: "var(--gray7)", + dropdownIcon: "initial", + optionsBackground: "var(--gray1)", + optionsColor: "initial", + optionsBorder: "var(--gray4)", + itemBackground: "initial", + itemColor: "initial" + }, + masterKey: { + desktop: { + color: "var(--gray10)", + link: "var(--gray10)", + checkbox: "var(--gray1)" + }, + mobile: { + color: "var(--gray1)", + link: "var(--gray1)", + checkbox: "var(--gray9)" + } + }, + profile: { + icon: "initial" + }, + uploadAlert: { + icon: "initial" + }, + settingsPage:{ + darkSwitch: { + backgroundColor: "var(--gray9)", + color: "var(--gray5)" + }, + lightSwitch: { + backgroundColor: "var(--gray4)", + color: "var(--gray9)", + border: "1px solid", + borderColor: "var(--csf-primary)" + } + }, + surveyBanner: { + color: "var(--gray1)" + } + } as CsfColors) + }, + overrides: { + RadioInput: { + radio: { + checked: { + borderColor: "var(--csf-primary)" + }, + checkedBefore: { + backgroundColor: "var(--csf-primary)" + } + } + }, + Typography: { + h5: { + fontWeight: 600, + color: "var(--gray10)" + } + }, + Button: { + variants: { + primary: { + focus: { + color: "none", + backgroundColor: "none", + "& svg": { + fill: "none" + } + } + } + } + } + } + } +}) diff --git a/packages/storage-ui/src/Themes/types.ts b/packages/storage-ui/src/Themes/types.ts new file mode 100644 index 0000000000..5c07401cc0 --- /dev/null +++ b/packages/storage-ui/src/Themes/types.ts @@ -0,0 +1,4 @@ +import { ITheme } from "@chainsafe/common-theme" +import { CsfColors } from "./Constants" + +export type CSFTheme = ITheme \ No newline at end of file diff --git a/packages/storage-ui/src/Utils/Constants.ts b/packages/storage-ui/src/Utils/Constants.ts new file mode 100644 index 0000000000..6bf82b6467 --- /dev/null +++ b/packages/storage-ui/src/Utils/Constants.ts @@ -0,0 +1,12 @@ +export enum CONTENT_TYPES { + Directory = "application/chainsafe-files-directory", + File = "*/*", + Image = "image/*", + Text = "text/*", + Markdown = "text/markdown", + Pdf = "application/pdf", + MP4 = "video/mp4", + Audio = "audio/*" +} + +export const FREE_PLAN_LIMIT = 20000000000 diff --git a/packages/storage-ui/src/Utils/Helpers.tsx b/packages/storage-ui/src/Utils/Helpers.tsx new file mode 100644 index 0000000000..8e4e14b9ac --- /dev/null +++ b/packages/storage-ui/src/Utils/Helpers.tsx @@ -0,0 +1,46 @@ +import { useLocation } from "@chainsafe/common-components" +import { guessContentType } from "./contentTypeGuesser" +import { FileContentResponse } from "@chainsafe/files-api-client" +import { FileSystemItem } from "../Contexts/StorageContext" + +export const centerEllipsis = (address: string, remaining = 6) => { + if (address.length <= remaining * 2) { + return address + } + return `${address.substr(0, remaining)}...${address.substr( + address.length - remaining, + remaining + )}` +} + +export const readFileAsync = (file: Blob): Promise => { + return new Promise((resolve, reject) => { + const reader = new FileReader() + + reader.onload = () => { + reader.result && resolve(reader.result as ArrayBuffer) + } + + reader.onerror = reject + + reader.readAsArrayBuffer(file) + }) +} + +export function useQuery() { + return new URLSearchParams(useLocation().search) +} + +export const capitalize = (value: string) => { + return value.charAt(0).toUpperCase() + value.slice(1) +} + +export const parseFileContentResponse = (fcr: FileContentResponse): FileSystemItem => ({ + ...fcr, + content_type: + fcr.content_type !== "application/octet-stream" + ? fcr.content_type + : guessContentType(fcr.name), + isFolder: + fcr.content_type === "application/chainsafe-files-directory" +}) diff --git a/packages/storage-ui/src/Utils/MimeMatcher.ts b/packages/storage-ui/src/Utils/MimeMatcher.ts new file mode 100644 index 0000000000..d0466c7d73 --- /dev/null +++ b/packages/storage-ui/src/Utils/MimeMatcher.ts @@ -0,0 +1,95 @@ +// Shamelessly borrowed from https://github.com/katlasik/mime-matcher/blob/master/src/index.js +// Updated the regex to more accurately reflect the IANA spec as per https://en.wikipedia.org/wiki/Media_type + +// eslint-disable-next-line +const MIME_TYPE_REGEX = /^(\*|application|audio|image|message|multipart|text|video|font|example|model)\/(\*|[a-z0-9._\-]+)(\+([a-zA-Z0-9._\-=]+))?(; ([a-zA-Z0-9._\-=]+))?$/ + +function createMatcher(expected: string) { + if (expected === "*") { + return () => true + } else { + return (actual: string) => actual === expected + } +} + +function parse(mimeType: string) { + if (!mimeType) { + return { + valid: false + } + } + + const match = mimeType.match(MIME_TYPE_REGEX) + + if (!match) { + return { + valid: false + } + } + + const [, type, subType, parameter] = Array.from(match) + return { + valid: !!match, + type, + subType, + parameter + } +} + +function isValid(mimeType: string) { + return parse(mimeType).valid +} + +function matcher(expected: string[]) { + const m = new MimeMatcher(expected) + return (actual: string) => m.match(actual) +} + +class MimeMatcher { + expected = [] as { typeMatcher: (actual: string) => boolean; subTypeMatcher: (actual: string) => boolean }[] + + constructor(expected: string | string[]) { + if (Array.isArray(expected)) { + this.expected = expected.map(mimeType => { + const { valid, type, subType } = parse(mimeType) + if (valid && type && subType) { + return ({ + typeMatcher: createMatcher(type), + subTypeMatcher: createMatcher(subType) + }) + } else { + const msg = `Value "${mimeType}" is not valid mime type.It should have format "type/subtype".` + throw new TypeError(msg) + } + }) + } + else { + const { valid, type, subType } = parse(expected) + if (valid && type && subType) { + this.expected = [{ + typeMatcher: createMatcher(type), + subTypeMatcher: createMatcher(subType) + }] + } else { + const msg = `Value "${expected}" is not valid mime type.It should have format "type/subtype".` + throw new TypeError(msg) + } + } + + } + + match(actual: string) { + const { valid, type, subType } = parse(actual) + if (valid && type && subType) { + return this.expected.some(({ typeMatcher, subTypeMatcher }) => { + return typeMatcher(type) && subTypeMatcher(subType) + }) + } else { + return false + } + } +} + +export { isValid, parse, matcher } + +export default MimeMatcher \ No newline at end of file diff --git a/packages/storage-ui/src/Utils/contentTypeGuesser.ts b/packages/storage-ui/src/Utils/contentTypeGuesser.ts new file mode 100644 index 0000000000..d65fb94191 --- /dev/null +++ b/packages/storage-ui/src/Utils/contentTypeGuesser.ts @@ -0,0 +1,26 @@ +const guessContentType = (fileName: string) => { + const { length, [length - 1]: ext } = fileName.split(".") + + switch (ext) { + case "pdf": + return "application/pdf" + case "jpg": + case "png": + case "gif": + case "bmp": + return `image/${ext}` + case "mp3": + case "m4a": + return `audio/${ext}` + case "mp4": + return `video/${ext}` + case "txt": + return "text/plain" + case "md": + return "text/markdown" + default: + return "application/octet-stream" + } +} + +export { guessContentType } diff --git a/packages/storage-ui/src/Utils/encryption.ts b/packages/storage-ui/src/Utils/encryption.ts new file mode 100644 index 0000000000..00c7fb3161 --- /dev/null +++ b/packages/storage-ui/src/Utils/encryption.ts @@ -0,0 +1,94 @@ +const importKeyFromBytes = async (keyBytes: Uint8Array) => + window.crypto.subtle.importKey("raw", keyBytes, "PBKDF2", false, [ + "deriveKey" + ]) + +const deriveKey = async ( + sourceKey: CryptoKey, + keyUsage: KeyUsage[], + keyDerivationParams: Pbkdf2Params +) => + window.crypto.subtle.deriveKey( + keyDerivationParams, + sourceKey, + { name: "AES-GCM", length: 256 }, + false, + keyUsage + ) + +export const encryptFile = async ( + fileArrayBuffer: ArrayBuffer, + password: string +) => { + try { + const plainTextBytes = new Uint8Array(fileArrayBuffer) + const passwordBytes = new TextEncoder().encode(password) + + const salt = window.crypto.getRandomValues(new Uint8Array(16)) + const iv = window.crypto.getRandomValues(new Uint8Array(12)) + + const passwordKey = await importKeyFromBytes(passwordBytes) + + const aesKey = await deriveKey(passwordKey, ["encrypt"], { + name: "PBKDF2", + salt: salt, + iterations: 250000, + hash: "SHA-256" + }) + const cipherBytes = await window.crypto.subtle.encrypt( + { name: "AES-GCM", iv: iv }, + aesKey, + plainTextBytes + ) + + const cipherBytesArray = new Uint8Array(cipherBytes) + const resultBytes = new Uint8Array( + cipherBytesArray.byteLength + salt.byteLength + iv.byteLength + ) + resultBytes.set(salt, 0) + resultBytes.set(iv, salt.byteLength) + resultBytes.set(cipherBytesArray, salt.byteLength + iv.byteLength) + + return resultBytes + } catch (error) { + console.error("Error encrypting file") + console.error(error) + throw error + } +} + +export const decryptFile = async ( + cipher: ArrayBuffer | Uint8Array, + password: string +) => { + try { + const cipherBytes = new Uint8Array(cipher) + const passwordBytes = new TextEncoder().encode(password) + + const salt = cipherBytes.slice(0, 16) + const iv = cipherBytes.slice(16, 16 + 12) + const data = cipherBytes.slice(16 + 12) + const passwordKey = await importKeyFromBytes(passwordBytes) + const aesKey = await deriveKey(passwordKey, ["decrypt"], { + name: "PBKDF2", + salt: salt, + iterations: 250000, + hash: "SHA-256" + }) + + const decryptedContent = await window.crypto.subtle.decrypt( + { + name: "AES-GCM", + iv: iv + }, + aesKey, + data + ) + + return decryptedContent + } catch (error) { + console.error("Error decrypting file") + console.error(error) + return + } +} diff --git a/packages/storage-ui/src/Utils/pathUtils.ts b/packages/storage-ui/src/Utils/pathUtils.ts new file mode 100644 index 0000000000..594153af6c --- /dev/null +++ b/packages/storage-ui/src/Utils/pathUtils.ts @@ -0,0 +1,50 @@ +// trims a string at both ends for a character +function trimChar(str: string, char: string) { + char = char.charAt(0) + if (str.charAt(0) === char) { + str = str.substr(1, str.length - 1) + } + if (str.charAt(str.length - 1) === char) { + str = str.substr(0, str.length - 1) + } + return str +} + +// "/" -> [] +// "/path/to/this" -> ["path", "to", "this"] +export function getArrayOfPaths(path: string): string[] { + if (path === "/") return [] + else { + path = trimChar(path, "/") + return path.split("/") + } +} + +// [] -> "/" +// ["path", "to", "this"] -> "/path/to/this" +export function getURISafePathFromArray(arrayOfPaths: string[]): string { + if (!arrayOfPaths.length) return "/" + else { + return "/" + arrayOfPaths.map(encodeURIComponent).join("/") + } +} + +// get path and file +export function getPathWithFile(path: string, fileName: string) { + return path === "/" + ? `/${fileName}` + : path[path.length - 1] === "/" + ? `${path}${fileName}` + : `${path}/${fileName}` +} + +// get path and file +export function getParentPathFromFilePath(filePath: string) { + const parentPath = filePath.substring(0, filePath.lastIndexOf("/")) + if (!parentPath) return "/" + return parentPath +} + +export function extractDrivePath(pathname: string) { + return pathname.split("/").slice(2).join("/").concat("/") +} diff --git a/packages/storage-ui/src/index.css b/packages/storage-ui/src/index.css new file mode 100644 index 0000000000..ea15431cb1 --- /dev/null +++ b/packages/storage-ui/src/index.css @@ -0,0 +1,27 @@ +/* h1, +h2, +h3, +h4, +h5, +h6 { + color: rgba(255, 255, 255, 1); +} */ + +.bn-onboard-custom.bn-onboard-modal { + z-index: 2000; +} + +/* +.bn-onboard-custom.bn-onboard-modal-content { + background: #424242 !important; +} + +.bn-onboard-prepare-button { + border-color: #FFE500 !important; + color: #FFE500 !important; +} + +.bn-onboard-custom.bn-onboard-select-info-container > span { + color: #FFE500 !important; +} */ + diff --git a/packages/storage-ui/src/index.tsx b/packages/storage-ui/src/index.tsx new file mode 100644 index 0000000000..32e15e9972 --- /dev/null +++ b/packages/storage-ui/src/index.tsx @@ -0,0 +1,12 @@ +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")) + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister() diff --git a/packages/storage-ui/src/locales/en/messages.po b/packages/storage-ui/src/locales/en/messages.po new file mode 100644 index 0000000000..db9f17b90d --- /dev/null +++ b/packages/storage-ui/src/locales/en/messages.po @@ -0,0 +1,110 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2021-05-27 00:48+0200\n" +"Mime-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: en\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Plural-Forms: \n" + +msgid "A file with the same name already exists" +msgstr "A file with the same name already exists" + +msgid "Account" +msgstr "Account" + +msgid "Bin" +msgstr "Bin" + +msgid "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" +msgstr "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" + +msgid "Connect a new wallet" +msgstr "Connect a new wallet" + +msgid "Connection failed" +msgstr "Connection failed" + +msgid "Continue with Facebook" +msgstr "Continue with Facebook" + +msgid "Continue with Github" +msgstr "Continue with Github" + +msgid "Continue with Google" +msgstr "Continue with Google" + +msgid "Continue with Web3 Wallet" +msgstr "Continue with Web3 Wallet" + +msgid "Failed to get signature" +msgstr "Failed to get signature" + +msgid "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." +msgstr "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." + +msgid "Folders" +msgstr "Folders" + +msgid "Get Started" +msgstr "Get Started" + +msgid "Go back" +msgstr "Go back" + +msgid "Home" +msgstr "Home" + +msgid "Learn more about ChainSafe" +msgstr "Learn more about ChainSafe" + +msgid "Privacy Policy" +msgstr "Privacy Policy" + +msgid "Resources" +msgstr "Resources" + +msgid "Select a wallet" +msgstr "Select a wallet" + +msgid "Sign Out" +msgstr "Sign Out" + +msgid "Sign-in with {0}" +msgstr "Sign-in with {0}" + +msgid "Something went wrong. We couldn't upload your file" +msgstr "Something went wrong. We couldn't upload your file" + +msgid "Terms and Conditions" +msgstr "Terms and Conditions" + +msgid "The authentication popup was closed" +msgstr "The authentication popup was closed" + +msgid "The system is undergoing maintenance, thank you for being patient." +msgstr "The system is undergoing maintenance, thank you for being patient." + +msgid "There was an error authenticating" +msgstr "There was an error authenticating" + +msgid "There was an error connecting your wallet" +msgstr "There was an error connecting your wallet" + +msgid "Try again" +msgstr "Try again" + +msgid "Use a different login method" +msgstr "Use a different login method" diff --git a/packages/storage-ui/src/locales/fr/messages.po b/packages/storage-ui/src/locales/fr/messages.po new file mode 100644 index 0000000000..b84ad4e906 --- /dev/null +++ b/packages/storage-ui/src/locales/fr/messages.po @@ -0,0 +1,101 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2021-05-27 00:48+0200\n" +"Mime-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: fr\n" + +msgid "A file with the same name already exists" +msgstr "" + +msgid "Account" +msgstr "" + +msgid "Bin" +msgstr "" + +msgid "By connecting your wallet, you agree to our <0>Terms of Service and <1>Privacy Policy" +msgstr "" + +msgid "Connect a new wallet" +msgstr "" + +msgid "Connection failed" +msgstr "" + +msgid "Continue with Facebook" +msgstr "" + +msgid "Continue with Github" +msgstr "" + +msgid "Continue with Google" +msgstr "" + +msgid "Continue with Web3 Wallet" +msgstr "" + +msgid "Failed to get signature" +msgstr "" + +msgid "" +"Failed to validate signature.\n" +"If you are using a contract wallet, please make \n" +"sure you have activated your wallet." +msgstr "" + +msgid "Folders" +msgstr "" + +msgid "Get Started" +msgstr "" + +msgid "Go back" +msgstr "" + +msgid "Home" +msgstr "" + +msgid "Learn more about ChainSafe" +msgstr "" + +msgid "Privacy Policy" +msgstr "" + +msgid "Resources" +msgstr "" + +msgid "Select a wallet" +msgstr "" + +msgid "Sign Out" +msgstr "" + +msgid "Sign-in with {0}" +msgstr "" + +msgid "Something went wrong. We couldn't upload your file" +msgstr "" + +msgid "Terms and Conditions" +msgstr "" + +msgid "The authentication popup was closed" +msgstr "" + +msgid "The system is undergoing maintenance, thank you for being patient." +msgstr "" + +msgid "There was an error authenticating" +msgstr "" + +msgid "There was an error connecting your wallet" +msgstr "" + +msgid "Try again" +msgstr "" + +msgid "Use a different login method" +msgstr "" diff --git a/packages/storage-ui/src/react-app-env.d.ts b/packages/storage-ui/src/react-app-env.d.ts new file mode 100644 index 0000000000..6431bc5fc6 --- /dev/null +++ b/packages/storage-ui/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/storage-ui/src/serviceWorker.ts b/packages/storage-ui/src/serviceWorker.ts new file mode 100644 index 0000000000..8e951fbfee --- /dev/null +++ b/packages/storage-ui/src/serviceWorker.ts @@ -0,0 +1,146 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === "localhost" || + // [::1] is the IPv6 localhost address. + window.location.hostname === "[::1]" || + // 127.0.0.0/8 are considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +) + +type Config = { + onSuccess?: (registration: ServiceWorkerRegistration) => void + onUpdate?: (registration: ServiceWorkerRegistration) => void +} + +export function register(config?: Config) { + if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href) + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return + } + + window.addEventListener("load", () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js` + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config) + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + "This web app is being served cache-first by a service " + + "worker. To learn more, visit https://bit.ly/CRA-PWA" + ) + }) + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config) + } + }) + } +} + +function registerValidSW(swUrl: string, config?: Config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing + if (installingWorker == null) { + return + } + installingWorker.onstatechange = () => { + if (installingWorker.state === "installed") { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + "New content is available and will be used when all " + + "tabs for this page are closed. See https://bit.ly/CRA-PWA." + ) + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration) + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log("Content is cached for offline use.") + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration) + } + } + } + } + } + }) + .catch(error => { + console.error("Error during service worker registration:", error) + }) +} + +function checkValidServiceWorker(swUrl: string, config?: Config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl, { + headers: { "Service-Worker": "script" } + }) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get("content-type") + if ( + response.status === 404 || + (contentType != null && contentType.indexOf("javascript") === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload() + }) + }) + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config) + } + }) + .catch(() => { + console.log( + "No internet connection found. App is running in offline mode." + ) + }) +} + +export function unregister() { + if ("serviceWorker" in navigator) { + navigator.serviceWorker.ready + .then(registration => { + registration.unregister() + }) + .catch(error => { + console.error(error.message) + }) + } +} diff --git a/packages/storage-ui/src/setupTests.ts b/packages/storage-ui/src/setupTests.ts new file mode 100644 index 0000000000..3f9fc64cfc --- /dev/null +++ b/packages/storage-ui/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import "@testing-library/jest-dom/extend-expect" diff --git a/packages/storage-ui/tsconfig.json b/packages/storage-ui/tsconfig.json new file mode 100644 index 0000000000..3cf515c3b5 --- /dev/null +++ b/packages/storage-ui/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "es2016", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "downlevelIteration": true, + "sourceMap": true, + "inlineSources": true, + "sourceRoot": "/" + }, + "include": ["src"] +} diff --git a/yarn.lock b/yarn.lock index 947b82ce5b..9e258911cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,7 +96,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4": +"@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== @@ -1635,7 +1635,7 @@ "@babel/parser" "^7.12.7" "@babel/types" "^7.12.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.10.tgz#2d1f4041e8bf42ea099e5b2dc48d6a594c00017a" integrity sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg== @@ -1664,10 +1664,10 @@ resolved "https://registry.yarnpkg.com/@chainsafe/browser-storage-hooks/-/browser-storage-hooks-1.0.1.tgz#26d32cde1999914db755a631e2643823c54959f7" integrity sha512-Q4b5gQAZnsRXKeADspd5isqfwwhhXjDk70y++YadufA6EZ3tf340oW0OVszp74KaGEw+CAYFGQR4X7bzpZ3x9Q== -"@chainsafe/files-api-client@1.11.2": - version "1.11.2" - resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.2/67d8597bea590f72e00eb384d1b140b342012ea38e49f0ef2801425da816a2b9#c77351af8289f228ed6733ed2e59983e2c7b0d75" - integrity sha512-723zDIbWFX6HUUcXm7nXiziQyzIM619VsXkGH3wOXCmS+UiLs1gUnS8j1k41AkjZoYAu6t/Vkbssxm6/1yjK1Q== +"@chainsafe/files-api-client@1.11.4": + version "1.11.4" + resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.4/02f01962de33e57a6622a2c59b38f4716b48f7cd2fe567984033cf65a7364b7f#68d97dd382b998988816ac6943072356b96ea3e9" + integrity sha512-3VkToIUl2rKxmxkdM1pUFGNGz+Ngsd2P2CIXsAGRDhn56zEhsvhujythy4/JTrgeiCfPgo5C+ONPCRi7YIVu6g== "@chainsafe/web3-context@1.1.4": version "1.1.4" @@ -1803,7 +1803,7 @@ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6", "@emotion/is-prop-valid@^0.8.8": +"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6": version "0.8.8" resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== @@ -1849,12 +1849,12 @@ "@emotion/styled-base" "^10.0.27" babel-plugin-emotion "^10.0.27" -"@emotion/stylis@0.8.5", "@emotion/stylis@^0.8.4": +"@emotion/stylis@0.8.5": 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.5", "@emotion/unitless@^0.7.4": +"@emotion/unitless@0.7.5": version "0.7.5" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== @@ -1910,21 +1910,6 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" -"@ethersproject/abi@5.0.9", "@ethersproject/abi@^5.0.5": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.9.tgz#738c1c557e56d8f395a5a27caef9b0449bc85a10" - integrity sha512-ily2OufA2DTrxkiHQw5GqbkMSnNKuwZBqKsajtT0ERhZy1r9w2CpW1bmtRMIGzaqQxCdn/GEoFogexk72cBBZQ== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/abi@5.1.2", "@ethersproject/abi@^5.1.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.1.2.tgz#a8e75cd0455e6dc9e4861c3d1c22bbe436c1d775" @@ -1955,18 +1940,20 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/abstract-provider@5.0.7", "@ethersproject/abstract-provider@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.7.tgz#04ee3bfe43323384e7fecf6c774975b8dec4bdc9" - integrity sha512-NF16JGn6M0zZP5ZS8KtDL2Rh7yHxZbUjBIHLNHMm/0X0BephhjUWy8jqs/Zks6kDJRzNthgmPVy41Ec0RYWPYA== +"@ethersproject/abi@^5.0.5": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.9.tgz#738c1c557e56d8f395a5a27caef9b0449bc85a10" + integrity sha512-ily2OufA2DTrxkiHQw5GqbkMSnNKuwZBqKsajtT0ERhZy1r9w2CpW1bmtRMIGzaqQxCdn/GEoFogexk72cBBZQ== dependencies: + "@ethersproject/address" "^5.0.4" "@ethersproject/bignumber" "^5.0.7" "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" "@ethersproject/properties" "^5.0.3" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/web" "^5.0.6" + "@ethersproject/strings" "^5.0.4" "@ethersproject/abstract-provider@5.1.0", "@ethersproject/abstract-provider@^5.1.0": version "5.1.0" @@ -1981,6 +1968,19 @@ "@ethersproject/transactions" "^5.1.0" "@ethersproject/web" "^5.1.0" +"@ethersproject/abstract-provider@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.7.tgz#04ee3bfe43323384e7fecf6c774975b8dec4bdc9" + integrity sha512-NF16JGn6M0zZP5ZS8KtDL2Rh7yHxZbUjBIHLNHMm/0X0BephhjUWy8jqs/Zks6kDJRzNthgmPVy41Ec0RYWPYA== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/networks" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/transactions" "^5.0.5" + "@ethersproject/web" "^5.0.6" + "@ethersproject/abstract-provider@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.9.tgz#a55410b73e3994842884eb82b1f43e3a9f653eea" @@ -1994,17 +1994,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/web" "^5.0.12" -"@ethersproject/abstract-signer@5.0.9", "@ethersproject/abstract-signer@^5.0.4", "@ethersproject/abstract-signer@^5.0.6": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.9.tgz#238ddc06031aeb9dfceee2add965292d7dd1acbf" - integrity sha512-CM5UNmXQaA03MyYARFDDRjHWBxujO41tVle7glf5kHcQsDDULgqSVpkliLJMtPzZjOKFeCVZBHybTZDEZg5zzg== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/abstract-signer@5.1.0", "@ethersproject/abstract-signer@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.1.0.tgz#744c7a2d0ebe3cc0bc38294d0f53d5ca3f4e49e3" @@ -2027,16 +2016,16 @@ "@ethersproject/logger" "^5.0.8" "@ethersproject/properties" "^5.0.7" -"@ethersproject/address@5.0.8", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.8.tgz#0c551659144a5a7643c6bea337149d410825298f" - integrity sha512-V87DHiZMZR6hmFYmoGaHex0D53UEbZpW75uj8AqPbjYUmi65RB4N2LPRcJXuWuN2R0Y2CxkvW6ArijWychr5FA== +"@ethersproject/abstract-signer@^5.0.4", "@ethersproject/abstract-signer@^5.0.6": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.9.tgz#238ddc06031aeb9dfceee2add965292d7dd1acbf" + integrity sha512-CM5UNmXQaA03MyYARFDDRjHWBxujO41tVle7glf5kHcQsDDULgqSVpkliLJMtPzZjOKFeCVZBHybTZDEZg5zzg== dependencies: - "@ethersproject/bignumber" "^5.0.10" + "@ethersproject/abstract-provider" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp" "^5.0.3" + "@ethersproject/properties" "^5.0.3" "@ethersproject/address@5.1.0", "@ethersproject/address@^5.1.0": version "5.1.0" @@ -2049,6 +2038,17 @@ "@ethersproject/logger" "^5.1.0" "@ethersproject/rlp" "^5.1.0" +"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.8.tgz#0c551659144a5a7643c6bea337149d410825298f" + integrity sha512-V87DHiZMZR6hmFYmoGaHex0D53UEbZpW75uj8AqPbjYUmi65RB4N2LPRcJXuWuN2R0Y2CxkvW6ArijWychr5FA== + dependencies: + "@ethersproject/bignumber" "^5.0.10" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/address@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.10.tgz#2bc69fdff4408e0570471cd19dee577ab06a10d0" @@ -2060,13 +2060,6 @@ "@ethersproject/logger" "^5.0.8" "@ethersproject/rlp" "^5.0.7" -"@ethersproject/base64@5.0.6", "@ethersproject/base64@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.6.tgz#26311ebf29ea3d0b9c300ccf3e1fdc44b7481516" - integrity sha512-HwrGn8YMiUf7bcdVvB4NJ+eWT0BtEFpDtrYxVXEbR7p/XBSJjwiR7DEggIiRvxbualMKg+EZijQWJ3az2li0uw== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/base64@5.1.0", "@ethersproject/base64@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.1.0.tgz#27240c174d0a4e13f6eae87416fd876caf7f42b6" @@ -2074,6 +2067,13 @@ dependencies: "@ethersproject/bytes" "^5.1.0" +"@ethersproject/base64@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.6.tgz#26311ebf29ea3d0b9c300ccf3e1fdc44b7481516" + integrity sha512-HwrGn8YMiUf7bcdVvB4NJ+eWT0BtEFpDtrYxVXEbR7p/XBSJjwiR7DEggIiRvxbualMKg+EZijQWJ3az2li0uw== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/base64@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.8.tgz#1bc4b4b8c59c1debf972c7164b96c0b8964a20a1" @@ -2081,14 +2081,6 @@ dependencies: "@ethersproject/bytes" "^5.0.9" -"@ethersproject/basex@5.0.6", "@ethersproject/basex@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.6.tgz#ab95c32e48288a3d868726463506641cb1e9fb6b" - integrity sha512-Y/8dowRxBF3bsKkqEp7XN4kcFFQ0o5xxP1YyopfqkXejaOEGiD7ToQdQ0pIZpAJ5GreW56oFOTDDSO6ZcUCNYg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/basex@5.1.0", "@ethersproject/basex@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.1.0.tgz#80da2e86f9da0cb5ccd446b337364d791f6a131c" @@ -2097,6 +2089,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/properties" "^5.1.0" +"@ethersproject/basex@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.6.tgz#ab95c32e48288a3d868726463506641cb1e9fb6b" + integrity sha512-Y/8dowRxBF3bsKkqEp7XN4kcFFQ0o5xxP1YyopfqkXejaOEGiD7ToQdQ0pIZpAJ5GreW56oFOTDDSO6ZcUCNYg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/basex@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.8.tgz#6867fad20047aa29fbd4b880f27894ed04cc7bb8" @@ -2105,15 +2105,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/bignumber@5.0.12", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.0.8": - version "5.0.12" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.12.tgz#fe4a78667d7cb01790f75131147e82d6ea7e7cba" - integrity sha512-mbFZjwthx6vFlHG9owXP/C5QkNvsA+xHpDCkPPPdG2n1dS9AmZAL5DI0InNLid60rQWL3MXpEl19tFmtL7Q9jw== - dependencies: - "@ethersproject/bytes" "^5.0.8" - "@ethersproject/logger" "^5.0.5" - bn.js "^4.4.0" - "@ethersproject/bignumber@5.1.1", "@ethersproject/bignumber@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.1.1.tgz#84812695253ccbc639117f7ac49ee1529b68e637" @@ -2123,6 +2114,15 @@ "@ethersproject/logger" "^5.1.0" bn.js "^4.4.0" +"@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.0.8": + version "5.0.12" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.12.tgz#fe4a78667d7cb01790f75131147e82d6ea7e7cba" + integrity sha512-mbFZjwthx6vFlHG9owXP/C5QkNvsA+xHpDCkPPPdG2n1dS9AmZAL5DI0InNLid60rQWL3MXpEl19tFmtL7Q9jw== + dependencies: + "@ethersproject/bytes" "^5.0.8" + "@ethersproject/logger" "^5.0.5" + bn.js "^4.4.0" + "@ethersproject/bignumber@^5.0.13": version "5.0.14" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.14.tgz#605bc61dcbd4a8c6df8b5a7a77c0210273f3de8a" @@ -2132,13 +2132,6 @@ "@ethersproject/logger" "^5.0.8" bn.js "^4.4.0" -"@ethersproject/bytes@5.0.8", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.8.tgz#cf1246a6a386086e590063a4602b1ffb6cc43db1" - integrity sha512-O+sJNVGzzuy51g+EMK8BegomqNIg+C2RO6vOt0XP6ac4o4saiq69FnjlsrNslaiMFVO7qcEHBsWJ9hx1tj1lMw== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/bytes@5.1.0", "@ethersproject/bytes@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.1.0.tgz#55dfa9c4c21df1b1b538be3accb50fb76d5facfd" @@ -2146,6 +2139,13 @@ dependencies: "@ethersproject/logger" "^5.1.0" +"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.8.tgz#cf1246a6a386086e590063a4602b1ffb6cc43db1" + integrity sha512-O+sJNVGzzuy51g+EMK8BegomqNIg+C2RO6vOt0XP6ac4o4saiq69FnjlsrNslaiMFVO7qcEHBsWJ9hx1tj1lMw== + dependencies: + "@ethersproject/logger" "^5.0.5" + "@ethersproject/bytes@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.10.tgz#aa49afe7491ba24ff76fa33d98677351263f9ba4" @@ -2153,13 +2153,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/constants@5.0.7", "@ethersproject/constants@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.7.tgz#44ff979e5781b17c8c6901266896c3ee745f4e7e" - integrity sha512-cbQK1UpE4hamB52Eg6DLhJoXeQ1plSzekh5Ujir1xdREdwdsZPPXKczkrWqBBR0KyywJZHN/o/hj0w8j7scSGg== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/constants@5.1.0", "@ethersproject/constants@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.1.0.tgz#4e7da6367ea0e9be87585d8b09f3fccf384b1452" @@ -2167,6 +2160,13 @@ dependencies: "@ethersproject/bignumber" "^5.1.0" +"@ethersproject/constants@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.7.tgz#44ff979e5781b17c8c6901266896c3ee745f4e7e" + integrity sha512-cbQK1UpE4hamB52Eg6DLhJoXeQ1plSzekh5Ujir1xdREdwdsZPPXKczkrWqBBR0KyywJZHN/o/hj0w8j7scSGg== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/constants@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.9.tgz#81ac44c3bf612de63eb1c490b314ea1b932cda9f" @@ -2174,21 +2174,6 @@ dependencies: "@ethersproject/bignumber" "^5.0.13" -"@ethersproject/contracts@5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.0.8.tgz#71d3ba16853a1555be2e161a6741df186f81c73b" - integrity sha512-PecBL4vnsrpuks2lzzkRsOts8csJy338HNDKDIivbFmx92BVzh3ohOOv3XsoYPSXIHQvobF959W+aSk3RCZL/g== - dependencies: - "@ethersproject/abi" "^5.0.5" - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/contracts@5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.1.1.tgz#c66cb6d618fcbd73e20a6b808e8f768b2b781d0b" @@ -2229,20 +2214,6 @@ ethers "^5.1.0" scrypt-js "3.0.1" -"@ethersproject/hash@5.0.9", "@ethersproject/hash@^5.0.4": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.9.tgz#81252a848185b584aa600db4a1a68cad9229a4d4" - integrity sha512-e8/i2ZDeGSgCxXT0vocL54+pMbw5oX5fNjb2E3bAIvdkh5kH29M7zz1jHu1QDZnptIuvCZepIbhUH8lxKE2/SQ== - dependencies: - "@ethersproject/abstract-signer" "^5.0.6" - "@ethersproject/address" "^5.0.5" - "@ethersproject/bignumber" "^5.0.8" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.4" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/hash@5.1.0", "@ethersproject/hash@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.1.0.tgz#40961d64837d57f580b7b055e0d74174876d891e" @@ -2271,23 +2242,19 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/hdnode@5.0.7", "@ethersproject/hdnode@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.7.tgz#c7bce94a337ea65e37c46bab09a83e1c1a555d99" - integrity sha512-89tphqlji4y/LNE1cSaMQ3hrBtJ4lO1qWGi2hn54LiHym85DTw+zAKbA8QgmdSdJDLGR/kc9VHaIPQ+vZQ2LkQ== +"@ethersproject/hash@^5.0.4": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.9.tgz#81252a848185b584aa600db4a1a68cad9229a4d4" + integrity sha512-e8/i2ZDeGSgCxXT0vocL54+pMbw5oX5fNjb2E3bAIvdkh5kH29M7zz1jHu1QDZnptIuvCZepIbhUH8lxKE2/SQ== dependencies: - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/abstract-signer" "^5.0.6" + "@ethersproject/address" "^5.0.5" + "@ethersproject/bignumber" "^5.0.8" "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" "@ethersproject/logger" "^5.0.5" - "@ethersproject/pbkdf2" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/properties" "^5.0.4" "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/wordlists" "^5.0.4" "@ethersproject/hdnode@5.1.0", "@ethersproject/hdnode@^5.1.0": version "5.1.0" @@ -2307,6 +2274,24 @@ "@ethersproject/transactions" "^5.1.0" "@ethersproject/wordlists" "^5.1.0" +"@ethersproject/hdnode@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.7.tgz#c7bce94a337ea65e37c46bab09a83e1c1a555d99" + integrity sha512-89tphqlji4y/LNE1cSaMQ3hrBtJ4lO1qWGi2hn54LiHym85DTw+zAKbA8QgmdSdJDLGR/kc9VHaIPQ+vZQ2LkQ== + dependencies: + "@ethersproject/abstract-signer" "^5.0.4" + "@ethersproject/basex" "^5.0.3" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/pbkdf2" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/transactions" "^5.0.5" + "@ethersproject/wordlists" "^5.0.4" + "@ethersproject/hdnode@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.0.9.tgz#ce65b430d3d3f0cd3c8f9dfaaf376b55881d9dba" @@ -2325,25 +2310,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/wordlists" "^5.0.8" -"@ethersproject/json-wallets@5.0.9", "@ethersproject/json-wallets@^5.0.6": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.9.tgz#2e1708c2854c4ab764e35920bd1f44c948b95434" - integrity sha512-EWuFvJd8nu90dkmJwmJddxOYCvFvMkKBsZi8rxTme2XEZsHKOFnybVkoL23u7ZtApuEfTKmVcR2PTwgZwqDsKw== - dependencies: - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hdnode" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/pbkdf2" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - aes-js "3.0.0" - scrypt-js "3.0.1" - "@ethersproject/json-wallets@5.1.0", "@ethersproject/json-wallets@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.1.0.tgz#bba7af2e520e8aea4d3829d80520db5d2e4fb8d2" @@ -2382,13 +2348,24 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.0.6", "@ethersproject/keccak256@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.6.tgz#5b5ba715ef1be86efde5c271f896fa0daf0e1efe" - integrity sha512-eJ4Id/i2rwrf5JXEA7a12bG1phuxjj47mPZgDUbttuNBodhSuZF2nEO5QdpaRjmlphQ8Kt9PNqY/z7lhtJptZg== +"@ethersproject/json-wallets@^5.0.6": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.0.9.tgz#2e1708c2854c4ab764e35920bd1f44c948b95434" + integrity sha512-EWuFvJd8nu90dkmJwmJddxOYCvFvMkKBsZi8rxTme2XEZsHKOFnybVkoL23u7ZtApuEfTKmVcR2PTwgZwqDsKw== dependencies: + "@ethersproject/abstract-signer" "^5.0.4" + "@ethersproject/address" "^5.0.4" "@ethersproject/bytes" "^5.0.4" - js-sha3 "0.5.7" + "@ethersproject/hdnode" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/pbkdf2" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/random" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/transactions" "^5.0.5" + aes-js "3.0.0" + scrypt-js "3.0.1" "@ethersproject/keccak256@5.1.0", "@ethersproject/keccak256@^5.1.0": version "5.1.0" @@ -2398,6 +2375,14 @@ "@ethersproject/bytes" "^5.1.0" js-sha3 "0.5.7" +"@ethersproject/keccak256@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.6.tgz#5b5ba715ef1be86efde5c271f896fa0daf0e1efe" + integrity sha512-eJ4Id/i2rwrf5JXEA7a12bG1phuxjj47mPZgDUbttuNBodhSuZF2nEO5QdpaRjmlphQ8Kt9PNqY/z7lhtJptZg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + js-sha3 "0.5.7" + "@ethersproject/keccak256@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.8.tgz#13aaf69e1c8bd15fc59a2ebd055c0878f2a059c8" @@ -2406,34 +2391,34 @@ "@ethersproject/bytes" "^5.0.9" js-sha3 "0.5.7" -"@ethersproject/logger@5.0.8", "@ethersproject/logger@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.8.tgz#135c1903d35c878265f3cbf2b287042c4c20d5d4" - integrity sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A== - "@ethersproject/logger@5.1.0", "@ethersproject/logger@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.1.0.tgz#4cdeeefac029373349d5818f39c31b82cc6d9bbf" integrity sha512-wtUaD1lBX10HBXjjKV9VHCBnTdUaKQnQ2XSET1ezglqLdPdllNOIlLfhyCRqXm5xwcjExVI5ETokOYfjPtaAlw== +"@ethersproject/logger@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.8.tgz#135c1903d35c878265f3cbf2b287042c4c20d5d4" + integrity sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A== + "@ethersproject/logger@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.9.tgz#0e6a0b3ecc938713016954daf4ac7967467aa763" integrity sha512-kV3Uamv3XOH99Xf3kpIG3ZkS7mBNYcLDM00JSDtNgNB4BihuyxpQzIZPRIDmRi+95Z/R1Bb0X2kUNHa/kJoVrw== -"@ethersproject/networks@5.0.6", "@ethersproject/networks@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.6.tgz#4d6586bbebfde1c027504ebf6dfb783b29c3803a" - integrity sha512-2Cg1N5109zzFOBfkyuPj+FfF7ioqAsRffmybJ2lrsiB5skphIAE72XNSCs4fqktlf+rwSh/5o/UXRjXxvSktZw== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks@5.1.0", "@ethersproject/networks@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.1.0.tgz#f537290cb05aa6dc5e81e910926c04cfd5814bca" integrity sha512-A/NIrIED/G/IgU1XUukOA3WcFRxn2I4O5GxsYGA5nFlIi+UZWdGojs85I1VXkR1gX9eFnDXzjE6OtbgZHjFhIA== dependencies: - "@ethersproject/logger" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + +"@ethersproject/networks@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.6.tgz#4d6586bbebfde1c027504ebf6dfb783b29c3803a" + integrity sha512-2Cg1N5109zzFOBfkyuPj+FfF7ioqAsRffmybJ2lrsiB5skphIAE72XNSCs4fqktlf+rwSh/5o/UXRjXxvSktZw== + dependencies: + "@ethersproject/logger" "^5.0.5" "@ethersproject/networks@^5.0.7": version "5.0.8" @@ -2442,14 +2427,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/pbkdf2@5.0.6", "@ethersproject/pbkdf2@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.6.tgz#105dbfb08cd5fcf33869b42bfdc35a3ebd978cbd" - integrity sha512-CUYciSxR/AaCoKMJk3WUW+BDhR41G3C+O9lOeZ4bR1wDhLKL2Z8p0ciF5XDEiVbmI4CToW6boVKybeVMdngRrg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/pbkdf2@5.1.0", "@ethersproject/pbkdf2@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.1.0.tgz#6b740a85dc780e879338af74856ca2c0d3b24d19" @@ -2458,6 +2435,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/sha2" "^5.1.0" +"@ethersproject/pbkdf2@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.6.tgz#105dbfb08cd5fcf33869b42bfdc35a3ebd978cbd" + integrity sha512-CUYciSxR/AaCoKMJk3WUW+BDhR41G3C+O9lOeZ4bR1wDhLKL2Z8p0ciF5XDEiVbmI4CToW6boVKybeVMdngRrg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/pbkdf2@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.0.8.tgz#06a086b1ac04c75e6846afd6cf6170a49a634411" @@ -2466,13 +2451,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/sha2" "^5.0.7" -"@ethersproject/properties@5.0.6", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.4": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.6.tgz#44d82aaa294816fd63333e7def42426cf0e87b3b" - integrity sha512-a9DUMizYhJ0TbtuDkO9iYlb2CDlpSKqGPDr+amvlZhRspQ6jbl5Eq8jfu4SCcGlcfaTbguJmqGnyOGn1EFt6xA== - dependencies: - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties@5.1.0", "@ethersproject/properties@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.1.0.tgz#9484bd6def16595fc6e4bdc26f29dff4d3f6ac42" @@ -2480,6 +2458,13 @@ dependencies: "@ethersproject/logger" "^5.1.0" +"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.4": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.6.tgz#44d82aaa294816fd63333e7def42426cf0e87b3b" + integrity sha512-a9DUMizYhJ0TbtuDkO9iYlb2CDlpSKqGPDr+amvlZhRspQ6jbl5Eq8jfu4SCcGlcfaTbguJmqGnyOGn1EFt6xA== + dependencies: + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.8.tgz#e45d28d25402c73394873dbf058f856c966cae01" @@ -2487,31 +2472,6 @@ dependencies: "@ethersproject/logger" "^5.0.8" -"@ethersproject/providers@5.0.17": - version "5.0.17" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.17.tgz#f380e7831149e24e7a1c6c9b5fb1d6dfc729d024" - integrity sha512-bJnvs5X7ttU5x2ekGJYG7R3Z+spZawLFfR0IDsbaMDLiCwZOyrgk+VTBU7amSFLT0WUhWFv8WwSUB+AryCQG1Q== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/web" "^5.0.6" - bech32 "1.1.4" - ws "7.2.3" - "@ethersproject/providers@5.1.2": version "5.1.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.1.2.tgz#4e4459698903f911402fe91aa7544eb07f3921ed" @@ -2562,14 +2522,6 @@ bech32 "1.1.4" ws "7.2.3" -"@ethersproject/random@5.0.6", "@ethersproject/random@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.6.tgz#9be80a1065f2b8e6f321dccb3ebeb4886cac9ea4" - integrity sha512-8nsVNaZvZ9OD5NXfzE4mmz8IH/1DYJbAR95xpRxZkIuNmfn6QlMp49ccJYZWGhs6m0Zj2+FXjx3pzXfYlo9/dA== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/random@5.1.0", "@ethersproject/random@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.1.0.tgz#0bdff2554df03ebc5f75689614f2d58ea0d9a71f" @@ -2578,6 +2530,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/random@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.6.tgz#9be80a1065f2b8e6f321dccb3ebeb4886cac9ea4" + integrity sha512-8nsVNaZvZ9OD5NXfzE4mmz8IH/1DYJbAR95xpRxZkIuNmfn6QlMp49ccJYZWGhs6m0Zj2+FXjx3pzXfYlo9/dA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/random@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.0.8.tgz#8d3726be48e95467abce9b23c93adbb1de009dda" @@ -2586,14 +2546,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/logger" "^5.0.8" -"@ethersproject/rlp@5.0.6", "@ethersproject/rlp@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.6.tgz#29f9097348a3c330811997433b7df89ab51cd644" - integrity sha512-M223MTaydfmQSsvqAl0FJZDYFlSqt6cgbhnssLDwqCKYegAHE16vrFyo+eiOapYlt32XAIJm0BXlqSunULzZuQ== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp@5.1.0", "@ethersproject/rlp@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.1.0.tgz#700f4f071c27fa298d3c1d637485fefe919dd084" @@ -2602,6 +2554,14 @@ "@ethersproject/bytes" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/rlp@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.6.tgz#29f9097348a3c330811997433b7df89ab51cd644" + integrity sha512-M223MTaydfmQSsvqAl0FJZDYFlSqt6cgbhnssLDwqCKYegAHE16vrFyo+eiOapYlt32XAIJm0BXlqSunULzZuQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.8.tgz#ff54e206d0ae28640dd054f2bcc7070f06f9dfbe" @@ -2610,15 +2570,6 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/logger" "^5.0.8" -"@ethersproject/sha2@5.0.6", "@ethersproject/sha2@^5.0.3": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.6.tgz#175116dc10b866a0a381f6316d094bcc510bee3c" - integrity sha512-30gypDLkfkP5gE3llqi0jEuRV8m4/nvzeqmqMxiihZ7veFQHqDaGpyFeHzFim+qGeH9fq0lgYjavLvwW69+Fkw== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - hash.js "1.1.3" - "@ethersproject/sha2@5.1.0", "@ethersproject/sha2@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.1.0.tgz#6ca42d1a26884b3e32ffa943fe6494af7211506c" @@ -2628,6 +2579,15 @@ "@ethersproject/logger" "^5.1.0" hash.js "1.1.3" +"@ethersproject/sha2@^5.0.3": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.6.tgz#175116dc10b866a0a381f6316d094bcc510bee3c" + integrity sha512-30gypDLkfkP5gE3llqi0jEuRV8m4/nvzeqmqMxiihZ7veFQHqDaGpyFeHzFim+qGeH9fq0lgYjavLvwW69+Fkw== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + hash.js "1.1.3" + "@ethersproject/sha2@^5.0.7": version "5.0.8" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.0.8.tgz#9903c67e562739d8b312820b0a265b9c9bf35fc3" @@ -2637,16 +2597,6 @@ "@ethersproject/logger" "^5.0.8" hash.js "1.1.3" -"@ethersproject/signing-key@5.0.7", "@ethersproject/signing-key@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.7.tgz#d03bfc5f565efb962bafebf8e6965e70d1c46d31" - integrity sha512-JYndnhFPKH0daPcIjyhi+GMcw3srIHkQ40hGRe6DA0CdGrpMfgyfSYDQ2D8HL2lgR+Xm4SHfEB0qba6+sCyrvg== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - elliptic "6.5.3" - "@ethersproject/signing-key@5.1.0", "@ethersproject/signing-key@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.1.0.tgz#6eddfbddb6826b597b9650e01acf817bf8991b9c" @@ -2658,6 +2608,16 @@ bn.js "^4.4.0" elliptic "6.5.4" +"@ethersproject/signing-key@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.7.tgz#d03bfc5f565efb962bafebf8e6965e70d1c46d31" + integrity sha512-JYndnhFPKH0daPcIjyhi+GMcw3srIHkQ40hGRe6DA0CdGrpMfgyfSYDQ2D8HL2lgR+Xm4SHfEB0qba6+sCyrvg== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + elliptic "6.5.3" + "@ethersproject/signing-key@^5.0.8": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.10.tgz#05e26e04f0aa5360dc78674d7331bacea8fea5c1" @@ -2668,17 +2628,6 @@ "@ethersproject/properties" "^5.0.7" elliptic "6.5.4" -"@ethersproject/solidity@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.0.7.tgz#72a3455f47a454db2dcf363992d42e9045dc7fce" - integrity sha512-dUevKUZ06p/VMLP/+cz4QUV+lA17NixucDJfm0ioWF0B3R0Lf+6wqwPchcqiAXlxkNFGIax7WNLgGMh4CkQ8iw== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/solidity@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.1.0.tgz#095a9c75244edccb26c452c155736d363399b954" @@ -2701,15 +2650,6 @@ "@ethersproject/sha2" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/strings@5.0.7", "@ethersproject/strings@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.7.tgz#8dc68f794c9e2901f3b75e53b2afbcb6b6c15037" - integrity sha512-a+6T80LvmXGMOOWQTZHtGGQEg1z4v8rm8oX70KNs55YtPXI/5J3LBbVf5pyqCKSlmiBw5IaepPvs5XGalRUSZQ== - dependencies: - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/strings@5.1.0", "@ethersproject/strings@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.1.0.tgz#0f95a56c3c8c9d5510a06c241d818779750e2da5" @@ -2719,6 +2659,15 @@ "@ethersproject/constants" "^5.1.0" "@ethersproject/logger" "^5.1.0" +"@ethersproject/strings@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.7.tgz#8dc68f794c9e2901f3b75e53b2afbcb6b6c15037" + integrity sha512-a+6T80LvmXGMOOWQTZHtGGQEg1z4v8rm8oX70KNs55YtPXI/5J3LBbVf5pyqCKSlmiBw5IaepPvs5XGalRUSZQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/strings@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.9.tgz#8e2eb2918b140231e1d1b883d77e43213a8ac280" @@ -2728,21 +2677,6 @@ "@ethersproject/constants" "^5.0.8" "@ethersproject/logger" "^5.0.8" -"@ethersproject/transactions@5.0.8", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.5": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.8.tgz#3b4d7041e13b957a9c4f131e0aea9dae7b6f5a23" - integrity sha512-i7NtOXVzUe+YSU6QufzlRrI2WzHaTmULAKHJv4duIZMLqzehCBXGA9lTpFgFdqGYcQJ7vOtNFC2BB2mSjmuXqg== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" - "@ethersproject/transactions@5.1.1", "@ethersproject/transactions@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.1.1.tgz#5a6bbb25fb062c3cc75eb0db12faefcdd3870813" @@ -2758,6 +2692,21 @@ "@ethersproject/rlp" "^5.1.0" "@ethersproject/signing-key" "^5.1.0" +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.5": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.8.tgz#3b4d7041e13b957a9c4f131e0aea9dae7b6f5a23" + integrity sha512-i7NtOXVzUe+YSU6QufzlRrI2WzHaTmULAKHJv4duIZMLqzehCBXGA9lTpFgFdqGYcQJ7vOtNFC2BB2mSjmuXqg== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/signing-key" "^5.0.4" + "@ethersproject/transactions@^5.0.9": version "5.0.10" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.10.tgz#d50cafd80d27206336f80114bc0f18bc18687331" @@ -2773,15 +2722,6 @@ "@ethersproject/rlp" "^5.0.7" "@ethersproject/signing-key" "^5.0.8" -"@ethersproject/units@5.0.8": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.0.8.tgz#563325b20fe1eceff7b61857711d5e2b3f38fd09" - integrity sha512-3O4MaNHFs05vC5v2ZGqVFVWtO1WyqFejO78M7Qh16njo282aoMlENtVI6cn2B36zOLFXRvYt2pYx6xCG53qKzg== - dependencies: - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/units@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.1.0.tgz#b6ab3430ebc22adc3cb4839516496f167bee3ad5" @@ -2800,27 +2740,6 @@ "@ethersproject/constants" "^5.0.8" "@ethersproject/logger" "^5.0.8" -"@ethersproject/wallet@5.0.9": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.0.9.tgz#976c7d950489c40308d676869d24e59ab7b82ad1" - integrity sha512-GfpQF56PO/945SJq7Wdg5F5U6wkxaDgkAzcgGbCW6Joz8oW8MzKItkvYCzMh+j/8gJMzFncsuqX4zg2gq3J6nQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.4" - "@ethersproject/abstract-signer" "^5.0.4" - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/hdnode" "^5.0.4" - "@ethersproject/json-wallets" "^5.0.6" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/signing-key" "^5.0.4" - "@ethersproject/transactions" "^5.0.5" - "@ethersproject/wordlists" "^5.0.4" - "@ethersproject/wallet@5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.1.0.tgz#134c5816eaeaa586beae9f9ff67891104a2c9a15" @@ -2863,17 +2782,6 @@ "@ethersproject/transactions" "^5.0.9" "@ethersproject/wordlists" "^5.0.8" -"@ethersproject/web@5.0.11", "@ethersproject/web@^5.0.6": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.11.tgz#d47da612b958b4439e415782a53c8f8461522d68" - integrity sha512-x03ihbPoN1S8Gsh9WSwxkYxUIumLi02ZEKJku1C43sxBfe+mdprWyvujzYlpuoRNfWRgNhdRDKMP8JbG6MwNGA== - dependencies: - "@ethersproject/base64" "^5.0.3" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/web@5.1.0", "@ethersproject/web@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.1.0.tgz#ed56bbe4e3d9a8ffe3b2ed882da5c62d3551381b" @@ -2896,13 +2804,13 @@ "@ethersproject/properties" "^5.0.7" "@ethersproject/strings" "^5.0.8" -"@ethersproject/wordlists@5.0.7", "@ethersproject/wordlists@^5.0.4": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.7.tgz#4e5ad38cfbef746b196a3290c0d41696eb7ab468" - integrity sha512-ZjQtYxm41FmHfYgpkdQG++EDcBPQWv9O6FfP6NndYRVaXaQZh6eq3sy7HQP8zCZ8dznKgy6ZyKECS8qdvnGHwA== +"@ethersproject/web@^5.0.6": + version "5.0.11" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.11.tgz#d47da612b958b4439e415782a53c8f8461522d68" + integrity sha512-x03ihbPoN1S8Gsh9WSwxkYxUIumLi02ZEKJku1C43sxBfe+mdprWyvujzYlpuoRNfWRgNhdRDKMP8JbG6MwNGA== dependencies: + "@ethersproject/base64" "^5.0.3" "@ethersproject/bytes" "^5.0.4" - "@ethersproject/hash" "^5.0.4" "@ethersproject/logger" "^5.0.5" "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" @@ -2918,6 +2826,17 @@ "@ethersproject/properties" "^5.1.0" "@ethersproject/strings" "^5.1.0" +"@ethersproject/wordlists@^5.0.4": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.7.tgz#4e5ad38cfbef746b196a3290c0d41696eb7ab468" + integrity sha512-ZjQtYxm41FmHfYgpkdQG++EDcBPQWv9O6FfP6NndYRVaXaQZh6eq3sy7HQP8zCZ8dznKgy6ZyKECS8qdvnGHwA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/wordlists@^5.0.8": version "5.0.9" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.0.9.tgz#f16cc0b317637c3ae9c689ebd7bc2cbbffadd013" @@ -4758,14 +4677,6 @@ resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.7.tgz#613957d900fab9ff84c8dfb24fa3eef0c2a40896" integrity sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg== -"@types/hoist-non-react-statics@*": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== - dependencies: - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - "@types/html-minifier-terser@^5.0.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880" @@ -4816,11 +4727,6 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== -"@types/jwt-decode@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@types/jwt-decode/-/jwt-decode-2.2.1.tgz#afdf5c527fcfccbd4009b5fd02d1e18241f2d2f2" - integrity sha512-aWw2YTtAdT7CskFyxEX2K21/zSDStuf/ikI3yBqmwpwJF0pS+/IX5DWv+1UFffZIbruP6cnT9/LAJV1gFwAT1A== - "@types/lodash@^4.14.165": version "4.14.165" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f" @@ -4937,13 +4843,6 @@ dependencies: "@types/react" "^16" -"@types/react-native@*": - version "0.63.8" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.8.tgz#73ec087122c64c309eeaf150b565b8d755f0fb1f" - integrity sha512-QRwGFRTyGafRVTUS+0GYyJrlpmS3boyBaFI0ULSc+mh/lQNxrzbdQvoL2k5X7+t9hxyqA4dTQAlP6l0ir/fNJQ== - dependencies: - "@types/react" "*" - "@types/react-pdf@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@types/react-pdf/-/react-pdf-5.0.0.tgz#cb574e08929944c0b60fcce8cc569da1c94c9cc4" @@ -5070,16 +4969,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/styled-components@^5.1.4": - version "5.1.4" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.4.tgz#11f167dbde268635c66adc89b5a5db2e69d75384" - integrity sha512-78f5Zuy0v/LTQNOYfpH+CINHpchzMMmAt9amY2YNtSgsk1TmlKm8L2Wijss/mtTrsUAVTm2CdGB8VOM65vA8xg== - dependencies: - "@types/hoist-non-react-statics" "*" - "@types/react" "*" - "@types/react-native" "*" - csstype "^3.0.2" - "@types/tapable@*", "@types/tapable@^1.0.5": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" @@ -6297,13 +6186,6 @@ axios@^0.18.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== - dependencies: - follow-redirects "^1.10.0" - axobject-query@^2.0.2: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -6715,16 +6597,6 @@ babel-plugin-react-docgen@^4.0.0: react-docgen "^5.0.0" recast "^0.14.7" -"babel-plugin-styled-components@>= 1", babel-plugin-styled-components@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9" - integrity sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA== - 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-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" @@ -7987,11 +7859,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -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= - can-use-dom@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/can-use-dom/-/can-use-dom-0.1.0.tgz#22cc4a34a0abc43950f42c6411024a3f6366b45a" @@ -8824,11 +8691,6 @@ 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" @@ -8939,15 +8801,6 @@ css-selector-tokenizer@^0.7.0: cssesc "^3.0.0" fastparse "^1.1.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" @@ -10970,42 +10823,6 @@ ethers@5.0.13: "@ethersproject/web" "^5.0.6" "@ethersproject/wordlists" "^5.0.4" -ethers@5.0.24, ethers@^5.0.24: - version "5.0.24" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.24.tgz#fbb8e4d35070d134f2eb846c07500b8c0eaef6d3" - integrity sha512-77CEtVC88fJGEhxGXRvQqAEH6e2A+ZFiv2FBT6ikXndlty5sw6vMatAhg1v+w3CaaGZOf1CP81jl4Mc8Zrj08A== - dependencies: - "@ethersproject/abi" "5.0.9" - "@ethersproject/abstract-provider" "5.0.7" - "@ethersproject/abstract-signer" "5.0.9" - "@ethersproject/address" "5.0.8" - "@ethersproject/base64" "5.0.6" - "@ethersproject/basex" "5.0.6" - "@ethersproject/bignumber" "5.0.12" - "@ethersproject/bytes" "5.0.8" - "@ethersproject/constants" "5.0.7" - "@ethersproject/contracts" "5.0.8" - "@ethersproject/hash" "5.0.9" - "@ethersproject/hdnode" "5.0.7" - "@ethersproject/json-wallets" "5.0.9" - "@ethersproject/keccak256" "5.0.6" - "@ethersproject/logger" "5.0.8" - "@ethersproject/networks" "5.0.6" - "@ethersproject/pbkdf2" "5.0.6" - "@ethersproject/properties" "5.0.6" - "@ethersproject/providers" "5.0.17" - "@ethersproject/random" "5.0.6" - "@ethersproject/rlp" "5.0.6" - "@ethersproject/sha2" "5.0.6" - "@ethersproject/signing-key" "5.0.7" - "@ethersproject/solidity" "5.0.7" - "@ethersproject/strings" "5.0.7" - "@ethersproject/transactions" "5.0.8" - "@ethersproject/units" "5.0.8" - "@ethersproject/wallet" "5.0.9" - "@ethersproject/web" "5.0.11" - "@ethersproject/wordlists" "5.0.7" - ethers@^5.1.0, ethers@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.1.4.tgz#8ae973705ed962f8f41dc59693704002a38dd18b" @@ -11639,7 +11456,7 @@ follow-redirects@1.5.10: dependencies: debug "=3.1.0" -follow-redirects@^1.0.0, follow-redirects@^1.10.0: +follow-redirects@^1.0.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== @@ -12431,7 +12248,7 @@ hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: 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== @@ -20214,22 +20031,6 @@ style-loader@^1.0.0: loader-utils "^2.0.0" schema-utils "^2.6.6" -styled-components@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a" - integrity sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ== - 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" @@ -20267,7 +20068,7 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -21189,11 +20990,6 @@ uuid@^3.3.2, uuid@^3.4.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" - integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== - uuidv4@6.0.6: version "6.0.6" resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.0.6.tgz#6966e8dd15760528a0f954843d24fdfdfda5a329" From 80f46ed2d75d0b08cb0aa7db7f59829271850a81 Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Thu, 27 May 2021 19:57:00 +0200 Subject: [PATCH 06/11] fix api client issues --- packages/files-ui/package.json | 3 +- packages/storage-ui/package.json | 3 +- packages/storage-ui/src/App.tsx | 6 +- .../src/Components/Layouts/AppHeader.tsx | 9 +- .../src/Components/Layouts/AppNav.tsx | 4 +- .../src/Components/Layouts/AppWrapper.tsx | 6 +- .../Modules/LoginModule/InitialScreen.tsx | 19 ++- .../src/Components/Pages/OAuthCallback.tsx | 50 ++++++++ .../src/Components/StorageRoutes.tsx | 4 +- ...esApiContext.tsx => StorageApiContext.tsx} | 113 +++++++----------- .../src/Contexts/StorageContext.tsx | 8 +- yarn.lock | 20 +++- 12 files changed, 141 insertions(+), 104 deletions(-) create mode 100644 packages/storage-ui/src/Components/Pages/OAuthCallback.tsx rename packages/storage-ui/src/Contexts/{FilesApiContext.tsx => StorageApiContext.tsx} (82%) diff --git a/packages/files-ui/package.json b/packages/files-ui/package.json index 80d82a85bb..81c258afbd 100644 --- a/packages/files-ui/package.json +++ b/packages/files-ui/package.json @@ -6,7 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client": "1.11.4", + "@chainsafe/files-api-client": "1.11.3", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -16,6 +16,7 @@ "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", "@types/uuid": "^8.3.0", + "axios": "0.21.1", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/storage-ui/package.json b/packages/storage-ui/package.json index 822de85fb4..a57246a865 100644 --- a/packages/storage-ui/package.json +++ b/packages/storage-ui/package.json @@ -6,7 +6,7 @@ "@babel/core": "^7.12.10", "@babel/runtime": "^7.0.0", "@chainsafe/browser-storage-hooks": "^1.0.1", - "@chainsafe/files-api-client":"1.11.4", + "@chainsafe/files-api-client":"1.11.3", "@chainsafe/web3-context": "1.1.4", "@lingui/core": "^3.7.2", "@lingui/react": "^3.7.2", @@ -15,6 +15,7 @@ "@tkey/security-questions": "3.12.0", "@tkey/web-storage": "3.12.0", "@toruslabs/torus-direct-web-sdk": "4.10.0", + "axios": "0.21.1", "babel-loader": "8.1.0", "babel-plugin-macros": "^2.8.0", "babel-preset-env": "^1.7.0", diff --git a/packages/storage-ui/src/App.tsx b/packages/storage-ui/src/App.tsx index a5ff25fcfa..b9b6b1ed4b 100644 --- a/packages/storage-ui/src/App.tsx +++ b/packages/storage-ui/src/App.tsx @@ -11,7 +11,7 @@ import { LanguageProvider } from "./Contexts/LanguageContext" import { lightTheme } from "./Themes/LightTheme" import { darkTheme } from "./Themes/DarkTheme" import { useLocalStorage } from "@chainsafe/browser-storage-hooks" -import { FilesApiProvider } from "./Contexts/FilesApiContext" +import { StorageApiProvider } from "./Contexts/StorageApiContext" import { StorageProvider } from "./Contexts/StorageContext" if ( @@ -109,7 +109,7 @@ const App: React.FC<{}> = () => { checkNetwork={false} cacheWalletSelection={canUseLocalStorage} > - @@ -120,7 +120,7 @@ const App: React.FC<{}> = () => { - + diff --git a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx index b811457445..c23ccf8b48 100644 --- a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx @@ -13,7 +13,7 @@ import { import { ROUTE_LINKS } from "../StorageRoutes" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorageApi } from "../../Contexts/StorageApiContext" const useStyles = makeStyles( ({ palette, animation, breakpoints, constants, zIndex }: CSFTheme) => { @@ -152,8 +152,7 @@ interface IAppHeader { const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { const { desktop } = useThemeSwitcher() const classes = useStyles() - const { isLoggedIn, secured, logout } = useFilesApi() - const [searchActive, setSearchActive] = useState(false) + const { isLoggedIn, logout } = useStorageApi() const { history } = useHistory() const signOut = useCallback(async () => { @@ -199,8 +198,6 @@ const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { ) : ( <> - {!searchActive && ( - <> setNavOpen(!navOpen)} variant={navOpen ? "active" : "default"} @@ -220,8 +217,6 @@ const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => {   beta - - )} )} diff --git a/packages/storage-ui/src/Components/Layouts/AppNav.tsx b/packages/storage-ui/src/Components/Layouts/AppNav.tsx index 8b0fbc3bb9..8755af9447 100644 --- a/packages/storage-ui/src/Components/Layouts/AppNav.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppNav.tsx @@ -20,7 +20,7 @@ import { ROUTE_LINKS } from "../StorageRoutes" import { FREE_PLAN_LIMIT } from "../../Utils/Constants" import { Trans } from "@lingui/macro" import { CSFTheme } from "../../Themes/types" -import { useFilesApi } from "../../Contexts/FilesApiContext" +import { useStorageApi } from "../../Contexts/StorageApiContext" import { useStorage } from "../../Contexts/StorageContext" const useStyles = makeStyles( @@ -213,7 +213,7 @@ const AppNav: React.FC = ({ navOpen, setNavOpen }: IAppNav) => { const { spaceUsed } = useStorage() - const { isLoggedIn, logout } = useFilesApi() + const { isLoggedIn, logout } = useStorageApi() const signOut = useCallback(() => { diff --git a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx index 423b6d9fb6..8b0d7a33fe 100644 --- a/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppWrapper.tsx @@ -1,8 +1,8 @@ -import { useFilesApi } from "../../Contexts/FilesApiContext" import { createStyles, ITheme, makeStyles } from "@chainsafe/common-theme" import React, { useState } from "react" import { ReactNode } from "react" import clsx from "clsx" +import { useStorageApi } from "../../Contexts/StorageApiContext" import { CssBaseline } from "@chainsafe/common-components" import AppHeader from "./AppHeader" import AppNav from "./AppNav" @@ -58,7 +58,7 @@ const useStyles = makeStyles( const AppWrapper: React.FC = ({ children }: IAppWrapper) => { const classes = useStyles() const [navOpen, setNavOpen] = useState(false) - const { isLoggedIn, secured } = useFilesApi() + const { isLoggedIn } = useStorageApi() return (

@@ -69,7 +69,7 @@ const AppWrapper: React.FC = ({ children }: IAppWrapper) => { />
{ - const { selectWallet, resetAndSelectWallet } = useFilesApi() + const { selectWallet, resetAndSelectWallet, getProviderUrl, web3Login } = useStorageApi() const { desktop } = useThemeSwitcher() const { wallet } = useWeb3() const classes = useStyles() - const [loginMode, setLoginMode] = useState<"web3" | LOGIN_TYPE | undefined>() + const [loginMode, setLoginMode] = useState() const [error, setError] = useState() const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" const [isConnecting, setIsConnecting] = useState(false) @@ -172,7 +172,18 @@ const InitialScreen = ({ className }: IInitialScreen) => { setIsConnecting(true) setLoginMode(loginType) try { - // await login(loginType) + switch(loginType) { + case 'facebook': + case 'github': + case 'google': { + const oauthUrl = await getProviderUrl(loginType) + window.location.href = oauthUrl + break + } + case 'web3':{ + await web3Login() + } + } } catch (error) { let errorMessage = t`There was an error authenticating` console.log(error) diff --git a/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx new file mode 100644 index 0000000000..362b7709cf --- /dev/null +++ b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx @@ -0,0 +1,50 @@ +import React, { useEffect } from "react" +import { useLocation, useParams } from "@chainsafe/common-components" +import { useStorageApi } from "../../Contexts/StorageApiContext" + +function useQueryParams() { + return new URLSearchParams(useLocation().search) +} + +const OAuthCallback: React.FC = () => { + const queryParams = useQueryParams() + const { loginWithGithub, loginWithGoogle, loginWithFacebook } = useStorageApi() + const { provider } = useParams<{ provider: string }>() + + useEffect(() => { + const loginWithProvider = async () => { + try { + const code = queryParams.get("code") + const state = queryParams.get("state") + if (code && state) { + switch (provider) { + case "github": { + await loginWithGithub(code, state) + break + } + case "google": { + const scope = queryParams.get("scope") || undefined + const authUser = queryParams.get("authUser") || undefined + const hd = queryParams.get("hd") || undefined + const prompt = queryParams.get("prompt") || undefined + + await loginWithGoogle(code, state, scope, authUser, hd, prompt) + break + } + case "facebook": { + await loginWithFacebook(code, state) + break + } + default: + } + } + } catch {} + } + + loginWithProvider() + }, [provider, queryParams]) + + return null +} + +export default OAuthCallback \ No newline at end of file diff --git a/packages/storage-ui/src/Components/StorageRoutes.tsx b/packages/storage-ui/src/Components/StorageRoutes.tsx index d950084f26..51581fe87d 100644 --- a/packages/storage-ui/src/Components/StorageRoutes.tsx +++ b/packages/storage-ui/src/Components/StorageRoutes.tsx @@ -1,7 +1,7 @@ import React from "react" import { Switch, ConditionalRoute } from "@chainsafe/common-components" import LoginPage from "./Pages/LoginPage" -import { useFilesApi } from "../Contexts/FilesApiContext" +import { useStorageApi } from "../Contexts/StorageApiContext" import PinsPage from "./Pages/PinsPage" export const ROUTE_LINKS = { @@ -16,7 +16,7 @@ export const SETTINGS_PATHS = ["profile", "plan", "security"] as const export type SettingsPath = typeof SETTINGS_PATHS[number] const FilesRoutes = () => { - const { isLoggedIn } = useFilesApi() + const { isLoggedIn } = useStorageApi() return ( diff --git a/packages/storage-ui/src/Contexts/FilesApiContext.tsx b/packages/storage-ui/src/Contexts/StorageApiContext.tsx similarity index 82% rename from packages/storage-ui/src/Contexts/FilesApiContext.tsx rename to packages/storage-ui/src/Contexts/StorageApiContext.tsx index ca668139a9..bfee93ca5f 100644 --- a/packages/storage-ui/src/Contexts/FilesApiContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageApiContext.tsx @@ -4,20 +4,19 @@ import { useState, useEffect, useMemo, useCallback } from "react" import { IFilesApiClient, FilesApiClient, Token, IdentityProvider, OAuthIdentityToken } from "@chainsafe/files-api-client" import jwtDecode from "jwt-decode" import axios from "axios" -import { decryptFile } from "../Utils/encryption" import { useLocalStorage, useSessionStorage } from "@chainsafe/browser-storage-hooks" export type { IdentityProvider as OAuthProvider } const tokenStorageKey = "csf.refreshToken" const isReturningUserStorageKey = "csf.isReturningUser" -type FilesApiContextProps = { +type StorageApiContextProps = { apiUrl?: string withLocalStorage?: boolean children: React.ReactNode | React.ReactNode[] } -type FilesApiContext = { +type StorageApiContext = { filesApiClient: IFilesApiClient isLoggedIn: boolean | undefined secured: boolean | undefined @@ -35,15 +34,16 @@ type FilesApiContext = { prompt: string | undefined, ) => Promise loginWithFacebook: (code: string, state: string) => Promise + web3Login(): Promise logout: () => void } -const FilesApiContext = React.createContext(undefined) +const StorageApiContext = React.createContext(undefined) -const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesApiContextProps) => { +const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: StorageApiContextProps) => { const maintenanceMode = process.env.REACT_APP_MAINTENANCE_MODE === "true" - const { wallet, onboard, checkIsReady, isReady } = useWeb3() + const { wallet, onboard, checkIsReady, isReady, provider } = useWeb3() const { localStorageRemove, localStorageGet, localStorageSet } = useLocalStorage() const { sessionStorageRemove, sessionStorageGet, sessionStorageSet } = useSessionStorage() @@ -89,6 +89,7 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp useEffect(() => { const initializeApiClient = async () => { + debugger const axiosInstance = axios.create({ // Disable the internal Axios JSON de serialization as this is handled by the client transformResponse: [] @@ -179,31 +180,6 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp } } - const thresholdKeyLogin = async ( - signature: string, - identityToken: string, - publicKey: string - ) => { - if (maintenanceMode) { - throw new Error("App is undergoing maintenance") - } - try { - const { - access_token, - refresh_token - } = await filesApiClient.verifyServiceIdentityToken({ - signature: signature, - public_key: publicKey, - service_identity_token: identityToken - }) - setTokensAndSave(access_token, refresh_token) - setReturningUser() - return Promise.resolve() - } catch (error) { - return Promise.reject(error) - } - } - useEffect(() => { if (refreshToken && refreshToken.token) { try { @@ -315,59 +291,49 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp } } - const logout = () => { - setAccessToken(undefined) - setRefreshToken(undefined) - setDecodedRefreshToken(undefined) - filesApiClient.setToken("") - localStorageRemove(tokenStorageKey) - !withLocalStorage && sessionStorageRemove(tokenStorageKey) - } + const web3Login = async () => { + if (!provider) return Promise.reject("No wallet is selected") - const secureThresholdKeyAccount = async (encryptedKey: string) => { + if (!isReady) { + const connected = await checkIsReady() + if (!connected) return Promise.reject("You need to allow the connection") + } + const signer = provider.getSigner() try { - if (decodedRefreshToken && refreshToken) { - await filesApiClient.secure({ - encryption_key: encryptedKey - }) + debugger + const { token } = await filesApiClient.getWeb3Token() + if (token) { + const signature = await signer.signMessage(token) + const address = await signer.getAddress() const { access_token, - refresh_token - } = await filesApiClient.getRefreshToken({ - refresh: refreshToken.token + refresh_token, + } = await filesApiClient.postWeb3Token({ + signature: signature, + token: token, + public_address: address, }) - setTokensAndSave(access_token, refresh_token) - return true - } else { - return false + setReturningUser() + return Promise.resolve() } } catch (error) { - return false + return Promise.reject("There was an error logging in.") } } - const validateMasterPassword = async ( - candidatePassword: string - ): Promise => { - if (!decodedRefreshToken || !decodedRefreshToken.mps) return false - try { - const toDecryptArray = Buffer.from(decodedRefreshToken.mps, "base64") - const decrypted = await decryptFile(toDecryptArray, candidatePassword) - if (decrypted) { - const decryptedUuid = new TextDecoder().decode(decrypted) - return decodedRefreshToken.uuid === decryptedUuid - } else { - return false - } - } catch (error) { - return false - } + const logout = () => { + setAccessToken(undefined) + setRefreshToken(undefined) + setDecodedRefreshToken(undefined) + filesApiClient.setToken("") + localStorageRemove(tokenStorageKey) + !withLocalStorage && sessionStorageRemove(tokenStorageKey) } return ( - {children} - + ) } -const useFilesApi = () => { - const context = React.useContext(FilesApiContext) +const useStorageApi = () => { + const context = React.useContext(StorageApiContext) if (context === undefined) { throw new Error("useAuth must be used within a AuthProvider") } return context } -export { FilesApiProvider, useFilesApi } +export { StorageApiProvider, useStorageApi } diff --git a/packages/storage-ui/src/Contexts/StorageContext.tsx b/packages/storage-ui/src/Contexts/StorageContext.tsx index ad9a06ecf2..332a63d2af 100644 --- a/packages/storage-ui/src/Contexts/StorageContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageContext.tsx @@ -13,7 +13,7 @@ import { downloadsInProgressReducer, uploadsInProgressReducer } from "./FilesRed import { CancelToken } from "axios" import { t } from "@lingui/macro" import { useBeforeunload } from "react-beforeunload" -import { useFilesApi } from "./FilesApiContext" +import { useStorageApi } from "./StorageApiContext" type StorageContextProps = { children: React.ReactNode | React.ReactNode[] @@ -75,7 +75,7 @@ const StorageProvider = ({ children }: StorageContextProps) => { const { filesApiClient, isLoggedIn - } = useFilesApi() + } = useStorageApi() const [spaceUsed, setSpaceUsed] = useState(0) const [pins, setPins] = useState([]) @@ -87,8 +87,8 @@ const StorageProvider = ({ children }: StorageContextProps) => { }, [filesApiClient]) useEffect(() => { - refreshPins() - }, [refreshPins]) + isLoggedIn && refreshPins() + }, [isLoggedIn, refreshPins]) // Space used counter useEffect(() => { diff --git a/yarn.lock b/yarn.lock index 9e258911cd..c9c7aae820 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1664,10 +1664,10 @@ resolved "https://registry.yarnpkg.com/@chainsafe/browser-storage-hooks/-/browser-storage-hooks-1.0.1.tgz#26d32cde1999914db755a631e2643823c54959f7" integrity sha512-Q4b5gQAZnsRXKeADspd5isqfwwhhXjDk70y++YadufA6EZ3tf340oW0OVszp74KaGEw+CAYFGQR4X7bzpZ3x9Q== -"@chainsafe/files-api-client@1.11.4": - version "1.11.4" - resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.4/02f01962de33e57a6622a2c59b38f4716b48f7cd2fe567984033cf65a7364b7f#68d97dd382b998988816ac6943072356b96ea3e9" - integrity sha512-3VkToIUl2rKxmxkdM1pUFGNGz+Ngsd2P2CIXsAGRDhn56zEhsvhujythy4/JTrgeiCfPgo5C+ONPCRi7YIVu6g== +"@chainsafe/files-api-client@1.11.3": + version "1.11.3" + resolved "https://npm.pkg.github.com/download/@chainsafe/files-api-client/1.11.3/2817fd5c98430022620c5780b8f250486c24a0c2ef3b50ee64a4487df1a7a798#64a2123619c77eac61fbae588496cb5777eb1207" + integrity sha512-nBQwpG6t0W7jjcUOaRwhb3VDG7FnAKssU21rBGedXYEuGn+CeOUM5bR3ERqoB22i7tVFEZjiY0AJhoGo2YxIGA== "@chainsafe/web3-context@1.1.4": version "1.1.4" @@ -6178,6 +6178,13 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + axios@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" @@ -11461,6 +11468,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== +follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + for-each@~0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" From 8ee681706bdc1623c9d51ff8e2fb32cc7111f843 Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Tue, 1 Jun 2021 22:44:29 +0200 Subject: [PATCH 07/11] remove tests --- .../cypress/integration/file-management.ts | 26 ---------------- .../cypress/integration/settings.ts | 30 ------------------- 2 files changed, 56 deletions(-) delete mode 100644 packages/storage-ui/cypress/integration/file-management.ts delete mode 100644 packages/storage-ui/cypress/integration/settings.ts diff --git a/packages/storage-ui/cypress/integration/file-management.ts b/packages/storage-ui/cypress/integration/file-management.ts deleted file mode 100644 index 8ec91cffb6..0000000000 --- a/packages/storage-ui/cypress/integration/file-management.ts +++ /dev/null @@ -1,26 +0,0 @@ -describe("File management", () => { - it("can add files and cancel", () => { - cy.web3Login() - cy.get("[data-cy=upload-modal-button").click() - cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") - cy.get(".scrollbar li").should("have.length", 1) - cy.get("[data-cy=upload-cancel-button").click() - cy.get("[data-cy=files-app-header").should("be.visible") - }) - - it("can add/remove files and upload", () => { - cy.web3Login({ clearCSFBucket: true }) - cy.get("[data-cy=upload-modal-button").click() - cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") - cy.get(".scrollbar li").should("have.length", 1) - cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/logo.png") - cy.get(".scrollbar li").should("have.length", 2) - cy.get(".removeFileIcon").first().click() - cy.get(".scrollbar li").should("have.length", 1) - cy.get("[data-cy=upload-file-form] input").attachFile("../fixtures/uploadedFiles/text-file.txt") - cy.get(".scrollbar li").should("have.length", 2) - cy.get("[data-cy=upload-ok-button").click() - cy.get("[data-cy=files-app-header").should("be.visible") - cy.get("[data-cy=file-item-row]").should("have.length", 2) - }) -}) diff --git a/packages/storage-ui/cypress/integration/settings.ts b/packages/storage-ui/cypress/integration/settings.ts deleted file mode 100644 index 755944da7e..0000000000 --- a/packages/storage-ui/cypress/integration/settings.ts +++ /dev/null @@ -1,30 +0,0 @@ -describe("Settings", () => { - it("can navigate to the settings profile page", () => { - cy.web3Login() - cy.get("[data-cy=settings-nav]").click() - cy.get("[data-cy=settings-profile-header").should("be.visible") - cy.url().should("include", "/settings") - cy.get(".profile").click() - cy.url().should("include", "/settings/profile") - cy.get("[data-cy=settings-profile-header]").should("be.visible") - cy.get(".security").click() - cy.url().should("include", "/settings/security") - cy.get("[data-cy=settings-security-header").should("be.visible") - }) - - it("can navigate to the settings security page on a phone", () => { - cy.viewport("iphone-6") - cy.web3Login() - cy.get(".hamburger-menu").click() - cy.get("[data-cy=settings-nav]").click() - cy.get("[data-cy=settings-profile-header]").should("not.exist") - cy.url().should("include", "/settings") - cy.get(".profile").click() - cy.url().should("include", "/settings/profile") - cy.get("[data-cy=settings-profile-header").should("be.visible") - cy.go("back") - cy.get(".security").click() - cy.url().should("include", "/settings/security") - cy.get("[data-cy=settings-security-header").should("be.visible") - }) -}) From 90e5adcb3bc1b88549d7a1999290875830757dcd Mon Sep 17 00:00:00 2001 From: Michael Yankelev <12774278+FSM1@users.noreply.github.com> Date: Wed, 2 Jun 2021 08:55:09 +1200 Subject: [PATCH 08/11] Apply suggestions from code review Co-authored-by: Tanmoy Basak Anjan --- packages/storage-ui/README.md | 2 +- packages/storage-ui/public/index.html | 2 +- packages/storage-ui/src/Contexts/StorageApiContext.tsx | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/storage-ui/README.md b/packages/storage-ui/README.md index 6c42e1b7d2..f6d282b968 100644 --- a/packages/storage-ui/README.md +++ b/packages/storage-ui/README.md @@ -1,4 +1,4 @@ -# ChainSafe Files UI Repo +# ChainSafe Storage UI Repo ![Dev](https://github.com/imploy/files-ui/workflows/Dev/badge.svg?branch=dev) [![Netlify Status](https://api.netlify.com/api/v1/badges/cb6afc46-ec5d-4cac-91c2-dbd0d866b89a/deploy-status)](https://app.netlify.com/sites/angry-lewin-719dd6/deploys) diff --git a/packages/storage-ui/public/index.html b/packages/storage-ui/public/index.html index 98d6df81a3..5f32562c3e 100644 --- a/packages/storage-ui/public/index.html +++ b/packages/storage-ui/public/index.html @@ -39,7 +39,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - ChainSafe Files + ChainSafe Storage diff --git a/packages/storage-ui/src/Contexts/StorageApiContext.tsx b/packages/storage-ui/src/Contexts/StorageApiContext.tsx index bfee93ca5f..79f19b6149 100644 --- a/packages/storage-ui/src/Contexts/StorageApiContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageApiContext.tsx @@ -89,7 +89,6 @@ const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: Stora useEffect(() => { const initializeApiClient = async () => { - debugger const axiosInstance = axios.create({ // Disable the internal Axios JSON de serialization as this is handled by the client transformResponse: [] @@ -363,4 +362,3 @@ const useStorageApi = () => { } export { StorageApiProvider, useStorageApi } - From 3b43efdacf18ee733518fd45822cf437f4cff8b5 Mon Sep 17 00:00:00 2001 From: Michael Yankelev <12774278+FSM1@users.noreply.github.com> Date: Wed, 2 Jun 2021 08:56:08 +1200 Subject: [PATCH 09/11] Update packages/storage-ui/src/Contexts/StorageApiContext.tsx Co-authored-by: Tanmoy Basak Anjan --- packages/storage-ui/src/Contexts/StorageApiContext.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/storage-ui/src/Contexts/StorageApiContext.tsx b/packages/storage-ui/src/Contexts/StorageApiContext.tsx index 79f19b6149..4a72f344a7 100644 --- a/packages/storage-ui/src/Contexts/StorageApiContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageApiContext.tsx @@ -299,7 +299,6 @@ const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: Stora } const signer = provider.getSigner() try { - debugger const { token } = await filesApiClient.getWeb3Token() if (token) { From 49dc605dafb60a4e0bcba7f12d8cb153d1d1ce9d Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Wed, 2 Jun 2021 15:54:46 +0200 Subject: [PATCH 10/11] make eslint :D again --- packages/storage-ui/src/App.tsx | 1 - .../src/Components/Layouts/AppHeader.tsx | 36 +++++++++--------- .../src/Components/Layouts/AppNav.tsx | 2 - .../Modules/LoginModule/InitialScreen.tsx | 21 +++++----- .../src/Components/Pages/OAuthCallback.tsx | 38 +++++++++---------- .../src/Components/Pages/PinsPage.tsx | 3 +- .../src/Contexts/StorageApiContext.tsx | 6 +-- 7 files changed, 51 insertions(+), 56 deletions(-) diff --git a/packages/storage-ui/src/App.tsx b/packages/storage-ui/src/App.tsx index b9b6b1ed4b..434fc4c257 100644 --- a/packages/storage-ui/src/App.tsx +++ b/packages/storage-ui/src/App.tsx @@ -61,7 +61,6 @@ const App: React.FC<{}> = () => { const hotjarId = process.env.REACT_APP_HOTJAR_ID const apiUrl = process.env.REACT_APP_API_URL || "https://stage.imploy.site/api/v1" // This will default to testnet unless mainnet is specifically set in the ENV - const directAuthNetwork = (process.env.REACT_APP_DIRECT_AUTH_NETWORK === "mainnet") ? "mainnet" : "testnet" useEffect(() => { if (hotjarId && process.env.NODE_ENV === "production") { diff --git a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx index c23ccf8b48..2d37c6f363 100644 --- a/packages/storage-ui/src/Components/Layouts/AppHeader.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppHeader.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useState } from "react" +import React, { useCallback } from "react" import { createStyles, makeStyles, useThemeSwitcher } from "@chainsafe/common-theme" import clsx from "clsx" import { @@ -198,25 +198,25 @@ const AppHeader = ({ navOpen, setNavOpen }: IAppHeader) => { ) : ( <> - setNavOpen(!navOpen)} - variant={navOpen ? "active" : "default"} - className={clsx(classes.hamburgerMenu, "hamburger-menu")} - /> - - - + setNavOpen(!navOpen)} + variant={navOpen ? "active" : "default"} + className={clsx(classes.hamburgerMenu, "hamburger-menu")} + /> + + + Files - +   - beta - + beta + )} diff --git a/packages/storage-ui/src/Components/Layouts/AppNav.tsx b/packages/storage-ui/src/Components/Layouts/AppNav.tsx index 8755af9447..f767aeb649 100644 --- a/packages/storage-ui/src/Components/Layouts/AppNav.tsx +++ b/packages/storage-ui/src/Components/Layouts/AppNav.tsx @@ -10,10 +10,8 @@ import { Typography, ChainsafeFilesLogo, DatabaseSvg, - SettingSvg, PowerDownSvg, ProgressBar, - Button, formatBytes, DeleteSvg } from "@chainsafe/common-components" import { ROUTE_LINKS } from "../StorageRoutes" diff --git a/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx index 6eba0c9e92..53190b09e5 100644 --- a/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx +++ b/packages/storage-ui/src/Components/Modules/LoginModule/InitialScreen.tsx @@ -5,7 +5,6 @@ import { CSFTheme } from "../../../Themes/types" import { t, Trans } from "@lingui/macro" import { useStorageApi } from "../../../Contexts/StorageApiContext" import { useWeb3 } from "@chainsafe/web3-context" -import { LOGIN_TYPE } from "@toruslabs/torus-direct-web-sdk" import { ROUTE_LINKS } from "../../StorageRoutes" import clsx from "clsx" import { IdentityProvider } from "@chainsafe/files-api-client" @@ -173,16 +172,16 @@ const InitialScreen = ({ className }: IInitialScreen) => { setLoginMode(loginType) try { switch(loginType) { - case 'facebook': - case 'github': - case 'google': { - const oauthUrl = await getProviderUrl(loginType) - window.location.href = oauthUrl - break - } - case 'web3':{ - await web3Login() - } + case "facebook": + case "github": + case "google": { + const oauthUrl = await getProviderUrl(loginType) + window.location.href = oauthUrl + break + } + case "web3":{ + await web3Login() + } } } catch (error) { let errorMessage = t`There was an error authenticating` diff --git a/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx index 362b7709cf..7161e391bc 100644 --- a/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx +++ b/packages/storage-ui/src/Components/Pages/OAuthCallback.tsx @@ -18,31 +18,31 @@ const OAuthCallback: React.FC = () => { const state = queryParams.get("state") if (code && state) { switch (provider) { - case "github": { - await loginWithGithub(code, state) - break - } - case "google": { - const scope = queryParams.get("scope") || undefined - const authUser = queryParams.get("authUser") || undefined - const hd = queryParams.get("hd") || undefined - const prompt = queryParams.get("prompt") || undefined + case "github": { + await loginWithGithub(code, state) + break + } + case "google": { + const scope = queryParams.get("scope") || undefined + const authUser = queryParams.get("authUser") || undefined + const hd = queryParams.get("hd") || undefined + const prompt = queryParams.get("prompt") || undefined - await loginWithGoogle(code, state, scope, authUser, hd, prompt) - break - } - case "facebook": { - await loginWithFacebook(code, state) - break - } - default: + await loginWithGoogle(code, state, scope, authUser, hd, prompt) + break + } + case "facebook": { + await loginWithFacebook(code, state) + break + } + default: } } - } catch {} + } catch (e) { console.error(e)} } loginWithProvider() - }, [provider, queryParams]) + }, [provider, queryParams, loginWithGithub, loginWithGoogle, loginWithFacebook]) return null } diff --git a/packages/storage-ui/src/Components/Pages/PinsPage.tsx b/packages/storage-ui/src/Components/Pages/PinsPage.tsx index e8ad702b32..d815280fc0 100644 --- a/packages/storage-ui/src/Components/Pages/PinsPage.tsx +++ b/packages/storage-ui/src/Components/Pages/PinsPage.tsx @@ -1,9 +1,8 @@ import React from "react" import { makeStyles, createStyles } from "@chainsafe/common-theme" -import { CSFTheme } from "../../Themes/types" import { Typography } from "@chainsafe/common-components" -const useStyles = makeStyles(({ constants, breakpoints, typography, zIndex }: CSFTheme) => +const useStyles = makeStyles(() => createStyles({ root: { position: "relative", diff --git a/packages/storage-ui/src/Contexts/StorageApiContext.tsx b/packages/storage-ui/src/Contexts/StorageApiContext.tsx index 4a72f344a7..d332153515 100644 --- a/packages/storage-ui/src/Contexts/StorageApiContext.tsx +++ b/packages/storage-ui/src/Contexts/StorageApiContext.tsx @@ -290,7 +290,7 @@ const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: Stora } } - const web3Login = async () => { + const web3Login = async () => { if (!provider) return Promise.reject("No wallet is selected") if (!isReady) { @@ -306,11 +306,11 @@ const StorageApiProvider = ({ apiUrl, withLocalStorage = true, children }: Stora const address = await signer.getAddress() const { access_token, - refresh_token, + refresh_token } = await filesApiClient.postWeb3Token({ signature: signature, token: token, - public_address: address, + public_address: address }) setTokensAndSave(access_token, refresh_token) setReturningUser() From 7011995a9ec0c63769f8498ec820559e7a7e2c5e Mon Sep 17 00:00:00 2001 From: Michael Yankelev Date: Wed, 2 Jun 2021 15:59:41 +0200 Subject: [PATCH 11/11] remove unneeded login methods --- .../files-ui/src/Contexts/FilesApiContext.tsx | 82 ------------------- 1 file changed, 82 deletions(-) diff --git a/packages/files-ui/src/Contexts/FilesApiContext.tsx b/packages/files-ui/src/Contexts/FilesApiContext.tsx index 0da97898a8..d49bf1f674 100644 --- a/packages/files-ui/src/Contexts/FilesApiContext.tsx +++ b/packages/files-ui/src/Contexts/FilesApiContext.tsx @@ -30,17 +30,6 @@ type FilesApiContext = { identityToken: string, publicKey: string ): Promise - getProviderUrl: (provider: OAuthIdentityToken) => Promise - loginWithGithub: (code: string, state: string) => Promise - loginWithGoogle: ( - code: string, - state: string, - scope: string | undefined, - authUser: string | undefined, - hd: string | undefined, - prompt: string | undefined, - ) => Promise - loginWithFacebook: (code: string, state: string) => Promise logout: () => void validateMasterPassword: (candidatePassword: string) => Promise encryptedEncryptionKey?: string @@ -257,73 +246,6 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp } } - const getProviderUrl = async (provider: OAuthIdentityToken) => { - try { - const { url } = await filesApiClient.getOauth2Provider(provider) - return Promise.resolve(url) - } catch { - return Promise.reject("There was an error logging in") - } - } - - const loginWithGithub = async (code: string, state: string) => { - try { - const { - access_token, - refresh_token - } = await filesApiClient.postOauth2CodeGithub(code, state) - setTokensAndSave(access_token, refresh_token) - setReturningUser() - return Promise.resolve() - } catch { - return Promise.reject("There was an error logging in") - } - } - - const loginWithGoogle = async ( - code: string, - state: string, - scope: string | undefined, - authUser: string | undefined, - hd: string | undefined, - prompt: string | undefined - ) => { - try { - const { - access_token, - refresh_token - } = await filesApiClient.postOauth2CodeGoogle( - code, - state, - scope, - authUser, - hd, - prompt - ) - - setTokensAndSave(access_token, refresh_token) - setReturningUser() - return Promise.resolve() - } catch (err) { - return Promise.reject("There was an error logging in") - } - } - - const loginWithFacebook = async (code: string, state: string) => { - try { - const { - access_token, - refresh_token - } = await filesApiClient.postOauth2CodeFacebook(code, state) - - setTokensAndSave(access_token, refresh_token) - setReturningUser() - return Promise.resolve() - } catch (err) { - return Promise.reject("There was an error logging in") - } - } - const logout = () => { setAccessToken(undefined) setRefreshToken(undefined) @@ -382,12 +304,8 @@ const FilesApiProvider = ({ apiUrl, withLocalStorage = true, children }: FilesAp isLoggedIn: isLoggedIn(), secured, isReturningUser: isReturningUser, - loginWithGithub, - loginWithGoogle, - loginWithFacebook, selectWallet, resetAndSelectWallet, - getProviderUrl, logout, validateMasterPassword, thresholdKeyLogin,

xfb6zKp>C>+&_vuIgx!sCf8- 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�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
V{H0+vnv7n<|#;z(@z@0+= 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 CMxy)x literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/android-chrome-512x512.png b/packages/storage-ui/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..7a884ae88d8853027c4ced9d6b17e94ac8ca03da GIT binary patch literal 34082 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 literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/apple-touch-icon.png b/packages/storage-ui/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b70a32799632697b8bbd5154bf4cbc3b9ea9ab GIT binary patch literal 15961 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 CMxy)x literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/favicon-16x16.png b/packages/storage-ui/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..977cea724aad4b0bffe0bf2eb9ae50a12fc71c51 GIT binary patch literal 2513 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 Z>tFl;P5(j!>-GQu002ovPDHLkV1oGl&&vP+ literal 0 HcmV?d00001 diff --git a/packages/storage-ui/public/favicon.ico b/packages/storage-ui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee2819a2e79779d2f5065548ddedf68f2b6963eb GIT binary patch literal 4286 zcmds*Sx^*L6oy;N(v+1-rF`&JAM>0C#f@MT1sr5|0NF$s5fyPqiBYLahzf2Yi5eCm z#w8Y|QBXj|VNnU9q7oOPhy)Q45fNs3W_sr2{LOSbL6!g}4;kxs*1qSv|2g-ZRzVoS ze+2g^|vG-p(0plir)+SxVCKvx1jr*i+9ROaVG;9xK4lFTt(W-9RkTc2v+YvTCY zu>*133UwcSGsG?GM)2H+%s|%yU8zz#n<|*$Dl@PbDo2T(gT0YI1K$8@;_KJ)UOw!} zaW_IUwkBK?cPGrFff=Ye#GP&~bffFRb4lS~FaFM9_X7TaZxCv!(9ZgT*W*qh2oDx} z#ov#d-+XtGC;c9wp*!L8=ysR~b#u7UjfHbn4$cWF9LNd$fJZ}8kZT+7E$)vf@5b6F zZ(cpDzDS|Ha(2?A?Bc3W?(Pq9(%z#A?`S z4kafz6X?s=gXeJXbCvrZdN1~km_3D=fx5w-ux3AM>Dmw}cCKGU9qS_KH8Zrsi#4G# zN864Bx&F});W>I7<`UM&9KcLOAL>i!jU7oVsl&cLV)Rg(abuKdNLWnFL2vLo)|-9X z$WVBa45fu~PlBiDiReS{0qdgYUtfS- z1M?R(i9Ufd+neCM65E!QO16xhWczVD*$yUm*wVJ`z&(gqSvp><(0|RIx6Au3DYo3&2k5>JFznt; zU7KU5bHgH8vfsRKYeq_=Eq%vo-upZEe~t`zZPMp|WGc=}Fc;=Fo0C?M$n{~)KgK#P zdkp`Pf1JlUevLV$$ijJ+e)^UyX-Q<^Ypt27wbslO9q)b6_u=M~Ib%6yy!qUTM#MIs zIl{dmOs<7ziA$;L&|VU`zFzSee-Yo^JEfexO1`UYS-S#l87ag5cL>M+z?^q9)_nSK zy)h|H_QR5!Nz#dQl8zrF>F9p4r0*p0t5qar? + + + + + + + + + + + + + + + + ChainSafe Files + + + +