From aa60d618f9a2f0471fbea69f5ccb0e671c27c813 Mon Sep 17 00:00:00 2001 From: Anthony Potdevin <31413433+apotdevin@users.noreply.github.com> Date: Sun, 12 Apr 2020 18:27:01 +0200 Subject: [PATCH] Feat/nextjs (#25) * feat: initial nextjs commit * chore: general card styles changes * chore: add storybook * chore: small changes and fixes * fix: trading filter encoding * fix: add link to node * chore: set to correct version --- .babelrc | 11 + .commitlintrc.json | 3 + .dockerignore | 12 + .gitignore | 32 +- .prettierignore | 2 + .prettierrc | 7 + .storybook/config.js | 24 + .storybook/main.js | 7 + {client/.storybook => .storybook}/manager.js | 4 +- .storybook/themeDecorator.js | 35 + .storybook/webpack.config.js | 12 + .vscode/settings.json | 3 + @types/index.d.ts | 5 + Dockerfile | 16 + README.md | 52 +- client/.dockerignore | 4 - client/.env | 1 - client/.gitignore | 27 - client/.prettierrc | 7 - client/.storybook/main.js | 25 - client/.storybook/preview.js | 22 - client/.storybook/themeDecorator.js | 37 - client/Dockerfile | 14 - client/config/nginx.conf | 15 - client/package.json | 102 - client/public/apple-touch-icon-152x152.png | Bin 13506 -> 0 bytes client/public/index.html | 60 - client/public/manifest.json | 20 - client/public/robots.txt | 2 - client/src/App.test.tsx | 9 - client/src/App.tsx | 80 - .../components/animated/AnimatedNumber.tsx | 49 - client/src/components/auth/Auth.styled.tsx | 43 - .../src/components/auth/checks/AdminCheck.tsx | 43 - .../src/components/auth/checks/ViewCheck.tsx | 159 - client/src/components/auth/index.tsx | 188 - client/src/components/auth/views/BTCLogin.tsx | 51 - .../src/components/auth/views/Checkboxes.tsx | 55 - .../components/auth/views/ConnectLogin.tsx | 52 - .../src/components/auth/views/NormalLogin.tsx | 97 - client/src/components/auth/views/Password.tsx | 47 - client/src/components/auth/views/QRLogin.tsx | 163 - .../src/components/bitcoinInfo/BitcoinFees.ts | 27 - .../components/bitcoinInfo/BitcoinPrice.ts | 29 - .../src/components/burgerMenu/BurgerMenu.tsx | 32 - .../colorButton/ColorButton.stories.tsx | 31 - .../buttons/colorButton/ColorButton.tsx | 159 - .../multiButton/MultiButton.stories.tsx | 51 - .../buttons/multiButton/MultiButton.tsx | 85 - .../buttons/secureButton/LoginModal.tsx | 124 - .../buttons/secureButton/SecureButton.tsx | 63 - .../components/checkbox/Checkbox.stories.tsx | 16 - client/src/components/checkbox/Checkbox.tsx | 58 - .../connectionCheck/ConnectionCheck.tsx | 36 - client/src/components/emoji/Emoji.tsx | 17 - client/src/components/generic/Helpers.tsx | 74 - client/src/components/generic/Icons.ts | 124 - client/src/components/generic/Styled.tsx | 225 - client/src/components/input/Input.stories.tsx | 24 - client/src/components/input/Input.tsx | 85 - client/src/components/link/Link.stories.tsx | 13 - client/src/components/link/Link.tsx | 82 - client/src/components/loading/LoadingCard.tsx | 63 - .../src/components/loadingBar/LoadingBar.tsx | 43 - client/src/components/modal/ReactModal.tsx | 61 - .../modal/closeChannel/CloseChannel.tsx | 222 - .../modal/removePeer/RemovePeer.tsx | 62 - client/src/components/nodeInfo/NodeBar.tsx | 91 - client/src/components/nodeInfo/NodeCard.tsx | 144 - .../components/nodeInfo/NodeInfo.styled.tsx | 105 - .../src/components/nodeInfo/NodeInfoModal.tsx | 102 - client/src/components/price/Price.tsx | 86 - .../src/components/rating/Rating.stories.tsx | 20 - client/src/components/rating/Rating.tsx | 62 - .../components/scrollToTop/ScrollToTop.tsx | 17 - client/src/components/section/Section.tsx | 69 - .../components/statusCheck/StatusCheck.tsx | 68 - client/src/context/AccountContext.tsx | 202 - client/src/context/BitcoinContext.tsx | 76 - client/src/context/ConnectionContext.tsx | 68 - client/src/context/PriceContext.tsx | 73 - client/src/context/SettingsContext.tsx | 90 - client/src/context/StatusContext.tsx | 82 - client/src/graphql/hodlhodl/query.ts | 71 - client/src/graphql/mutation.ts | 159 - client/src/graphql/query.ts | 378 - client/src/helpers/Helpers.tsx | 76 - client/src/hooks/UseInterval.tsx | 17 - client/src/hooks/UseSize.tsx | 28 - client/src/index.tsx | 12 - client/src/react-app-env.d.ts | 1 - client/src/sections/content/Content.tsx | 104 - client/src/sections/footer/Footer.tsx | 158 - client/src/sections/header/Header.tsx | 173 - client/src/sections/navigation/Navigation.tsx | 211 - .../sections/navigation/nodeInfo/NodeInfo.tsx | 295 - .../navigation/sideSettings/SideSettings.tsx | 206 - client/src/serviceWorker.ts | 144 - client/src/styles/FontStyles.css | 53 - client/src/utils/auth.ts | 187 - client/src/utils/error.tsx | 21 - client/src/utils/storage.ts | 28 - client/src/views/balance/Balance.styled.tsx | 46 - client/src/views/balance/Balance.tsx | 230 - client/src/views/balance/BalanceCard.tsx | 113 - client/src/views/balance/BalanceRoute.tsx | 162 - client/src/views/chain/ChainView.tsx | 13 - .../chain/transactions/ChainTransactions.tsx | 51 - .../chain/transactions/TransactionsCard.tsx | 99 - client/src/views/chain/utxos/ChainUtxos.tsx | 49 - client/src/views/chain/utxos/UtxoCard.tsx | 68 - client/src/views/channels/ChannelView.tsx | 114 - client/src/views/channels/Channels.style.tsx | 77 - .../views/channels/channels/ChannelCard.tsx | 254 - .../src/views/channels/channels/Channels.tsx | 43 - .../channels/closedChannels/ClosedCard.tsx | 142 - .../closedChannels/ClosedChannels.tsx | 43 - .../channels/pendingChannels/PendingCard.tsx | 189 - .../pendingChannels/PendingChannels.tsx | 43 - client/src/views/entry/Entry.tsx | 41 - .../views/entry/homepage/HomePage.styled.ts | 89 - .../entry/homepage/Sections/CallToAction.tsx | 42 - .../entry/homepage/Sections/Compatible.tsx | 24 - .../entry/homepage/Sections/DetailSection.tsx | 100 - .../entry/homepage/Sections/InfoSection.tsx | 98 - .../homepage/Sections/Sections.styled.tsx | 91 - .../src/views/entry/homepage/Sections/Top.tsx | 60 - client/src/views/entry/login/Login.tsx | 115 - client/src/views/entry/login/SessionLogin.tsx | 61 - client/src/views/fees/FeeCard.tsx | 164 - client/src/views/fees/Fees.style.tsx | 42 - client/src/views/fees/Fees.tsx | 135 - client/src/views/forwards/ForwardList.tsx | 94 - client/src/views/forwards/ForwardsCard.tsx | 84 - client/src/views/home/Home.tsx | 24 - client/src/views/home/account/AccountInfo.tsx | 269 - .../account/createInvoice/CreateInvoice.tsx | 124 - client/src/views/home/account/pay/pay.tsx | 123 - .../account/receiveOnChain/ReceiveOnChain.tsx | 113 - .../home/account/sendOnChain/SendOnChain.tsx | 261 - client/src/views/home/connect/Connect.tsx | 123 - .../views/home/networkInfo/NetworkInfo.tsx | 157 - .../views/home/quickActions/QuickActions.tsx | 106 - .../views/home/quickActions/decode/Decode.tsx | 100 - .../quickActions/openChannel/OpenChannel.tsx | 198 - .../src/views/home/reports/flow/FlowPie.tsx | 51 - .../views/home/reports/flow/FlowReport.tsx | 159 - .../src/views/home/reports/flow/Helpers.tsx | 59 - .../views/home/reports/flow/InvoicePie.tsx | 42 - client/src/views/home/reports/flow/index.tsx | 221 - .../home/reports/forwardReport/Buttons.tsx | 69 - .../forwardReport/ForwardChannelReport.tsx | 234 - .../reports/forwardReport/ForwardReport.tsx | 151 - .../home/reports/forwardReport/index.tsx | 79 - .../reports/liquidReport/LiquidReport.tsx | 129 - client/src/views/notFound/NotFound.tsx | 6 - client/src/views/other/ContactSection.tsx | 66 - client/src/views/other/OtherViews.styled.ts | 84 - client/src/views/other/faq/FaqView.tsx | 131 - .../src/views/other/privacy/PrivacyView.tsx | 172 - client/src/views/other/terms/TermsView.tsx | 93 - client/src/views/peers/AddPeer.tsx | 127 - client/src/views/peers/PeersCard.tsx | 201 - client/src/views/peers/PeersList.tsx | 46 - client/src/views/settings/Account.tsx | 134 - client/src/views/settings/Current.tsx | 55 - client/src/views/settings/Danger.tsx | 179 - client/src/views/settings/Interface.tsx | 95 - client/src/views/settings/Sync.tsx | 172 - client/src/views/stateViews/StateCards.tsx | 68 - client/src/views/tools/Tools.styled.tsx | 24 - client/src/views/tools/backups/Backups.tsx | 47 - .../views/tools/backups/DownloadBackups.tsx | 45 - .../src/views/tools/backups/RecoverFunds.tsx | 64 - .../src/views/tools/backups/VerifyBackups.tsx | 85 - client/src/views/tools/index.tsx | 10 - client/src/views/tools/messages/Messages.tsx | 22 - .../src/views/tools/messages/SignMessage.tsx | 100 - .../views/tools/messages/VerifyMessage.tsx | 109 - client/src/views/trader/MethodBoxes.tsx | 48 - client/src/views/trader/Modal/FilterModal.tsx | 163 - .../src/views/trader/Modal/FilteredList.tsx | 76 - client/src/views/trader/OfferCard.styled.tsx | 54 - client/src/views/trader/OfferCard.tsx | 195 - client/src/views/trader/OfferConfigs.tsx | 141 - client/src/views/trader/OfferFilters.tsx | 253 - client/src/views/trader/TraderView.tsx | 148 - client/src/views/transactions/InvoiceCard.tsx | 113 - .../src/views/transactions/PaymentsCards.tsx | 101 - .../views/transactions/TransactionList.tsx | 113 - client/tsconfig.json | 33 - config/apolloClient.tsx | 25 + docker-compose.yml | 32 - {assets => docs}/Home.png | Bin lerna.json | 6 - next-env.d.ts | 2 + next.config.js | 13 + package.json | 105 +- pages/_app.tsx | 79 + pages/_document.tsx | 29 + pages/api/v1.tsx | 26 + pages/balance.tsx | 229 + pages/chain.tsx | 15 + pages/channels.tsx | 107 + pages/faq.tsx | 132 + pages/fees.tsx | 134 + pages/forwards.tsx | 93 + pages/home.tsx | 26 + pages/index.tsx | 21 + pages/login.tsx | 112 + pages/peers.tsx | 52 + pages/privacy.tsx | 171 + pages/settings.tsx | 40 + pages/terms.tsx | 92 + pages/tools.tsx | 12 + pages/trading.tsx | 149 + pages/transactions.tsx | 114 + {client/public => public}/favicon.ico | Bin .../otf => public/fonts}/Manrope-Bold.otf | Bin .../fonts}/Manrope-ExtraBold.otf | Bin .../fonts}/Manrope-ExtraLight.otf | Bin .../otf => public/fonts}/Manrope-Light.otf | Bin .../otf => public/fonts}/Manrope-Medium.otf | Bin .../otf => public/fonts}/Manrope-Regular.otf | Bin .../otf => public/fonts}/Manrope-SemiBold.otf | Bin .../static}/images/Channels.png | Bin .../static}/images/Forwards.png | Bin .../static}/images/MoshingDoodle.svg | 0 .../static}/images/NightLight.png | Bin .../static}/images/Reports.png | Bin .../static}/images/ThunderHub.svg | 0 .../static}/images/Transactions.png | Bin server/.dockerignore | 3 - server/.ebignore | 2 - server/.gitignore | 29 - server/.npmrc | 2 - server/.prettierrc | 7 - server/CHANGELOG.md | 10 - server/Dockerfile | 20 - server/nodemon.json | 4 - server/package.json | 47 - server/src/helpers/helpers.ts | 62 - server/src/helpers/hodlHelpers.ts | 18 - server/src/helpers/logger.ts | 43 - server/src/helpers/rateLimiter.ts | 22 - server/src/main.ts | 26 - .../mutations/channels/closeChannel.ts | 49 - .../schemas/mutations/channels/openChannel.ts | 50 - .../schemas/mutations/channels/updateFees.ts | 51 - .../mutations/invoices/createInvoice.ts | 50 - .../src/schemas/mutations/invoices/decode.ts | 92 - .../mutations/invoices/parsePayment.ts | 80 - server/src/schemas/mutations/invoices/pay.ts | 73 - .../schemas/mutations/invoices/payViaRoute.ts | 43 - .../schemas/mutations/onchain/getAddress.ts | 38 - .../mutations/onchain/sendToAddress.ts | 66 - server/src/schemas/mutations/peers/addPeer.ts | 34 - .../src/schemas/mutations/peers/removePeer.ts | 30 - server/src/schemas/query/backup/getBackups.ts | 26 - .../src/schemas/query/backup/recoverFunds.ts | 45 - .../src/schemas/query/backup/verifyBackups.ts | 46 - .../src/schemas/query/chain/chainBalance.ts | 59 - .../schemas/query/chain/chainTransactions.ts | 51 - server/src/schemas/query/chain/getUtxos.ts | 43 - .../schemas/query/channels/channelBalance.ts | 37 - .../src/schemas/query/channels/channelFees.ts | 89 - .../schemas/query/channels/channelReport.ts | 65 - server/src/schemas/query/channels/channels.ts | 81 - .../schemas/query/channels/closedChannels.ts | 67 - .../schemas/query/channels/pendingChannels.ts | 71 - server/src/schemas/query/data/bitcoinFee.ts | 36 - server/src/schemas/query/data/bitcoinPrice.ts | 29 - .../schemas/query/flow/getInOut.interface.ts | 28 - server/src/schemas/query/flow/getInOut.ts | 99 - .../src/schemas/query/general/adminCheck.ts | 29 - .../src/schemas/query/general/networkInfo.ts | 48 - server/src/schemas/query/general/nodeInfo.ts | 49 - .../schemas/query/hodlhodl/getCountries.ts | 37 - .../schemas/query/hodlhodl/getCurrencies.ts | 37 - .../src/schemas/query/hodlhodl/getOffers.ts | 57 - .../src/schemas/query/message/signMessage.ts | 31 - .../schemas/query/message/verifyMessage.ts | 33 - server/src/schemas/query/peer/getPeers.ts | 64 - .../schemas/query/report/ForwardChannels.ts | 167 - .../query/report/ForwardReport.interface.ts | 42 - .../src/schemas/query/report/ForwardReport.ts | 80 - server/src/schemas/query/report/Helpers.ts | 106 - server/src/schemas/query/route/getRoutes.ts | 42 - .../schemas/query/transactions/forwards.ts | 124 - .../query/transactions/resume.interface.ts | 61 - .../src/schemas/query/transactions/resume.ts | 121 - server/src/schemas/types/GeneralType.ts | 18 - server/src/schemas/types/HodlType.ts | 105 - server/src/schemas/types/MutationType.ts | 144 - server/src/schemas/types/QueryType.ts | 260 - server/src/utils/appUrls.ts | 5 - server/src/utils/envConfig.ts | 8 - server/src/utils/rateLimitConfig.ts | 53 - server/tsconfig.json | 66 - server/types/ln-service.d.ts | 1 - server/webpack.common.js | 21 - server/webpack.development.js | 31 - server/webpack.production.js | 19 - .../src => src/api}/helpers/defaultProps.ts | 4 +- src/api/helpers/helpers.ts | 59 + src/api/helpers/hodlHelpers.ts | 18 + src/api/helpers/logger.ts | 39 + src/api/helpers/rateLimiter.ts | 22 + {server/src => src/api}/schemas/index.ts | 16 +- .../mutations/channels/closeChannel.ts | 49 + .../api}/schemas/mutations/channels/index.ts | 6 +- .../schemas/mutations/channels/openChannel.ts | 50 + .../schemas/mutations/channels/updateFees.ts | 44 + .../api}/schemas/mutations/index.ts | 8 +- .../mutations/invoices/createInvoice.ts | 50 + src/api/schemas/mutations/invoices/decode.ts | 92 + .../api}/schemas/mutations/invoices/index.ts | 10 +- .../mutations/invoices/parsePayment.ts | 80 + src/api/schemas/mutations/invoices/pay.ts | 73 + .../schemas/mutations/invoices/payViaRoute.ts | 43 + .../schemas/mutations/onchain/getAddress.ts | 38 + .../api}/schemas/mutations/onchain/index.ts | 4 +- .../mutations/onchain/sendToAddress.ts | 66 + src/api/schemas/mutations/peers/addPeer.ts | 34 + .../api}/schemas/mutations/peers/index.ts | 4 +- src/api/schemas/mutations/peers/removePeer.ts | 30 + src/api/schemas/query/backup/getBackups.ts | 26 + .../api}/schemas/query/backup/index.ts | 6 +- src/api/schemas/query/backup/recoverFunds.ts | 45 + src/api/schemas/query/backup/verifyBackups.ts | 46 + src/api/schemas/query/chain/chainBalance.ts | 58 + .../schemas/query/chain/chainTransactions.ts | 49 + src/api/schemas/query/chain/getUtxos.ts | 43 + .../api}/schemas/query/chain/index.ts | 8 +- .../schemas/query/channels/channelBalance.ts | 34 + src/api/schemas/query/channels/channelFees.ts | 86 + .../schemas/query/channels/channelReport.ts | 64 + src/api/schemas/query/channels/channels.ts | 81 + .../schemas/query/channels/closedChannels.ts | 66 + .../api}/schemas/query/channels/index.ts | 12 +- .../schemas/query/channels/pendingChannels.ts | 69 + src/api/schemas/query/data/bitcoinFee.ts | 34 + src/api/schemas/query/data/bitcoinPrice.ts | 28 + .../api}/schemas/query/data/index.ts | 4 +- .../schemas/query/flow/getInOut.interface.ts | 28 + src/api/schemas/query/flow/getInOut.ts | 99 + .../api}/schemas/query/flow/index.ts | 2 +- src/api/schemas/query/general/adminCheck.ts | 29 + .../api}/schemas/query/general/index.ts | 6 +- src/api/schemas/query/general/networkInfo.ts | 46 + src/api/schemas/query/general/nodeInfo.ts | 49 + .../schemas/query/hodlhodl/getCountries.ts | 36 + .../schemas/query/hodlhodl/getCurrencies.ts | 36 + src/api/schemas/query/hodlhodl/getOffers.ts | 55 + .../api}/schemas/query/hodlhodl/index.ts | 6 +- .../src => src/api}/schemas/query/index.ts | 24 +- .../api}/schemas/query/message/index.ts | 4 +- src/api/schemas/query/message/signMessage.ts | 31 + .../schemas/query/message/verifyMessage.ts | 33 + src/api/schemas/query/peer/getPeers.ts | 64 + .../api}/schemas/query/peer/index.ts | 2 +- .../schemas/query/report/ForwardChannels.ts | 155 + .../query/report/ForwardReport.interface.ts | 42 + src/api/schemas/query/report/ForwardReport.ts | 71 + src/api/schemas/query/report/Helpers.ts | 112 + .../api}/schemas/query/report/index.ts | 4 +- src/api/schemas/query/route/getRoutes.ts | 42 + .../api}/schemas/query/route/index.ts | 2 +- .../schemas/query/transactions/forwards.ts | 121 + .../api}/schemas/query/transactions/index.ts | 4 +- .../query/transactions/resume.interface.ts | 61 + src/api/schemas/query/transactions/resume.ts | 115 + src/api/schemas/types/GeneralType.ts | 18 + src/api/schemas/types/HodlType.ts | 105 + src/api/schemas/types/MutationType.ts | 144 + src/api/schemas/types/QueryType.ts | 260 + src/api/utils/appUrls.ts | 5 + src/api/utils/envConfig.ts | 5 + src/api/utils/rateLimitConfig.ts | 53 + .../src => src}/assets/icons/alert-circle.svg | 0 .../assets/icons/alert-triangle.svg | 0 {client/src => src}/assets/icons/anchor.svg | 0 .../src => src}/assets/icons/arrow-down.svg | 0 {client/src => src}/assets/icons/arrow-up.svg | 0 {client/src => src}/assets/icons/check.svg | 0 .../src => src}/assets/icons/chevron-down.svg | 0 .../src => src}/assets/icons/chevron-left.svg | 0 .../assets/icons/chevron-right.svg | 0 .../src => src}/assets/icons/chevron-up.svg | 0 .../assets/icons/chevrons-down.svg | 0 .../src => src}/assets/icons/chevrons-up.svg | 0 {client/src => src}/assets/icons/circle.svg | 0 {client/src => src}/assets/icons/copy.svg | 0 {client/src => src}/assets/icons/cpu.svg | 0 .../src => src}/assets/icons/credit-card.svg | 0 .../src => src}/assets/icons/crosshair.svg | 0 {client/src => src}/assets/icons/edit.svg | 0 {client/src => src}/assets/icons/eye-off.svg | 0 {client/src => src}/assets/icons/eye.svg | 0 .../src => src}/assets/icons/git-branch.svg | 0 .../src => src}/assets/icons/git-commit.svg | 0 .../assets/icons/git-pull-request.svg | 0 {client/src => src}/assets/icons/github.svg | 0 {client/src => src}/assets/icons/globe.svg | 0 .../src => src}/assets/icons/half-star.svg | 0 .../src => src}/assets/icons/help-circle.svg | 0 {client/src => src}/assets/icons/home.svg | 0 {client/src => src}/assets/icons/key.svg | 0 {client/src => src}/assets/icons/layers.svg | 0 {client/src => src}/assets/icons/link.svg | 0 {client/src => src}/assets/icons/loader.svg | 0 {client/src => src}/assets/icons/mail.svg | 0 {client/src => src}/assets/icons/menu.svg | 0 {client/src => src}/assets/icons/moon.svg | 0 .../assets/icons/more-vertical.svg | 0 {client/src => src}/assets/icons/pocket.svg | 0 {client/src => src}/assets/icons/radio.svg | 0 {client/src => src}/assets/icons/repeat.svg | 0 {client/src => src}/assets/icons/send.svg | 0 {client/src => src}/assets/icons/server.svg | 0 {client/src => src}/assets/icons/settings.svg | 0 {client/src => src}/assets/icons/shield.svg | 0 {client/src => src}/assets/icons/sliders.svg | 0 {client/src => src}/assets/icons/star.svg | 0 {client/src => src}/assets/icons/sun.svg | 0 {client/src => src}/assets/icons/users.svg | 0 {client/src => src}/assets/icons/x.svg | 0 {client/src => src}/assets/icons/zap-off.svg | 0 {client/src => src}/assets/icons/zap.svg | 0 .../components/adminSwitch/AdminSwitch.tsx | 12 +- .../animated/AnimatedNumber.stories.tsx | 4 +- src/components/animated/AnimatedNumber.tsx | 49 + src/components/auth/Auth.styled.tsx | 43 + src/components/auth/checks/AdminCheck.tsx | 44 + src/components/auth/checks/ViewCheck.tsx | 149 + src/components/auth/index.tsx | 197 + src/components/auth/views/BTCLogin.tsx | 51 + src/components/auth/views/Checkboxes.tsx | 55 + src/components/auth/views/ConnectLogin.tsx | 52 + src/components/auth/views/NormalLogin.tsx | 97 + src/components/auth/views/Password.tsx | 49 + src/components/auth/views/QRLogin.tsx | 154 + src/components/bitcoinInfo/BitcoinFees.ts | 27 + src/components/bitcoinInfo/BitcoinPrice.ts | 29 + src/components/burgerMenu/BurgerMenu.tsx | 32 + .../colorButton/ColorButton.stories.tsx | 31 + .../buttons/colorButton/ColorButton.tsx | 157 + .../multiButton/MultiButton.stories.tsx | 51 + .../buttons/multiButton/MultiButton.tsx | 83 + .../buttons/secureButton/LoginModal.tsx | 111 + .../buttons/secureButton/SecureButton.tsx | 62 + src/components/checkbox/Checkbox.stories.tsx | 16 + src/components/checkbox/Checkbox.tsx | 58 + .../connectionCheck/ConnectionCheck.tsx | 42 + src/components/emoji/Emoji.tsx | 17 + src/components/generic/CardGeneric.tsx | 101 + src/components/generic/Helpers.tsx | 71 + src/components/generic/Icons.ts | 124 + src/components/generic/Styled.tsx | 225 + src/components/gridWrapper/GridWrapper.tsx | 48 + src/components/input/Input.stories.tsx | 24 + src/components/input/Input.tsx | 85 + src/components/link/Link.stories.tsx | 18 + src/components/link/Link.tsx | 74 + src/components/loading/LoadingCard.tsx | 63 + src/components/loadingBar/LoadingBar.tsx | 43 + src/components/modal/ReactModal.tsx | 61 + .../modal/closeChannel/CloseChannel.tsx | 208 + .../modal/removePeer/RemovePeer.tsx | 62 + src/components/nodeInfo/NodeBar.tsx | 86 + src/components/nodeInfo/NodeCard.tsx | 148 + src/components/nodeInfo/NodeInfo.styled.tsx | 105 + src/components/nodeInfo/NodeInfoModal.tsx | 102 + src/components/price/Price.tsx | 86 + src/components/rating/Rating.stories.tsx | 20 + src/components/rating/Rating.tsx | 58 + src/components/section/Section.tsx | 69 + src/components/stateViews/StateCards.tsx | 65 + src/components/statusCheck/StatusCheck.tsx | 68 + src/components/typography/Styled.tsx | 85 + src/context/AccountContext.tsx | 197 + src/context/BitcoinContext.tsx | 74 + src/context/ConnectionContext.tsx | 71 + .../src => src}/context/ContextProvider.tsx | 22 +- src/context/PriceContext.tsx | 71 + src/context/SettingsContext.tsx | 92 + src/context/StatusContext.tsx | 78 + src/graphql/hodlhodl/query.ts | 71 + src/graphql/mutation.ts | 159 + src/graphql/query.ts | 378 + src/hooks/UseInterval.tsx | 17 + src/hooks/UseSize.tsx | 28 + src/layouts/footer/Footer.tsx | 151 + src/layouts/header/Header.tsx | 156 + src/layouts/navigation/Navigation.tsx | 210 + src/layouts/navigation/nodeInfo/NodeInfo.tsx | 278 + .../navigation/sideSettings/SideSettings.tsx | 194 + src/styles/FontStyles.css | 48 + {client/src => src}/styles/GlobalStyle.ts | 1 + {client/src => src}/styles/Themes.ts | 232 +- src/utils/Helpers.tsx | 83 + src/utils/auth.ts | 185 + src/utils/error.tsx | 20 + src/utils/storage.ts | 28 + src/views/balance/Balance.styled.tsx | 46 + src/views/balance/BalanceCard.tsx | 110 + src/views/balance/BalanceRoute.tsx | 151 + .../chain/transactions/ChainTransactions.tsx | 49 + .../chain/transactions/TransactionsCard.tsx | 97 + src/views/chain/utxos/ChainUtxos.tsx | 49 + src/views/chain/utxos/UtxoCard.tsx | 68 + src/views/channels/channels/ChannelCard.tsx | 232 + src/views/channels/channels/Channels.tsx | 43 + .../channels/closedChannels/ClosedCard.tsx | 133 + .../closedChannels/ClosedChannels.tsx | 43 + .../channels/pendingChannels/PendingCard.tsx | 190 + .../pendingChannels/PendingChannels.tsx | 43 + src/views/fees/FeeCard.tsx | 160 + src/views/forwards/ForwardsCard.tsx | 84 + src/views/home/account/AccountInfo.tsx | 263 + .../account/createInvoice/CreateInvoice.tsx | 113 + src/views/home/account/pay/pay.tsx | 117 + .../account/receiveOnChain/ReceiveOnChain.tsx | 109 + .../home/account/sendOnChain/SendOnChain.tsx | 250 + src/views/home/connect/Connect.tsx | 119 + src/views/home/networkInfo/NetworkInfo.tsx | 157 + src/views/home/quickActions/QuickActions.tsx | 98 + src/views/home/quickActions/decode/Decode.tsx | 98 + .../quickActions/openChannel/OpenChannel.tsx | 186 + src/views/home/reports/flow/FlowPie.tsx | 51 + src/views/home/reports/flow/FlowReport.tsx | 157 + src/views/home/reports/flow/Helpers.tsx | 63 + src/views/home/reports/flow/InvoicePie.tsx | 42 + src/views/home/reports/flow/index.tsx | 213 + .../home/reports/forwardReport/Buttons.tsx | 69 + .../forwardReport/ForwardChannelReport.tsx | 230 + .../reports/forwardReport/ForwardReport.tsx | 149 + .../home/reports/forwardReport/index.tsx | 75 + .../reports/liquidReport/LiquidReport.tsx | 121 + src/views/homepage/HomePage.styled.tsx | 91 + .../entry => src/views}/homepage/HomePage.tsx | 22 +- src/views/homepage/Sections/CallToAction.tsx | 43 + src/views/homepage/Sections/Compatible.tsx | 22 + .../homepage/Sections/ContactSection.tsx | 63 + src/views/homepage/Sections/DetailSection.tsx | 100 + src/views/homepage/Sections/InfoSection.tsx | 89 + .../homepage/Sections/Sections.styled.tsx | 91 + src/views/homepage/Sections/Top.tsx | 53 + src/views/login/SessionLogin.tsx | 61 + src/views/peers/AddPeer.tsx | 119 + src/views/peers/PeersCard.tsx | 185 + src/views/settings/Account.tsx | 134 + src/views/settings/Current.tsx | 51 + src/views/settings/Danger.tsx | 178 + src/views/settings/Interface.tsx | 83 + src/views/settings/Sync.tsx | 172 + .../views/settings/index.tsx | 36 +- src/views/tools/Tools.styled.tsx | 24 + src/views/tools/backups/Backups.tsx | 52 + src/views/tools/backups/DownloadBackups.tsx | 45 + src/views/tools/backups/RecoverFunds.tsx | 64 + src/views/tools/backups/VerifyBackups.tsx | 85 + src/views/tools/messages/Messages.tsx | 26 + src/views/tools/messages/SignMessage.tsx | 100 + src/views/tools/messages/VerifyMessage.tsx | 108 + src/views/trading/MethodBoxes.tsx | 48 + src/views/trading/Modal/FilterModal.tsx | 159 + src/views/trading/Modal/FilteredList.tsx | 78 + src/views/trading/OfferCard.styled.tsx | 54 + src/views/trading/OfferCard.tsx | 188 + src/views/trading/OfferConfigs.tsx | 141 + src/views/trading/OfferFilters.tsx | 240 + src/views/transactions/InvoiceCard.tsx | 109 + src/views/transactions/PaymentsCards.tsx | 103 + tsconfig.json | 20 + tslint.json | 37 + yarn.lock | 9807 ++++------------- 577 files changed, 21212 insertions(+), 28048 deletions(-) create mode 100644 .babelrc create mode 100644 .commitlintrc.json create mode 100644 .dockerignore create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 .storybook/config.js create mode 100644 .storybook/main.js rename {client/.storybook => .storybook}/manager.js (68%) create mode 100644 .storybook/themeDecorator.js create mode 100644 .storybook/webpack.config.js create mode 100644 .vscode/settings.json create mode 100644 @types/index.d.ts create mode 100644 Dockerfile delete mode 100644 client/.dockerignore delete mode 100644 client/.env delete mode 100644 client/.gitignore delete mode 100644 client/.prettierrc delete mode 100644 client/.storybook/main.js delete mode 100644 client/.storybook/preview.js delete mode 100644 client/.storybook/themeDecorator.js delete mode 100644 client/Dockerfile delete mode 100644 client/config/nginx.conf delete mode 100644 client/package.json delete mode 100644 client/public/apple-touch-icon-152x152.png delete mode 100644 client/public/index.html delete mode 100644 client/public/manifest.json delete mode 100644 client/public/robots.txt delete mode 100644 client/src/App.test.tsx delete mode 100644 client/src/App.tsx delete mode 100644 client/src/components/animated/AnimatedNumber.tsx delete mode 100644 client/src/components/auth/Auth.styled.tsx delete mode 100644 client/src/components/auth/checks/AdminCheck.tsx delete mode 100644 client/src/components/auth/checks/ViewCheck.tsx delete mode 100644 client/src/components/auth/index.tsx delete mode 100644 client/src/components/auth/views/BTCLogin.tsx delete mode 100644 client/src/components/auth/views/Checkboxes.tsx delete mode 100644 client/src/components/auth/views/ConnectLogin.tsx delete mode 100644 client/src/components/auth/views/NormalLogin.tsx delete mode 100644 client/src/components/auth/views/Password.tsx delete mode 100644 client/src/components/auth/views/QRLogin.tsx delete mode 100644 client/src/components/bitcoinInfo/BitcoinFees.ts delete mode 100644 client/src/components/bitcoinInfo/BitcoinPrice.ts delete mode 100644 client/src/components/burgerMenu/BurgerMenu.tsx delete mode 100644 client/src/components/buttons/colorButton/ColorButton.stories.tsx delete mode 100644 client/src/components/buttons/colorButton/ColorButton.tsx delete mode 100644 client/src/components/buttons/multiButton/MultiButton.stories.tsx delete mode 100644 client/src/components/buttons/multiButton/MultiButton.tsx delete mode 100644 client/src/components/buttons/secureButton/LoginModal.tsx delete mode 100644 client/src/components/buttons/secureButton/SecureButton.tsx delete mode 100644 client/src/components/checkbox/Checkbox.stories.tsx delete mode 100644 client/src/components/checkbox/Checkbox.tsx delete mode 100644 client/src/components/connectionCheck/ConnectionCheck.tsx delete mode 100644 client/src/components/emoji/Emoji.tsx delete mode 100644 client/src/components/generic/Helpers.tsx delete mode 100644 client/src/components/generic/Icons.ts delete mode 100644 client/src/components/generic/Styled.tsx delete mode 100644 client/src/components/input/Input.stories.tsx delete mode 100644 client/src/components/input/Input.tsx delete mode 100644 client/src/components/link/Link.stories.tsx delete mode 100644 client/src/components/link/Link.tsx delete mode 100644 client/src/components/loading/LoadingCard.tsx delete mode 100644 client/src/components/loadingBar/LoadingBar.tsx delete mode 100644 client/src/components/modal/ReactModal.tsx delete mode 100644 client/src/components/modal/closeChannel/CloseChannel.tsx delete mode 100644 client/src/components/modal/removePeer/RemovePeer.tsx delete mode 100644 client/src/components/nodeInfo/NodeBar.tsx delete mode 100644 client/src/components/nodeInfo/NodeCard.tsx delete mode 100644 client/src/components/nodeInfo/NodeInfo.styled.tsx delete mode 100644 client/src/components/nodeInfo/NodeInfoModal.tsx delete mode 100644 client/src/components/price/Price.tsx delete mode 100644 client/src/components/rating/Rating.stories.tsx delete mode 100644 client/src/components/rating/Rating.tsx delete mode 100644 client/src/components/scrollToTop/ScrollToTop.tsx delete mode 100644 client/src/components/section/Section.tsx delete mode 100644 client/src/components/statusCheck/StatusCheck.tsx delete mode 100644 client/src/context/AccountContext.tsx delete mode 100644 client/src/context/BitcoinContext.tsx delete mode 100644 client/src/context/ConnectionContext.tsx delete mode 100644 client/src/context/PriceContext.tsx delete mode 100644 client/src/context/SettingsContext.tsx delete mode 100644 client/src/context/StatusContext.tsx delete mode 100644 client/src/graphql/hodlhodl/query.ts delete mode 100644 client/src/graphql/mutation.ts delete mode 100644 client/src/graphql/query.ts delete mode 100644 client/src/helpers/Helpers.tsx delete mode 100644 client/src/hooks/UseInterval.tsx delete mode 100644 client/src/hooks/UseSize.tsx delete mode 100644 client/src/index.tsx delete mode 100644 client/src/react-app-env.d.ts delete mode 100644 client/src/sections/content/Content.tsx delete mode 100644 client/src/sections/footer/Footer.tsx delete mode 100644 client/src/sections/header/Header.tsx delete mode 100644 client/src/sections/navigation/Navigation.tsx delete mode 100644 client/src/sections/navigation/nodeInfo/NodeInfo.tsx delete mode 100644 client/src/sections/navigation/sideSettings/SideSettings.tsx delete mode 100644 client/src/serviceWorker.ts delete mode 100644 client/src/styles/FontStyles.css delete mode 100644 client/src/utils/auth.ts delete mode 100644 client/src/utils/error.tsx delete mode 100644 client/src/utils/storage.ts delete mode 100644 client/src/views/balance/Balance.styled.tsx delete mode 100644 client/src/views/balance/Balance.tsx delete mode 100644 client/src/views/balance/BalanceCard.tsx delete mode 100644 client/src/views/balance/BalanceRoute.tsx delete mode 100644 client/src/views/chain/ChainView.tsx delete mode 100644 client/src/views/chain/transactions/ChainTransactions.tsx delete mode 100644 client/src/views/chain/transactions/TransactionsCard.tsx delete mode 100644 client/src/views/chain/utxos/ChainUtxos.tsx delete mode 100644 client/src/views/chain/utxos/UtxoCard.tsx delete mode 100644 client/src/views/channels/ChannelView.tsx delete mode 100644 client/src/views/channels/Channels.style.tsx delete mode 100644 client/src/views/channels/channels/ChannelCard.tsx delete mode 100644 client/src/views/channels/channels/Channels.tsx delete mode 100644 client/src/views/channels/closedChannels/ClosedCard.tsx delete mode 100644 client/src/views/channels/closedChannels/ClosedChannels.tsx delete mode 100644 client/src/views/channels/pendingChannels/PendingCard.tsx delete mode 100644 client/src/views/channels/pendingChannels/PendingChannels.tsx delete mode 100644 client/src/views/entry/Entry.tsx delete mode 100644 client/src/views/entry/homepage/HomePage.styled.ts delete mode 100644 client/src/views/entry/homepage/Sections/CallToAction.tsx delete mode 100644 client/src/views/entry/homepage/Sections/Compatible.tsx delete mode 100644 client/src/views/entry/homepage/Sections/DetailSection.tsx delete mode 100644 client/src/views/entry/homepage/Sections/InfoSection.tsx delete mode 100644 client/src/views/entry/homepage/Sections/Sections.styled.tsx delete mode 100644 client/src/views/entry/homepage/Sections/Top.tsx delete mode 100644 client/src/views/entry/login/Login.tsx delete mode 100644 client/src/views/entry/login/SessionLogin.tsx delete mode 100644 client/src/views/fees/FeeCard.tsx delete mode 100644 client/src/views/fees/Fees.style.tsx delete mode 100644 client/src/views/fees/Fees.tsx delete mode 100644 client/src/views/forwards/ForwardList.tsx delete mode 100644 client/src/views/forwards/ForwardsCard.tsx delete mode 100644 client/src/views/home/Home.tsx delete mode 100644 client/src/views/home/account/AccountInfo.tsx delete mode 100644 client/src/views/home/account/createInvoice/CreateInvoice.tsx delete mode 100644 client/src/views/home/account/pay/pay.tsx delete mode 100644 client/src/views/home/account/receiveOnChain/ReceiveOnChain.tsx delete mode 100644 client/src/views/home/account/sendOnChain/SendOnChain.tsx delete mode 100644 client/src/views/home/connect/Connect.tsx delete mode 100644 client/src/views/home/networkInfo/NetworkInfo.tsx delete mode 100644 client/src/views/home/quickActions/QuickActions.tsx delete mode 100644 client/src/views/home/quickActions/decode/Decode.tsx delete mode 100644 client/src/views/home/quickActions/openChannel/OpenChannel.tsx delete mode 100644 client/src/views/home/reports/flow/FlowPie.tsx delete mode 100644 client/src/views/home/reports/flow/FlowReport.tsx delete mode 100644 client/src/views/home/reports/flow/Helpers.tsx delete mode 100644 client/src/views/home/reports/flow/InvoicePie.tsx delete mode 100644 client/src/views/home/reports/flow/index.tsx delete mode 100644 client/src/views/home/reports/forwardReport/Buttons.tsx delete mode 100644 client/src/views/home/reports/forwardReport/ForwardChannelReport.tsx delete mode 100644 client/src/views/home/reports/forwardReport/ForwardReport.tsx delete mode 100644 client/src/views/home/reports/forwardReport/index.tsx delete mode 100644 client/src/views/home/reports/liquidReport/LiquidReport.tsx delete mode 100644 client/src/views/notFound/NotFound.tsx delete mode 100644 client/src/views/other/ContactSection.tsx delete mode 100644 client/src/views/other/OtherViews.styled.ts delete mode 100644 client/src/views/other/faq/FaqView.tsx delete mode 100644 client/src/views/other/privacy/PrivacyView.tsx delete mode 100644 client/src/views/other/terms/TermsView.tsx delete mode 100644 client/src/views/peers/AddPeer.tsx delete mode 100644 client/src/views/peers/PeersCard.tsx delete mode 100644 client/src/views/peers/PeersList.tsx delete mode 100644 client/src/views/settings/Account.tsx delete mode 100644 client/src/views/settings/Current.tsx delete mode 100644 client/src/views/settings/Danger.tsx delete mode 100644 client/src/views/settings/Interface.tsx delete mode 100644 client/src/views/settings/Sync.tsx delete mode 100644 client/src/views/stateViews/StateCards.tsx delete mode 100644 client/src/views/tools/Tools.styled.tsx delete mode 100644 client/src/views/tools/backups/Backups.tsx delete mode 100644 client/src/views/tools/backups/DownloadBackups.tsx delete mode 100644 client/src/views/tools/backups/RecoverFunds.tsx delete mode 100644 client/src/views/tools/backups/VerifyBackups.tsx delete mode 100644 client/src/views/tools/index.tsx delete mode 100644 client/src/views/tools/messages/Messages.tsx delete mode 100644 client/src/views/tools/messages/SignMessage.tsx delete mode 100644 client/src/views/tools/messages/VerifyMessage.tsx delete mode 100644 client/src/views/trader/MethodBoxes.tsx delete mode 100644 client/src/views/trader/Modal/FilterModal.tsx delete mode 100644 client/src/views/trader/Modal/FilteredList.tsx delete mode 100644 client/src/views/trader/OfferCard.styled.tsx delete mode 100644 client/src/views/trader/OfferCard.tsx delete mode 100644 client/src/views/trader/OfferConfigs.tsx delete mode 100644 client/src/views/trader/OfferFilters.tsx delete mode 100644 client/src/views/trader/TraderView.tsx delete mode 100644 client/src/views/transactions/InvoiceCard.tsx delete mode 100644 client/src/views/transactions/PaymentsCards.tsx delete mode 100644 client/src/views/transactions/TransactionList.tsx delete mode 100644 client/tsconfig.json create mode 100644 config/apolloClient.tsx delete mode 100644 docker-compose.yml rename {assets => docs}/Home.png (100%) delete mode 100644 lerna.json create mode 100644 next-env.d.ts create mode 100644 next.config.js create mode 100644 pages/_app.tsx create mode 100644 pages/_document.tsx create mode 100644 pages/api/v1.tsx create mode 100644 pages/balance.tsx create mode 100644 pages/chain.tsx create mode 100644 pages/channels.tsx create mode 100644 pages/faq.tsx create mode 100644 pages/fees.tsx create mode 100644 pages/forwards.tsx create mode 100644 pages/home.tsx create mode 100644 pages/index.tsx create mode 100644 pages/login.tsx create mode 100644 pages/peers.tsx create mode 100644 pages/privacy.tsx create mode 100644 pages/settings.tsx create mode 100644 pages/terms.tsx create mode 100644 pages/tools.tsx create mode 100644 pages/trading.tsx create mode 100644 pages/transactions.tsx rename {client/public => public}/favicon.ico (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-Bold.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-ExtraBold.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-ExtraLight.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-Light.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-Medium.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-Regular.otf (100%) rename {client/src/assets/fonts/Manrope/otf => public/fonts}/Manrope-SemiBold.otf (100%) rename {client/src/assets => public/static}/images/Channels.png (100%) rename {client/src/assets => public/static}/images/Forwards.png (100%) rename {client/src/assets => public/static}/images/MoshingDoodle.svg (100%) rename {client/src/assets => public/static}/images/NightLight.png (100%) rename {client/src/assets => public/static}/images/Reports.png (100%) rename {client/src/assets => public/static}/images/ThunderHub.svg (100%) rename {client/src/assets => public/static}/images/Transactions.png (100%) delete mode 100644 server/.dockerignore delete mode 100644 server/.ebignore delete mode 100644 server/.gitignore delete mode 100644 server/.npmrc delete mode 100644 server/.prettierrc delete mode 100644 server/CHANGELOG.md delete mode 100644 server/Dockerfile delete mode 100644 server/nodemon.json delete mode 100644 server/package.json delete mode 100644 server/src/helpers/helpers.ts delete mode 100644 server/src/helpers/hodlHelpers.ts delete mode 100644 server/src/helpers/logger.ts delete mode 100644 server/src/helpers/rateLimiter.ts delete mode 100644 server/src/main.ts delete mode 100644 server/src/schemas/mutations/channels/closeChannel.ts delete mode 100644 server/src/schemas/mutations/channels/openChannel.ts delete mode 100644 server/src/schemas/mutations/channels/updateFees.ts delete mode 100644 server/src/schemas/mutations/invoices/createInvoice.ts delete mode 100644 server/src/schemas/mutations/invoices/decode.ts delete mode 100644 server/src/schemas/mutations/invoices/parsePayment.ts delete mode 100644 server/src/schemas/mutations/invoices/pay.ts delete mode 100644 server/src/schemas/mutations/invoices/payViaRoute.ts delete mode 100644 server/src/schemas/mutations/onchain/getAddress.ts delete mode 100644 server/src/schemas/mutations/onchain/sendToAddress.ts delete mode 100644 server/src/schemas/mutations/peers/addPeer.ts delete mode 100644 server/src/schemas/mutations/peers/removePeer.ts delete mode 100644 server/src/schemas/query/backup/getBackups.ts delete mode 100644 server/src/schemas/query/backup/recoverFunds.ts delete mode 100644 server/src/schemas/query/backup/verifyBackups.ts delete mode 100644 server/src/schemas/query/chain/chainBalance.ts delete mode 100644 server/src/schemas/query/chain/chainTransactions.ts delete mode 100644 server/src/schemas/query/chain/getUtxos.ts delete mode 100644 server/src/schemas/query/channels/channelBalance.ts delete mode 100644 server/src/schemas/query/channels/channelFees.ts delete mode 100644 server/src/schemas/query/channels/channelReport.ts delete mode 100644 server/src/schemas/query/channels/channels.ts delete mode 100644 server/src/schemas/query/channels/closedChannels.ts delete mode 100644 server/src/schemas/query/channels/pendingChannels.ts delete mode 100644 server/src/schemas/query/data/bitcoinFee.ts delete mode 100644 server/src/schemas/query/data/bitcoinPrice.ts delete mode 100644 server/src/schemas/query/flow/getInOut.interface.ts delete mode 100644 server/src/schemas/query/flow/getInOut.ts delete mode 100644 server/src/schemas/query/general/adminCheck.ts delete mode 100644 server/src/schemas/query/general/networkInfo.ts delete mode 100644 server/src/schemas/query/general/nodeInfo.ts delete mode 100644 server/src/schemas/query/hodlhodl/getCountries.ts delete mode 100644 server/src/schemas/query/hodlhodl/getCurrencies.ts delete mode 100644 server/src/schemas/query/hodlhodl/getOffers.ts delete mode 100644 server/src/schemas/query/message/signMessage.ts delete mode 100644 server/src/schemas/query/message/verifyMessage.ts delete mode 100644 server/src/schemas/query/peer/getPeers.ts delete mode 100644 server/src/schemas/query/report/ForwardChannels.ts delete mode 100644 server/src/schemas/query/report/ForwardReport.interface.ts delete mode 100644 server/src/schemas/query/report/ForwardReport.ts delete mode 100644 server/src/schemas/query/report/Helpers.ts delete mode 100644 server/src/schemas/query/route/getRoutes.ts delete mode 100644 server/src/schemas/query/transactions/forwards.ts delete mode 100644 server/src/schemas/query/transactions/resume.interface.ts delete mode 100644 server/src/schemas/query/transactions/resume.ts delete mode 100644 server/src/schemas/types/GeneralType.ts delete mode 100644 server/src/schemas/types/HodlType.ts delete mode 100644 server/src/schemas/types/MutationType.ts delete mode 100644 server/src/schemas/types/QueryType.ts delete mode 100644 server/src/utils/appUrls.ts delete mode 100644 server/src/utils/envConfig.ts delete mode 100644 server/src/utils/rateLimitConfig.ts delete mode 100644 server/tsconfig.json delete mode 100644 server/types/ln-service.d.ts delete mode 100644 server/webpack.common.js delete mode 100644 server/webpack.development.js delete mode 100644 server/webpack.production.js rename {server/src => src/api}/helpers/defaultProps.ts (63%) create mode 100644 src/api/helpers/helpers.ts create mode 100644 src/api/helpers/hodlHelpers.ts create mode 100644 src/api/helpers/logger.ts create mode 100644 src/api/helpers/rateLimiter.ts rename {server/src => src/api}/schemas/index.ts (50%) create mode 100644 src/api/schemas/mutations/channels/closeChannel.ts rename {server/src => src/api}/schemas/mutations/channels/index.ts (76%) create mode 100644 src/api/schemas/mutations/channels/openChannel.ts create mode 100644 src/api/schemas/mutations/channels/updateFees.ts rename {server/src => src/api}/schemas/mutations/index.ts (73%) create mode 100644 src/api/schemas/mutations/invoices/createInvoice.ts create mode 100644 src/api/schemas/mutations/invoices/decode.ts rename {server/src => src/api}/schemas/mutations/invoices/index.ts (74%) create mode 100644 src/api/schemas/mutations/invoices/parsePayment.ts create mode 100644 src/api/schemas/mutations/invoices/pay.ts create mode 100644 src/api/schemas/mutations/invoices/payViaRoute.ts create mode 100644 src/api/schemas/mutations/onchain/getAddress.ts rename {server/src => src/api}/schemas/mutations/onchain/index.ts (76%) create mode 100644 src/api/schemas/mutations/onchain/sendToAddress.ts create mode 100644 src/api/schemas/mutations/peers/addPeer.ts rename {server/src => src/api}/schemas/mutations/peers/index.ts (78%) create mode 100644 src/api/schemas/mutations/peers/removePeer.ts create mode 100644 src/api/schemas/query/backup/getBackups.ts rename {server/src => src/api}/schemas/query/backup/index.ts (76%) create mode 100644 src/api/schemas/query/backup/recoverFunds.ts create mode 100644 src/api/schemas/query/backup/verifyBackups.ts create mode 100644 src/api/schemas/query/chain/chainBalance.ts create mode 100644 src/api/schemas/query/chain/chainTransactions.ts create mode 100644 src/api/schemas/query/chain/getUtxos.ts rename {server/src => src/api}/schemas/query/chain/index.ts (69%) create mode 100644 src/api/schemas/query/channels/channelBalance.ts create mode 100644 src/api/schemas/query/channels/channelFees.ts create mode 100644 src/api/schemas/query/channels/channelReport.ts create mode 100644 src/api/schemas/query/channels/channels.ts create mode 100644 src/api/schemas/query/channels/closedChannels.ts rename {server/src => src/api}/schemas/query/channels/index.ts (72%) create mode 100644 src/api/schemas/query/channels/pendingChannels.ts create mode 100644 src/api/schemas/query/data/bitcoinFee.ts create mode 100644 src/api/schemas/query/data/bitcoinPrice.ts rename {server/src => src/api}/schemas/query/data/index.ts (76%) create mode 100644 src/api/schemas/query/flow/getInOut.interface.ts create mode 100644 src/api/schemas/query/flow/getInOut.ts rename {server/src => src/api}/schemas/query/flow/index.ts (83%) create mode 100644 src/api/schemas/query/general/adminCheck.ts rename {server/src => src/api}/schemas/query/general/index.ts (76%) create mode 100644 src/api/schemas/query/general/networkInfo.ts create mode 100644 src/api/schemas/query/general/nodeInfo.ts create mode 100644 src/api/schemas/query/hodlhodl/getCountries.ts create mode 100644 src/api/schemas/query/hodlhodl/getCurrencies.ts create mode 100644 src/api/schemas/query/hodlhodl/getOffers.ts rename {server/src => src/api}/schemas/query/hodlhodl/index.ts (76%) rename {server/src => src/api}/schemas/query/index.ts (67%) rename {server/src => src/api}/schemas/query/message/index.ts (78%) create mode 100644 src/api/schemas/query/message/signMessage.ts create mode 100644 src/api/schemas/query/message/verifyMessage.ts create mode 100644 src/api/schemas/query/peer/getPeers.ts rename {server/src => src/api}/schemas/query/peer/index.ts (83%) create mode 100644 src/api/schemas/query/report/ForwardChannels.ts create mode 100644 src/api/schemas/query/report/ForwardReport.interface.ts create mode 100644 src/api/schemas/query/report/ForwardReport.ts create mode 100644 src/api/schemas/query/report/Helpers.ts rename {server/src => src/api}/schemas/query/report/index.ts (74%) create mode 100644 src/api/schemas/query/route/getRoutes.ts rename {server/src => src/api}/schemas/query/route/index.ts (83%) create mode 100644 src/api/schemas/query/transactions/forwards.ts rename {server/src => src/api}/schemas/query/transactions/index.ts (78%) create mode 100644 src/api/schemas/query/transactions/resume.interface.ts create mode 100644 src/api/schemas/query/transactions/resume.ts create mode 100644 src/api/schemas/types/GeneralType.ts create mode 100644 src/api/schemas/types/HodlType.ts create mode 100644 src/api/schemas/types/MutationType.ts create mode 100644 src/api/schemas/types/QueryType.ts create mode 100644 src/api/utils/appUrls.ts create mode 100644 src/api/utils/envConfig.ts create mode 100644 src/api/utils/rateLimitConfig.ts rename {client/src => src}/assets/icons/alert-circle.svg (100%) rename {client/src => src}/assets/icons/alert-triangle.svg (100%) rename {client/src => src}/assets/icons/anchor.svg (100%) rename {client/src => src}/assets/icons/arrow-down.svg (100%) rename {client/src => src}/assets/icons/arrow-up.svg (100%) rename {client/src => src}/assets/icons/check.svg (100%) rename {client/src => src}/assets/icons/chevron-down.svg (100%) rename {client/src => src}/assets/icons/chevron-left.svg (100%) rename {client/src => src}/assets/icons/chevron-right.svg (100%) rename {client/src => src}/assets/icons/chevron-up.svg (100%) rename {client/src => src}/assets/icons/chevrons-down.svg (100%) rename {client/src => src}/assets/icons/chevrons-up.svg (100%) rename {client/src => src}/assets/icons/circle.svg (100%) rename {client/src => src}/assets/icons/copy.svg (100%) rename {client/src => src}/assets/icons/cpu.svg (100%) rename {client/src => src}/assets/icons/credit-card.svg (100%) rename {client/src => src}/assets/icons/crosshair.svg (100%) rename {client/src => src}/assets/icons/edit.svg (100%) rename {client/src => src}/assets/icons/eye-off.svg (100%) rename {client/src => src}/assets/icons/eye.svg (100%) rename {client/src => src}/assets/icons/git-branch.svg (100%) rename {client/src => src}/assets/icons/git-commit.svg (100%) rename {client/src => src}/assets/icons/git-pull-request.svg (100%) rename {client/src => src}/assets/icons/github.svg (100%) rename {client/src => src}/assets/icons/globe.svg (100%) rename {client/src => src}/assets/icons/half-star.svg (100%) rename {client/src => src}/assets/icons/help-circle.svg (100%) rename {client/src => src}/assets/icons/home.svg (100%) rename {client/src => src}/assets/icons/key.svg (100%) rename {client/src => src}/assets/icons/layers.svg (100%) rename {client/src => src}/assets/icons/link.svg (100%) rename {client/src => src}/assets/icons/loader.svg (100%) rename {client/src => src}/assets/icons/mail.svg (100%) rename {client/src => src}/assets/icons/menu.svg (100%) rename {client/src => src}/assets/icons/moon.svg (100%) rename {client/src => src}/assets/icons/more-vertical.svg (100%) rename {client/src => src}/assets/icons/pocket.svg (100%) rename {client/src => src}/assets/icons/radio.svg (100%) rename {client/src => src}/assets/icons/repeat.svg (100%) rename {client/src => src}/assets/icons/send.svg (100%) rename {client/src => src}/assets/icons/server.svg (100%) rename {client/src => src}/assets/icons/settings.svg (100%) rename {client/src => src}/assets/icons/shield.svg (100%) rename {client/src => src}/assets/icons/sliders.svg (100%) rename {client/src => src}/assets/icons/star.svg (100%) rename {client/src => src}/assets/icons/sun.svg (100%) rename {client/src => src}/assets/icons/users.svg (100%) rename {client/src => src}/assets/icons/x.svg (100%) rename {client/src => src}/assets/icons/zap-off.svg (100%) rename {client/src => src}/assets/icons/zap.svg (100%) rename {client/src => src}/components/adminSwitch/AdminSwitch.tsx (51%) rename {client/src => src}/components/animated/AnimatedNumber.stories.tsx (64%) create mode 100644 src/components/animated/AnimatedNumber.tsx create mode 100644 src/components/auth/Auth.styled.tsx create mode 100644 src/components/auth/checks/AdminCheck.tsx create mode 100644 src/components/auth/checks/ViewCheck.tsx create mode 100644 src/components/auth/index.tsx create mode 100644 src/components/auth/views/BTCLogin.tsx create mode 100644 src/components/auth/views/Checkboxes.tsx create mode 100644 src/components/auth/views/ConnectLogin.tsx create mode 100644 src/components/auth/views/NormalLogin.tsx create mode 100644 src/components/auth/views/Password.tsx create mode 100644 src/components/auth/views/QRLogin.tsx create mode 100644 src/components/bitcoinInfo/BitcoinFees.ts create mode 100644 src/components/bitcoinInfo/BitcoinPrice.ts create mode 100644 src/components/burgerMenu/BurgerMenu.tsx create mode 100644 src/components/buttons/colorButton/ColorButton.stories.tsx create mode 100644 src/components/buttons/colorButton/ColorButton.tsx create mode 100644 src/components/buttons/multiButton/MultiButton.stories.tsx create mode 100644 src/components/buttons/multiButton/MultiButton.tsx create mode 100644 src/components/buttons/secureButton/LoginModal.tsx create mode 100644 src/components/buttons/secureButton/SecureButton.tsx create mode 100644 src/components/checkbox/Checkbox.stories.tsx create mode 100644 src/components/checkbox/Checkbox.tsx create mode 100644 src/components/connectionCheck/ConnectionCheck.tsx create mode 100644 src/components/emoji/Emoji.tsx create mode 100644 src/components/generic/CardGeneric.tsx create mode 100644 src/components/generic/Helpers.tsx create mode 100644 src/components/generic/Icons.ts create mode 100644 src/components/generic/Styled.tsx create mode 100644 src/components/gridWrapper/GridWrapper.tsx create mode 100644 src/components/input/Input.stories.tsx create mode 100644 src/components/input/Input.tsx create mode 100644 src/components/link/Link.stories.tsx create mode 100644 src/components/link/Link.tsx create mode 100644 src/components/loading/LoadingCard.tsx create mode 100644 src/components/loadingBar/LoadingBar.tsx create mode 100644 src/components/modal/ReactModal.tsx create mode 100644 src/components/modal/closeChannel/CloseChannel.tsx create mode 100644 src/components/modal/removePeer/RemovePeer.tsx create mode 100644 src/components/nodeInfo/NodeBar.tsx create mode 100644 src/components/nodeInfo/NodeCard.tsx create mode 100644 src/components/nodeInfo/NodeInfo.styled.tsx create mode 100644 src/components/nodeInfo/NodeInfoModal.tsx create mode 100644 src/components/price/Price.tsx create mode 100644 src/components/rating/Rating.stories.tsx create mode 100644 src/components/rating/Rating.tsx create mode 100644 src/components/section/Section.tsx create mode 100644 src/components/stateViews/StateCards.tsx create mode 100644 src/components/statusCheck/StatusCheck.tsx create mode 100644 src/components/typography/Styled.tsx create mode 100644 src/context/AccountContext.tsx create mode 100644 src/context/BitcoinContext.tsx create mode 100644 src/context/ConnectionContext.tsx rename {client/src => src}/context/ContextProvider.tsx (51%) create mode 100644 src/context/PriceContext.tsx create mode 100644 src/context/SettingsContext.tsx create mode 100644 src/context/StatusContext.tsx create mode 100644 src/graphql/hodlhodl/query.ts create mode 100644 src/graphql/mutation.ts create mode 100644 src/graphql/query.ts create mode 100644 src/hooks/UseInterval.tsx create mode 100644 src/hooks/UseSize.tsx create mode 100644 src/layouts/footer/Footer.tsx create mode 100644 src/layouts/header/Header.tsx create mode 100644 src/layouts/navigation/Navigation.tsx create mode 100644 src/layouts/navigation/nodeInfo/NodeInfo.tsx create mode 100644 src/layouts/navigation/sideSettings/SideSettings.tsx create mode 100644 src/styles/FontStyles.css rename {client/src => src}/styles/GlobalStyle.ts (96%) rename {client/src => src}/styles/Themes.ts (54%) create mode 100644 src/utils/Helpers.tsx create mode 100644 src/utils/auth.ts create mode 100644 src/utils/error.tsx create mode 100644 src/utils/storage.ts create mode 100644 src/views/balance/Balance.styled.tsx create mode 100644 src/views/balance/BalanceCard.tsx create mode 100644 src/views/balance/BalanceRoute.tsx create mode 100644 src/views/chain/transactions/ChainTransactions.tsx create mode 100644 src/views/chain/transactions/TransactionsCard.tsx create mode 100644 src/views/chain/utxos/ChainUtxos.tsx create mode 100644 src/views/chain/utxos/UtxoCard.tsx create mode 100644 src/views/channels/channels/ChannelCard.tsx create mode 100644 src/views/channels/channels/Channels.tsx create mode 100644 src/views/channels/closedChannels/ClosedCard.tsx create mode 100644 src/views/channels/closedChannels/ClosedChannels.tsx create mode 100644 src/views/channels/pendingChannels/PendingCard.tsx create mode 100644 src/views/channels/pendingChannels/PendingChannels.tsx create mode 100644 src/views/fees/FeeCard.tsx create mode 100644 src/views/forwards/ForwardsCard.tsx create mode 100644 src/views/home/account/AccountInfo.tsx create mode 100644 src/views/home/account/createInvoice/CreateInvoice.tsx create mode 100644 src/views/home/account/pay/pay.tsx create mode 100644 src/views/home/account/receiveOnChain/ReceiveOnChain.tsx create mode 100644 src/views/home/account/sendOnChain/SendOnChain.tsx create mode 100644 src/views/home/connect/Connect.tsx create mode 100644 src/views/home/networkInfo/NetworkInfo.tsx create mode 100644 src/views/home/quickActions/QuickActions.tsx create mode 100644 src/views/home/quickActions/decode/Decode.tsx create mode 100644 src/views/home/quickActions/openChannel/OpenChannel.tsx create mode 100644 src/views/home/reports/flow/FlowPie.tsx create mode 100644 src/views/home/reports/flow/FlowReport.tsx create mode 100644 src/views/home/reports/flow/Helpers.tsx create mode 100644 src/views/home/reports/flow/InvoicePie.tsx create mode 100644 src/views/home/reports/flow/index.tsx create mode 100644 src/views/home/reports/forwardReport/Buttons.tsx create mode 100644 src/views/home/reports/forwardReport/ForwardChannelReport.tsx create mode 100644 src/views/home/reports/forwardReport/ForwardReport.tsx create mode 100644 src/views/home/reports/forwardReport/index.tsx create mode 100644 src/views/home/reports/liquidReport/LiquidReport.tsx create mode 100644 src/views/homepage/HomePage.styled.tsx rename {client/src/views/entry => src/views}/homepage/HomePage.tsx (54%) create mode 100644 src/views/homepage/Sections/CallToAction.tsx create mode 100644 src/views/homepage/Sections/Compatible.tsx create mode 100644 src/views/homepage/Sections/ContactSection.tsx create mode 100644 src/views/homepage/Sections/DetailSection.tsx create mode 100644 src/views/homepage/Sections/InfoSection.tsx create mode 100644 src/views/homepage/Sections/Sections.styled.tsx create mode 100644 src/views/homepage/Sections/Top.tsx create mode 100644 src/views/login/SessionLogin.tsx create mode 100644 src/views/peers/AddPeer.tsx create mode 100644 src/views/peers/PeersCard.tsx create mode 100644 src/views/settings/Account.tsx create mode 100644 src/views/settings/Current.tsx create mode 100644 src/views/settings/Danger.tsx create mode 100644 src/views/settings/Interface.tsx create mode 100644 src/views/settings/Sync.tsx rename client/src/views/settings/Settings.tsx => src/views/settings/index.tsx (60%) create mode 100644 src/views/tools/Tools.styled.tsx create mode 100644 src/views/tools/backups/Backups.tsx create mode 100644 src/views/tools/backups/DownloadBackups.tsx create mode 100644 src/views/tools/backups/RecoverFunds.tsx create mode 100644 src/views/tools/backups/VerifyBackups.tsx create mode 100644 src/views/tools/messages/Messages.tsx create mode 100644 src/views/tools/messages/SignMessage.tsx create mode 100644 src/views/tools/messages/VerifyMessage.tsx create mode 100644 src/views/trading/MethodBoxes.tsx create mode 100644 src/views/trading/Modal/FilterModal.tsx create mode 100644 src/views/trading/Modal/FilteredList.tsx create mode 100644 src/views/trading/OfferCard.styled.tsx create mode 100644 src/views/trading/OfferCard.tsx create mode 100644 src/views/trading/OfferConfigs.tsx create mode 100644 src/views/trading/OfferFilters.tsx create mode 100644 src/views/transactions/InvoiceCard.tsx create mode 100644 src/views/transactions/PaymentsCards.tsx create mode 100644 tsconfig.json create mode 100644 tslint.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..2103055e --- /dev/null +++ b/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": ["next/babel"], + "plugins": [ + "emotion", + "inline-react-svg", + [ + "styled-components", + { "ssr": true, "displayName": true, "preprocess": false } + ] + ] +} diff --git a/.commitlintrc.json b/.commitlintrc.json new file mode 100644 index 00000000..c30e5a97 --- /dev/null +++ b/.commitlintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["@commitlint/config-conventional"] +} diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..b942b38a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +.git +.gitignore +.cache +*.md +!README*.md +/node_modules +/.next +/docs +/.github +.env +.vscode +CHANGELOG.md \ No newline at end of file diff --git a/.gitignore b/.gitignore index 3c3629e6..e185c75f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,31 @@ -node_modules +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env +.env.local +.env.development.local +.env.test.local +.env.production.local diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..03e9d2e5 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +/.next +/.node_modules \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..31fae040 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "singleQuote": true, + "trailingComma": "es5", + "tabWidth": 2, + "printWidth": 80, + "arrowParens": "avoid" +} diff --git a/.storybook/config.js b/.storybook/config.js new file mode 100644 index 00000000..92fb6618 --- /dev/null +++ b/.storybook/config.js @@ -0,0 +1,24 @@ +import { configure, addDecorator, addParameters } from '@storybook/react'; +import themeDecorator from './themeDecorator'; +import { withKnobs } from '@storybook/addon-knobs'; +import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; + +const customViewports = { + smallScreen: { + name: 'Small Screen', + styles: { + width: '578px', + height: '100%', + }, + }, +}; + +addParameters({ + viewport: { + viewports: { ...INITIAL_VIEWPORTS, ...customViewports }, + }, +}); +addDecorator(themeDecorator); +addDecorator(withKnobs); + +configure(require.context('../src/', true, /\.stories\.tsx?$/), module); diff --git a/.storybook/main.js b/.storybook/main.js new file mode 100644 index 00000000..9adf0e11 --- /dev/null +++ b/.storybook/main.js @@ -0,0 +1,7 @@ +module.exports = { + addons: [ + '@storybook/addon-knobs/register', + '@storybook/addon-actions', + '@storybook/addon-viewport/register', + ], +}; diff --git a/client/.storybook/manager.js b/.storybook/manager.js similarity index 68% rename from client/.storybook/manager.js rename to .storybook/manager.js index 2decfed3..a99ce84b 100644 --- a/client/.storybook/manager.js +++ b/.storybook/manager.js @@ -2,6 +2,6 @@ import { addons } from '@storybook/addons'; import { themes } from '@storybook/theming'; addons.setConfig({ - theme: themes.dark, - panelPosition: 'right', + theme: themes.dark, + panelPosition: 'right', }); diff --git a/.storybook/themeDecorator.js b/.storybook/themeDecorator.js new file mode 100644 index 00000000..e70dc21e --- /dev/null +++ b/.storybook/themeDecorator.js @@ -0,0 +1,35 @@ +import React from 'react'; +import styled, { ThemeProvider, css } from 'styled-components'; +import { select, boolean } from '@storybook/addon-knobs'; +import { backgroundColor, cardColor } from '../src/styles/Themes'; + +const StyledBackground = styled.div` + width: 100%; + height: 100%; + padding: 100px 0; + ${({ withBackground, cardBackground }) => + withBackground && + css` + background: ${cardBackground ? cardColor : backgroundColor}; + `} + display: flex; + justify-content: center; + align-items: center; +`; + +const ThemeDecorator = storyFn => { + const background = boolean('No Background', false); + const cardBackground = boolean('Card Background', true); + return ( + + + {storyFn()} + + + ); +}; + +export default ThemeDecorator; diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js new file mode 100644 index 00000000..49421474 --- /dev/null +++ b/.storybook/webpack.config.js @@ -0,0 +1,12 @@ +module.exports = ({ config }) => { + config.module.rules.push({ + test: /\.(ts|tsx)$/, + loader: require.resolve('babel-loader'), + options: { + presets: [require.resolve('babel-preset-react-app')], + }, + }); + + config.resolve.extensions.push('.ts', '.tsx'); + return config; +}; diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..ad92582b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": true +} diff --git a/@types/index.d.ts b/@types/index.d.ts new file mode 100644 index 00000000..da7fb7f6 --- /dev/null +++ b/@types/index.d.ts @@ -0,0 +1,5 @@ +declare module '*.png'; +declare module '*.jpg'; +declare module '*.jpeg'; +declare module '*.svg'; +declare module '*.gif'; diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..355b06f5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:alpine + +# Create app directory +# RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Install app dependencies +COPY package.json /usr/src/app/ +COPY yarn.lock /usr/src/app/ +RUN yarn install --production=true + +# Bundle app source +COPY . /usr/src/app +RUN yarn build +EXPOSE 3000 +CMD [ "yarn", "start" ] \ No newline at end of file diff --git a/README.md b/README.md index bba85fee..6f634126 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # **ThunderHub - Lightning Node Manager** -![Home Screenshot](assets/Home.png) -[![license](https://img.shields.io/github/license/DAVFoundation/captain-n3m0.svg?style=flat-square)](https://github.com/DAVFoundation/captain-n3m0/blob/master/LICENSE) [![Known Vulnerabilities](https://snyk.io/test/github/apotdevin/thunderhub/badge.svg?targetFile=client/package.json)](https://snyk.io/test/github/apotdevin/thunderhub) [![Known Vulnerabilities](https://snyk.io/test/github/apotdevin/thunderhub/badge.svg?targetFile=server/package.json)](https://snyk.io/test/github/apotdevin/thunderhub) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lerna.js.org/) +![Home Screenshot](./docs/Home.png) +[![license](https://img.shields.io/github/license/DAVFoundation/captain-n3m0.svg?style=flat-square)](https://github.com/DAVFoundation/captain-n3m0/blob/master/LICENSE) ## Table Of Contents @@ -16,21 +16,13 @@ ThunderHub is an **open-source** LND node manager where you can manage and monit ### Tech Stack -The repository consists of two packages (client and server) and is maintained with LernaJS and Yarn Workspaces. - -#### Client - -[![Known Vulnerabilities](https://snyk.io/test/github/apotdevin/thunderhub/badge.svg?targetFile=client/package.json)](https://snyk.io/test/github/apotdevin/thunderhub) +This repository consists of a **NextJS** server that handles both the backend **Graphql Server** and the frontend **React App**. +- NextJS - ReactJS - Typescript - Styled-Components - Apollo - -#### Server - -[![Known Vulnerabilities](https://snyk.io/test/github/apotdevin/thunderhub/badge.svg?targetFile=server/package.json)](https://snyk.io/test/github/apotdevin/thunderhub) - - Apollo-Server - GraphQL - Ln-Service @@ -99,47 +91,29 @@ git clone https://github.com/apotdevin/thunderhub.git - Node installed - Yarn installed -After cloning the repository run `yarn` to get all the necessary modules installed. Yarn workspaces will handle installing modules for both the client and the server. +After cloning the repository run `yarn` to get all the necessary modules installed. -### **ThunderHub - Server** - -To be able to use the HodlHodl integration create a `.env` file in the `/server` folder with `HODL_KEY='[YOUR API KEY]'` and replace `[YOUR API KEY]` with the one that HodlHodl provides you. - -#### To get the server running use the following commands - -```javascript -yarn server:prod -yarn server:run -``` - -If the server starts succesfully, you should see `info [server.js]: Server ready at http://localhost:3001/` in the terminal - -### **ThunderHub - Client** - -#### To get the React frontend running use the following commands - -##### This must be done in the `/client` folder +After `yarn` has finished installing all the dependencies you can proceed to build and run the app with the following commands. ```javascript +yarn build yarn start ``` -If the frontend starts succesfully, you should see `Compiled successfully! You can now view app in the browser.` in the terminal and a browser window should have opened in your browser. +This will start the server on port 3000, so just head to `localhost:3000` to see the app running. + +#### HodlHodl Integration + +To be able to use the HodlHodl integration create a `.env` file in the root folder with `HODL_KEY='[YOUR API KEY]'` and replace `[YOUR API KEY]` with the one that HodlHodl provides you. ## Development If you want to develop on ThunderHub and want hot reloading when you do changes, use the following commands: -### ThunderHub - Server - ```javascript -yarn server:dev +yarn dev ``` -### ThunderHub - Client - -Running the commands `yarn start` in the `client` folder works for development. - #### Storybook You can also get storybook running for quicker component development. diff --git a/client/.dockerignore b/client/.dockerignore deleted file mode 100644 index 48c0cafa..00000000 --- a/client/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.git -.gitignore -build \ No newline at end of file diff --git a/client/.env b/client/.env deleted file mode 100644 index 1bfdf632..00000000 --- a/client/.env +++ /dev/null @@ -1 +0,0 @@ -REACT_APP_VERSION=$npm_package_version \ No newline at end of file diff --git a/client/.gitignore b/client/.gitignore deleted file mode 100644 index 77315343..00000000 --- a/client/.gitignore +++ /dev/null @@ -1,27 +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 - -#webpack -/dist - -# misc -.DS_Store -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/client/.prettierrc b/client/.prettierrc deleted file mode 100644 index 17c75dc8..00000000 --- a/client/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "printWidth": 80, - "trailingComma": "all", - "tabWidth": 4, - "semi": true, - "singleQuote": true -} diff --git a/client/.storybook/main.js b/client/.storybook/main.js deleted file mode 100644 index 5c627cbd..00000000 --- a/client/.storybook/main.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - stories: ['../src/**/*.stories.tsx'], - addons: [ - '@storybook/addon-knobs/register', - '@storybook/addon-actions', - '@storybook/preset-create-react-app', - '@storybook/addon-links', - '@storybook/addon-viewport/register', - ], - webpackFinal: async (config) => { - config.module.rules.push({ - test: /\.(ts|tsx)$/, - use: [ - { - loader: require.resolve('awesome-typescript-loader'), - }, - { - loader: require.resolve('react-docgen-typescript-loader'), - }, - ], - }); - config.resolve.extensions.push('.ts', '.tsx'); - return config; - }, -}; diff --git a/client/.storybook/preview.js b/client/.storybook/preview.js deleted file mode 100644 index 6460aca4..00000000 --- a/client/.storybook/preview.js +++ /dev/null @@ -1,22 +0,0 @@ -import { addDecorator, addParameters } from '@storybook/react'; -import themeDecorator from './themeDecorator'; -import { withKnobs } from '@storybook/addon-knobs'; -import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; - -const customViewports = { - smallScreen: { - name: 'Small Screen', - styles: { - width: '578px', - height: '100%', - }, - }, -}; - -addParameters({ - viewport: { - viewports: { ...INITIAL_VIEWPORTS, ...customViewports }, - }, -}); -addDecorator(themeDecorator); -addDecorator(withKnobs); diff --git a/client/.storybook/themeDecorator.js b/client/.storybook/themeDecorator.js deleted file mode 100644 index 335d6e16..00000000 --- a/client/.storybook/themeDecorator.js +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import styled, { ThemeProvider, css } from 'styled-components'; -import { select, boolean } from '@storybook/addon-knobs'; -import { backgroundColor, cardColor } from '../src/styles/Themes'; - -const StyledBackground = styled.div` - width: 100%; - height: 100%; - padding: 100px 0; - ${({ withBackground, cardBackground }) => - withBackground && - css` - background: ${cardBackground ? cardColor : backgroundColor}; - `} - display: flex; - justify-content: center; - align-items: center; -`; - -const ThemeDecorator = (storyFn) => { - const background = boolean('No Background', false); - const cardBackground = boolean('Card Background', true); - return ( - - - {storyFn()} - - - ); -}; - -export default ThemeDecorator; diff --git a/client/Dockerfile b/client/Dockerfile deleted file mode 100644 index 0725fd8c..00000000 --- a/client/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM node:11-alpine as build - -WORKDIR /usr/src/client - -COPY package.json /usr/src/client -COPY yarn.lock /usr/src/client -RUN yarn install --production=true - -COPY . /usr/src/client -RUN yarn build - -RUN yarn global add serve - -CMD ["serve", "-s", "build"] \ No newline at end of file diff --git a/client/config/nginx.conf b/client/config/nginx.conf deleted file mode 100644 index 5727b7e6..00000000 --- a/client/config/nginx.conf +++ /dev/null @@ -1,15 +0,0 @@ -server { - listen 80; - server_name localhost; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri /index.html; - } - - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } -} \ No newline at end of file diff --git a/client/package.json b/client/package.json deleted file mode 100644 index f8048550..00000000 --- a/client/package.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "name": "@thunderhub/client", - "version": "0.2.1", - "description": "", - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject", - "storybook": "start-storybook -p 9009 -s public", - "build-storybook": "build-storybook -s public", - "deploy": "yarn build && aws s3 --profile EBFullAccess sync build/ s3://thunderhub-client", - "precommit": "pretty-quick --staged" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/apotdevin/thunderhub.git" - }, - "keywords": [], - "author": "apotdevin", - "license": "MIT", - "dependencies": { - "@apollo/react-hooks": "^3.1.3", - "@types/crypto-js": "^3.1.44", - "@types/jest": "25.1.5", - "@types/lodash.debounce": "^4.0.6", - "@types/lodash.merge": "^4.6.6", - "@types/lodash.sortby": "^4.7.6", - "@types/node": "13.11.0", - "@types/numeral": "^0.0.26", - "@types/qrcode.react": "^1.0.0", - "@types/react": "16.9.32", - "@types/react-copy-to-clipboard": "^4.3.0", - "@types/react-dom": "16.9.6", - "@types/react-modal": "^3.10.5", - "@types/react-qr-reader": "^2.1.2", - "@types/react-router-dom": "^5.1.2", - "@types/react-tooltip": "^3.11.0", - "@types/styled-components": "^5.0.1", - "@types/styled-react-modal": "^1.2.0", - "@types/styled-theming": "^2.2.2", - "@types/uuid": "^7.0.2", - "@types/victory": "^33.1.4", - "@types/zxcvbn": "^4.4.0", - "apollo-boost": "^0.4.4", - "crypto-js": "^4.0.0", - "intersection-observer": "^0.7.0", - "lodash.debounce": "^4.0.8", - "lodash.merge": "^4.6.2", - "lodash.sortby": "^4.7.0", - "node-sass": "^4.13.0", - "numeral": "^2.0.6", - "qrcode.react": "^1.0.0", - "qs": "^6.9.3", - "react": "^16.13.0", - "react-copy-to-clipboard": "^5.0.2", - "react-dom": "^16.13.0", - "react-intersection-observer": "^8.26.1", - "react-qr-reader": "^2.2.1", - "react-router-dom": "^5.1.2", - "react-scripts": "3.4.1", - "react-spinners": "^0.8.1", - "react-spring": "^8.0.27", - "react-toastify": "^5.4.1", - "react-tooltip": "^4.1.3", - "snyk": "^1.305.0", - "styled-components": "^5.0.1", - "styled-react-modal": "^2.0.0", - "styled-theming": "^2.2.0", - "typescript": "^3.8.3", - "uuid": "^7.0.3", - "victory": "^34.1.3", - "zxcvbn": "^4.4.2" - }, - "devDependencies": { - "@storybook/addon-actions": "^5.3.18", - "@storybook/addon-info": "^5.3.18", - "@storybook/addon-knobs": "^5.3.18", - "@storybook/addon-links": "^5.3.18", - "@storybook/addon-viewport": "^5.3.18", - "@storybook/addons": "^5.3.18", - "@storybook/preset-create-react-app": "^2.1.1", - "@storybook/react": "^5.3.18", - "awesome-typescript-loader": "^5.2.1", - "react-docgen-typescript-loader": "^3.7.2" - }, - "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/client/public/apple-touch-icon-152x152.png b/client/public/apple-touch-icon-152x152.png deleted file mode 100644 index a10ba7eda7ec23abf53a64a17df851d4ac9a64d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13506 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 - - - - - - - - - - - - - - - - - - - - ThunderHub - Lightning Node Manager - - - -
- - diff --git a/client/public/manifest.json b/client/public/manifest.json deleted file mode 100644 index 70839658..00000000 --- a/client/public/manifest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "short_name": "ThunderHub", - "name": "ThunderHub - Lightning Node Manager", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "apple-touch-icon-152x152.png", - "type": "image/png", - "sizes": "152x152" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/client/public/robots.txt b/client/public/robots.txt deleted file mode 100644 index 01b0f9a1..00000000 --- a/client/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * diff --git a/client/src/App.test.tsx b/client/src/App.test.tsx deleted file mode 100644 index d1c2db98..00000000 --- a/client/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); - ReactDOM.unmountComponentAtNode(div); -}); diff --git a/client/src/App.tsx b/client/src/App.tsx deleted file mode 100644 index 16e75080..00000000 --- a/client/src/App.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import React, { Suspense } from 'react'; -import { ThemeProvider } from 'styled-components'; -import { GlobalStyles } from './styles/GlobalStyle'; -import { ApolloProvider } from '@apollo/react-hooks'; -import { BrowserRouter } from 'react-router-dom'; -import ApolloClient from 'apollo-boost'; -import { useSettings } from './context/SettingsContext'; -import { ModalProvider } from 'styled-react-modal'; -import { useAccount } from './context/AccountContext'; -import { toast } from 'react-toastify'; -import 'react-toastify/dist/ReactToastify.css'; -import { Header } from './sections/header/Header'; -import { Footer } from './sections/footer/Footer'; -import { LoadingCard } from './components/loading/LoadingCard'; -import { ScrollToTop } from 'components/scrollToTop/ScrollToTop'; -import { ContextProvider } from 'context/ContextProvider'; -import { ConnectionCheck } from 'components/connectionCheck/ConnectionCheck'; -import { StatusCheck } from 'components/statusCheck/StatusCheck'; -import { BaseModalBackground } from 'styled-react-modal'; - -const EntryView = React.lazy(() => import('./views/entry/Entry')); -const ContentView = React.lazy(() => import('./sections/content/Content')); - -toast.configure({ draggable: false }); - -const client = new ApolloClient({ - uri: - process.env.REACT_APP_API_URL ?? process.env.NODE_ENV === 'production' - ? 'https://api.thunderhub.io' - : 'http://localhost:3001', -}); - -const ContextApp: React.FC = () => { - const { theme } = useSettings(); - const { loggedIn, admin, viewOnly, sessionAdmin } = useAccount(); - - const renderContent = () => ( - } - > - {!loggedIn && admin === '' ? ( - - ) : admin !== '' && viewOnly === '' && sessionAdmin === '' ? ( - - ) : ( - <> - - - - - )} - - ); - - return ( - - - - -
- {renderContent()} -