From 6c4b0272c7a279791c28696ef350330c0a0ec2fd Mon Sep 17 00:00:00 2001 From: Szymon Szlachtowicz <38212223+Szymx95@users.noreply.github.com> Date: Thu, 2 Sep 2021 01:10:14 +0200 Subject: [PATCH] Change repo to allow proposal in monorepo (#39) --- package.json | 2 + packages/contracts/package.json | 4 +- packages/core/package.json | 11 + packages/example/package.json | 9 +- packages/example/src/assets/images/close.svg | 3 - packages/example/src/assets/images/dapp.svg | 13 - .../example/src/assets/images/metamask.svg | 10 - packages/example/src/assets/images/status.svg | 5 - packages/example/src/components/Modal.tsx | 94 ----- packages/example/src/index.html | 2 +- packages/example/src/index.tsx | 70 +--- packages/example/src/pages/Poling.tsx | 28 -- packages/example/tsconfig.json | 1 - packages/polling-components/.eslintrc.json | 5 + packages/polling-components/.mocharc.json | 8 + packages/polling-components/README.md | 0 packages/polling-components/package.json | 61 +++ .../polling-components/prettier.config.js | 1 + .../src/components}/Poll.tsx | 3 +- .../src/components}/PollCreation.tsx | 5 +- .../src/components}/PollList.tsx | 0 .../src/components}/PollResults.tsx | 5 +- packages/polling-components/src/index.ts | 6 + .../polling-components/test/index.test.ts | 7 + packages/polling-components/test/setup.ts | 0 packages/polling-components/tsconfig.json | 25 ++ packages/polling-hooks/.eslintrc.json | 5 + packages/polling-hooks/.mocharc.json | 8 + packages/polling-hooks/README.md | 0 packages/polling-hooks/package.json | 52 +++ packages/polling-hooks/prettier.config.js | 1 + .../polling-hooks/src/hooks/useWakuVoting.ts | 10 + packages/polling-hooks/src/index.ts | 3 + packages/polling-hooks/test/index.test.ts | 7 + packages/polling-hooks/test/setup.ts | 0 packages/polling-hooks/tsconfig.json | 25 ++ packages/polling-page/.eslintrc.json | 5 + packages/polling-page/.mocharc.json | 8 + packages/polling-page/README.md | 0 packages/polling-page/package.json | 62 +++ packages/polling-page/prettier.config.js | 1 + .../src/assets/assets.d.ts | 0 .../src/assets/images/pollingIcon.svg | 0 .../src/components/TopBar.tsx | 11 +- .../src/components/WakuPolling.tsx} | 50 +-- packages/polling-page/src/index.tsx | 84 ++++ packages/polling-page/test/index.test.ts | 7 + packages/polling-page/test/setup.ts | 0 packages/polling-page/tsconfig.json | 25 ++ packages/proposal-components/.eslintrc.json | 5 + packages/proposal-components/.mocharc.json | 8 + packages/proposal-components/README.md | 0 packages/proposal-components/package.json | 58 +++ .../proposal-components/prettier.config.js | 1 + .../src/components/Proposal.tsx | 5 + packages/proposal-components/src/index.ts | 3 + .../proposal-components/test/index.test.ts | 7 + packages/proposal-components/test/setup.ts | 0 packages/proposal-components/tsconfig.json | 25 ++ packages/proposal-hooks/.eslintrc.json | 5 + packages/proposal-hooks/.mocharc.json | 8 + packages/proposal-hooks/README.md | 0 packages/proposal-hooks/package.json | 52 +++ packages/proposal-hooks/prettier.config.js | 1 + packages/proposal-hooks/src/hooks/useTest.ts | 3 + packages/proposal-hooks/src/index.ts | 3 + packages/proposal-hooks/test/index.test.ts | 7 + packages/proposal-hooks/test/setup.ts | 0 packages/proposal-hooks/tsconfig.json | 25 ++ packages/proposal-page/.eslintrc.json | 5 + packages/proposal-page/.mocharc.json | 8 + packages/proposal-page/README.md | 0 packages/proposal-page/package.json | 59 +++ packages/proposal-page/prettier.config.js | 1 + packages/proposal-page/src/index.tsx | 12 + packages/proposal-page/test/index.test.ts | 7 + packages/proposal-page/test/setup.ts | 0 packages/proposal-page/tsconfig.json | 25 ++ packages/react-components/package.json | 13 +- packages/react-components/src/index.tsx | 31 +- yarn.lock | 374 +++++++++++++++--- 81 files changed, 1159 insertions(+), 334 deletions(-) delete mode 100644 packages/example/src/assets/images/close.svg delete mode 100644 packages/example/src/assets/images/dapp.svg delete mode 100644 packages/example/src/assets/images/metamask.svg delete mode 100644 packages/example/src/assets/images/status.svg delete mode 100644 packages/example/src/components/Modal.tsx delete mode 100644 packages/example/src/pages/Poling.tsx create mode 100644 packages/polling-components/.eslintrc.json create mode 100644 packages/polling-components/.mocharc.json create mode 100644 packages/polling-components/README.md create mode 100644 packages/polling-components/package.json create mode 100644 packages/polling-components/prettier.config.js rename packages/{react-components/src/WakuPolling => polling-components/src/components}/Poll.tsx (96%) rename packages/{react-components/src/WakuPolling => polling-components/src/components}/PollCreation.tsx (95%) rename packages/{react-components/src/WakuPolling => polling-components/src/components}/PollList.tsx (100%) rename packages/{react-components/src/WakuPolling => polling-components/src/components}/PollResults.tsx (93%) create mode 100644 packages/polling-components/src/index.ts create mode 100644 packages/polling-components/test/index.test.ts create mode 100644 packages/polling-components/test/setup.ts create mode 100644 packages/polling-components/tsconfig.json create mode 100644 packages/polling-hooks/.eslintrc.json create mode 100644 packages/polling-hooks/.mocharc.json create mode 100644 packages/polling-hooks/README.md create mode 100644 packages/polling-hooks/package.json create mode 100644 packages/polling-hooks/prettier.config.js create mode 100644 packages/polling-hooks/src/hooks/useWakuVoting.ts create mode 100644 packages/polling-hooks/src/index.ts create mode 100644 packages/polling-hooks/test/index.test.ts create mode 100644 packages/polling-hooks/test/setup.ts create mode 100644 packages/polling-hooks/tsconfig.json create mode 100644 packages/polling-page/.eslintrc.json create mode 100644 packages/polling-page/.mocharc.json create mode 100644 packages/polling-page/README.md create mode 100644 packages/polling-page/package.json create mode 100644 packages/polling-page/prettier.config.js rename packages/{example => polling-page}/src/assets/assets.d.ts (100%) rename packages/{example => polling-page}/src/assets/images/pollingIcon.svg (100%) rename packages/{example => polling-page}/src/components/TopBar.tsx (93%) rename packages/{react-components/src/WakuPolling/index.tsx => polling-page/src/components/WakuPolling.tsx} (62%) create mode 100644 packages/polling-page/src/index.tsx create mode 100644 packages/polling-page/test/index.test.ts create mode 100644 packages/polling-page/test/setup.ts create mode 100644 packages/polling-page/tsconfig.json create mode 100644 packages/proposal-components/.eslintrc.json create mode 100644 packages/proposal-components/.mocharc.json create mode 100644 packages/proposal-components/README.md create mode 100644 packages/proposal-components/package.json create mode 100644 packages/proposal-components/prettier.config.js create mode 100644 packages/proposal-components/src/components/Proposal.tsx create mode 100644 packages/proposal-components/src/index.ts create mode 100644 packages/proposal-components/test/index.test.ts create mode 100644 packages/proposal-components/test/setup.ts create mode 100644 packages/proposal-components/tsconfig.json create mode 100644 packages/proposal-hooks/.eslintrc.json create mode 100644 packages/proposal-hooks/.mocharc.json create mode 100644 packages/proposal-hooks/README.md create mode 100644 packages/proposal-hooks/package.json create mode 100644 packages/proposal-hooks/prettier.config.js create mode 100644 packages/proposal-hooks/src/hooks/useTest.ts create mode 100644 packages/proposal-hooks/src/index.ts create mode 100644 packages/proposal-hooks/test/index.test.ts create mode 100644 packages/proposal-hooks/test/setup.ts create mode 100644 packages/proposal-hooks/tsconfig.json create mode 100644 packages/proposal-page/.eslintrc.json create mode 100644 packages/proposal-page/.mocharc.json create mode 100644 packages/proposal-page/README.md create mode 100644 packages/proposal-page/package.json create mode 100644 packages/proposal-page/prettier.config.js create mode 100644 packages/proposal-page/src/index.tsx create mode 100644 packages/proposal-page/test/index.test.ts create mode 100644 packages/proposal-page/test/setup.ts create mode 100644 packages/proposal-page/tsconfig.json diff --git a/package.json b/package.json index 52d70e6..b4aac48 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,11 @@ }, "scripts": { "start": "yarn --cwd ./packages/example start", + "watch": "wsrun -m watch", "lint": "wsrun -c -s lint", "lint:fix": "wsrun -c -s lint:fix", "build": "wsrun -e -c -s build", + "clean:all": "wsrun -e -c -s clean:all && rm -r ./node_modules", "test": "wsrun -e -c -s --exclude-missing test" }, "dependencies": { diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 9346c41..df53984 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -5,7 +5,8 @@ "repository": "git@github.com:EthWorks/status-waku-voting.git", "license": "MIT", "scripts": { - "clean": "rm -r ./{build,dist,flatten}", + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf build/ && rimraf dist/ && rimraf flatten/ rimraf cache/", "build:sol": "waffle waffle.config.json", "build:ts": "tsc", "build": "yarn build:sol && yarn build:ts", @@ -25,6 +26,7 @@ "eslint": "^7.28.0", "ethereum-waffle": "^3.3.0", "mocha": "^9.0.0", + "rimraf": "^3.0.2", "prettier": "^2.3.1", "prettier-plugin-solidity": "^1.0.0-beta.13", "solhint": "^3.3.6", diff --git a/packages/core/package.json b/packages/core/package.json index 98c3ef8..16cde94 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -5,7 +5,17 @@ "types": "dist/esm/src/index.d.ts", "version": "0.1.0", "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, "scripts": { + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "watch": "yarn npm-watch", "build": "yarn run build:esm && yarn run build:cjs", "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", "build:cjs": "tsc --outDir dist/cjs", @@ -26,6 +36,7 @@ "jsdom": "^16.7.0", "jsdom-global": "^3.0.2", "mocha": "^9.0.3", + "npm-watch": "^0.11.0", "ts-node": "^10.1.0", "typescript": "^4.3.5" }, diff --git a/packages/example/package.json b/packages/example/package.json index 341219c..80b1d3a 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -4,6 +4,8 @@ "main": "index.js", "license": "MIT", "scripts": { + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", "build": "rm -rf dist && webpack --mode=production --env ENV=production", "start": "webpack serve --mode=development --env ENV=development --https", "test": "mocha -r jsdom-global/register", @@ -13,8 +15,8 @@ "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" }, "dependencies": { - "@status-waku-voting/react-components": "^0.1.0", - "@usedapp/core": "^0.4.6", + "@status-waku-voting/polling-page": "^0.1.0", + "@status-waku-voting/proposal-page": "^0.1.0", "assert": "^2.0.0", "buffer": "^6.0.3", "crypto-browserify": "^3.12.0", @@ -22,8 +24,7 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^5.2.0", - "stream-browserify": "^3.0.0", - "styled-components": "^5.3.0" + "stream-browserify": "^3.0.0" }, "devDependencies": { "@testing-library/react-hooks": "^7.0.1", diff --git a/packages/example/src/assets/images/close.svg b/packages/example/src/assets/images/close.svg deleted file mode 100644 index 6f9425b..0000000 --- a/packages/example/src/assets/images/close.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/packages/example/src/assets/images/dapp.svg b/packages/example/src/assets/images/dapp.svg deleted file mode 100644 index ea6750b..0000000 --- a/packages/example/src/assets/images/dapp.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/packages/example/src/assets/images/metamask.svg b/packages/example/src/assets/images/metamask.svg deleted file mode 100644 index eb78c2b..0000000 --- a/packages/example/src/assets/images/metamask.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/packages/example/src/assets/images/status.svg b/packages/example/src/assets/images/status.svg deleted file mode 100644 index 28f3f58..0000000 --- a/packages/example/src/assets/images/status.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/example/src/components/Modal.tsx b/packages/example/src/components/Modal.tsx deleted file mode 100644 index 5523c9d..0000000 --- a/packages/example/src/components/Modal.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import React, { ReactNode, useEffect } from 'react' -import styled from 'styled-components' -import closeButton from '../assets/images/close.svg' - -type ModalProps = { - heading: string - children: ReactNode - setShowModal: (val: boolean) => void -} - -export function Modal({ heading, children, setShowModal }: ModalProps) { - const body = document.getElementById('root') - - useEffect(() => { - if (body) { - body.style.position = 'fixed' - return () => { - body.style.position = 'static' - } - } - }, []) - - return ( - setShowModal(false)}> - e.stopPropagation()}> - - {heading} - setShowModal(false)} /> - - {children} - - - ) -} - -const PopUpOverlay = styled.div` - height: 100vh; - width: 100%; - position: fixed; - display: flex; - justify-content: center; - align-items: flex-start; - top: 0; - left: 0; - background-color: rgba(0, 0, 0, 0.4); - z-index: 9999; - transition: all 0.3s; - - @media (max-width: 600px) { - padding: 16px; - align-items: center; - } -` - -const PopUpWindow = styled.div` - display: flex; - flex-direction: column; - justify-content: space-between; - width: 468px; - max-height: 75vh; - background-color: white; - margin: 20vh auto 2vh; - padding: 24px 24px 32px; - box-shadow: 10px 10px 31px -2px #a3a1a1; - border-radius: 5px; - overflow: scroll; - z-index: 9998; - - @media (max-width: 600px) { - padding: 16px 16px 32px; - margin: 0; - } -` -const PopUpHeader = styled.div` - display: flex; - justify-content: space-between; -` -const PopUpHeading = styled.p` - font-style: normal; - font-weight: bold; - font-size: 17px; - line-height: 24px; - margin: 0; -` -const PopUpContetnt = styled.div` - width: 100%; -` -const CloseButton = styled.button` - width: 24px; - height: 24px; - background-image: url(${closeButton}); - background-color: transparent; - border: none; -` diff --git a/packages/example/src/index.html b/packages/example/src/index.html index 416123f..067de06 100644 --- a/packages/example/src/index.html +++ b/packages/example/src/index.html @@ -11,6 +11,6 @@
- + diff --git a/packages/example/src/index.tsx b/packages/example/src/index.tsx index 39f58cd..b466858 100644 --- a/packages/example/src/index.tsx +++ b/packages/example/src/index.tsx @@ -1,66 +1,18 @@ import React from 'react' import ReactDOM from 'react-dom' - -import styled, { createGlobalStyle } from 'styled-components' -import { Polling } from './pages/Poling' +import { PollingPage } from '@status-waku-voting/polling-page' +import { ProposalPage } from '@status-waku-voting/proposal-page' import { BrowserRouter } from 'react-router-dom' -import { Redirect, Route, Switch } from 'react-router' -import { DAppProvider, ChainId } from '@usedapp/core' -import { DEFAULT_CONFIG } from '@usedapp/core/dist/cjs/src/model/config/default' - -const config = { - readOnlyChainId: ChainId.Ropsten, - readOnlyUrls: { - [ChainId.Ropsten]: 'https://ropsten.infura.io/v3/b4451d780cc64a078ccf2181e872cfcf', - }, - multicallAddresses: { - ...DEFAULT_CONFIG.multicallAddresses, - 1337: process.env.GANACHE_MULTICALL_CONTRACT ?? '0x0000000000000000000000000000000000000000', - }, - supportedChains: [...DEFAULT_CONFIG.supportedChains, 1337], - notifications: { - checkInterval: 500, - expirationPeriod: 50000, - }, -} - -export const GlobalStyle = createGlobalStyle` - * { - box-sizing: border-box; - } - - body, html, #root { - margin: 0; - width: 100%; - height: 100%; - } - - html { - font-family: Inter; - font-style: normal; - } - - a, - button { - cursor: pointer; - } -` - -const Page = styled.div` - height: 100%; -` +import { Route, Switch } from 'react-router' ReactDOM.render( - - - - - - } /> - - - - - , +
+ + + + + + +
, document.getElementById('root') ) diff --git a/packages/example/src/pages/Poling.tsx b/packages/example/src/pages/Poling.tsx deleted file mode 100644 index 9364142..0000000 --- a/packages/example/src/pages/Poling.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { WakuPolling } from '@status-waku-voting/react-components' -import styled from 'styled-components' -import { TopBar } from '../components/TopBar' -import pollingIcon from '../assets/images/pollingIcon.svg' -import { JsonRpcSigner } from '@ethersproject/providers' -import { useEthers } from '@usedapp/core' - -export function Polling() { - const { account, library } = useEthers() - const [signer, setSigner] = useState(undefined) - - useEffect(() => { - setSigner(library?.getSigner()) - }, [account]) - - return ( - - - - - ) -} - -const Wrapper = styled.div` - height: 100%; - width: 100%; -` diff --git a/packages/example/tsconfig.json b/packages/example/tsconfig.json index a71680e..4bd6269 100644 --- a/packages/example/tsconfig.json +++ b/packages/example/tsconfig.json @@ -19,7 +19,6 @@ }, "include": [ "src", - "src/**/*.svg", "src/**/*.json", "test" ] diff --git a/packages/polling-components/.eslintrc.json b/packages/polling-components/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/polling-components/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/polling-components/.mocharc.json b/packages/polling-components/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/polling-components/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/polling-components/README.md b/packages/polling-components/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-components/package.json b/packages/polling-components/package.json new file mode 100644 index 0000000..4fce7e0 --- /dev/null +++ b/packages/polling-components/package.json @@ -0,0 +1,61 @@ +{ + "name": "@status-waku-voting/polling-components", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": [ + "src" + ], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "watch": "yarn npm-watch", + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "copy-assets": "yarn copy-files:cjs && yarn copy-files:esm", + "copy-files:cjs": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/cjs/src", + "copy-files:esm": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/esm/src", + "build": "yarn build:all && yarn copy-assets", + "build:all": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/core": "^0.1.0", + "@status-waku-voting/polling-hooks": "^0.1.0", + "@status-waku-voting/react-components": "^0.1.0", + "@usedapp/core": "^0.4.7", + "ethers": "^5.4.4", + "react": "^17.0.2", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/polling-components/prettier.config.js b/packages/polling-components/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/polling-components/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/react-components/src/WakuPolling/Poll.tsx b/packages/polling-components/src/components/Poll.tsx similarity index 96% rename from packages/react-components/src/WakuPolling/Poll.tsx rename to packages/polling-components/src/components/Poll.tsx index c7ade22..169e6b4 100644 --- a/packages/react-components/src/WakuPolling/Poll.tsx +++ b/packages/polling-components/src/components/Poll.tsx @@ -5,8 +5,7 @@ import React, { useEffect, useState } from 'react' import { JsonRpcSigner } from '@ethersproject/providers' import { PollType } from '@status-waku-voting/core/dist/esm/src/types/PollType' import styled from 'styled-components' -import { RadioGroup } from '../components/radioGroup' -import { SmallButton } from '../components/misc/Buttons' +import { RadioGroup, SmallButton } from '@status-waku-voting/react-components' import { PollResults } from './PollResults' import { useEthers } from '@usedapp/core' diff --git a/packages/react-components/src/WakuPolling/PollCreation.tsx b/packages/polling-components/src/components/PollCreation.tsx similarity index 95% rename from packages/react-components/src/WakuPolling/PollCreation.tsx rename to packages/polling-components/src/components/PollCreation.tsx index cd95e46..69cdcb6 100644 --- a/packages/react-components/src/WakuPolling/PollCreation.tsx +++ b/packages/polling-components/src/components/PollCreation.tsx @@ -4,10 +4,7 @@ import { JsonRpcSigner } from '@ethersproject/providers' import styled from 'styled-components' import { PollType } from '@status-waku-voting/core/dist/esm/src/types/PollType' import WakuVoting from '@status-waku-voting/core' -import { Input } from '../components/Input' -import addIcon from '../assets/svg/addIcon.svg' -import { SmallButton } from '../components/misc/Buttons' -import { Modal } from '../components/Modal' +import { Input, addIcon, SmallButton, Modal } from '@status-waku-voting/react-components' function getLocaleIsoTime(dateTime: Date) { const MS_PER_MINUTE = 60000 diff --git a/packages/react-components/src/WakuPolling/PollList.tsx b/packages/polling-components/src/components/PollList.tsx similarity index 100% rename from packages/react-components/src/WakuPolling/PollList.tsx rename to packages/polling-components/src/components/PollList.tsx diff --git a/packages/react-components/src/WakuPolling/PollResults.tsx b/packages/polling-components/src/components/PollResults.tsx similarity index 93% rename from packages/react-components/src/WakuPolling/PollResults.tsx rename to packages/polling-components/src/components/PollResults.tsx index cf053c8..9366320 100644 --- a/packages/react-components/src/WakuPolling/PollResults.tsx +++ b/packages/polling-components/src/components/PollResults.tsx @@ -1,8 +1,7 @@ import React from 'react' import { DetailedTimedPoll } from '@status-waku-voting/core/dist/esm/src/models/DetailedTimedPoll' import styled from 'styled-components' -import { colorRouletteGenerator } from '../style/colors' -import checkCircle from '../assets/svg/checkCircle.svg' +import { colorRouletteGenerator, checkCircleIcon } from '@status-waku-voting/react-components' type PollResultsProps = { poll: DetailedTimedPoll @@ -83,7 +82,7 @@ const CheckCircle = styled.div` width: 14px; height: 14px; margin-left: 8px; - background-image: url(${checkCircle}); + background-image: url(${checkCircleIcon}); flex-shrink: 0; ` diff --git a/packages/polling-components/src/index.ts b/packages/polling-components/src/index.ts new file mode 100644 index 0000000..df95121 --- /dev/null +++ b/packages/polling-components/src/index.ts @@ -0,0 +1,6 @@ +import { Poll } from './components/Poll' +import { PollCreation } from './components/PollCreation' +import { PollList } from './components/PollList' +import { PollResults } from './components/PollResults' + +export { Poll, PollCreation, PollList, PollResults } diff --git a/packages/polling-components/test/index.test.ts b/packages/polling-components/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/polling-components/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/polling-components/test/setup.ts b/packages/polling-components/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-components/tsconfig.json b/packages/polling-components/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/polling-components/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/polling-hooks/.eslintrc.json b/packages/polling-hooks/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/polling-hooks/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/polling-hooks/.mocharc.json b/packages/polling-hooks/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/polling-hooks/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/polling-hooks/README.md b/packages/polling-hooks/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-hooks/package.json b/packages/polling-hooks/package.json new file mode 100644 index 0000000..c57e0e2 --- /dev/null +++ b/packages/polling-hooks/package.json @@ -0,0 +1,52 @@ +{ + "name": "@status-waku-voting/polling-hooks", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "watch": "yarn npm-watch", + "build": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/core": "^0.1.0", + "ethers": "^5.4.4", + "react": "^17.0.2", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/polling-hooks/prettier.config.js b/packages/polling-hooks/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/polling-hooks/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/polling-hooks/src/hooks/useWakuVoting.ts b/packages/polling-hooks/src/hooks/useWakuVoting.ts new file mode 100644 index 0000000..9f0cda8 --- /dev/null +++ b/packages/polling-hooks/src/hooks/useWakuVoting.ts @@ -0,0 +1,10 @@ +import { useEffect, useState } from 'react' +import WakuVoting from '@status-waku-voting/core' + +export function useWakuVoting(appName: string, tokenAddress: string) { + const [wakuVoting, setWakuVoting] = useState(undefined) + useEffect(() => { + WakuVoting.create(appName, tokenAddress).then((e) => setWakuVoting(e)) + }, []) + return wakuVoting +} diff --git a/packages/polling-hooks/src/index.ts b/packages/polling-hooks/src/index.ts new file mode 100644 index 0000000..d965dbd --- /dev/null +++ b/packages/polling-hooks/src/index.ts @@ -0,0 +1,3 @@ +import { useWakuVoting } from './hooks/useWakuVoting' + +export { useWakuVoting } diff --git a/packages/polling-hooks/test/index.test.ts b/packages/polling-hooks/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/polling-hooks/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/polling-hooks/test/setup.ts b/packages/polling-hooks/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-hooks/tsconfig.json b/packages/polling-hooks/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/polling-hooks/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/polling-page/.eslintrc.json b/packages/polling-page/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/polling-page/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/polling-page/.mocharc.json b/packages/polling-page/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/polling-page/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/polling-page/README.md b/packages/polling-page/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-page/package.json b/packages/polling-page/package.json new file mode 100644 index 0000000..eeda3c7 --- /dev/null +++ b/packages/polling-page/package.json @@ -0,0 +1,62 @@ +{ + "name": "@status-waku-voting/polling-page", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "watch": "yarn npm-watch", + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "copy-assets": "yarn copy-files:cjs && yarn copy-files:esm", + "copy-files:cjs": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/cjs/src", + "copy-files:esm": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/esm/src", + "build": "yarn build:all && yarn copy-assets", + "build:all": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/core": "^0.1.0", + "@status-waku-voting/polling-components": "^0.1.0", + "@status-waku-voting/polling-hooks": "^0.1.0", + "@status-waku-voting/react-components": "^0.1.0", + "@usedapp/core": "^0.4.7", + "ethers": "^5.4.4", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-router-dom": "^5.2.0", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/polling-page/prettier.config.js b/packages/polling-page/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/polling-page/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/example/src/assets/assets.d.ts b/packages/polling-page/src/assets/assets.d.ts similarity index 100% rename from packages/example/src/assets/assets.d.ts rename to packages/polling-page/src/assets/assets.d.ts diff --git a/packages/example/src/assets/images/pollingIcon.svg b/packages/polling-page/src/assets/images/pollingIcon.svg similarity index 100% rename from packages/example/src/assets/images/pollingIcon.svg rename to packages/polling-page/src/assets/images/pollingIcon.svg diff --git a/packages/example/src/components/TopBar.tsx b/packages/polling-page/src/components/TopBar.tsx similarity index 93% rename from packages/example/src/components/TopBar.tsx rename to packages/polling-page/src/components/TopBar.tsx index 040d96c..f1b26d5 100644 --- a/packages/example/src/components/TopBar.tsx +++ b/packages/polling-page/src/components/TopBar.tsx @@ -1,10 +1,7 @@ import React, { useState } from 'react' import styled from 'styled-components' import { useEthers, shortenAddress } from '@usedapp/core' -import dapp from '../assets/images/dapp.svg' -import status from '../assets/images/status.svg' -import metamask from '../assets/images/metamask.svg' -import { Modal } from './Modal' +import { Modal, metamaskIcon, statusIcon, dappIcon } from '@status-waku-voting/react-components' type TopBarProps = { logo: string @@ -56,9 +53,9 @@ export function TopBar({ logo, title }: TopBarProps) { {selectConnect && ( - - - + + + )} diff --git a/packages/react-components/src/WakuPolling/index.tsx b/packages/polling-page/src/components/WakuPolling.tsx similarity index 62% rename from packages/react-components/src/WakuPolling/index.tsx rename to packages/polling-page/src/components/WakuPolling.tsx index 7d658c7..2cde88c 100644 --- a/packages/react-components/src/WakuPolling/index.tsx +++ b/packages/polling-page/src/components/WakuPolling.tsx @@ -1,52 +1,22 @@ import React, { useState, useEffect } from 'react' -import WakuVoting from '@status-waku-voting/core' import { useEthers } from '@usedapp/core' -import { providers } from 'ethers' -import { PollList } from './PollList' + import styled from 'styled-components' -import { PollCreation } from './PollCreation' -import { Button } from '../components/misc/Buttons' +import { PollList, PollCreation } from '@status-waku-voting/polling-components' import { JsonRpcSigner } from '@ethersproject/providers' -import { Modal } from '../components/Modal' -import { Networks } from '../components/Networks' +import { useWakuVoting } from '@status-waku-voting/polling-hooks' +import { Modal, Networks, Button } from '@status-waku-voting/react-components' type WakuPollingProps = { appName: string signer: JsonRpcSigner | undefined - localhost?: boolean } -function WakuPolling({ appName, signer, localhost }: WakuPollingProps) { +export function WakuPolling({ appName, signer }: WakuPollingProps) { const { activateBrowserWallet, account } = useEthers() - const [wakuVoting, setWakuVoting] = useState(undefined) const [showPollCreation, setShowPollCreation] = useState(false) const [selectConnect, setSelectConnect] = useState(false) - - let waku: any | undefined = undefined - if (localhost) { - waku = { - messages: {}, - relay: { - send(msg: any) { - if (!(this as any).messages[msg.contentTopic]) { - ;(this as any).messages[msg.contentTopic] = [] - } - ;(this as any).messages[msg.contentTopic] = [...(this as any).messages[msg.contentTopic], msg] - }, - }, - store: { - queryHistory(topic: any) { - return (this as any).messages[topic[0]] - }, - }, - } - waku.relay.send = waku.relay.send.bind(waku) - waku.store.queryHistory = waku.store.queryHistory.bind(waku) - } - useEffect(() => { - WakuVoting.create(appName, '0x01', waku).then((e) => setWakuVoting(e)) - }, []) - + const wakuVoting = useWakuVoting(appName, '0x01') return ( {showPollCreation && signer && ( @@ -86,15 +56,12 @@ const CreatePollButton = styled(Button)` font-size: 15px; line-height: 24px; margin-bottom: 48px; - &:not(:disabled):hover { background: #a53607; } - &:not(:disabled):active { background: #f4b77e; } - @media (max-width: 425px) { position: fixed; bottom: 0; @@ -114,18 +81,13 @@ const Wrapper = styled.div` margin: 0 auto; padding: 150px 32px 50px; width: 100%; - @media (max-width: 1146px) { max-width: 780px; } - @media (max-width: 600px) { padding: 132px 16px 32px; } - @media (max-width: 425px) { padding: 96px 16px 84px; } ` - -export default WakuPolling diff --git a/packages/polling-page/src/index.tsx b/packages/polling-page/src/index.tsx new file mode 100644 index 0000000..ce53aaa --- /dev/null +++ b/packages/polling-page/src/index.tsx @@ -0,0 +1,84 @@ +import React, { useEffect, useState } from 'react' +import styled, { createGlobalStyle } from 'styled-components' +import { DAppProvider, ChainId } from '@usedapp/core' +import { DEFAULT_CONFIG } from '@usedapp/core/dist/cjs/src/model/config/default' +import { WakuPolling } from './components/WakuPolling' +import { TopBar } from './components/TopBar' +import pollingIcon from './assets/images/pollingIcon.svg' +import { JsonRpcSigner } from '@ethersproject/providers' +import { useEthers } from '@usedapp/core' + +const config = { + readOnlyChainId: ChainId.Ropsten, + readOnlyUrls: { + [ChainId.Ropsten]: 'https://ropsten.infura.io/v3/b4451d780cc64a078ccf2181e872cfcf', + }, + multicallAddresses: { + ...DEFAULT_CONFIG.multicallAddresses, + 1337: process.env.GANACHE_MULTICALL_CONTRACT ?? '0x0000000000000000000000000000000000000000', + }, + supportedChains: [...DEFAULT_CONFIG.supportedChains, 1337], + notifications: { + checkInterval: 500, + expirationPeriod: 50000, + }, +} + +export const GlobalStyle = createGlobalStyle` + * { + box-sizing: border-box; + } + + body, html, #root { + margin: 0; + width: 100%; + height: 100%; + } + + html { + font-family: Inter; + font-style: normal; + } + + a, + button { + cursor: pointer; + } +` + +const Page = styled.div` + height: 100%; + width: 100%; +` + +export function Polling() { + const { account, library } = useEthers() + const [signer, setSigner] = useState(undefined) + + useEffect(() => { + setSigner(library?.getSigner()) + }, [account]) + + return ( + + + + + ) +} + +const Wrapper = styled.div` + height: 100%; + width: 100%; +` + +export function PollingPage() { + return ( + + + + + + + ) +} diff --git a/packages/polling-page/test/index.test.ts b/packages/polling-page/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/polling-page/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/polling-page/test/setup.ts b/packages/polling-page/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/polling-page/tsconfig.json b/packages/polling-page/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/polling-page/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/proposal-components/.eslintrc.json b/packages/proposal-components/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/proposal-components/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/proposal-components/.mocharc.json b/packages/proposal-components/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/proposal-components/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/proposal-components/README.md b/packages/proposal-components/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-components/package.json b/packages/proposal-components/package.json new file mode 100644 index 0000000..8f2748b --- /dev/null +++ b/packages/proposal-components/package.json @@ -0,0 +1,58 @@ +{ + "name": "@status-waku-voting/proposal-components", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "watch": "yarn npm-watch", + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "copy-assets": "yarn copy-files:cjs && yarn copy-files:esm", + "copy-files:cjs": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/cjs/src", + "copy-files:esm": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/esm/src", + "build": "yarn build:all && yarn copy-assets", + "build:all": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/proposal-hooks": "^0.1.0", + "@status-waku-voting/react-components": "^0.1.0", + "@status-waku-voting/core": "^0.1.0", + "ethers": "^5.4.4", + "react": "^17.0.2", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/proposal-components/prettier.config.js b/packages/proposal-components/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/proposal-components/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/proposal-components/src/components/Proposal.tsx b/packages/proposal-components/src/components/Proposal.tsx new file mode 100644 index 0000000..b04d753 --- /dev/null +++ b/packages/proposal-components/src/components/Proposal.tsx @@ -0,0 +1,5 @@ +import React from 'react' + +export function Proposal() { + return
Proposal
+} diff --git a/packages/proposal-components/src/index.ts b/packages/proposal-components/src/index.ts new file mode 100644 index 0000000..403ec99 --- /dev/null +++ b/packages/proposal-components/src/index.ts @@ -0,0 +1,3 @@ +import { Proposal } from './components/Proposal' + +export { Proposal } diff --git a/packages/proposal-components/test/index.test.ts b/packages/proposal-components/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/proposal-components/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/proposal-components/test/setup.ts b/packages/proposal-components/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-components/tsconfig.json b/packages/proposal-components/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/proposal-components/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/proposal-hooks/.eslintrc.json b/packages/proposal-hooks/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/proposal-hooks/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/proposal-hooks/.mocharc.json b/packages/proposal-hooks/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/proposal-hooks/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/proposal-hooks/README.md b/packages/proposal-hooks/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-hooks/package.json b/packages/proposal-hooks/package.json new file mode 100644 index 0000000..af7325a --- /dev/null +++ b/packages/proposal-hooks/package.json @@ -0,0 +1,52 @@ +{ + "name": "@status-waku-voting/proposal-hooks", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "watch": "yarn npm-watch", + "build": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/core": "^0.1.0", + "ethers": "^5.4.4", + "react": "^17.0.2", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/proposal-hooks/prettier.config.js b/packages/proposal-hooks/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/proposal-hooks/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/proposal-hooks/src/hooks/useTest.ts b/packages/proposal-hooks/src/hooks/useTest.ts new file mode 100644 index 0000000..20672f9 --- /dev/null +++ b/packages/proposal-hooks/src/hooks/useTest.ts @@ -0,0 +1,3 @@ +export function useTest() { + console.log('test') +} diff --git a/packages/proposal-hooks/src/index.ts b/packages/proposal-hooks/src/index.ts new file mode 100644 index 0000000..3066c3f --- /dev/null +++ b/packages/proposal-hooks/src/index.ts @@ -0,0 +1,3 @@ +import { useTest } from './hooks/useTest' + +export { useTest } diff --git a/packages/proposal-hooks/test/index.test.ts b/packages/proposal-hooks/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/proposal-hooks/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/proposal-hooks/test/setup.ts b/packages/proposal-hooks/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-hooks/tsconfig.json b/packages/proposal-hooks/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/proposal-hooks/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/proposal-page/.eslintrc.json b/packages/proposal-page/.eslintrc.json new file mode 100644 index 0000000..128cd29 --- /dev/null +++ b/packages/proposal-page/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "../../.eslintrc.json" + ] +} diff --git a/packages/proposal-page/.mocharc.json b/packages/proposal-page/.mocharc.json new file mode 100644 index 0000000..59d511f --- /dev/null +++ b/packages/proposal-page/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": "test/**/*.test.{ts,tsx}", + "require": "ts-node/register", + "watchExtensions": "ts", + "extension": "ts", + "timeout": 3000, + "file": "./test/setup.ts" +} diff --git a/packages/proposal-page/README.md b/packages/proposal-page/README.md new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-page/package.json b/packages/proposal-page/package.json new file mode 100644 index 0000000..991214d --- /dev/null +++ b/packages/proposal-page/package.json @@ -0,0 +1,59 @@ +{ + "name": "@status-waku-voting/proposal-page", + "version": "0.1.0", + "main": "dist/cjs/src/index.js", + "module": "dist/esm/src/index.js", + "types": "dist/esm/src/index.d.ts", + "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, + "scripts": { + "watch": "yarn npm-watch", + "clean:all": "yarn clean && rimraf node_modules/", + "clean": "rimraf dist/", + "copy-assets": "yarn copy-files:cjs && yarn copy-files:esm", + "copy-files:cjs": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/cjs/src", + "copy-files:esm": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/esm/src", + "build": "yarn build:all && yarn copy-assets", + "build:all": "yarn run build:esm && yarn run build:cjs", + "build:esm": "tsc --module es2020 --target es2017 --outDir dist/esm", + "build:cjs": "tsc --outDir dist/cjs", + "test": "mocha -r jsdom-global/register", + "lint": "yarn lint:prettier --check && yarn lint:eslint", + "lint:fix": "yarn lint:prettier --write && yarn lint:eslint --fix", + "lint:eslint": "eslint './{src,test}/**/*.{ts,tsx}'", + "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" + }, + "dependencies": { + "@status-waku-voting/proposal-components": "^0.1.0", + "@status-waku-voting/proposal-hooks": "^0.1.0", + "@status-waku-voting/react-components": "^0.1.0", + "@status-waku-voting/core": "^0.1.0", + "ethers": "^5.4.4", + "react": "^17.0.2", + "styled-components": "^5.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.21", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.16", + "@types/styled-components": "^5.1.12", + "@typescript-eslint/eslint-plugin": "^4.29.0", + "@typescript-eslint/parser": "^4.29.0", + "chai": "^4.3.4", + "copyfiles": "^2.4.1", + "eslint": "^7.32.0", + "jsdom": "^16.7.0", + "jsdom-global": "^3.0.2", + "mocha": "^9.0.3", + "npm-watch": "^0.11.0", + "rimraf": "^3.0.2", + "ts-node": "^10.1.0", + "typescript": "^4.3.5" + } +} diff --git a/packages/proposal-page/prettier.config.js b/packages/proposal-page/prettier.config.js new file mode 100644 index 0000000..3bcd29e --- /dev/null +++ b/packages/proposal-page/prettier.config.js @@ -0,0 +1 @@ +module.exports = require('../../.prettierrc.json') diff --git a/packages/proposal-page/src/index.tsx b/packages/proposal-page/src/index.tsx new file mode 100644 index 0000000..b9d4d87 --- /dev/null +++ b/packages/proposal-page/src/index.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { useTest } from '@status-waku-voting/proposal-hooks' +import { Proposal } from '@status-waku-voting/proposal-components' + +export function ProposalPage() { + useTest() + return ( +
+ +
+ ) +} diff --git a/packages/proposal-page/test/index.test.ts b/packages/proposal-page/test/index.test.ts new file mode 100644 index 0000000..1dba999 --- /dev/null +++ b/packages/proposal-page/test/index.test.ts @@ -0,0 +1,7 @@ +import { expect } from 'chai' + +describe('test react-components', () => { + it('foo', async () => { + expect('Hello world').to.eq('Hello world') + }) +}) diff --git a/packages/proposal-page/test/setup.ts b/packages/proposal-page/test/setup.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/proposal-page/tsconfig.json b/packages/proposal-page/tsconfig.json new file mode 100644 index 0000000..4bd6269 --- /dev/null +++ b/packages/proposal-page/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "outDir": "dist", + "jsx":"react", + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "downlevelIteration": true, + "strict": true, + "composite": true, + "declaration": true, + "sourceMap": true, + "declarationMap": true, + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "target": "es6", + "typeRoots": [ "./types", "./node_modules/@types", "../../node_modules/@types"] + }, + "include": [ + "src", + "src/**/*.json", + "test" + ] +} diff --git a/packages/react-components/package.json b/packages/react-components/package.json index 0b41431..7a9013c 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -5,7 +5,16 @@ "types": "dist/esm/src/index.d.ts", "version": "0.1.0", "license": "MIT", + "watch": { + "build": { + "patterns": ["src"], + "extensions": "ts,tsx", + "runOnChangeOnly": false + } + }, "scripts": { + "watch": "yarn npm-watch", + "clean:all": "yarn clean && rimraf node_modules/", "clean": "rimraf dist/", "copy-assets": "yarn copy-files:cjs && yarn copy-files:esm", "copy-files:cjs": "copyfiles -u 1 src/**/*.svg src/**/*.png dist/cjs/src", @@ -21,10 +30,9 @@ "lint:prettier": "yarn prettier './{src,test}/**/*.{ts,tsx}'" }, "dependencies": { - "@status-waku-voting/core": "^0.1.0", "ethers": "^5.4.4", "react": "^17.0.2", - "react-components": "^0.5.1" + "styled-components": "^5.3.0" }, "devDependencies": { "@types/chai": "^4.2.21", @@ -39,6 +47,7 @@ "jsdom": "^16.7.0", "jsdom-global": "^3.0.2", "mocha": "^9.0.3", + "npm-watch": "^0.11.0", "rimraf": "^3.0.2", "ts-node": "^10.1.0", "typescript": "^4.3.5" diff --git a/packages/react-components/src/index.tsx b/packages/react-components/src/index.tsx index 281c705..c4deeb9 100644 --- a/packages/react-components/src/index.tsx +++ b/packages/react-components/src/index.tsx @@ -1,3 +1,30 @@ -import WakuPolling from './WakuPolling' +import { Modal } from './components/Modal' +import { Input } from './components/Input' +import { Networks } from './components/Networks' +import { RadioGroup } from './components/radioGroup' +import { Button, SmallButton } from './components/misc/Buttons' +import { colorRouletteGenerator } from './style/colors' +import checkCircleIcon from './assets/svg/checkCircle.svg' +import addIcon from './assets/svg/addIcon.svg' +import checkIcon from './assets/svg/checkIcon.svg' +import closeIcon from './assets/svg/close.svg' +import dappIcon from './assets/svg/dapp.svg' +import metamaskIcon from './assets/svg/metamask.svg' +import statusIcon from './assets/svg/status.svg' -export { WakuPolling } +export { + Modal, + Input, + Networks, + RadioGroup, + Button, + SmallButton, + colorRouletteGenerator, + checkCircleIcon, + addIcon, + checkIcon, + closeIcon, + dappIcon, + metamaskIcon, + statusIcon, +} diff --git a/yarn.lock b/yarn.lock index a37061a..a2c30e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1438,7 +1438,7 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -"@usedapp/core@^0.4.6": +"@usedapp/core@^0.4.7": version "0.4.7" resolved "https://registry.yarnpkg.com/@usedapp/core/-/core-0.4.7.tgz#87964abf14ba87edd4fe068ee73fe0cb9fcdee2d" integrity sha512-0JpzUPUHFgmq8GWTl9EGZKR5nS8HQ2e5wwaIG8GBE2VUS40uKwlNhlqkIwD2mkFhpMj8EssMArzcZRzLqZmEPA== @@ -1654,6 +1654,11 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -1802,6 +1807,13 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + ansi-colors@4.1.1, ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" @@ -1895,14 +1907,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aphrodite@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/aphrodite/-/aphrodite-1.1.0.tgz#1da36afb9401adf13483e29aa7cae58ee0767605" - integrity sha1-HaNq+5QBrfE0g+Kap8rljuB2dgU= - dependencies: - asap "^2.0.3" - inline-style-prefixer "^2.0.0" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -2002,11 +2006,6 @@ array.prototype.flatmap@^1.2.4: es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -asap@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^5.0.1, asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -2835,10 +2834,19 @@ boolbase@^1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -bowser@^1.0.0: - version "1.9.4" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" - integrity sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ== +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" brace-expansion@^1.1.7: version "1.1.11" @@ -3131,7 +3139,7 @@ camelcase@^3.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= -camelcase@^5.0.0: +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -3193,6 +3201,14 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -3218,7 +3234,7 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" -chokidar@3.5.2, chokidar@^3.4.2: +chokidar@3.5.2, chokidar@^3.2.2, chokidar@^3.4.2: version "3.5.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -3323,6 +3339,11 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -3511,6 +3532,18 @@ concat-stream@^1.5.1: readable-stream "^2.2.2" typedarray "^0.0.6" +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -3707,6 +3740,11 @@ crypto-browserify@3.12.0, crypto-browserify@^3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + 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" @@ -3864,6 +3902,11 @@ deep-equal@^1.0.1, deep-equal@~1.1.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -4132,6 +4175,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + dotignore@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" @@ -4380,6 +4430,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -5799,6 +5854,13 @@ glob@7.1.7, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6, glo once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + dependencies: + ini "1.3.7" + global@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -5847,7 +5909,7 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -got@9.6.0: +got@9.6.0, got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== @@ -5989,6 +6051,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.3, has@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -6227,11 +6294,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -hyphenate-style-name@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" - integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== - iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -6258,6 +6320,11 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -6294,6 +6361,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -6338,13 +6410,15 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -inline-style-prefixer@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" - integrity sha1-wVPH6I/YT+9cYC6VqBaLJ3BnH+c= - dependencies: - bowser "^1.0.0" - hyphenate-style-name "^1.0.1" +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^6.2.2: version "6.5.2" @@ -6696,6 +6770,14 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= +is-installed-globally@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + is-ip@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" @@ -6721,6 +6803,11 @@ is-negative-zero@^2.0.1: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + is-number-object@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" @@ -6740,6 +6827,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-object@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" @@ -6764,6 +6856,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-path-inside@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + 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" @@ -6871,6 +6968,11 @@ is-wsl@^2.1.1: dependencies: is-docker "^2.0.0" +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -7420,6 +7522,13 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -7996,6 +8105,13 @@ mafmt@^9.0.0: dependencies: multiaddr "^9.0.1" +make-dir@^3.0.0: + 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" + make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -8610,6 +8726,22 @@ node-releases@^1.1.75: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== +nodemon@^2.0.7: + version "2.0.12" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.12.tgz#5dae4e162b617b91f1873b3bfea215dd71e144d5" + integrity sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA== + dependencies: + chokidar "^3.2.2" + debug "^3.2.6" + ignore-by-default "^1.0.1" + minimatch "^3.0.4" + pstree.remy "^1.1.7" + semver "^5.7.1" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.3" + update-notifier "^4.1.0" + noms@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" @@ -8618,6 +8750,13 @@ noms@0.0.0: inherits "^2.0.1" readable-stream "~1.0.31" +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + dependencies: + abbrev "1" + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -8659,6 +8798,14 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-watch@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/npm-watch/-/npm-watch-0.11.0.tgz#d052d9832ad2923dcf937a35aff0c2db678a8a2e" + integrity sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg== + dependencies: + nodemon "^2.0.7" + through2 "^4.0.2" + nth-check@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" @@ -9043,6 +9190,16 @@ p-wait-for@^3.2.0: dependencies: p-timeout "^3.0.0" +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + param-case@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -9519,6 +9676,11 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +pstree.remy@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -9602,6 +9764,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pupa@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.0.0" + qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -9666,12 +9835,15 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -react-components@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/react-components/-/react-components-0.5.1.tgz#3ae23f0cd0296ef586b4a2875b031e52fa390c2c" - integrity sha512-YRZcUHHwnsP/3zoRZOXZPnil8d4qlA1f4YQhNcMfdNdOhJiTAe3B3G6XnFCPzqlTWrOA3dRb+kvlIp7W3ufPsA== +rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: - aphrodite "1.1.0" + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" react-dom@^17.0.2: version "17.0.2" @@ -9755,6 +9927,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +readable-stream@3, readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, 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.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -9778,15 +9959,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.5.0, 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, readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -9886,6 +10058,20 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" +registry-auth-token@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -10290,12 +10476,19 @@ semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^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.0, semver@^5.5.1, semver@^5.6.0: +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -10884,7 +11077,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -11008,7 +11201,7 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1. resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@^2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= @@ -11150,6 +11343,11 @@ tar@^4.0.2: safe-buffer "^5.2.1" yallist "^3.1.1" +term-size@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== + terser-webpack-plugin@^5.1.3: version "5.2.0" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.0.tgz#694c54fcdfa5f5cb2ceaf31929e7535b32a8a50c" @@ -11211,6 +11409,13 @@ through2@^2.0.1, through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + through@2, through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -11317,6 +11522,13 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -11469,6 +11681,11 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-fest@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" @@ -11573,6 +11790,13 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +undefsafe@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" + integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A== + dependencies: + debug "^2.2.0" + underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -11588,6 +11812,13 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -11631,6 +11862,25 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +update-notifier@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -12378,6 +12628,13 @@ wide-align@1.1.3: dependencies: string-width "^1.0.2 || 2" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + wildcard@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" @@ -12429,6 +12686,16 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -12484,6 +12751,11 @@ wsrun@^5.2.4: throat "^4.1.0" yargs "^13.0.0" +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + 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"