From 6e572ff6747945f823d8a987a7964696f92084d8 Mon Sep 17 00:00:00 2001 From: kyranjamie Date: Thu, 3 Sep 2020 13:25:41 +0200 Subject: [PATCH] feat: use root paths --- .eslintrc.js | 8 + .github/workflows/build-release.yml | 55 ++- app/components/home/balance-card.tsx | 7 +- app/components/home/stacking-promo-card.tsx | 4 +- app/components/home/stacking-rewards-card.tsx | 2 +- .../transaction-list/transaction-icon.tsx | 5 +- .../transaction-list-context-menu.ts | 2 +- .../transaction-list-empty.tsx | 2 +- .../transaction-list-error.tsx | 6 +- .../transaction-list-item-pending.tsx | 4 +- .../transaction-list-item.tsx | 16 +- .../transaction-list/transaction-list.tsx | 3 +- app/components/network-message.tsx | 2 +- app/components/settings/node-select-item.tsx | 2 +- app/components/title-bar.tsx | 4 +- app/crypto/key-generation.spec.ts | 3 +- app/crypto/key-generation.ts | 2 +- app/hooks/use-ledger.ts | 3 +- app/main.dev.ts | 1 + app/menu.ts | 1 + app/modals/receive-stx/receive-stx-modal.tsx | 2 +- .../reset-wallet/reset-wallet-modal.tsx | 2 +- .../transaction/decrypt-wallet-form.tsx | 4 +- .../transaction/sign-tx-with-ledger.tsx | 6 +- app/modals/transaction/transaction-form.tsx | 8 +- app/modals/transaction/transaction-modal.tsx | 20 +- .../upsert-stacks-node-api.tsx | 10 +- app/pages/app.tsx | 16 +- app/pages/home/home.tsx | 26 +- app/pages/onboarding/01-welcome/welcome.tsx | 6 +- .../02-create-wallet/create-wallet.tsx | 8 +- .../03-restore-wallet/restore-wallet.tsx | 16 +- .../04-connect-ledger/connect-ledger.tsx | 18 +- .../generating-secret.tsx | 2 +- .../onboarding/05-secret-key/secret-key.tsx | 12 +- .../onboarding/06-verify-key/verify-key.tsx | 12 +- .../07-set-password/set-password.tsx | 4 +- app/pages/root.tsx | 6 +- app/pages/settings/settings.tsx | 21 +- app/store/configureStore.dev.ts | 2 +- app/store/configureStore.prod.ts | 2 +- app/store/index.ts | 8 +- app/store/keys/keys.actions.ts | 9 +- app/store/keys/keys.reducer.ts | 8 +- app/store/transaction/transaction.actions.ts | 2 +- app/types/index.ts | 2 + app/yarn.lock | 180 ++++---- configs/webpack.config.base.js | 2 + jest.config.js | 4 + package.json | 13 +- tsconfig.json | 14 +- yarn.lock | 384 ++++++++++-------- 52 files changed, 524 insertions(+), 437 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 2c198d1f2..76b2b66aa 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,5 +16,13 @@ module.exports = { '@typescript-eslint/no-unsafe-call': 0, '@typescript-eslint/unbound-method': 0, 'no-warning-comments': ['warn', { terms: ['SECURITY'], location: 'anywhere' }], + + 'import/no-unresolved': ['error'], + 'import/no-mutable-exports': ['error'], + 'import/no-useless-path-segments': ['error'], + // 'import/no-cycle': ['error', { maxDepth: 2 }], + 'import/first': ['error'], + 'import/no-duplicates': ['error'], + 'import/no-default-export': ['error'], }, }; diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 51d1f6a11..0bdfded7c 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -2,6 +2,9 @@ name: Build/release on: [pull_request] +env: + GITHUB_SHA: ${{ github.sha }} + jobs: release: runs-on: ${{ matrix.os }} @@ -9,30 +12,58 @@ jobs: strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] + include: + - os: macos-latest + NPM_COMMAND: mac + + - os: ubuntu-latest + NPM_COMMAND: linux + + - os: windows-latest + NPM_COMMAND: win steps: - name: Check out Git repository uses: actions/checkout@v1 + - run: echo ${{ github.sha }} + - name: Install Node.js, NPM and Yarn uses: actions/setup-node@v1 with: node-version: 10 - - name: Build/release Electron app - uses: samuelmeuli/action-electron-builder@v1 - with: - build_script_name: package-all - # GitHub token, automatically provided to the action - # (No need to define this secret in the repo settings) - github_token: ${{ secrets.github_token }} + - name: Install package + run: yarn + + - run: echo ${{ matrix.NPM_COMMAND }} + - name: Build releases + run: yarn package-${{ matrix.NPM_COMMAND }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # If the commit is tagged with a version (e.g. "v1.0.0"), - # release the app after building - # release: ${{ startsWith(github.ref, 'refs/tags/v') }} + - uses: actions/upload-artifact@v2 + name: Upload Windows build + if: matrix.os == 'windows-latest' + with: + name: stacks-wallet-windows + path: | + release/**/*.exe + release/**/*.msi + + - uses: actions/upload-artifact@v2 + name: Upload MacOS build + if: matrix.os == 'macos-latest' + with: + name: stacks-wallet-macos + path: release/**/*.dmg - uses: actions/upload-artifact@v2 + name: Upload Linux build + if: matrix.os == 'ubuntu-latest' with: - name: my-artifact - path: release/** + name: stacks-wallet-linux + path: | + release/**/*.deb + release/**/*.rpm diff --git a/app/components/home/balance-card.tsx b/app/components/home/balance-card.tsx index fae147251..6a1b4f6e9 100644 --- a/app/components/home/balance-card.tsx +++ b/app/components/home/balance-card.tsx @@ -1,8 +1,9 @@ import React, { FC, useState } from 'react'; import { Box, Button, Text, ArrowIcon } from '@blockstack/ui'; -import { toHumanReadableStx } from '../../utils/unit-convert'; -import { safeAwait } from '../../utils/safe-await'; -import { delay } from '../../utils/delay'; + +import { toHumanReadableStx } from '@utils/unit-convert'; +import { safeAwait } from '@utils/safe-await'; +import { delay } from '@utils/delay'; interface BalanceCardProps { balance: string | null; diff --git a/app/components/home/stacking-promo-card.tsx b/app/components/home/stacking-promo-card.tsx index 03a1aaaf9..f5b32ff7e 100644 --- a/app/components/home/stacking-promo-card.tsx +++ b/app/components/home/stacking-promo-card.tsx @@ -2,8 +2,8 @@ import React from 'react'; import { Box, Flex, Text, Button } from '@blockstack/ui'; import btcPodium from '../../assets/images/btc-podium.svg'; -import { openExternalLink } from '../../utils/external-links'; -import { BUY_STX_URL } from '../../constants'; +import { openExternalLink } from '@utils/external-links'; +import { BUY_STX_URL } from '@constants/index'; export const StackingPromoCard = () => { return ( diff --git a/app/components/home/stacking-rewards-card.tsx b/app/components/home/stacking-rewards-card.tsx index 3a9548c81..d21c7aafa 100644 --- a/app/components/home/stacking-rewards-card.tsx +++ b/app/components/home/stacking-rewards-card.tsx @@ -2,7 +2,7 @@ import React, { FC } from 'react'; import { Box, Flex, Text } from '@blockstack/ui'; import { Hr } from '../hr'; import { MovementArrow } from '../icons/movement-arrow'; -import { features } from '../../constants/index'; +import { features } from '@constants/index'; interface StackingRewardCardProps { lifetime: string; diff --git a/app/components/home/transaction-list/transaction-icon.tsx b/app/components/home/transaction-list/transaction-icon.tsx index 970c87d11..0e30ca5bf 100644 --- a/app/components/home/transaction-list/transaction-icon.tsx +++ b/app/components/home/transaction-list/transaction-icon.tsx @@ -1,7 +1,8 @@ import React, { FC } from 'react'; import { Flex, FlexProps, Spinner } from '@blockstack/ui'; -import { SentArrow } from '../../icons/sent-arrow'; -import { ReceivedArrow } from '../../icons/received-arrow'; + +import { SentArrow } from '@components/icons/sent-arrow'; +import { ReceivedArrow } from '@components/icons/received-arrow'; type TransactionDirection = 'sent' | 'received'; diff --git a/app/components/home/transaction-list/transaction-list-context-menu.ts b/app/components/home/transaction-list/transaction-list-context-menu.ts index 81fe38d20..bb0776701 100644 --- a/app/components/home/transaction-list/transaction-list-context-menu.ts +++ b/app/components/home/transaction-list/transaction-list-context-menu.ts @@ -2,7 +2,7 @@ import { remote } from 'electron'; import { useClipboard } from '@blockstack/ui'; import { Transaction } from '@blockstack/stacks-blockchain-api-types'; -import { hasMemo, getRecipientAddress } from '../../../utils/tx-utils'; +import { hasMemo, getRecipientAddress } from '@utils/tx-utils'; export function registerHandler(el: HTMLButtonElement | null, handler: (e: Event) => void) { if (el === null) return; diff --git a/app/components/home/transaction-list/transaction-list-empty.tsx b/app/components/home/transaction-list/transaction-list-empty.tsx index 24e2ca57f..e2a71ec73 100644 --- a/app/components/home/transaction-list/transaction-list-empty.tsx +++ b/app/components/home/transaction-list/transaction-list-empty.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Text, Flex } from '@blockstack/ui'; -import { useNavigatorOnline } from '../../../hooks/use-navigator-online'; +import { useNavigatorOnline } from '@hooks/use-navigator-online'; import { templateTxBoxProps } from './transaction-list-item-pseudo'; export const TransactionListEmpty = () => { diff --git a/app/components/home/transaction-list/transaction-list-error.tsx b/app/components/home/transaction-list/transaction-list-error.tsx index e79943da7..ef666ee59 100644 --- a/app/components/home/transaction-list/transaction-list-error.tsx +++ b/app/components/home/transaction-list/transaction-list-error.tsx @@ -3,9 +3,9 @@ import { Text, Flex, BoxProps } from '@blockstack/ui'; import { Link } from 'react-router-dom'; import { templateTxBoxProps } from './transaction-list-item-pseudo'; -import { StacksNode } from '../../../store/stacks-node'; -import { STATUS_PAGE_URL } from '../../../constants/index'; -import { openExternalLink } from '../../../utils/external-links'; +import { StacksNode } from '@store/stacks-node'; +import { STATUS_PAGE_URL } from '@constants/index'; +import { openExternalLink } from '@utils/external-links'; const linkProps: BoxProps = { color: 'blue', diff --git a/app/components/home/transaction-list/transaction-list-item-pending.tsx b/app/components/home/transaction-list/transaction-list-item-pending.tsx index 418c04e04..3432f9d83 100644 --- a/app/components/home/transaction-list/transaction-list-item-pending.tsx +++ b/app/components/home/transaction-list/transaction-list-item-pending.tsx @@ -2,8 +2,8 @@ import React, { FC, useRef, RefObject, useEffect, MutableRefObject } from 'react import { useHover, useFocus } from 'use-events'; import { Box, Text } from '@blockstack/ui'; -import { PendingTransaction } from '../../../store/pending-transaction'; -import { toHumanReadableStx } from '../../../utils/unit-convert'; +import { PendingTransaction } from '@store/pending-transaction'; +import { toHumanReadableStx } from '@utils/unit-convert'; import { TransactionIcon } from './transaction-icon'; import { TransactionListItemContainer } from './transaction-list-item-container'; diff --git a/app/components/home/transaction-list/transaction-list-item.tsx b/app/components/home/transaction-list/transaction-list-item.tsx index 1dfca925e..fb3a4f31c 100644 --- a/app/components/home/transaction-list/transaction-list-item.tsx +++ b/app/components/home/transaction-list/transaction-list-item.tsx @@ -1,21 +1,21 @@ -import React, { FC, MutableRefObject, RefObject } from 'react'; +import React, { FC, MutableRefObject, RefObject, useLayoutEffect, useRef, useEffect } from 'react'; import { useHover, useFocus } from 'use-events'; import { Box, Text, useClipboard } from '@blockstack/ui'; import { Transaction } from '@blockstack/stacks-blockchain-api-types'; -import { capitalize } from '../../../utils/capitalize'; -import { getStxTxDirection } from '../../../utils/get-stx-transfer-direction'; -import { sumStxTxTotal } from '../../../utils/sum-stx-tx-total'; +import { capitalize } from '@utils/capitalize'; +import { getStxTxDirection } from '@utils/get-stx-transfer-direction'; +import { sumStxTxTotal } from '@utils/sum-stx-tx-total'; import { TransactionIcon } from './transaction-icon'; -import { toHumanReadableStx } from '../../../utils/unit-convert'; -import { useLayoutEffect, useRef, useEffect } from 'react'; +import { toHumanReadableStx } from '@utils/unit-convert'; + import { createTxListContextMenu, registerHandler, deregisterHandler, } from './transaction-list-context-menu'; -import { makeExplorerLink } from '../../../utils/external-links'; -import { getRecipientAddress } from '../../../utils/tx-utils'; +import { makeExplorerLink } from '@utils/external-links'; +import { getRecipientAddress } from '@utils/tx-utils'; import { TransactionListItemContainer } from './transaction-list-item-container'; const dateOptions = { diff --git a/app/components/home/transaction-list/transaction-list.tsx b/app/components/home/transaction-list/transaction-list.tsx index e324e6bf0..455a31952 100644 --- a/app/components/home/transaction-list/transaction-list.tsx +++ b/app/components/home/transaction-list/transaction-list.tsx @@ -1,6 +1,7 @@ import React, { FC } from 'react'; -import { StacksNode } from '../../../store/stacks-node/stacks-node.reducer'; +import { StacksNode } from '@store/stacks-node'; + import { TransactionListTitle } from './transaction-list-title'; import { TransactionListEmpty } from './transaction-list-empty'; import { TransactionListLoading } from './transaction-list-loading'; diff --git a/app/components/network-message.tsx b/app/components/network-message.tsx index c1a0db283..b7350b9a6 100644 --- a/app/components/network-message.tsx +++ b/app/components/network-message.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; import { Text, Box } from '@blockstack/ui'; -// import { ENV } from '../constants/index'; +// import { ENV } from '@constants/index'; interface NetworkMessageProps { textColor?: string; diff --git a/app/components/settings/node-select-item.tsx b/app/components/settings/node-select-item.tsx index f83799b02..d6f4a9d1a 100644 --- a/app/components/settings/node-select-item.tsx +++ b/app/components/settings/node-select-item.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; import { Box, Flex, Text } from '@blockstack/ui'; -import { StacksNode } from '../../store/stacks-node'; +import { StacksNode } from '@store/stacks-node'; interface NodeSelectItemProps { node: StacksNode; diff --git a/app/components/title-bar.tsx b/app/components/title-bar.tsx index 1e3415ad7..fec75f3bc 100644 --- a/app/components/title-bar.tsx +++ b/app/components/title-bar.tsx @@ -3,8 +3,8 @@ import ReactDOM from 'react-dom'; import { useHistory, useLocation, matchPath } from 'react-router'; import { Flex, Box } from '@blockstack/ui'; -import routes from '../constants/routes.json'; -import { useWindowFocus } from '../hooks/use-window-focus'; +import routes from '@constants/routes.json'; +import { useWindowFocus } from '@hooks/use-window-focus'; import { BackContext } from '../pages/root'; import { NetworkMessage } from './network-message'; diff --git a/app/crypto/key-generation.spec.ts b/app/crypto/key-generation.spec.ts index d1016657d..c6e67ffa4 100644 --- a/app/crypto/key-generation.spec.ts +++ b/app/crypto/key-generation.spec.ts @@ -1,6 +1,7 @@ +import crypto from 'crypto'; + import { generateSalt, deriveKey } from './key-generation'; -import crypto from 'crypto'; // https://stackoverflow.com/a/52612372/1141891 Object.defineProperty(global, 'crypto', { value: { diff --git a/app/crypto/key-generation.ts b/app/crypto/key-generation.ts index 54bf40c02..7a673fd06 100644 --- a/app/crypto/key-generation.ts +++ b/app/crypto/key-generation.ts @@ -1,7 +1,7 @@ import { memoizeWith, identity } from 'ramda'; import argon2, { ArgonType } from 'argon2-browser'; -import { delay } from '../utils/delay'; +import { delay } from '@utils/delay'; export async function deriveKey({ pass, salt }: { pass: string; salt: string }) { // Without this additional delay of 1ms, an odd behaviour with the argon2 library diff --git a/app/hooks/use-ledger.ts b/app/hooks/use-ledger.ts index b3db1d62e..e83b209ae 100644 --- a/app/hooks/use-ledger.ts +++ b/app/hooks/use-ledger.ts @@ -1,8 +1,9 @@ import { useRef, useEffect, useCallback, useState } from 'react'; +import BlockstackApp from '@zondax/ledger-blockstack'; import type Transport from '@ledgerhq/hw-transport'; import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'; + import { useInterval } from './use-interval'; -import BlockstackApp from '@zondax/ledger-blockstack'; export enum LedgerConnectStep { Disconnected, diff --git a/app/main.dev.ts b/app/main.dev.ts index f2c9730b9..671e8de58 100644 --- a/app/main.dev.ts +++ b/app/main.dev.ts @@ -20,6 +20,7 @@ import log from 'electron-log'; import MenuBuilder from './menu'; import windowState from 'electron-window-state'; +// eslint-disable-next-line import/no-default-export export default class AppUpdater { constructor() { log.transports.file.level = 'info'; diff --git a/app/menu.ts b/app/menu.ts index b930f2a6a..4be94a20d 100644 --- a/app/menu.ts +++ b/app/menu.ts @@ -5,6 +5,7 @@ interface DarwinMenuItemConstructorOptions extends MenuItemConstructorOptions { submenu?: DarwinMenuItemConstructorOptions[] | Menu; } +// eslint-disable-next-line import/no-default-export export default class MenuBuilder { mainWindow: BrowserWindow; diff --git a/app/modals/receive-stx/receive-stx-modal.tsx b/app/modals/receive-stx/receive-stx-modal.tsx index b964692f8..35be01521 100644 --- a/app/modals/receive-stx/receive-stx-modal.tsx +++ b/app/modals/receive-stx/receive-stx-modal.tsx @@ -5,7 +5,7 @@ import Qr from 'qrcode.react'; import { Text, Modal, Button, Flex, Box, useClipboard } from '@blockstack/ui'; import { TxModalHeader, TxModalFooter } from '../transaction/transaction-modal-layout'; -import { homeActions } from '../../store/home/home.reducer'; +import { homeActions } from '@store/home/home.reducer'; interface ReceiveStxModalProps { address: string; diff --git a/app/modals/reset-wallet/reset-wallet-modal.tsx b/app/modals/reset-wallet/reset-wallet-modal.tsx index 241947697..583fa5c5b 100644 --- a/app/modals/reset-wallet/reset-wallet-modal.tsx +++ b/app/modals/reset-wallet/reset-wallet-modal.tsx @@ -2,7 +2,7 @@ import React, { FC, useState, useRef } from 'react'; import { Modal, ButtonGroup, Button, Box } from '@blockstack/ui'; import { TxModalHeader, TxModalFooter } from '../transaction/transaction-modal-layout'; import { remote } from 'electron'; -import { clearDiskStorage } from '../../utils/disk-store'; +import { clearDiskStorage } from '@utils/disk-store'; import { useHotkeys } from 'react-hotkeys-hook'; interface ResetWalletModalProps { diff --git a/app/modals/transaction/decrypt-wallet-form.tsx b/app/modals/transaction/decrypt-wallet-form.tsx index 650038804..676967361 100644 --- a/app/modals/transaction/decrypt-wallet-form.tsx +++ b/app/modals/transaction/decrypt-wallet-form.tsx @@ -1,7 +1,7 @@ import React, { FC } from 'react'; import { Box, Input, Text } from '@blockstack/ui'; -import { ErrorLabel } from '../../components/error-label'; -import { ErrorText } from '../../components/error-text'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; interface DecryptWalletFormProps { hasSubmitted: boolean; diff --git a/app/modals/transaction/sign-tx-with-ledger.tsx b/app/modals/transaction/sign-tx-with-ledger.tsx index 9531ccd92..21b84956d 100644 --- a/app/modals/transaction/sign-tx-with-ledger.tsx +++ b/app/modals/transaction/sign-tx-with-ledger.tsx @@ -1,9 +1,9 @@ import React, { FC, useEffect } from 'react'; -import { LedgerConnectInstructions } from '../../components/ledger/ledger-connect-instructions'; +import { LedgerConnectInstructions } from '@components/ledger/ledger-connect-instructions'; import { Box } from '@blockstack/ui'; -import { useLedger } from '../../hooks/use-ledger'; +import { useLedger } from '@hooks/use-ledger'; import BlockstackApp from '@zondax/ledger-blockstack'; -import { delay } from '../../utils/delay'; +import { delay } from '@utils/delay'; interface SignTxWithLedgerProps { onLedgerConnect(app: BlockstackApp): void; diff --git a/app/modals/transaction/transaction-form.tsx b/app/modals/transaction/transaction-form.tsx index 471c4b390..67c2d3663 100644 --- a/app/modals/transaction/transaction-form.tsx +++ b/app/modals/transaction/transaction-form.tsx @@ -1,10 +1,10 @@ import React, { FC } from 'react'; import { Flex, Text, Input, Box, Button } from '@blockstack/ui'; -import { ErrorLabel } from '../../components/error-label'; -import { ErrorText } from '../../components/error-text'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; import { FormikProps } from 'formik'; -import { capitalize } from '../../utils/capitalize'; -import { toHumanReadableStx } from '../../utils/unit-convert'; +import { capitalize } from '@utils/capitalize'; +import { toHumanReadableStx } from '@utils/unit-convert'; interface TxModalFormProps { balance: string; diff --git a/app/modals/transaction/transaction-modal.tsx b/app/modals/transaction/transaction-modal.tsx index 383ece03d..2ce134f7d 100644 --- a/app/modals/transaction/transaction-modal.tsx +++ b/app/modals/transaction/transaction-modal.tsx @@ -14,22 +14,22 @@ import { } from '@blockstack/stacks-transactions'; import { useHotkeys } from 'react-hotkeys-hook'; -import { RootState } from '../../store'; -import routes from '../../constants/routes.json'; -import { validateStacksAddress } from '../../utils/get-stx-transfer-direction'; +import { RootState } from '@store/index'; +import routes from '@constants/routes.json'; +import { validateStacksAddress } from '@utils/get-stx-transfer-direction'; -import { selectTxModalOpen, homeActions } from '../../store/home/home.reducer'; +import { selectTxModalOpen, homeActions } from '@store/home/home.reducer'; import { selectEncryptedMnemonic, selectSalt, decryptSoftwareWallet, selectWalletType, -} from '../../store/keys'; +} from '@store/keys'; import { validateAddressChain } from '../../crypto/validate-address-net'; -import { broadcastStxTransaction, selectMostRecentlyTxError } from '../../store/transaction'; -import { toHumanReadableStx, stxToMicroStx, microStxToStx } from '../../utils/unit-convert'; -import { ErrorLabel } from '../../components/error-label'; -import { ErrorText } from '../../components/error-text'; +import { broadcastStxTransaction, selectMostRecentlyTxError } from '@store/transaction'; +import { toHumanReadableStx, stxToMicroStx, microStxToStx } from '@utils/unit-convert'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; import { stacksNetwork } from '../../environment'; import { TxModalHeader, @@ -43,7 +43,7 @@ import { TxModalForm } from './transaction-form'; import { DecryptWalletForm } from './decrypt-wallet-form'; import { SignTxWithLedger } from './sign-tx-with-ledger'; import BlockstackApp from '../../../../ledger-blockstack/js/src/index'; -import { selectPublicKey } from '../../store/keys/keys.reducer'; +import { selectPublicKey } from '@store/keys/keys.reducer'; import { FailedBroadcastError } from './failed-broadcast-error'; import { createMessageSignature } from '@blockstack/stacks-transactions/lib/authorization'; diff --git a/app/modals/upsert-stacks-node-api/upsert-stacks-node-api.tsx b/app/modals/upsert-stacks-node-api/upsert-stacks-node-api.tsx index fc225067a..0ce3b768a 100644 --- a/app/modals/upsert-stacks-node-api/upsert-stacks-node-api.tsx +++ b/app/modals/upsert-stacks-node-api/upsert-stacks-node-api.tsx @@ -5,13 +5,13 @@ import { Modal, ButtonGroup, Button, Box, Text, Input } from '@blockstack/ui'; import { v4 as uuid } from 'uuid'; import * as yup from 'yup'; -import { StacksNode } from '../../store/stacks-node'; +import { StacksNode } from '@store/stacks-node'; import { TxModalHeader, TxModalFooter } from '../transaction/transaction-modal-layout'; -import { ErrorLabel } from '../../components/error-label'; -import { ErrorText } from '../../components/error-text'; -import { capitalize } from '../../utils/capitalize'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; +import { capitalize } from '@utils/capitalize'; import { Api } from '../../api/api'; -import { safeAwait } from '../../utils/safe-await'; +import { safeAwait } from '@utils/safe-await'; interface AddNodeSettingsProps { isOpen: boolean; diff --git a/app/pages/app.tsx b/app/pages/app.tsx index 4409ab032..98eb1dd95 100644 --- a/app/pages/app.tsx +++ b/app/pages/app.tsx @@ -2,15 +2,15 @@ import React, { useCallback, useEffect, FC, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { connectWebSocketClient } from '@stacks/blockchain-api-client'; -import { useNavigatorOnline } from '../hooks/use-navigator-online'; -import { getAddressTransactions, addNewTransaction } from '../store/transaction'; -import { getAddressDetails, updateAddressBalance } from '../store/address'; -import { RootState } from '../store'; -import { TitleBar } from '../components/title-bar'; -import { selectAddress } from '../store/keys'; -import { safeAwait } from '../utils/safe-await'; +import { useNavigatorOnline } from '@hooks/use-navigator-online'; +import { getAddressTransactions, addNewTransaction } from '@store/transaction'; +import { getAddressDetails, updateAddressBalance } from '@store/address'; +import { RootState } from '@store/index'; +import { TitleBar } from '@components/title-bar'; +import { selectAddress } from '@store/keys'; +import { safeAwait } from '@utils/safe-await'; import { Api } from '../api/api'; -import { selectActiveNodeApi } from '../store/stacks-node'; +import { selectActiveNodeApi } from '@store/stacks-node'; export const App: FC = ({ children }) => { const dispatch = useDispatch(); diff --git a/app/pages/home/home.tsx b/app/pages/home/home.tsx index 26874f575..66131c07e 100644 --- a/app/pages/home/home.tsx +++ b/app/pages/home/home.tsx @@ -3,31 +3,31 @@ import { useSelector, useDispatch } from 'react-redux'; import { Spinner } from '@blockstack/ui'; import { useHotkeys } from 'react-hotkeys-hook'; -import { RootState } from '../../store'; -import { openInExplorer } from '../../utils/external-links'; -import { selectAddress } from '../../store/keys'; -import { selectAddressBalance } from '../../store/address'; +import { RootState } from '@store/index'; +import { openInExplorer } from '@utils/external-links'; +import { selectAddress } from '@store/keys'; +import { selectAddressBalance } from '@store/address'; import { selectTransactionList, selectTransactionsLoading, selectTransactionListFetchError, -} from '../../store/transaction'; -import { selectPendingTransactions } from '../../store/pending-transaction'; -import { homeActions, selectTxModalOpen, selectReceiveModalOpen } from '../../store/home'; +} from '@store/transaction'; +import { selectPendingTransactions } from '@store/pending-transaction'; +import { homeActions, selectTxModalOpen, selectReceiveModalOpen } from '@store/home'; import { TransactionList, StackingPromoCard, StackingRewardCard, TransactionListItem, BalanceCard, -} from '../../components/home'; -import { TransactionModal } from '../../modals/transaction/transaction-modal'; -import { ReceiveStxModal } from '../../modals/receive-stx/receive-stx-modal'; -import { TransactionListItemPending } from '../../components/home/transaction-list/transaction-list-item-pending'; +} from '@components/home'; +import { TransactionModal } from '@modals/transaction/transaction-modal'; +import { ReceiveStxModal } from '@modals/receive-stx/receive-stx-modal'; +import { TransactionListItemPending } from '@components/home/transaction-list/transaction-list-item-pending'; import { Api } from '../../api/api'; -import { increment, decrement } from '../../utils/mutate-numbers'; -import { selectActiveNodeApi } from '../../store/stacks-node'; +import { increment, decrement } from '@utils/mutate-numbers'; +import { selectActiveNodeApi } from '@store/stacks-node'; import { HomeLayout } from './home-layout'; export const Home: FC = () => { diff --git a/app/pages/onboarding/01-welcome/welcome.tsx b/app/pages/onboarding/01-welcome/welcome.tsx index 20247a20b..6bb0a9bcf 100644 --- a/app/pages/onboarding/01-welcome/welcome.tsx +++ b/app/pages/onboarding/01-welcome/welcome.tsx @@ -1,14 +1,14 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; -import routes from '../../../constants/routes.json'; +import routes from '@constants/routes.json'; import { Onboarding, OnboardingTitle, OnboardingButton, OnboardingText, -} from '../../../components/onboarding'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +} from '@components/onboarding'; +import { useBackButton } from '@hooks/use-back-url.hook'; export const Welcome: React.FC = () => { const history = useHistory(); diff --git a/app/pages/onboarding/02-create-wallet/create-wallet.tsx b/app/pages/onboarding/02-create-wallet/create-wallet.tsx index 498132e81..af65ef18f 100644 --- a/app/pages/onboarding/02-create-wallet/create-wallet.tsx +++ b/app/pages/onboarding/02-create-wallet/create-wallet.tsx @@ -2,8 +2,8 @@ import React from 'react'; import { useDispatch } from 'react-redux'; import { useHistory } from 'react-router-dom'; -import { onboardingMnemonicGenerationStep } from '../../../store/keys/keys.actions'; -import routes from '../../../constants/routes.json'; +import { onboardingMnemonicGenerationStep } from '@store/keys/keys.actions'; +import routes from '@constants/routes.json'; import { Onboarding, OnboardingTitle, @@ -11,8 +11,8 @@ import { OnboardingText, OnboardingFooter, OnboardingFooterLink, -} from '../../../components/onboarding'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +} from '@components/onboarding'; +import { useBackButton } from '@hooks/use-back-url.hook'; export const CreateWallet: React.FC = () => { const dispatch = useDispatch(); diff --git a/app/pages/onboarding/03-restore-wallet/restore-wallet.tsx b/app/pages/onboarding/03-restore-wallet/restore-wallet.tsx index 4c1ed3e93..e8ddf53c3 100644 --- a/app/pages/onboarding/03-restore-wallet/restore-wallet.tsx +++ b/app/pages/onboarding/03-restore-wallet/restore-wallet.tsx @@ -4,13 +4,13 @@ import { useDispatch } from 'react-redux'; import { deriveRootKeychainFromMnemonic } from '@blockstack/keychain'; import { Text, Input } from '@blockstack/ui'; -import routes from '../../../constants/routes.json'; -import { Hr } from '../../../components/hr'; -import { ErrorLabel } from '../../../components/error-label'; -import { ErrorText } from '../../../components/error-text'; -import { persistMnemonic } from '../../../store/keys/keys.actions'; -import { safeAwait } from '../../../utils/safe-await'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +import routes from '@constants/routes.json'; +import { Hr } from '@components/hr'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; +import { persistMnemonic } from '@store/keys/keys.actions'; +import { safeAwait } from '@utils/safe-await'; +import { useBackButton } from '@hooks/use-back-url.hook'; import { Onboarding, OnboardingTitle, @@ -18,7 +18,7 @@ import { OnboardingText, OnboardingFooter, OnboardingFooterLink, -} from '../../../components/onboarding'; +} from '@components/onboarding'; export const RestoreWallet: React.FC = () => { const [mnemonic, setMnemonic] = useState(''); diff --git a/app/pages/onboarding/04-connect-ledger/connect-ledger.tsx b/app/pages/onboarding/04-connect-ledger/connect-ledger.tsx index 9edda1313..af69b6bea 100644 --- a/app/pages/onboarding/04-connect-ledger/connect-ledger.tsx +++ b/app/pages/onboarding/04-connect-ledger/connect-ledger.tsx @@ -4,21 +4,21 @@ import BlockstackApp from '@zondax/ledger-blockstack'; import { useDispatch } from 'react-redux'; -import routes from '../../../constants/routes.json'; +import routes from '@constants/routes.json'; import { Onboarding, OnboardingTitle, OnboardingText, OnboardingButton, -} from '../../../components/onboarding'; -import { setLedgerWallet } from '../../../store/keys'; +} from '@components/onboarding'; +import { setLedgerWallet } from '@store/keys'; -import { delay } from '../../../utils/delay'; -import { LedgerConnectInstructions } from '../../../components/ledger/ledger-connect-instructions'; -import { useLedger } from '../../../hooks/use-ledger'; -import { ErrorLabel } from '../../../components/error-label'; -import { ErrorText } from '../../../components/error-text'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +import { delay } from '@utils/delay'; +import { LedgerConnectInstructions } from '@components/ledger/ledger-connect-instructions'; +import { useLedger } from '@hooks/use-ledger'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; +import { useBackButton } from '@hooks/use-back-url.hook'; const STX_DERIVATION_PATH = `m/44'/5757'/0'/0/0`; diff --git a/app/pages/onboarding/04-generating-secret/generating-secret.tsx b/app/pages/onboarding/04-generating-secret/generating-secret.tsx index eeaa51539..4479879f6 100644 --- a/app/pages/onboarding/04-generating-secret/generating-secret.tsx +++ b/app/pages/onboarding/04-generating-secret/generating-secret.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Spinner } from '@blockstack/ui'; -import { Onboarding, OnboardingTitle } from '../../../components/onboarding'; +import { Onboarding, OnboardingTitle } from '@components/onboarding'; export const GeneratingSecret: React.FC = () => { return ( diff --git a/app/pages/onboarding/05-secret-key/secret-key.tsx b/app/pages/onboarding/05-secret-key/secret-key.tsx index ac0cce578..decdc2fdd 100644 --- a/app/pages/onboarding/05-secret-key/secret-key.tsx +++ b/app/pages/onboarding/05-secret-key/secret-key.tsx @@ -4,18 +4,18 @@ import { useHistory } from 'react-router-dom'; import log from 'electron-log'; import { Box, useClipboard, Text, Button } from '@blockstack/ui'; -import routes from '../../../constants/routes.json'; -import { Card } from '../../../components/card'; -import { Toast } from '../../../components/toast'; +import routes from '@constants/routes.json'; +import { Card } from '@components/card'; +import { Toast } from '@components/toast'; import { Onboarding, OnboardingTitle, OnboardingButton, OnboardingText, -} from '../../../components/onboarding'; -import { selectMnemonic } from '../../../store/keys/keys.reducer'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +} from '@components/onboarding'; +import { selectMnemonic } from '@store/keys/keys.reducer'; +import { useBackButton } from '@hooks/use-back-url.hook'; export const SecretKey: React.FC = () => { const history = useHistory(); diff --git a/app/pages/onboarding/06-verify-key/verify-key.tsx b/app/pages/onboarding/06-verify-key/verify-key.tsx index a3a672415..a3ba83ea8 100644 --- a/app/pages/onboarding/06-verify-key/verify-key.tsx +++ b/app/pages/onboarding/06-verify-key/verify-key.tsx @@ -4,11 +4,11 @@ import { useSelector } from 'react-redux'; import { Link } from 'react-router-dom'; import { Input } from '@blockstack/ui'; -import routes from '../../../constants/routes.json'; -import { selectMnemonic } from '../../../store/keys'; -import { ErrorLabel } from '../../../components/error-label'; -import { ErrorText } from '../../../components/error-text'; -import { useBackButton } from '../../../hooks/use-back-url.hook'; +import routes from '@constants/routes.json'; +import { selectMnemonic } from '@store/keys'; +import { ErrorLabel } from '@components/error-label'; +import { ErrorText } from '@components/error-text'; +import { useBackButton } from '@hooks/use-back-url.hook'; import { Onboarding, OnboardingTitle, @@ -16,7 +16,7 @@ import { OnboardingButton, OnboardingFooter, OnboardingFooterLink, -} from '../../../components/onboarding'; +} from '@components/onboarding'; export const VerifyKey: React.FC = () => { const history = useHistory(); diff --git a/app/pages/onboarding/07-set-password/set-password.tsx b/app/pages/onboarding/07-set-password/set-password.tsx index 4b7fc922c..2f6a18d2d 100644 --- a/app/pages/onboarding/07-set-password/set-password.tsx +++ b/app/pages/onboarding/07-set-password/set-password.tsx @@ -3,13 +3,13 @@ import { useDispatch } from 'react-redux'; import { useHistory } from 'react-router'; import { Text, Input } from '@blockstack/ui'; -import { setSoftwareWallet } from '../../../store/keys'; +import { setSoftwareWallet } from '@store/keys'; import { Onboarding, OnboardingTitle, OnboardingText, OnboardingButton, -} from '../../../components/onboarding'; +} from '@components/onboarding'; import { validatePassword, blankPasswordValidation, diff --git a/app/pages/root.tsx b/app/pages/root.tsx index a4d01ea29..8d620e522 100644 --- a/app/pages/root.tsx +++ b/app/pages/root.tsx @@ -7,14 +7,15 @@ import { History } from 'history'; import { PersistGate } from 'redux-persist/integration/react'; import { CSSReset } from '@blockstack/ui'; -import { Store } from '../store'; +import { Store } from '@store/index'; import { Routes } from '../routes'; -import { loadFonts } from '../utils/load-fonts'; +import { loadFonts } from '@utils/load-fonts'; const GlobalStyle = createGlobalStyle` html, body, #root { min-height: 100vh; max-height: 100vh; + background: white; } #root {padding-top: 44px;} .draggable-bar { @@ -68,4 +69,5 @@ function Root({ store, history, persistor }: RootProps) { ); } +// eslint-disable-next-line import/no-default-export export default hot(Root); diff --git a/app/pages/settings/settings.tsx b/app/pages/settings/settings.tsx index 6366ca045..ea068cc97 100644 --- a/app/pages/settings/settings.tsx +++ b/app/pages/settings/settings.tsx @@ -2,25 +2,25 @@ import React, { useState } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { Button } from '@blockstack/ui'; -import routes from '../../constants/routes.json'; -import { useBackButton } from '../../hooks/use-back-url.hook'; -import { selectWalletType } from '../../store/keys/keys.reducer'; -import { ResetWalletModal } from '../../modals/reset-wallet/reset-wallet-modal'; +import routes from '@constants/routes.json'; +import { useBackButton } from '@hooks/use-back-url.hook'; +import { selectWalletType } from '@store/keys/keys.reducer'; +import { ResetWalletModal } from '@modals/reset-wallet/reset-wallet-modal'; -import { RootState } from '../../store'; +import { RootState } from '@store/index'; import { selectStacksNodeApis, upsertStacksNodeApi, selectActiveNodeApi, setActiveStacksNode, removeStacksNodeApi, -} from '../../store/stacks-node'; -import { UpsertStacksNodeSettingsModal } from '../../modals/upsert-stacks-node-api/upsert-stacks-node-api'; -import { NodeSelect } from '../../components/settings/node-select'; -import { NodeSelectItem } from '../../components/settings/node-select-item'; +} from '@store/stacks-node'; +import { UpsertStacksNodeSettingsModal } from '@modals/upsert-stacks-node-api/upsert-stacks-node-api'; +import { NodeSelect } from '@components/settings/node-select'; +import { NodeSelectItem } from '@components/settings/node-select-item'; +import { SettingSection } from '@components/settings/settings-section'; import { SettingsLayout, SettingDescription } from './settings-layout'; -import { SettingSection } from '../../components/settings/settings-section'; export const Settings = () => { const dispatch = useDispatch(); @@ -29,7 +29,6 @@ export const Settings = () => { selectedNodeApi: selectActiveNodeApi(state), walletType: selectWalletType(state), })); - const [resetModalOpen, setResetModalOpen] = useState(false); const [nodeModalOpen, setNodeModalOpen] = useState(false); const [operation, setOperation] = useState<'create' | 'update'>('create'); diff --git a/app/store/configureStore.dev.ts b/app/store/configureStore.dev.ts index 472663f91..fdc7e51a8 100644 --- a/app/store/configureStore.dev.ts +++ b/app/store/configureStore.dev.ts @@ -8,7 +8,7 @@ import { routerMiddleware, routerActions } from 'connected-react-router'; import { createLogger } from 'redux-logger'; import { RootState, createRootReducer, persistConfig } from '.'; -import { getInitialStateFromDisk } from '../utils/disk-store'; +import { getInitialStateFromDisk } from '@utils/disk-store'; declare global { interface Window { diff --git a/app/store/configureStore.prod.ts b/app/store/configureStore.prod.ts index 1f6b42832..bb9c9a270 100644 --- a/app/store/configureStore.prod.ts +++ b/app/store/configureStore.prod.ts @@ -5,7 +5,7 @@ import { routerMiddleware } from 'connected-react-router'; import { persistReducer, persistStore } from 'redux-persist'; import { RootState, createRootReducer, persistConfig } from '.'; -import { getInitialStateFromDisk } from '../utils/disk-store'; +import { getInitialStateFromDisk } from '@utils/disk-store'; export const history = createHashHistory(); const rootReducer = createRootReducer({ history, keys: getInitialStateFromDisk() }); diff --git a/app/store/index.ts b/app/store/index.ts index b11963b36..67c629793 100644 --- a/app/store/index.ts +++ b/app/store/index.ts @@ -1,5 +1,5 @@ -import { Dispatch as ReduxDispatch, Store as ReduxStore, Action, Reducer } from 'redux'; -import { combineReducers } from '@reduxjs/toolkit'; +import { Store as ReduxStore, Action } from 'redux'; +import { combineReducers, Dispatch } from '@reduxjs/toolkit'; import { connectRouter } from 'connected-react-router'; import { KeysState, createKeysReducer } from './keys'; @@ -24,8 +24,6 @@ export interface RootState { export type GetState = () => RootState; -export type Dispatch = ReduxDispatch>; - export type Store = ReduxStore>; export const persistConfig: PersistConfig = { @@ -50,3 +48,5 @@ export function createRootReducer({ history, keys }: RootReducerArgs) { stacksNode: stacksNodeReducer, }); } + +export type Dispatch = ReturnType['store']['dispatch']; diff --git a/app/store/keys/keys.actions.ts b/app/store/keys/keys.actions.ts index fd5a6fb12..372bd52fe 100644 --- a/app/store/keys/keys.actions.ts +++ b/app/store/keys/keys.actions.ts @@ -5,18 +5,19 @@ import log from 'electron-log'; import { generateMnemonicRootKeychain, deriveRootKeychainFromMnemonic } from '@blockstack/keychain'; import { RootState } from '..'; -import routes from '../../constants/routes.json'; -import { MNEMONIC_ENTROPY } from '../../constants'; +import routes from '@constants/routes.json'; +import { MNEMONIC_ENTROPY } from '@constants/index'; import { persistSalt, persistEncryptedMnemonic, persistStxAddress, persistWalletType, -} from '../../utils/disk-store'; + persistPublicKey, +} from '@utils/disk-store'; import { generateSalt, deriveKey } from '../../crypto/key-generation'; import { deriveStxAddressKeychain } from '../../crypto/derive-address-keychain'; import { encryptMnemonic, decryptMnemonic } from '../../crypto/key-encryption'; -import { persistPublicKey } from '../../utils/disk-store'; + import { selectMnemonic } from './keys.reducer'; import { BIP32Interface } from '../../types/bip32'; diff --git a/app/store/keys/keys.reducer.ts b/app/store/keys/keys.reducer.ts index b0a79a197..a9f9a4681 100644 --- a/app/store/keys/keys.reducer.ts +++ b/app/store/keys/keys.reducer.ts @@ -2,8 +2,12 @@ import { createReducer, createSelector } from '@reduxjs/toolkit'; import log from 'electron-log'; import { RootState } from '..'; -import { setPasswordSuccess, persistLedgerWallet } from './keys.actions'; -import { persistMnemonicSafe, persistMnemonic } from './keys.actions'; +import { + setPasswordSuccess, + persistLedgerWallet, + persistMnemonicSafe, + persistMnemonic, +} from './keys.actions'; // // TODO: create separate state slices per wallet type diff --git a/app/store/transaction/transaction.actions.ts b/app/store/transaction/transaction.actions.ts index 54f73bbbf..575485a7f 100644 --- a/app/store/transaction/transaction.actions.ts +++ b/app/store/transaction/transaction.actions.ts @@ -6,7 +6,7 @@ import { broadcastTransaction, StacksTransaction } from '@blockstack/stacks-tran import { Api } from '../../api/api'; import { stacksNetwork } from '../../environment'; -import { safelyFormatHexTxid } from '../../utils/safe-handle-txid'; +import { safelyFormatHexTxid } from '@utils/safe-handle-txid'; import { addPendingTransaction } from '../pending-transaction'; import { Dispatch, GetState } from '../index'; import { selectActiveNodeApi } from '../stacks-node/stacks-node.reducer'; diff --git a/app/types/index.ts b/app/types/index.ts index 86e7d435b..8b65dbc60 100644 --- a/app/types/index.ts +++ b/app/types/index.ts @@ -1,9 +1,11 @@ declare module '*.svg' { const content: any; + // eslint-disable-next-line import/no-default-export export default content; } declare module '*.woff2' { const content: any; + // eslint-disable-next-line import/no-default-export export default content; } diff --git a/app/yarn.lock b/app/yarn.lock index 6bc9700dc..7535579ee 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -20,9 +20,9 @@ zone-file "^1.0.0" "@blockstack/rpc-client@^0.3.0-alpha.11": - version "0.3.0-alpha.12" - resolved "https://registry.yarnpkg.com/@blockstack/rpc-client/-/rpc-client-0.3.0-alpha.12.tgz#b09e8b98309de1d80d5198afe14ae7884adf4a35" - integrity sha512-kWdI3+TqEPFDdNUwfWOiYokztPOUqbNT6+2ZnzriveBjMrMRb1F1lUTPC/OjLRyUDNxPRrnjhSQdqXQCm+EeNA== + version "0.3.0-alpha.15" + resolved "https://registry.yarnpkg.com/@blockstack/rpc-client/-/rpc-client-0.3.0-alpha.15.tgz#937e6dbd359a78dd524e2e27f156f4ed3893bef4" + integrity sha512-+/6Db8CLvbf676SEbPuP4rnfId+5wv+O7trypBAGE+U8jYvL/mNz6gex4YP3u/IEbGTdKzUHB2n5HNYKl/28uw== dependencies: "@blockstack/stacks-transactions" "0.5.1" cross-fetch "^3.0.4" @@ -67,29 +67,29 @@ sha.js "^2.4.11" smart-buffer "^4.1.0" -"@ledgerhq/devices@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.21.0.tgz#b6dc274536e70513a3ae7df7a9f956ea87adcc49" - integrity sha512-65XZgD2ykK7AJkcJuNEP8WD43HDkudA7NfB34U1T6pmPC6AgWoRYDNpJ23XQ8eiAImETlxv7FaDGUXSEpIQMGQ== +"@ledgerhq/devices@^5.21.0", "@ledgerhq/devices@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.23.0.tgz#e5b800de858e45d247be56708c832c1e51727fe0" + integrity sha512-XR9qTwn14WwN8VSMsYD9NTX/TgkmrTnXEh0pIj6HMRZwFzBPzslExOcXuCm3V9ssgAEAxv3VevfV8UulvvZUXA== dependencies: - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" - rxjs "^6.6.0" + "@ledgerhq/errors" "^5.23.0" + "@ledgerhq/logs" "^5.23.0" + rxjs "^6.6.3" -"@ledgerhq/errors@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.21.0.tgz#2a7bdea62fe7e0bd9ccc3b786d2c179f8f65bc02" - integrity sha512-sGfXoaVGfzrhnexu2TEdgL2FAjM7PUeobWdDBx3DJKE+ARje1y+i5+qg7gyvQL+9k4FV7mW2xMOcnUI3T2Zw0Q== +"@ledgerhq/errors@^5.21.0", "@ledgerhq/errors@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.23.0.tgz#30a0338dafba8264556011604abed08bf24979f3" + integrity sha512-qtpX8aFrUUlYfOMu7BxTvxqUa8CniE+tEBpVEjYUhVbFdVJjM4ouwJD++RtQkMAU2c5jE7xb12WnUnf5BlAgLQ== "@ledgerhq/hw-transport-node-hid-noevents@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.21.0.tgz#3eb929fa0ffce1015b83e1f53a2f7b52eef23de7" - integrity sha512-bo+4DLP5c7FO/No1ad0xddnukeFHAg5aoOWUFsiVHHo/EXugrngOc09Nqp6XMqR3dloqMhiW5Q9J5Joq4mDxgA== - dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" - "@ledgerhq/hw-transport" "^5.21.0" - "@ledgerhq/logs" "^5.21.0" + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.23.0.tgz#9d1329306b58dba23c53f16720711425e88a4fa0" + integrity sha512-tJQRAosKxWu33U28Pu3XmrktafhA3Vdx83Jdw260NVpqWs6ImA7j0A6242FQzYFEi92II/02jsrW6OBZo8bNUA== + dependencies: + "@ledgerhq/devices" "^5.23.0" + "@ledgerhq/errors" "^5.23.0" + "@ledgerhq/hw-transport" "^5.23.0" + "@ledgerhq/logs" "^5.23.0" node-hid "^1.3.0" "@ledgerhq/hw-transport-node-hid@5.21.0": @@ -106,19 +106,19 @@ node-hid "^1.3.0" usb "^1.6.3" -"@ledgerhq/hw-transport@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.21.0.tgz#c94d13397a26e0755824e05613e2257a3d2b450b" - integrity sha512-emVoy+ZEA19z+g6CsDcliVRRYDn4RzdH+zW9F37Z22uoMWslx2VNa+KdcKijmS3V3mkSLjle1cjwprPh61G8hQ== +"@ledgerhq/hw-transport@^5.21.0", "@ledgerhq/hw-transport@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.23.0.tgz#ed3445b9579c43a58cd959610ad7e464b36b87ca" + integrity sha512-ICTG3Bst62SkC+lYYFgpKk5G4bAOxeIvptXnTLOhf6VqeN7gdHfiRzZwNPnKzI2pxmcEVbBitgsxEIEQJmDKVA== dependencies: - "@ledgerhq/devices" "^5.21.0" - "@ledgerhq/errors" "^5.21.0" + "@ledgerhq/devices" "^5.23.0" + "@ledgerhq/errors" "^5.23.0" events "^3.2.0" -"@ledgerhq/logs@^5.21.0": - version "5.21.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.21.0.tgz#19629222e44b4d312e232c2dfbe0d067ecc12830" - integrity sha512-eyPXrKfQ+HSLcITB5MdSWhXlImE2qKWTLT2u6l+a9wiCZl5yimSqn0uC5evxaP0McKOW0wSntgfj+gOoKv+Paw== +"@ledgerhq/logs@^5.21.0", "@ledgerhq/logs@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.23.0.tgz#7a86b1e6479c8aa8e8b9affe00eb8e369efdbc3b" + integrity sha512-88M8RkVHl44k6MAhfrYhx25opnJV24/2XpuTUVklID11f9rBdE+6RZ9OMs39dyX2sDv7TuzIPi5nTRoCqZMDYw== "@types/bn.js@*", "@types/bn.js@^4.11.6": version "4.11.6" @@ -142,14 +142,14 @@ "@types/bn.js" "*" "@types/lodash@^4.14.149": - version "4.14.158" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.158.tgz#b38ea8b6fe799acd076d7a8d7ab71c26ef77f785" - integrity sha512-InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w== + version "4.14.161" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18" + integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA== "@types/node@*": - version "14.0.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.27.tgz#a151873af5a5e851b51b3b065c9e63390a9e0eb1" - integrity sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g== + version "14.6.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" + integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== "@types/node@10.12.18": version "10.12.18" @@ -162,14 +162,14 @@ integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/node@^12.7.12": - version "12.12.53" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.53.tgz#be0d375933c3d15ef2380dafb3b0350ea7021129" - integrity sha512-51MYTDTyCziHb70wtGNFRwB4l+5JNvdqzFSkbDvpbftEgVUBEE+T5f7pROhWMp/fxp07oNIEQZd5bbfAH22ohQ== + version "12.12.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.55.tgz#0aa266441cb9e1fd3e415a8f619cb7d776667cdd" + integrity sha512-Vd6xQUVvPCTm7Nx1N7XHcpX6t047ltm7TgcsOr4gFHjeYgwZevo+V7I1lfzHnj5BT5frztZ42+RTG4MwYw63dw== "@types/node@^8.0.0": - version "8.10.62" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.62.tgz#8d0d0db44a46ae7679d92e2e36d41bf1c3625d6a" - integrity sha512-76fupxOYVxk36kb7O/6KtrAPZ9jnSK3+qisAX4tQMEuGNdlvl7ycwatlHqjoE6jHfVtXFM3pCrCixZOidc5cuw== + version "8.10.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.63.tgz#f86775d576bc07a2992da244f41c23d3ba66d402" + integrity sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q== "@types/randombytes@^2.0.0": version "2.0.0" @@ -201,9 +201,9 @@ ajv@^4.11.5: json-stable-stringify "^1.0.1" ajv@^6.12.3: - version "6.12.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA== + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -273,14 +273,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -base-x@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" - integrity sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w= + version "1.10.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" + integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== base-x@^3.0.2, base-x@^3.0.8: version "3.0.8" @@ -289,13 +284,6 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" -base58check@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base58check/-/base58check-2.0.0.tgz#8046652d14bc87f063bd16be94a39134d3b61173" - integrity sha1-gEZlLRS8h/BjvRa+lKORNNO2EXM= - dependencies: - bs58 "^3.0.0" - base64-js@^1.0.2: version "1.3.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" @@ -387,9 +375,9 @@ bitcoinjs-lib@^5.1.6: wif "^2.0.1" bl@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a" - integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== dependencies: buffer "^5.5.0" inherits "^2.0.4" @@ -429,22 +417,15 @@ bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -bs58@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e" - integrity sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4= - dependencies: - base-x "^1.1.0" - bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" @@ -469,15 +450,7 @@ buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.0.2" ieee754 "^1.1.4" -c32check@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/c32check/-/c32check-1.0.1.tgz#857dcd60de12f515d582dc70e85b9fb9666cbf32" - integrity sha512-0e1+39uLNLyRm9sNoPUCg38LOELUqiBDZXD9kpUUAFNBq21gY3VaNImp1rfznQOsqK27ArvQ2JaZmfokZznqHg== - dependencies: - base58check "^2.0.0" - ripemd160 "^2.0.1" - -c32check@^1.1.1: +c32check@^1.0.1, c32check@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/c32check/-/c32check-1.1.2.tgz#e84a66366bf9964ddf8d7b1f86d0e79281b8c8bd" integrity sha512-YgmbvOQ9HfoH7ptW80JP6WJdgoHJFGqFjxaFYvwD+bU5i3dJ44a1LI0yxdiA2n/tVKq9W92tYcFjTP5hGlvhcg== @@ -903,12 +876,7 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -lodash@^4.17.20: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: version "4.17.20" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== @@ -994,9 +962,9 @@ napi-build-utils@^1.0.1: integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== node-abi@^2.18.0, node-abi@^2.7.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.18.0.tgz#1f5486cfd7d38bd4f5392fa44a4ad4d9a0dffbf4" - integrity sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw== + version "2.19.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" + integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== dependencies: semver "^5.4.1" @@ -1090,9 +1058,9 @@ prebuild-install@^5.3.3, prebuild-install@^5.3.4: which-pm-runs "^1.0.0" prettier@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== + version "2.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== process-nextick-args@~2.0.0: version "2.0.1" @@ -1226,10 +1194,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -rxjs@^6.6.0: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== +rxjs@^6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" @@ -1447,14 +1415,14 @@ typeforce@^1.11.3, typeforce@^1.11.5: integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== uglify-js@^3.1.9: - version "3.10.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.1.tgz#dd14767eb7150de97f2573a5ff210db14fffe4ad" - integrity sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q== + version "3.10.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.4.tgz#dd680f5687bc0d7a93b14a3482d16db6eba2bfbb" + integrity sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" diff --git a/configs/webpack.config.base.js b/configs/webpack.config.base.js index 7acffd698..275479ec5 100644 --- a/configs/webpack.config.base.js +++ b/configs/webpack.config.base.js @@ -5,6 +5,7 @@ import path from 'path'; import webpack from 'webpack'; import { dependencies as externals } from '../app/package.json'; +import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin'; export default { externals: [...Object.keys(externals || {})], @@ -56,6 +57,7 @@ export default { resolve: { extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'], modules: [path.join(__dirname, '..', 'app'), 'node_modules'], + plugins: [new TsconfigPathsPlugin()], }, plugins: [ diff --git a/jest.config.js b/jest.config.js index 2db0e612b..b5f8dc362 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,3 +1,6 @@ +const { pathsToModuleNameMapper } = require('ts-jest/utils'); +const { compilerOptions } = require('./tsconfig'); + module.exports = { preset: 'ts-jest/presets/js-with-ts', testEnvironment: 'node', @@ -9,6 +12,7 @@ module.exports = { '!/app/main.dev.ts', '!/app/menu.ts', ], + moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '/' }), moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'json'], moduleDirectories: ['node_modules', 'app/node_modules'], setupFiles: ['./internals/scripts/CheckBuildsExist.js'], diff --git a/package.json b/package.json index 747e03665..4bbffe8cb 100644 --- a/package.json +++ b/package.json @@ -91,14 +91,14 @@ "url": "https://github.com/blockstack/stacks-wallet/issues" }, "devDependencies": { - "@actions/core": "1.2.4", - "@babel/core": "7.11.4", + "@actions/core": "1.2.5", + "@babel/core": "7.11.6", "@babel/plugin-proposal-class-properties": "7.10.4", "@babel/plugin-proposal-decorators": "7.10.5", "@babel/plugin-proposal-do-expressions": "7.10.4", "@babel/plugin-proposal-export-default-from": "7.10.4", "@babel/plugin-proposal-export-namespace-from": "7.10.4", - "@babel/plugin-proposal-function-bind": "7.10.5", + "@babel/plugin-proposal-function-bind": "7.11.5", "@babel/plugin-proposal-function-sent": "7.10.4", "@babel/plugin-proposal-json-strings": "7.10.4", "@babel/plugin-proposal-logical-assignment-operators": "7.11.0", @@ -111,10 +111,10 @@ "@babel/plugin-syntax-import-meta": "7.10.4", "@babel/plugin-transform-react-constant-elements": "7.10.4", "@babel/plugin-transform-react-inline-elements": "7.10.4", - "@babel/preset-env": "7.11.0", + "@babel/preset-env": "7.11.5", "@babel/preset-react": "7.10.4", "@babel/preset-typescript": "7.10.4", - "@babel/register": "7.10.5", + "@babel/register": "7.11.5", "@blockstack/eslint-config": "1.0.5", "@blockstack/prettier-config": "0.0.6", "@blockstack/stacks-blockchain-api-types": "0.8.0", @@ -193,6 +193,7 @@ "style-loader": "1.2.1", "terser-webpack-plugin": "4.1.0", "ts-jest": "26.2.0", + "tsconfig-paths-webpack-plugin": "3.3.0", "url-loader": "4.1.0", "webpack": "4.44.1", "webpack-bundle-analyzer": "3.8.0", @@ -208,7 +209,7 @@ "@hot-loader/react-dom": "16.13.0", "@ledgerhq/hw-transport-webusb": "5.22.0", "@reduxjs/toolkit": "1.4.0", - "@stacks/blockchain-api-client": "0.8.0", + "@stacks/blockchain-api-client": "0.13.0", "@styled-system/theme-get": "5.1.2", "@zondax/ledger-blockstack": "0.0.1", "argon2-browser": "1.14.0", diff --git a/tsconfig.json b/tsconfig.json index 09b2cd7e1..32c8840c4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,19 @@ "esModuleInterop": true, "allowSyntheticDefaultImports": true, "resolveJsonModule": true, - "allowJs": true + "allowJs": true, + "baseUrl": ".", + "paths": { + "@utils/*": ["app/utils/*"], + "@components/*": ["app/components/*"], + "@store/*": ["app/store/*"], + "@modals/*": ["app/modals/*"], + "@crypto/*": ["app/crypto/*"], + "@hooks/*": ["app/hooks/*"], + "@api/*": ["app/api/*"], + "@assets/*": ["app/assets/*"], + "@constants/*": ["app/constants/*"] + } }, "exclude": [ "test", diff --git a/yarn.lock b/yarn.lock index 68b92a896..32d0d3ef0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,10 @@ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== -"@actions/core@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.4.tgz#96179dbf9f8d951dd74b40a0dbd5c22555d186ab" - integrity sha512-YJCEq8BE3CdN8+7HPZ/4DxJjk/OkZV2FFIf+DlZTC/4iBlzYCD5yjRR6eiOS5llO11zbRltIRuKAjMKaWTE6cg== +"@actions/core@1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.5.tgz#fa57bf8c07a38191e243beb9ea9d8368c1cb02c8" + integrity sha512-mwpoNjHSWWh0IiALdDEQi3tru124JKn0yVNziIBzTME8QRv7thwoghVuT1jBRjFvdtoHsqD58IRHy1nf86paRg== "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" @@ -28,19 +28,19 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@7.11.4", "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229" - integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg== +"@babel/core@7.11.6", "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.4" + "@babel/generator" "^7.11.6" "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.4" + "@babel/parser" "^7.11.5" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -50,12 +50,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.0", "@babel/generator@^7.11.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be" - integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g== +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.11.5" jsesc "^2.5.1" source-map "^0.5.0" @@ -74,14 +74,14 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-builder-react-jsx-experimental@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" - integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== +"@babel/helper-builder-react-jsx-experimental@^7.10.4", "@babel/helper-builder-react-jsx-experimental@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f" + integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.10.5" + "@babel/types" "^7.11.5" "@babel/helper-builder-react-jsx@^7.10.4": version "7.10.4" @@ -283,10 +283,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.4", "@babel/parser@^7.7.0": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca" - integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA== +"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" @@ -346,10 +346,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-function-bind@7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.10.5.tgz#62acbdde1c43e7dfae6efc9ddd5bc60920cee719" - integrity sha512-1lYbE2ynV9yN0LCEYCdEBD5pR6GaNkRfjn1z1tWDdWMJgunTFcJBZDJUgiMPcTMqAc3D6Vrm8v2khxjjx6FrCg== +"@babel/plugin-proposal-function-bind@7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-bind/-/plugin-proposal-function-bind-7.11.5.tgz#6ce571686dd1bc2f5c1ae7bdebad8aaa7fda3893" + integrity sha512-gkCyUqJp6jRPdHFAYZxGal6d6Poj17G+6FGbyUcHKew2sccp5HVilTgnreYqTzDsY10Ys0ZVB/U2knTnnJdkUQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-function-bind" "^7.10.4" @@ -836,11 +836,11 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" - integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz#e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6" + integrity sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.11.5" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx" "^7.10.4" @@ -954,10 +954,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== +"@babel/preset-env@7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== dependencies: "@babel/compat-data" "^7.11.0" "@babel/helper-compilation-targets" "^7.10.4" @@ -1021,7 +1021,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" + "@babel/types" "^7.11.5" browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -1060,10 +1060,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-typescript" "^7.10.4" -"@babel/register@7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== +"@babel/register@7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea" + integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.19" @@ -1087,25 +1087,25 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" + "@babel/generator" "^7.11.5" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -1288,6 +1288,22 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== +"@eslint/eslintrc@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" + integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@hot-loader/react-dom@16.13.0": version "16.13.0" resolved "https://registry.yarnpkg.com/@hot-loader/react-dom/-/react-dom-16.13.0.tgz#de245b42358110baf80aaf47a0592153d4047997" @@ -1495,19 +1511,19 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@ledgerhq/devices@^5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.22.0.tgz#18595f3545b57cf60e50d6e9d83095dda21f575f" - integrity sha512-oJxhee/zlHmIx66zvQQTSpIsHOiiLjALemTX9oUtB4xQwFvoiptPnBCeTDTM9teode7wzk7oE9qdUAZuat+nCg== +"@ledgerhq/devices@^5.22.0", "@ledgerhq/devices@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.23.0.tgz#e5b800de858e45d247be56708c832c1e51727fe0" + integrity sha512-XR9qTwn14WwN8VSMsYD9NTX/TgkmrTnXEh0pIj6HMRZwFzBPzslExOcXuCm3V9ssgAEAxv3VevfV8UulvvZUXA== dependencies: - "@ledgerhq/errors" "^5.22.0" - "@ledgerhq/logs" "^5.22.0" - rxjs "^6.6.2" + "@ledgerhq/errors" "^5.23.0" + "@ledgerhq/logs" "^5.23.0" + rxjs "^6.6.3" -"@ledgerhq/errors@^5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.22.0.tgz#7327fc152d4896ddc26aada0943065db21c14880" - integrity sha512-XDT0meBn39+q+JWzUFXmiFbVYLTy+uHRFMb9napcxyZ0Q/MdKkle9/vkgtvRHjPIkGobklXpyefsgH3BZQHukA== +"@ledgerhq/errors@^5.22.0", "@ledgerhq/errors@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.23.0.tgz#30a0338dafba8264556011604abed08bf24979f3" + integrity sha512-qtpX8aFrUUlYfOMu7BxTvxqUa8CniE+tEBpVEjYUhVbFdVJjM4ouwJD++RtQkMAU2c5jE7xb12WnUnf5BlAgLQ== "@ledgerhq/hw-transport-webusb@5.22.0": version "5.22.0" @@ -1520,18 +1536,18 @@ "@ledgerhq/logs" "^5.22.0" "@ledgerhq/hw-transport@^5.17.0", "@ledgerhq/hw-transport@^5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.22.0.tgz#d627948b43005ec9e7dfe85adf9aa01e130de280" - integrity sha512-MFfkVGYMYnr6fI4XGnJQNLd36JIrRpvd5WBmVSDhCO3UKUER2fJ9koVBGc97o7yXtE5IAlJKF+nR9HZJIa0lRQ== + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.23.0.tgz#ed3445b9579c43a58cd959610ad7e464b36b87ca" + integrity sha512-ICTG3Bst62SkC+lYYFgpKk5G4bAOxeIvptXnTLOhf6VqeN7gdHfiRzZwNPnKzI2pxmcEVbBitgsxEIEQJmDKVA== dependencies: - "@ledgerhq/devices" "^5.22.0" - "@ledgerhq/errors" "^5.22.0" + "@ledgerhq/devices" "^5.23.0" + "@ledgerhq/errors" "^5.23.0" events "^3.2.0" -"@ledgerhq/logs@^5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.22.0.tgz#a54d6b5b391cdb4c2eacc9500feb04b90475c361" - integrity sha512-jV4mJxD1aieORm+sK9bYakQd9GMLd7KAxgt2IaxhrTU+QD5Ne47mxQOTys9p7f5w25ujs3R+Px2t3KiMRASHtg== +"@ledgerhq/logs@^5.22.0", "@ledgerhq/logs@^5.23.0": + version "5.23.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.23.0.tgz#7a86b1e6479c8aa8e8b9affe00eb8e369efdbc3b" + integrity sha512-88M8RkVHl44k6MAhfrYhx25opnJV24/2XpuTUVklID11f9rBdE+6RZ9OMs39dyX2sDv7TuzIPi5nTRoCqZMDYw== "@npmcli/move-file@^1.0.1": version "1.0.1" @@ -1645,16 +1661,16 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@stacks/blockchain-api-client@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@stacks/blockchain-api-client/-/blockchain-api-client-0.8.0.tgz#21c3fc3a7969f3426d0535e96ce8b75b0ffed11f" - integrity sha512-uMjpmLRvPCsJBt/zxSivbHsGLw2EAPWRkvcnzYRiwdVl27srs0RTzDM4li3vsudb8A0uZjm6t9wTEerU2WI4hw== +"@stacks/blockchain-api-client@0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@stacks/blockchain-api-client/-/blockchain-api-client-0.13.0.tgz#8f43677e68e7ea1ad7b1bd381d80016f95620be2" + integrity sha512-CK+s0lfQj1oi5K5Tqg+oZYRvrc9unroGmt32qkoDKIvxuyyU+ifYqUR7HrR931rhDx5y0Hf2hfeE4RJ5SF0pgA== dependencies: "@blockstack/stacks-blockchain-api-types" "^0.5.3" "@types/ws" "^7.2.6" cross-fetch "^3.0.5" eventemitter3 "^4.0.4" - jsonrpc-lite "^2.1.1" + jsonrpc-lite "^2.2.0" ws "^7.3.1" "@styled-system/background@^5.1.2": @@ -1948,7 +1964,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@26.0.10", "@types/jest@26.x": +"@types/jest@26.0.10": version "26.0.10" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.10.tgz#8faf7e9756c033c39014ae76a7329efea00ea607" integrity sha512-i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q== @@ -1956,10 +1972,18 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/jest@26.x": + version "26.0.13" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.13.tgz#5a7b9d5312f5dd521a38329c38ee9d3802a0b85e" + integrity sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== "@types/json5@^0.0.29": version "0.0.29" @@ -2001,16 +2025,16 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node-hid@*": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/node-hid/-/node-hid-1.2.0.tgz#e3e5dfaad07c84e957af96809f6b2f03fc267f80" - integrity sha512-OTum88c5BiabsVgixAmVqhUL4tm+OExYSqw6FxCNVUTTysB/evPP+CI34LhhGohS1YsYfdlXC7g4UHnduxWVlQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/node-hid/-/node-hid-1.2.1.tgz#daa74a0c529fd06dd5c906d47d7f62089ee66060" + integrity sha512-fcmTNsVkKTADA3yF7yFChA7+mQfi1r2BPGSvh95zoKgGBq3Z3YJX+4rjaAw/y58KgLiERxN8XrnNsTDK9SGH7A== dependencies: "@types/node" "*" "@types/node@*": - version "14.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.2.tgz#264b44c5a28dfa80198fc2f7b6d3c8a054b9491f" - integrity sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A== + version "14.6.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" + integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== "@types/node@14.6.0": version "14.6.0" @@ -2018,14 +2042,14 @@ integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA== "@types/node@^12.0.12": - version "12.12.54" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.54.tgz#a4b58d8df3a4677b6c08bfbc94b7ad7a7a5f82d1" - integrity sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w== + version "12.12.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.55.tgz#0aa266441cb9e1fd3e415a8f619cb7d776667cdd" + integrity sha512-Vd6xQUVvPCTm7Nx1N7XHcpX6t047ltm7TgcsOr4gFHjeYgwZevo+V7I1lfzHnj5BT5frztZ42+RTG4MwYw63dw== "@types/node@^8.0.0": - version "8.10.62" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.62.tgz#8d0d0db44a46ae7679d92e2e36d41bf1c3625d6a" - integrity sha512-76fupxOYVxk36kb7O/6KtrAPZ9jnSK3+qisAX4tQMEuGNdlvl7ycwatlHqjoE6jHfVtXFM3pCrCixZOidc5cuw== + version "8.10.63" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.63.tgz#f86775d576bc07a2992da244f41c23d3ba66d402" + integrity sha512-g+nSkeHFDd2WOQChfmy9SAXLywT47WZBrGS/NC5ym5PJ8c8RC6l4pbGaUW/X0+eZJnXw6/AVNEouXWhV4iz72Q== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -2078,9 +2102,9 @@ "@types/react" "*" "@types/react-native@*": - version "0.63.11" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.11.tgz#0965552aa4cfe8a7c0c64f1afb1c101d2fa7510a" - integrity sha512-OjYwDiMZGENGd5P+su0OZY0t0ctTnmmToS/mJOAErktpZWqfDj99Q2hy3M09tQj+h2KnpsT+WUPozUKoossSxw== + version "0.63.15" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.15.tgz#f86ce87a0afc53bec7c6bc96282e698e0a03ce1b" + integrity sha512-ZFOHFn4NNKxvpHfri099KMVCeHU9Rvu7E3GC6ST1KGoktipyfWTW0HLePKAflbmARODAh84ci4HSzAXnW54FXw== dependencies: "@types/react" "*" @@ -2126,9 +2150,9 @@ "@types/react" "*" "@types/react@*": - version "16.9.48" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.48.tgz#d3387329f070d1b1bc0ff4a54a54ceefd5a8485c" - integrity sha512-4ykBVswgYitPGMXFRxJCHkxJDU2rjfU3/zw67f8+dB7sNdVJXsrwqoYxz/stkAucymnEEbRPFmX7Ce5Mc/kJCw== + version "16.9.49" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.49.tgz#09db021cf8089aba0cdb12a49f8021a69cce4872" + integrity sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -2185,9 +2209,9 @@ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== "@types/styled-components@^5.1.0": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.2.tgz#652af475b4af917b355ea1c3068acae63d46455f" - integrity sha512-HNocYLfrsnNNm8NTS/W53OERSjRA8dx5Bn6wBd2rXXwt4Z3s+oqvY6/PbVt3e6sgtzI63GX//WiWiRhWur08qQ== + version "5.1.3" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.3.tgz#6fab3d9c8f7d9a15cbb89d379d850c985002f363" + integrity sha512-HGpirof3WOhiX17lb61Q/tpgqn48jxO8EfZkdJ8ueYqwLbK2AHQe/G08DasdA2IdKnmwOIP1s9X2bopxKXgjRw== dependencies: "@types/hoist-non-react-statics" "*" "@types/react" "*" @@ -2281,7 +2305,19 @@ "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack@*", "@types/webpack@4.41.21": +"@types/webpack@*": + version "4.41.22" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.22.tgz#ff9758a17c6bd499e459b91e78539848c32d0731" + integrity sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/webpack@4.41.21": version "4.41.21" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== @@ -2621,9 +2657,9 @@ acorn-globals@^6.0.0: acorn-walk "^7.1.1" acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-walk@^7.1.1: version "7.2.0" @@ -3497,12 +3533,12 @@ browserslist-config-erb@0.0.1: integrity sha512-QQQzCXrYVVdSWxO0UuV+f2HGBt7xdGRRvgr49W1lcwoyXNpRQFVi5cTz8+B/rLHyBkWd4JbRFeTIKHAw7BpCBg== browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== + version "4.14.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.1.tgz#cb2b490ba881d45dc3039078c7ed04411eaf3fa3" + integrity sha512-zyBTIHydW37pnb63c7fHFXUG6EcqWOqoMdDx6cdyaDFriZ20EoVxcE95S54N+heRqY8m8IUgB5zYta/gCwSaaA== dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" + caniuse-lite "^1.0.30001124" + electron-to-chromium "^1.3.562" escalade "^3.0.2" node-releases "^1.1.60" @@ -3738,10 +3774,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001111: - version "1.0.30001120" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001120.tgz#cd21d35e537214e19f7b9f4f161f7b0f2710d46c" - integrity sha512-JBP68okZs1X8D7MQTY602jxMYBmXEKOFkzTBaNSkubooMPFOAv2TXWaKle7qgHpjLDhUzA/TMT0qsNleVyXGUQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001124: + version "1.0.30001124" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz#5d9998190258e11630d674fc50ea8e579ae0ced2" + integrity sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA== capture-exit@^2.0.0: version "2.0.0" @@ -3763,7 +3799,7 @@ chalk@4.1.0, chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4617,9 +4653,9 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" date-fns@^2.0.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.0.tgz#d34f0f5f2fd498c984513042e8f7247ea86c4cb7" - integrity sha512-DWTRyfOA85sZ4IiXPHhiRIOs3fW5U6Msrp+gElXARa6EpoQTXPyHQmh7hr+ssw2nx9FtOQWnAMJKgL5vaJqILw== + version "2.16.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" + integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ== debounce-fn@^4.0.0: version "4.0.0" @@ -5010,9 +5046,9 @@ dot-prop@^3.0.0: is-obj "^1.0.0" dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + 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" @@ -5170,10 +5206,10 @@ electron-store@6.0.0: conf "^7.1.1" type-fest "^0.16.0" -electron-to-chromium@^1.3.523: - version "1.3.555" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz#a096716ff77cf8da9a608eb628fd6927869503d2" - integrity sha512-/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg== +electron-to-chromium@^1.3.562: + version "1.3.563" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.563.tgz#9da4e4f0d76c4b221784cc9ca81a8464e8180408" + integrity sha512-JkEjRFmuSegdTBCPG+RS1zw9csObHoN4el+X9EfEALO0UT7us8swxspJx7cRsrMkjd8bmmRTAd0xuUhvvb5DLg== electron-updater@4.3.1: version "4.3.1" @@ -5197,9 +5233,9 @@ electron-window-state@5.0.3: mkdirp "^0.5.1" electron@*: - version "10.1.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.0.tgz#3559182545dc76e20d9764d183d555415d55c250" - integrity sha512-DyS6WhQ59+ZXQsI1EkpsYkOXFt0Xbp+mbxPTJS9A7O21r3JDzaTC+1Jxz7g6J+Sbi9Y7UFdRs0tn/vqhHJx2gA== + version "10.1.1" + resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.1.tgz#44ff9207afc9df253d3b5ea40c7e6513c5dc08d8" + integrity sha512-ZJtZHMr17AvvBosuA6XUmpehwAlGM4/n46Mw9BcyD8tpgdI6IQd0X5OU9meE3X3M8Y6Ja2Kr2udTMgtjvot2hA== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -5259,7 +5295,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== @@ -5464,9 +5500,9 @@ eslint-import-resolver-node@^0.3.3: resolve "^1.13.1" eslint-import-resolver-typescript@>=1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.2.1.tgz#4b9bdfb51af7e14947ebc40ffdd6c32d5924b905" - integrity sha512-wxlVdwuWY6R5+CoesIy6n8EZX4k9lEeZGWTVBoX9g//8Xma8JMtL/p3AGnG43rRyXmIrX+/0IN8lpOPzrw1fSw== + version "2.3.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.3.0.tgz#0870988098bc6c6419c87705e6b42bee89425445" + integrity sha512-MHSXvmj5e0SGOOBhBbt7C+fWj1bJbtSYFAD85Xeg8nvUtuooTod2HQb8bfhE9f5QyyNxEfgzqOYFCvmdDIcCuw== dependencies: debug "^4.1.1" glob "^7.1.6" @@ -5542,11 +5578,12 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3 integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint@^7.1.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.7.0.tgz#18beba51411927c4b64da0a8ceadefe4030d6073" - integrity sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg== + version "7.8.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.8.1.tgz#e59de3573fb6a5be8ff526c791571646d124a8fa" + integrity sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w== dependencies: "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.1.3" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -5556,7 +5593,7 @@ eslint@^7.1.0: eslint-scope "^5.1.0" eslint-utils "^2.1.0" eslint-visitor-keys "^1.3.0" - espree "^7.2.0" + espree "^7.3.0" esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" @@ -5583,7 +5620,7 @@ eslint@^7.1.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.2.0: +espree@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== @@ -5605,18 +5642,18 @@ esquery@^1.2.0: estraverse "^5.1.0" esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0: +estraverse@^5.1.0, estraverse@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== @@ -6837,7 +6874,7 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0, import-fresh@^3.1.0: +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -7844,9 +7881,9 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" - integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" @@ -7908,10 +7945,10 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonrpc-lite@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/jsonrpc-lite/-/jsonrpc-lite-2.1.1.tgz#8fab4da293b42422c4ecee949b32e4fb3f724bbe" - integrity sha512-/KLmDilhyMAaEAf3XxOQ+M89lTVATPy0j7qpy5w/Q5SqHJC8f7YIoB1HL25UCvFFAVLqOWesyYt8uD3+LnehPA== +jsonrpc-lite@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jsonrpc-lite/-/jsonrpc-lite-2.2.0.tgz#fb3aa9d292c8970eb7f83c6040c6554767bbc6a6" + integrity sha512-/cbbSxtZWs1O7R4tWqabrCM/t3N8qKUZMAg9IUqpPvUs6UyRvm6pCNYkskyKN/XU0UgffW+NY2ZRr8t0AknX7g== jsprim@^1.2.2: version "1.4.1" @@ -9475,9 +9512,9 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-calc@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.3.tgz#d65cca92a3c52bf27ad37a5f732e0587b74f1623" - integrity sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA== + version "7.0.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b" + integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw== dependencies: postcss "^7.0.27" postcss-selector-parser "^6.0.2" @@ -10679,10 +10716,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.3.1, rxjs@^6.5.2, rxjs@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== +rxjs@^6.3.1, rxjs@^6.5.2, rxjs@^6.6.2, rxjs@^6.6.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" @@ -11457,7 +11494,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -11690,9 +11727,9 @@ terser@^4.1.2, terser@^4.6.13: source-map-support "~0.5.12" terser@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.2.1.tgz#40b971b8d28b4fe98c9e8c0d073ab48e7bb96cd8" - integrity sha512-/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.0.tgz#c481f4afecdcc182d5e2bdd2ff2dc61555161e81" + integrity sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -11887,7 +11924,16 @@ ts-jest@26.2.0: semver "7.x" yargs-parser "18.x" -tsconfig-paths@^3.9.0: +tsconfig-paths-webpack-plugin@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz#a7461723c20623ca9148621a5ce36532682ad2ff" + integrity sha512-MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + tsconfig-paths "^3.4.0" + +tsconfig-paths@^3.4.0, tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== @@ -12573,9 +12619,9 @@ whatwg-mimetype@^2.3.0: integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== whatwg-url@^8.0.0: - version "8.2.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.1.tgz#ed73417230784b281fb2a32c3c501738b46167c3" - integrity sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A== + version "8.2.2" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.2.tgz#85e7f9795108b53d554cec640b2e8aee2a0d4bfd" + integrity sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ== dependencies: lodash.sortby "^4.7.0" tr46 "^2.0.2"