From e6d579d69c3077b2fcdb3682df7a2f39bbd59d1c Mon Sep 17 00:00:00 2001 From: Brian Faust Date: Mon, 30 Mar 2020 07:20:16 +0300 Subject: [PATCH] chore: update dependencies and apply formatting (#3624) --- .eslintrc.json | 3 +- .../e2e/lib/config/peer-discovery/index.js | 10 +- .../transaction-forging/__support__/index.ts | 4 +- .../integration/core-api/__support__/setup.ts | 6 +- .../core-api/handlers/locks.test.ts | 8 +- .../core-api/handlers/peers.test.ts | 2 +- .../core-api/handlers/transactions.test.ts | 22 +- .../core-api/handlers/wallets.test.ts | 2 +- __tests__/unit/core-api/__support__/index.ts | 12 +- .../unit/core-api/resources/ports.test.ts | 4 +- .../unit/core-blockchain/blockchain.test.ts | 251 +- .../processor/block-processor.test.ts | 203 +- .../handlers/accept-block-handler.test.ts | 19 +- .../handlers/already-forged-handler.test.ts | 6 +- .../handlers/exception-handler.test.ts | 10 +- .../incompatible-transactions-handler.test.ts | 10 +- .../invalid-generator-handler.test.ts | 6 +- .../nonce-out-of-order-handler.test.ts | 6 +- .../handlers/unchained-handler.test.ts | 134 +- .../verification-failed-handler.test.ts | 6 +- .../core-blockchain/service-provider.test.ts | 30 +- .../actions/blockchain-ready.test.ts | 19 +- .../actions/check-last-block-synced.test.ts | 17 +- ...check-last-downloaded-block-synced.test.ts | 75 +- .../state-machine/actions/check-later.test.ts | 19 +- .../actions/download-blocks.test.ts | 41 +- .../actions/download-finished.test.ts | 27 +- .../actions/download-paused.test.ts | 12 +- .../state-machine/actions/exit-app.test.ts | 8 +- .../state-machine/actions/initialize.test.ts | 66 +- .../actions/rollback-database.test.ts | 26 +- .../actions/start-fork-recovery.test.ts | 12 +- .../state-machine/actions/stopped.test.ts | 6 +- .../actions/syncing-complete.test.ts | 6 +- .../state-machine/state-machine.test.ts | 28 +- .../actions/abort-errored-process.test.ts | 5 +- .../actions/abort-missing-process.test.ts | 5 +- .../actions/abort-running-process.test.ts | 5 +- .../actions/abort-stopped-process.test.ts | 5 +- .../actions/abort-unknown-process.test.ts | 5 +- .../actions/daemonize-process.test.ts | 5 +- .../core-cli/actions/restart-process.test.ts | 5 +- .../actions/restart-running-process.test.ts | 5 +- .../core-cli/components/app-header.test.ts | 5 +- .../unit/core-cli/components/ask-date.test.ts | 5 +- .../core-cli/components/ask-hidden.test.ts | 5 +- .../core-cli/components/ask-number.test.ts | 5 +- .../core-cli/components/ask-password.test.ts | 5 +- .../unit/core-cli/components/ask.test.ts | 5 +- .../core-cli/components/auto-complete.test.ts | 5 +- .../unit/core-cli/components/box.test.ts | 5 +- .../unit/core-cli/components/clear.test.ts | 5 +- .../unit/core-cli/components/confirm.test.ts | 5 +- .../unit/core-cli/components/error.test.ts | 5 +- .../unit/core-cli/components/fatal.test.ts | 5 +- .../unit/core-cli/components/info.test.ts | 5 +- .../unit/core-cli/components/listing.test.ts | 5 +- .../unit/core-cli/components/log.test.ts | 5 +- .../core-cli/components/multi-select.test.ts | 5 +- .../unit/core-cli/components/new-line.test.ts | 5 +- .../unit/core-cli/components/prompt.test.ts | 5 +- .../unit/core-cli/components/select.test.ts | 5 +- .../unit/core-cli/components/spinner.test.ts | 5 +- .../unit/core-cli/components/success.test.ts | 5 +- .../unit/core-cli/components/table.test.ts | 9 +- .../core-cli/components/task-list.test.ts | 5 +- .../unit/core-cli/components/title.test.ts | 5 +- .../unit/core-cli/components/toggle.test.ts | 5 +- .../unit/core-cli/components/warning.test.ts | 5 +- .../unit/core-cli/services/updater.test.ts | 32 +- __tests__/unit/core-cli/utils/process.test.ts | 2 +- __tests__/unit/core-cli/utils/update.ts | 8 +- .../utils/update/check-for-updates.ts | 4 +- __tests__/unit/core-forger/client.test.ts | 6 +- .../unit/core-forger/forger-service.test.ts | 4 +- .../unit/core-forger/service-provider.test.ts | 44 +- __tests__/unit/core-forger/setup.ts | 4 +- .../unit/core-kernel/application.test.ts | 8 +- .../app/load-service-providers.test.ts | 4 +- .../boot-service-providers.test.ts | 4 +- .../unit/core-kernel/ioc/selectors.test.ts | 5 +- .../providers/plugin-manifest.test.ts | 4 +- .../service-provider-repository.test.ts | 4 +- .../services/cache/drivers/memory.test.ts | 4 +- .../services/cache/service-provider.test.ts | 4 +- .../services/log/drivers/memory.test.ts | 8 +- .../services/pipeline/drivers/memory.test.ts | 10 +- .../services/schedule/cron-job.test.ts | 4 +- .../services/triggers/triggers.test.ts | 6 +- .../services/validation/drivers/joi.test.ts | 4 +- .../support/instance-manager.test.ts | 4 +- .../round-calculator/calculate-round.test.ts | 2 +- .../round-calculator/is-new-round.test.ts | 4 +- .../utils/supply-calculator.test.ts | 12 +- .../unit/core-logger-pino/driver.test.ts | 10 +- .../handlers/__fixtures__/assets.ts | 22 +- .../handlers/__fixtures__/index.ts | 4 +- .../handlers/business-resignation.test.ts | 4 +- .../handlers/business-update.test.ts | 6 +- .../core-p2p/transaction-broadcaster.test.ts | 2 +- .../core-state/__utils__/fixture-generator.ts | 8 +- .../__utils__/make-vote-transactions.ts | 5 +- .../unit/core-state/__utils__/transactions.ts | 2 +- __tests__/unit/core-state/block-state.test.ts | 4 +- __tests__/unit/core-state/setup.ts | 19 +- .../unit/core-state/stores/state.test.ts | 2 +- .../core-state/transaction-validator.test.ts | 2 +- .../wallets/utils/search-entires.test.ts | 44 +- .../wallets/utils/sort-entries.test.ts | 24 +- .../wallets/wallet-repository.test.ts | 8 +- .../core-test-framework/utils/mapper.test.ts | 19 +- .../unit/core-transaction-pool/utils.test.ts | 4 +- .../handlers/handler-registry.test.ts | 7 +- .../one/multi-signature-registration.test.ts | 9 +- .../two/delegate-registration.test.ts | 70 +- .../handlers/two/delegate-resignation.test.ts | 1 - .../handlers/two/htlc-claim.test.ts | 12 +- .../handlers/two/htlc-lock.test.ts | 16 +- .../handlers/two/htlc-refund.test.ts | 13 +- .../handlers/two/ipfs.test.ts | 4 +- .../handlers/two/multi-payment.test.ts | 4 +- .../two/multi-signature-registration.test.ts | 10 +- .../two/second-signature-registration.test.ts | 4 +- .../handlers/two/transfer.test.ts | 4 +- .../handlers/two/vote.test.ts | 20 +- .../unit/core/commands/config-publish.test.ts | 34 +- .../unit/core/commands/core-status.test.ts | 2 +- __tests__/unit/core/commands/env-get.test.ts | 2 +- __tests__/unit/core/commands/env-list.test.ts | 2 +- .../unit/core/commands/env-paths.test.ts | 2 +- .../unit/core/commands/forger-status.test.ts | 2 +- .../core/commands/network-generate.test.ts | 4 +- .../unit/core/commands/relay-status.test.ts | 2 +- __tests__/unit/core/commands/top.test.ts | 2 +- __tests__/unit/core/commands/update.test.ts | 36 +- __tests__/unit/crypto/blocks/block.test.ts | 46 +- .../unit/crypto/blocks/deserializer.test.ts | 8 +- __tests__/unit/crypto/crypto/hash.test.ts | 4 +- __tests__/unit/crypto/crypto/hdwallet.test.ts | 28 +- .../unit/crypto/identities/address.test.ts | 4 +- .../unit/crypto/identities/public-key.test.ts | 6 +- __tests__/unit/crypto/managers/config.test.ts | 2 +- .../crypto/transactions/__support__/index.ts | 6 +- .../delegate-registration.test.ts | 5 +- .../transactions/multi-signature.test.ts | 5 +- .../transactions/transaction-builder.test.ts | 2 +- .../builders/transactions/transfer.test.ts | 6 +- .../crypto/transactions/deserializer.test.ts | 4 +- .../unit/crypto/transactions/factory.test.ts | 4 +- .../unit/crypto/transactions/schemas.test.ts | 165 +- .../unit/crypto/transactions/utils.test.ts | 10 +- .../unit/crypto/transactions/verifier.test.ts | 2 +- .../unit/crypto/utils/is-valid-peer.test.ts | 2 +- __tests__/unit/crypto/utils/network-list.ts | 4 +- package.json | 74 +- .../core-api/src/controllers/controller.ts | 2 +- packages/core-api/src/controllers/peers.ts | 6 +- .../core-api/src/controllers/transactions.ts | 2 +- packages/core-api/src/plugins/cache.ts | 10 +- packages/core-api/src/plugins/hapi-ajv.ts | 2 +- packages/core-api/src/plugins/index.ts | 2 +- .../core-api/src/plugins/pagination/config.ts | 7 +- .../core-api/src/plugins/pagination/ext.ts | 2 +- packages/core-api/src/routes/blocks.ts | 124 +- packages/core-api/src/routes/delegates.ts | 100 +- packages/core-api/src/routes/locks.ts | 82 +- packages/core-api/src/routes/node.ts | 6 +- packages/core-api/src/routes/rounds.ts | 4 +- packages/core-api/src/routes/transactions.ts | 126 +- packages/core-api/src/routes/votes.ts | 36 +- packages/core-api/src/routes/wallets.ts | 194 +- packages/core-api/src/schemas.ts | 65 +- packages/core-api/src/service-provider.ts | 5 +- packages/core-blockchain/src/blockchain.ts | 6 +- .../src/processor/block-processor.ts | 7 +- .../processor/handlers/unchained-handler.ts | 2 +- .../core-blockchain/src/service-provider.ts | 5 +- .../src/state-machine/state-machine.ts | 2 +- packages/core-cli/src/application-factory.ts | 184 +- .../core-cli/src/commands/discover-network.ts | 6 +- packages/core-cli/src/input/validator.ts | 4 +- packages/core-cli/src/plugins/suggest.ts | 2 +- packages/core-cli/src/utils/process.ts | 2 +- .../core-database/src/database-service.ts | 12 +- .../src/repositories/block-repository.ts | 23 +- .../src/repositories/repository.ts | 4 +- .../core-database/src/repositories/search.ts | 4 +- .../repositories/transaction-repository.ts | 32 +- .../core-database/src/service-provider.ts | 5 +- packages/core-forger/src/client.ts | 12 +- packages/core-forger/src/forger-service.ts | 12 +- packages/core-forger/src/service-provider.ts | 5 +- packages/core-kernel/src/application.ts | 4 +- .../bootstrap/app/load-service-providers.ts | 5 +- .../app/register-base-configuration.ts | 5 +- packages/core-kernel/src/ioc/selectors.ts | 2 +- .../src/services/cache/service-provider.ts | 5 +- .../src/services/config/drivers/local.ts | 32 +- .../src/services/events/drivers/memory.ts | 2 +- .../services/filesystem/service-provider.ts | 5 +- .../src/services/log/service-provider.ts | 5 +- .../src/services/mixins/service-provider.ts | 5 +- .../src/services/queue/service-provider.ts | 5 +- .../src/services/schedule/cron-job.ts | 62 +- .../src/services/schedule/service-provider.ts | 5 +- .../src/services/triggers/service-provider.ts | 5 +- .../services/validation/service-provider.ts | 5 +- packages/core-logger-pino/src/driver.ts | 6 +- .../src/routes/bridgechains.ts | 26 +- .../src/routes/businesses.ts | 20 +- .../src/handlers/bridgechain-registration.ts | 2 +- .../src/handlers/bridgechain-resignation.ts | 2 +- .../src/handlers/bridgechain-update.ts | 2 +- packages/core-p2p/src/network-monitor.ts | 28 +- packages/core-p2p/src/peer-communicator.ts | 4 +- packages/core-p2p/src/peer-connector.ts | 2 +- packages/core-p2p/src/peer-storage.ts | 2 +- packages/core-p2p/src/peer-verifier.ts | 4 +- packages/core-p2p/src/service-provider.ts | 30 +- packages/core-p2p/src/socket-server/index.ts | 4 +- .../src/socket-server/payload-processor.ts | 11 +- .../src/socket-server/versions/internal.ts | 4 +- .../src/socket-server/versions/peer.ts | 4 +- packages/core-p2p/src/socket-server/worker.ts | 18 +- .../core-p2p/src/transaction-broadcaster.ts | 4 +- .../core-p2p/src/utils/build-rate-limiter.ts | 2 +- packages/core-p2p/src/utils/sc-codec.ts | 6 +- packages/core-p2p/src/utils/validate-json.ts | 2 +- packages/core-state/src/service-provider.ts | 5 +- packages/core-state/src/stores/state.ts | 21 +- .../src/wallets/utils/filter-rows.ts | 6 +- .../src/wallets/utils/search-entries.ts | 2 +- .../utils/search-parameter-converter.ts | 4 +- .../src/wallets/wallet-repository.ts | 8 +- .../src/app/generators/core.ts | 2 +- .../src/app/generators/crypto.ts | 4 +- .../src/factories/factories/block.ts | 2 +- .../src/factories/factories/transaction.ts | 20 +- .../src/factories/factories/wallet.ts | 2 +- .../src/matchers/api/block.ts | 4 +- .../src/matchers/api/peer.ts | 4 +- .../src/matchers/api/response.ts | 2 +- .../src/matchers/api/transaction.ts | 2 +- .../matchers/blockchain/execute-on-entry.ts | 4 +- .../src/matchers/fields/public-key.ts | 2 +- .../src/matchers/functional/accepted.ts | 2 +- .../src/matchers/functional/rejected.ts | 12 +- .../src/matchers/models/delegate.ts | 2 +- .../src/matchers/models/transaction.ts | 4 +- .../src/matchers/models/wallet.ts | 2 +- .../types/delegate-registration.ts | 2 +- .../types/delegate-resignation.ts | 2 +- .../src/matchers/transactions/types/ipfs.ts | 2 +- .../transactions/types/multi-payment.ts | 2 +- .../transactions/types/multi-signature.ts | 2 +- .../transactions/types/second-signature.ts | 2 +- .../matchers/transactions/types/transfer.ts | 2 +- .../src/matchers/transactions/types/vote.ts | 2 +- .../src/matchers/transactions/valid.ts | 2 +- .../src/mocks/block-repository.ts | 2 +- .../src/mocks/blockchain.ts | 2 +- .../core-test-framework/src/mocks/index.ts | 2 +- .../src/mocks/peer-storage.ts | 2 +- .../core-test-framework/src/mocks/query.ts | 2 +- .../src/mocks/round-repository.ts | 2 +- .../src/mocks/transaction-repository.ts | 4 +- .../core-test-framework/src/utils/index.ts | 4 +- .../core-test-framework/src/utils/mapper.ts | 11 +- .../src/utils/transaction-factory.ts | 4 +- .../core-transaction-pool/src/processor.ts | 2 +- packages/core-transaction-pool/src/query.ts | 22 +- .../src/sender-mempool.ts | 4 +- .../src/service-provider.ts | 15 +- packages/core-transaction-pool/src/service.ts | 4 +- packages/core-transaction-pool/src/storage.ts | 7 +- .../src/handlers/handler-provider.ts | 2 +- .../src/handlers/one/delegate-registration.ts | 2 +- .../src/handlers/transaction.ts | 7 +- .../src/handlers/two/delegate-resignation.ts | 2 +- .../src/handlers/two/htlc-claim.ts | 2 +- .../src/handlers/two/htlc-refund.ts | 2 +- .../src/handlers/two/multi-payment.ts | 7 +- packages/core-webhooks/src/conditions.ts | 8 +- packages/core-webhooks/src/database.ts | 26 +- packages/core-webhooks/src/server/index.ts | 4 +- packages/core-webhooks/src/server/schema.ts | 8 +- .../core-webhooks/src/service-provider.ts | 10 +- packages/core/src/commands/config-database.ts | 2 +- .../core/src/commands/config-forger-bip38.ts | 4 +- .../core/src/commands/config-forger-bip39.ts | 2 +- packages/core/src/commands/config-publish.ts | 2 +- packages/core/src/commands/core-restart.ts | 4 +- packages/core/src/commands/core-status.ts | 4 +- packages/core/src/commands/env-list.ts | 2 +- packages/core/src/commands/env-paths.ts | 2 +- packages/core/src/commands/env-set.ts | 8 +- packages/core/src/commands/forger-restart.ts | 4 +- packages/core/src/commands/forger-status.ts | 4 +- .../core/src/commands/network-generate.ts | 20 +- packages/core/src/commands/relay-restart.ts | 4 +- packages/core/src/commands/relay-status.ts | 4 +- packages/core/src/commands/top.ts | 2 +- packages/crypto/src/blocks/block.ts | 8 +- packages/crypto/src/blocks/deserializer.ts | 5 +- packages/crypto/src/managers/config.ts | 4 +- .../crypto/src/transactions/deserializer.ts | 9 +- .../types/one/multi-signature-registration.ts | 2 +- .../crypto/src/transactions/types/one/vote.ts | 2 +- packages/crypto/src/utils/is-valid-peer.ts | 2 +- packages/crypto/src/validation/formats.ts | 2 +- packages/crypto/src/validation/index.ts | 2 +- packages/crypto/src/validation/keywords.ts | 4 +- yarn.lock | 4287 ++++++++++------- 313 files changed, 4029 insertions(+), 4431 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 18f5d94c7d..f926675a44 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -28,7 +28,8 @@ "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/no-namespace": "off", "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-unnecessary-condition": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/prefer-regexp-exec": "off", diff --git a/__tests__/e2e/lib/config/peer-discovery/index.js b/__tests__/e2e/lib/config/peer-discovery/index.js index 5bf6db101d..e1d38ee3f1 100644 --- a/__tests__/e2e/lib/config/peer-discovery/index.js +++ b/__tests__/e2e/lib/config/peer-discovery/index.js @@ -1,9 +1,9 @@ -const express = require('express'); +const express = require("express"); const app = express(); const ips = {}; const sources = []; -app.get('/', function (req, res) { +app.get("/", function (req, res) { console.log(`received peer discovery request from ${req.ip} !`); if (!ips[req.ip]) { ips[req.ip] = true; @@ -11,8 +11,8 @@ app.get('/', function (req, res) { } console.log(`responding with ${JSON.stringify(sources)}`); res.send(sources); -}) +}); app.listen(3000, function () { - console.log('Peer discovery app listening on port 3000!') -}) \ No newline at end of file + console.log("Peer discovery app listening on port 3000!"); +}); diff --git a/__tests__/functional/transaction-forging/__support__/index.ts b/__tests__/functional/transaction-forging/__support__/index.ts index 4eb3e881d7..9b4e7298c0 100644 --- a/__tests__/functional/transaction-forging/__support__/index.ts +++ b/__tests__/functional/transaction-forging/__support__/index.ts @@ -18,10 +18,10 @@ export const setUp = async (): Promise => { flags: { token: "ark", network: "testnet", - env: "test" + env: "test", }, peers: { - list: [ { ip: "127.0.0.1", port: 4000 }] + list: [{ ip: "127.0.0.1", port: 4000 }], }, }); await sandbox.boot(async ({ app }) => { diff --git a/__tests__/integration/core-api/__support__/setup.ts b/__tests__/integration/core-api/__support__/setup.ts index bdf38c6776..8c61614577 100644 --- a/__tests__/integration/core-api/__support__/setup.ts +++ b/__tests__/integration/core-api/__support__/setup.ts @@ -16,10 +16,10 @@ export const setUp = async () => { flags: { token: "ark", network: "unitnet", - env: "test" + env: "test", }, peers: { - list: [ { ip: "127.0.0.1", port: 4000 }] // need some peers defined for the app to run + list: [{ ip: "127.0.0.1", port: 4000 }], // need some peers defined for the app to run }, }); await sandbox @@ -129,7 +129,7 @@ export const calculateRanks = async () => { .comparedTo(a.getAttribute("delegate.voteBalance")), ); - AppUtils.sortBy(delegateWallets, wallet => wallet.publicKey).forEach((delegate, i) => { + AppUtils.sortBy(delegateWallets, (wallet) => wallet.publicKey).forEach((delegate, i) => { const wallet = walletRepository.findByPublicKey(delegate.publicKey!); wallet.setAttribute("delegate.rank", i + 1); diff --git a/__tests__/integration/core-api/handlers/locks.test.ts b/__tests__/integration/core-api/handlers/locks.test.ts index d988a114c8..f3d01db02a 100644 --- a/__tests__/integration/core-api/handlers/locks.test.ts +++ b/__tests__/integration/core-api/handlers/locks.test.ts @@ -81,7 +81,7 @@ describe("API 2.0 - Locks", () => { expect(response).toBeSuccessfulResponse(); expect(response.data.data).toBeArray(); expect(response.data.data).not.toBeEmpty(); - expect(response.data.data.every(lock => lock.expirationType === 1)).toBeTrue(); + expect(response.data.data.every((lock) => lock.expirationType === 1)).toBeTrue(); }); it("should GET all the locks by height expiration", async () => { @@ -89,7 +89,7 @@ describe("API 2.0 - Locks", () => { expect(response).toBeSuccessfulResponse(); expect(response.data.data).toBeArray(); expect(response.data.data).not.toBeEmpty(); - expect(response.data.data.every(lock => lock.expirationType === 2)).toBeTrue(); + expect(response.data.data.every((lock) => lock.expirationType === 2)).toBeTrue(); }); it("should GET all the locks that are expired", async () => { @@ -97,7 +97,7 @@ describe("API 2.0 - Locks", () => { expect(response).toBeSuccessfulResponse(); expect(response.data.data).toBeArray(); expect(response.data.data).not.toBeEmpty(); - expect(response.data.data.every(lock => lock.isExpired)).toBeTrue(); + expect(response.data.data.every((lock) => lock.isExpired)).toBeTrue(); }); it("should GET all the locks that are not expired", async () => { @@ -105,7 +105,7 @@ describe("API 2.0 - Locks", () => { expect(response).toBeSuccessfulResponse(); expect(response.data.data).toBeArray(); expect(response.data.data).not.toBeEmpty(); - expect(response.data.data.every(lock => !lock.isExpired)).toBeTrue(); + expect(response.data.data.every((lock) => !lock.isExpired)).toBeTrue(); }); describe("orderBy", () => { diff --git a/__tests__/integration/core-api/handlers/peers.test.ts b/__tests__/integration/core-api/handlers/peers.test.ts index 2e8f9dd61b..612f5b2e3d 100644 --- a/__tests__/integration/core-api/handlers/peers.test.ts +++ b/__tests__/integration/core-api/handlers/peers.test.ts @@ -34,7 +34,7 @@ beforeAll(async () => { app = await setUp(); api = new ApiHelpers(app); - const peerMocks = peers.map(mock => { + const peerMocks = peers.map((mock) => { const peerMock = new Peer(mock.ip, mock.port); peerMock.version = mock.version; peerMock.latency = mock.latency; diff --git a/__tests__/integration/core-api/handlers/transactions.test.ts b/__tests__/integration/core-api/handlers/transactions.test.ts index b2939ff7bf..73fe79fffd 100644 --- a/__tests__/integration/core-api/handlers/transactions.test.ts +++ b/__tests__/integration/core-api/handlers/transactions.test.ts @@ -10,7 +10,7 @@ import { generateMnemonic } from "bip39"; import { setUp, tearDown } from "../__support__/setup"; -export const generateWallets = quantity => { +export const generateWallets = (quantity) => { const wallets: { address: string; passphrase: string; publicKey: string }[] = []; for (let i = 0; i < quantity; i++) { @@ -56,13 +56,13 @@ beforeAll(async () => { app = await setUp(); api = new ApiHelpers(app); - delegates = secrets.map(secret => { + delegates = secrets.map((secret) => { const publicKey: string = Identities.PublicKey.fromPassphrase(secret); const address: string = Identities.Address.fromPassphrase(secret); const transaction: { amount: string } = Managers.configManager .get("genesisBlock") - .transactions.find(transaction => transaction.recipientId === address && transaction.type === 0); + .transactions.find((transaction) => transaction.recipientId === address && transaction.type === 0); return { secret, @@ -705,7 +705,7 @@ describe("API 2.0 - Transactions", () => { expect(response.data.data.invalid[0]).toBe(transactions[1].id); }); - it.each([3, 5, 8])("should accept and broadcast %i transactions emptying a wallet", async txNumber => { + it.each([3, 5, 8])("should accept and broadcast %i transactions emptying a wallet", async (txNumber) => { const sender = delegates[txNumber]; // use txNumber so that we use a different delegate for each test case const receivers = generateWallets(2); const amountPlusFee = Math.floor(+sender.balance / txNumber); @@ -730,16 +730,18 @@ describe("API 2.0 - Transactions", () => { expect(response).toBeSuccessfulResponse(); - expect(response.data.data.accept.sort()).toEqual(allTransactions.map(transaction => transaction.id).sort()); + expect(response.data.data.accept.sort()).toEqual( + allTransactions.map((transaction) => transaction.id).sort(), + ); expect(response.data.data.broadcast.sort()).toEqual( - allTransactions.map(transaction => transaction.id).sort(), + allTransactions.map((transaction) => transaction.id).sort(), ); expect(response.data.data.invalid).toHaveLength(0); }); it.each([3, 5, 8])( "should not accept the last of %i transactions emptying a wallet when the last one is 1 satoshi too much", - async txNumber => { + async (txNumber) => { const sender = delegates[txNumber + 1]; // use txNumber + 1 so that we don't use the same delegates as the above test const receivers = generateWallets(2); const amountPlusFee = Math.floor(+sender.balance / txNumber); @@ -769,12 +771,12 @@ describe("API 2.0 - Transactions", () => { expect(response).toBeSuccessfulResponse(); expect(response.data.data.accept.sort()).toEqual( - transactions.map(transaction => transaction.id).sort(), + transactions.map((transaction) => transaction.id).sort(), ); expect(response.data.data.broadcast.sort()).toEqual( - transactions.map(transaction => transaction.id).sort(), + transactions.map((transaction) => transaction.id).sort(), ); - expect(response.data.data.invalid).toEqual(lastTransaction.map(transaction => transaction.id)); + expect(response.data.data.invalid).toEqual(lastTransaction.map((transaction) => transaction.id)); }, ); }); diff --git a/__tests__/integration/core-api/handlers/wallets.test.ts b/__tests__/integration/core-api/handlers/wallets.test.ts index 9bd683be8f..56f189079c 100644 --- a/__tests__/integration/core-api/handlers/wallets.test.ts +++ b/__tests__/integration/core-api/handlers/wallets.test.ts @@ -278,7 +278,7 @@ describe("API 2.0 - Wallets", () => { api.expectWallet(wallet); } - const addresses = response.data.data.map(wallet => wallet.address).sort(); + const addresses = response.data.data.map((wallet) => wallet.address).sort(); expect(addresses).toEqual([address, address2]); }); diff --git a/__tests__/unit/core-api/__support__/index.ts b/__tests__/unit/core-api/__support__/index.ts index 591282c926..08a46f89fb 100644 --- a/__tests__/unit/core-api/__support__/index.ts +++ b/__tests__/unit/core-api/__support__/index.ts @@ -62,9 +62,7 @@ export const initApp = (): Application => { app.bind(Container.Identifiers.BlockRepository).toConstantValue(Mocks.BlockRepository.instance); - app.bind(Container.Identifiers.TransactionRepository).toConstantValue( - Mocks.TransactionRepository.instance, - ); + app.bind(Container.Identifiers.TransactionRepository).toConstantValue(Mocks.TransactionRepository.instance); app.bind(Container.Identifiers.PeerNetworkMonitor).toConstantValue(Mocks.NetworkMonitor.instance); @@ -72,13 +70,9 @@ export const initApp = (): Application => { app.bind(Container.Identifiers.RoundRepository).toConstantValue(Mocks.RoundRepository.instance); - app.bind(Container.Identifiers.TransactionPoolQuery).toConstantValue( - Mocks.TransactionPoolQuery.instance, - ); + app.bind(Container.Identifiers.TransactionPoolQuery).toConstantValue(Mocks.TransactionPoolQuery.instance); - app.bind(Container.Identifiers.TransactionPoolProcessor).toConstantValue( - Mocks.TransactionPoolProcessor.instance, - ); + app.bind(Container.Identifiers.TransactionPoolProcessor).toConstantValue(Mocks.TransactionPoolProcessor.instance); app.bind(Container.Identifiers.TransactionPoolProcessorFactory).toFactory(() => () => { return Mocks.TransactionPoolProcessor.instance; diff --git a/__tests__/unit/core-api/resources/ports.test.ts b/__tests__/unit/core-api/resources/ports.test.ts index 73d0b590eb..f25d4a7ef3 100644 --- a/__tests__/unit/core-api/resources/ports.test.ts +++ b/__tests__/unit/core-api/resources/ports.test.ts @@ -16,9 +16,7 @@ beforeEach(() => { app = initApp(); app.unbind(Identifiers.ServiceProviderRepository); - app.bind(Identifiers.ServiceProviderRepository).toConstantValue( - Mocks.ServiceProviderRepository.instance, - ); + app.bind(Identifiers.ServiceProviderRepository).toConstantValue(Mocks.ServiceProviderRepository.instance); }); beforeEach(() => { diff --git a/__tests__/unit/core-blockchain/blockchain.test.ts b/__tests__/unit/core-blockchain/blockchain.test.ts index a3b0fb11ec..d009c15e06 100644 --- a/__tests__/unit/core-blockchain/blockchain.test.ts +++ b/__tests__/unit/core-blockchain/blockchain.test.ts @@ -29,8 +29,8 @@ describe("Blockchain", () => { const application = { log: logService, resolve: () => blockProcessor, - get: id => applicationGet[id], - events: eventDispatcherService + get: (id) => applicationGet[id], + events: eventDispatcherService, }; beforeAll(() => { @@ -64,35 +64,35 @@ describe("Blockchain", () => { stateStore.setLastBlock = jest.fn(); stateStore.pushPingBlock = jest.fn(); stateStore.pingBlock = jest.fn(); - + databaseService.getTopBlocks = jest.fn(); databaseService.getLastBlock = jest.fn(); databaseService.loadBlocksFromCurrentRound = jest.fn(); databaseService.revertBlock = jest.fn(); databaseService.deleteRound = jest.fn(); - + blockRepository.deleteBlocks = jest.fn(); blockRepository.saveBlocks = jest.fn(); - + stateMachine.transition = jest.fn(); eventDispatcherService.listen = jest.fn(); eventDispatcherService.dispatch = jest.fn(); - + peerNetworkMonitor.cleansePeers = jest.fn(); peerNetworkMonitor.updateNetworkStatus = jest.fn(); peerNetworkMonitor.broadcastBlock = jest.fn(); peerNetworkMonitor.checkNetworkHealth = jest.fn(); - + peerStorage.hasPeers = jest.fn(); blockProcessor.process = jest.fn(); transactionPoolService.readdTransactions = jest.fn(); - }) + }); describe("initialize", () => { - it ("should log a warning if networkStart option is provided", () => { + it("should log a warning if networkStart option is provided", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); @@ -122,7 +122,7 @@ describe("Blockchain", () => { it("should dispatch 'START'", async () => { const blockchain = container.resolve(Blockchain); const spyDispatch = jest.spyOn(blockchain, "dispatch"); - + stateStore.started = true; await blockchain.boot(); @@ -133,7 +133,7 @@ describe("Blockchain", () => { it("should dispatch START and return true even if stateStore is not ready when skipStartedCheck === true", async () => { const blockchain = container.resolve(Blockchain); const spyDispatch = jest.spyOn(blockchain, "dispatch"); - + stateStore.started = false; const bootResult = await blockchain.boot(true); @@ -156,13 +156,13 @@ describe("Blockchain", () => { it("should wait for stateStore to be started before resolving", async () => { const blockchain = container.resolve(Blockchain); - + stateStore.started = false; const resolved = jest.fn(); - const checkBootResolved = async () => { + const checkBootResolved = async () => { await blockchain.boot(); resolved(); - } + }; checkBootResolved(); // will not resolve after 2 seconds while stateStore.started is false @@ -186,8 +186,12 @@ describe("Blockchain", () => { expect(peerNetworkMonitor.cleansePeers).toBeCalledTimes(1); expect(eventDispatcherService.listen).toHaveBeenCalledTimes(2); - expect(eventDispatcherService.listen).toHaveBeenNthCalledWith(1, Enums.ForgerEvent.Missing, { handle: expect.any(Function) }); - expect(eventDispatcherService.listen).toHaveBeenNthCalledWith(2, Enums.RoundEvent.Applied, { handle: expect.any(Function) }); + expect(eventDispatcherService.listen).toHaveBeenNthCalledWith(1, Enums.ForgerEvent.Missing, { + handle: expect.any(Function), + }); + expect(eventDispatcherService.listen).toHaveBeenNthCalledWith(2, Enums.RoundEvent.Applied, { + handle: expect.any(Function), + }); }); }); @@ -200,10 +204,10 @@ describe("Blockchain", () => { await blockchain.dispose(); - expect(stateStore.clearWakeUpTimeout).toBeCalledTimes(1) + expect(stateStore.clearWakeUpTimeout).toBeCalledTimes(1); expect(spyDispatch).toBeCalledTimes(1); expect(spyDispatch).toHaveBeenLastCalledWith("STOP"); - }) + }); }); describe("setWakeUp", () => { @@ -214,7 +218,7 @@ describe("Blockchain", () => { blockchain.setWakeUp(); expect(stateStore.wakeUpTimeout).toBeDefined(); - }) + }); it("should dispatch WAKEUP when wake up function is called", () => { const blockchain = container.resolve(Blockchain); @@ -230,7 +234,7 @@ describe("Blockchain", () => { expect(spyDispatch).toBeCalledWith("WAKEUP"); jest.useRealTimers(); - }) + }); }); describe("resetWakeUp", () => { @@ -242,7 +246,7 @@ describe("Blockchain", () => { expect(stateStore.clearWakeUpTimeout).toBeCalledTimes(1); expect(spySetWakeUp).toBeCalledTimes(1); - }) + }); }); describe("updateNetworkStatus", () => { @@ -252,7 +256,7 @@ describe("Blockchain", () => { blockchain.updateNetworkStatus(); expect(peerNetworkMonitor.updateNetworkStatus).toBeCalledTimes(1); - }) + }); }); describe("clearAndStopQueue", () => { @@ -269,7 +273,7 @@ describe("Blockchain", () => { expect(stateStore.lastDownloadedBlock).toEqual(mockLastBlock.data); expect(spyClearQueue).toBeCalledTimes(1); - }) + }); }); describe("clearQueue", () => { @@ -282,7 +286,7 @@ describe("Blockchain", () => { blockchain.clearQueue(); expect(spyQueueRemove).toBeCalledTimes(1); - }) + }); }); describe("handleIncomingBlock", () => { @@ -311,8 +315,8 @@ describe("Blockchain", () => { expect(spyEnqueue).toBeCalledTimes(1); expect(spyEnqueue).toHaveBeenLastCalledWith([blockData]); - }) - }) + }); + }); describe("when state is not started", () => { it("should dispatch BlockEvent.Disregarded and not enqueue the block", () => { @@ -320,16 +324,18 @@ describe("Blockchain", () => { const spyEnqueue = jest.spyOn(blockchain, "enqueueBlocks"); stateStore.started = false; - blockchain.handleIncomingBlock(blockData); expect(eventDispatcherService.dispatch).toBeCalledTimes(1); - expect(eventDispatcherService.dispatch).toHaveBeenLastCalledWith(Enums.BlockEvent.Disregarded, blockData); + expect(eventDispatcherService.dispatch).toHaveBeenLastCalledWith( + Enums.BlockEvent.Disregarded, + blockData, + ); expect(spyEnqueue).toBeCalledTimes(0); - }) - }) - + }); + }); + it("should not dispatch anything nor enqueue the block if receivedSlot > currentSlot", () => { const blockchain = container.resolve(Blockchain); const spyEnqueue = jest.spyOn(blockchain, "enqueueBlocks"); @@ -340,7 +346,7 @@ describe("Blockchain", () => { expect(spyEnqueue).toBeCalledTimes(0); expect(eventDispatcherService.dispatch).toBeCalledTimes(0); - }) + }); }); describe("enqueueBlocks", () => { @@ -359,7 +365,7 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); stateStore.lastDownloadedBlock = { height: 23111 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); blockchain.enqueueBlocks([blockData]); @@ -371,15 +377,15 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); stateStore.lastDownloadedBlock = { height: 23111 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); - const blockWith150Txs = { height: blockData.height + 1, numberOfTransactions: 150} as Interfaces.IBlockData; + const blockWith150Txs = { + height: blockData.height + 1, + numberOfTransactions: 150, + } as Interfaces.IBlockData; - blockchain.enqueueBlocks([ - blockWith150Txs, - blockData, - ]); + blockchain.enqueueBlocks([blockWith150Txs, blockData]); expect(spyQueuePush).toHaveBeenCalledTimes(2); expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [blockWith150Txs] }); @@ -390,7 +396,7 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); stateStore.lastDownloadedBlock = { height: 23111 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); const blocksToEnqueue = []; @@ -408,16 +414,16 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); stateStore.lastDownloadedBlock = { height: 7555 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); const blockMilestone = { id: "123", height: 75600 } as Interfaces.IBlockData; const blockAfterMilestone = { id: "456", height: 75601 } as Interfaces.IBlockData; - blockchain.enqueueBlocks([ blockMilestone, blockAfterMilestone ]); + blockchain.enqueueBlocks([blockMilestone, blockAfterMilestone]); expect(spyQueuePush).toHaveBeenCalledTimes(2); - expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [ blockMilestone ] }); - expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [ blockAfterMilestone ] }); + expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [blockMilestone] }); + expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [blockAfterMilestone] }); }); }); @@ -439,7 +445,7 @@ describe("Blockchain", () => { "3045022100e7385c6ea42bd950f7f6ab8c8619cf2f66a41d8f8f185b0bc99af032cb25f30d02200b6210176a6cedfdcbe483167fd91c21d740e0e4011d24d679c601fdd46b0de9", createdAt: "2018-09-11T16:48:50.550Z", }, - transactions: [] + transactions: [], }; const blockHeight3 = { data: { @@ -459,24 +465,25 @@ describe("Blockchain", () => { "304402204087bb1d2c82b9178b02b9b3f285de260cdf0778643064fe6c7aef27321d49520220594c57009c1fca543350126d277c6adeb674c00685a464c3e4bf0d634dc37e39", createdAt: "2018-09-11T16:48:58.431Z", }, - transactions: [] + transactions: [], }; describe("removeBlocks", () => { it("should call revertBlock and setLastBlock for each block to be removed, and deleteBlocks with all blocks removed", async () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); - - const blocksToRemove = [ blockHeight2, blockHeight3 ]; - stateStore.getLastBlock = jest.fn() + + const blocksToRemove = [blockHeight2, blockHeight3]; + stateStore.getLastBlock = jest + .fn() .mockReturnValueOnce(blocksToRemove[1]) // called in clearAndStopQueue .mockReturnValueOnce(blocksToRemove[1]) // called in removeBlocks .mockReturnValueOnce(blocksToRemove[1]) // called in __removeBlocks .mockReturnValueOnce(blocksToRemove[1]) // called in revertLastBlock .mockReturnValueOnce(blocksToRemove[0]) // called in __removeBlocks - .mockReturnValueOnce(blocksToRemove[0]) // called in revertLastBlock - databaseService.getBlocks = jest.fn().mockReturnValueOnce( - blocksToRemove.map(b => ({ ...b.data, transactions: b.transactions})) - ); + .mockReturnValueOnce(blocksToRemove[0]); // called in revertLastBlock + databaseService.getBlocks = jest + .fn() + .mockReturnValueOnce(blocksToRemove.map((b) => ({ ...b.data, transactions: b.transactions }))); await blockchain.removeBlocks(2); @@ -488,18 +495,18 @@ describe("Blockchain", () => { it("should default to removing until genesis block when asked to remove more", async () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); - + const genesisBlock = Networks.testnet.genesisBlock; - stateStore.getLastBlock = jest.fn() + stateStore.getLastBlock = jest + .fn() .mockReturnValueOnce(blockHeight2) // called in clearAndStopQueue .mockReturnValueOnce(blockHeight2) // called in removeBlocks .mockReturnValueOnce(blockHeight2) // called in __removeBlocks .mockReturnValueOnce(blockHeight2) // called in revertLastBlock .mockReturnValue(genesisBlock); - databaseService.getBlocks = jest.fn().mockReturnValueOnce([ - { ...blockHeight2.data, transactions: blockHeight2.transactions }, - genesisBlock - ]); + databaseService.getBlocks = jest + .fn() + .mockReturnValueOnce([{ ...blockHeight2.data, transactions: blockHeight2.transactions }, genesisBlock]); await blockchain.removeBlocks(blockHeight2.data.height + 10); @@ -519,7 +526,7 @@ describe("Blockchain", () => { const mockTopBlocks = []; for (let i = 0; i < numberOfBlocks; i++) { - mockTopBlocks.push({ height: 1000 + i }) + mockTopBlocks.push({ height: 1000 + i }); } databaseService.getTopBlocks.mockReturnValueOnce(mockTopBlocks); @@ -528,23 +535,24 @@ describe("Blockchain", () => { expect(databaseService.getTopBlocks).toHaveBeenLastCalledWith(numberOfBlocks); expect(blockRepository.deleteBlocks).toHaveBeenLastCalledWith(mockTopBlocks); expect(databaseService.loadBlocksFromCurrentRound).toHaveBeenCalled(); - }); + }, + ); it("should log an error if deleteBlocks throws", async () => { const blockchain = container.resolve(Blockchain); blockRepository.deleteBlocks.mockRejectedValueOnce(new Error("error deleteBlocks")); - databaseService.getTopBlocks.mockReturnValueOnce([ { height: 48990 }]); + databaseService.getTopBlocks.mockReturnValueOnce([{ height: 48990 }]); await blockchain.removeTopBlocks(1); expect(logService.error).toBeCalledTimes(1); - }) + }); }); describe("processBlocks", () => { const lastBlock = { ...blockHeight2.data, transactions: [] }; const currentBlock = { ...blockHeight3.data, transactions: [] }; - + it("should process a new chained block", async () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); @@ -552,7 +560,7 @@ describe("Blockchain", () => { stateStore.getLastBlock = jest.fn().mockReturnValue({ data: lastBlock }); blockProcessor.process = jest.fn().mockReturnValue(BlockProcessorResult.Accepted); - await blockchain.processBlocks([ currentBlock ]); + await blockchain.processBlocks([currentBlock]); }); it("should process a valid block already known", async () => { @@ -562,8 +570,8 @@ describe("Blockchain", () => { stateStore.getLastBlock = jest.fn().mockReturnValue({ data: lastBlock }); const spyClearQueue = jest.spyOn(blockchain, "clearQueue"); const spyResetLastDownloadedBlock = jest.spyOn(blockchain, "resetLastDownloadedBlock"); - - await blockchain.processBlocks([ lastBlock ]); + + await blockchain.processBlocks([lastBlock]); expect(spyClearQueue).toBeCalledTimes(1); expect(spyResetLastDownloadedBlock).toBeCalledTimes(1); @@ -578,7 +586,7 @@ describe("Blockchain", () => { blockProcessor.process = jest.fn().mockReturnValue(BlockProcessorResult.Rollback); const spyForkBlock = jest.spyOn(blockchain, "forkBlock"); - await blockchain.processBlocks([ lastBlock, currentBlock ]); + await blockchain.processBlocks([lastBlock, currentBlock]); expect(blockProcessor.process).toBeCalledTimes(1); // only 1 out of the 2 blocks expect(spyForkBlock).toBeCalledTimes(1); // because Rollback @@ -594,8 +602,8 @@ describe("Blockchain", () => { blockRepository.saveBlocks = jest.fn().mockRejectedValue(new Error("oops")); const spyClearQueue = jest.spyOn(blockchain, "clearQueue"); const spyResetLastDownloadedBlock = jest.spyOn(blockchain, "resetLastDownloadedBlock"); - - await blockchain.processBlocks([ currentBlock ]); + + await blockchain.processBlocks([currentBlock]); expect(spyClearQueue).toBeCalledTimes(1); expect(spyResetLastDownloadedBlock).toBeCalledTimes(1); @@ -607,15 +615,15 @@ describe("Blockchain", () => { blockchain.initialize({}); const block = { ...currentBlock, - timestamp: Crypto.Slots.getSlotNumber() * Managers.configManager.getMilestone(1).blocktime - } + timestamp: Crypto.Slots.getSlotNumber() * Managers.configManager.getMilestone(1).blocktime, + }; stateStore.started = true; stateStore.getLastBlock = jest.fn().mockReturnValue({ data: lastBlock }); databaseService.getLastBlock = jest.fn().mockReturnValue({ data: lastBlock }); blockProcessor.process = jest.fn().mockReturnValue(BlockProcessorResult.Accepted); - - await blockchain.processBlocks([ block ]); + + await blockchain.processBlocks([block]); expect(peerNetworkMonitor.broadcastBlock).toBeCalledTimes(1); }); @@ -627,15 +635,15 @@ describe("Blockchain", () => { stateStore.getLastBlock = jest.fn().mockReturnValue({ data: lastBlock }); blockProcessor.process = jest.fn().mockReturnValue(BlockProcessorResult.Accepted); stateStore.lastDownloadedBlock = { height: 23111 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); const spyProcessBlocks = jest.spyOn(blockchain, "processBlocks"); - + blockchain.enqueueBlocks([currentBlock]); - + expect(spyQueuePush).toHaveBeenCalledWith({ blocks: [currentBlock] }); await delay(1000); - + expect(spyProcessBlocks).toBeCalledTimes(1); }); @@ -643,26 +651,26 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); stateStore.getLastBlock = jest.fn().mockImplementationOnce(() => { - throw new Error("oops") + throw new Error("oops"); }); blockProcessor.process = jest.fn().mockReturnValue(BlockProcessorResult.Accepted); stateStore.lastDownloadedBlock = { height: 23111 }; - + const spyQueuePush = jest.spyOn(blockchain.queue, "push"); const spyProcessBlocks = jest.spyOn(blockchain, "processBlocks"); - - const blocksToEnqueue = [ currentBlock ]; + + const blocksToEnqueue = [currentBlock]; blockchain.enqueueBlocks(blocksToEnqueue); - + expect(spyQueuePush).toHaveBeenCalledWith({ blocks: blocksToEnqueue }); await delay(1000); - + expect(spyProcessBlocks).toBeCalledTimes(1); expect(logService.error).toBeCalledWith( - `Failed to process ${blocksToEnqueue.length} blocks from height ${blocksToEnqueue[0].height} in queue.` + `Failed to process ${blocksToEnqueue.length} blocks from height ${blocksToEnqueue[0].height} in queue.`, ); }); - }) + }); }); describe("resetLastDownloadedBlock", () => { @@ -670,13 +678,13 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); stateStore.lastDownloadedBlock = undefined; - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); blockchain.resetLastDownloadedBlock(); expect(stateStore.lastDownloadedBlock).toEqual(mockBlock.data); - }) + }); }); describe("forceWakeup", () => { @@ -689,19 +697,19 @@ describe("Blockchain", () => { expect(stateStore.clearWakeUpTimeout).toBeCalledTimes(1); expect(spyDispatch).toBeCalledTimes(1); expect(spyDispatch).toHaveBeenLastCalledWith("WAKEUP"); - }) + }); }); describe("forkBlock", () => { it("should set forkedBlock, clear and stop queue and dispatch 'FORK'", () => { const blockchain = container.resolve(Blockchain); blockchain.initialize({}); - - const forkedBlock = { data: { id:"1234", height: 8877 }}; + + const forkedBlock = { data: { id: "1234", height: 8877 } }; const numberOfBlocksToRollback = 34; const spyClearAndStopQueue = jest.spyOn(blockchain, "clearAndStopQueue"); const spyDispatch = jest.spyOn(blockchain, "dispatch"); - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); blockchain.forkBlock(forkedBlock as Interfaces.IBlock, numberOfBlocksToRollback); @@ -711,7 +719,7 @@ describe("Blockchain", () => { expect(spyClearAndStopQueue).toBeCalledTimes(1); expect(spyDispatch).toBeCalledTimes(1); expect(spyDispatch).toHaveBeenLastCalledWith("FORK"); - }) + }); }); describe("isSynced", () => { @@ -727,9 +735,9 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); peerStorage.hasPeers = jest.fn().mockReturnValue(true); - const mockBlock = { data: { id: "123", height: 444, timestamp: Crypto.Slots.getTime() - 16 }}; + const mockBlock = { data: { id: "123", height: 444, timestamp: Crypto.Slots.getTime() - 16 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); - + expect(blockchain.isSynced()).toBeTrue(); }); @@ -737,9 +745,9 @@ describe("Blockchain", () => { const blockchain = container.resolve(Blockchain); peerStorage.hasPeers = jest.fn().mockReturnValue(true); - const mockBlock = { data: { id: "123", height: 444, timestamp: Crypto.Slots.getTime() - 25 }}; + const mockBlock = { data: { id: "123", height: 444, timestamp: Crypto.Slots.getTime() - 25 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); - + expect(blockchain.isSynced()).toBeFalse(); }); }); @@ -748,101 +756,100 @@ describe("Blockchain", () => { it("should return the last block from state", () => { const blockchain = container.resolve(Blockchain); - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); - + expect(blockchain.getLastBlock()).toEqual(mockBlock); expect(stateStore.getLastBlock).toHaveBeenCalledTimes(1); - }) + }); }); describe("getLastHeight", () => { it("should return the last height using getLastBlock", () => { const blockchain = container.resolve(Blockchain); - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); const spyGetLastBlock = jest.spyOn(blockchain, "getLastBlock"); - + expect(blockchain.getLastHeight()).toEqual(mockBlock.data.height); expect(spyGetLastBlock).toHaveBeenCalledTimes(1); - }) + }); }); describe("getLastDownloadedBlock", () => { it("should return state.lastDownloadedBlock if it is defined", () => { const blockchain = container.resolve(Blockchain); - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.lastDownloadedBlock = mockBlock.data; - + expect(blockchain.getLastDownloadedBlock()).toEqual(mockBlock.data); - }) + }); it("should return getLastBlock().data if state.lastDownloadedBlock is undefined", () => { const blockchain = container.resolve(Blockchain); stateStore.lastDownloadedBlock = undefined; - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; stateStore.getLastBlock = jest.fn().mockReturnValue(mockBlock); const spyGetLastBlock = jest.spyOn(blockchain, "getLastBlock"); - + expect(blockchain.getLastDownloadedBlock()).toEqual(mockBlock.data); expect(spyGetLastBlock).toHaveBeenCalledTimes(1); - }) + }); }); describe("getBlockPing", () => { - const mockBlock = { data: { id: "123", height: 444 }}; + const mockBlock = { data: { id: "123", height: 444 } }; - it.each([[undefined], [ { block: mockBlock, count: 3 } ]])( + it.each([[undefined], [{ block: mockBlock, count: 3 }]])( "should return the value of state.blockPing", (blockPing) => { const blockchain = container.resolve(Blockchain); stateStore.blockPing = blockPing; - + expect(blockchain.getBlockPing()).toEqual(blockPing); - } - ) + }, + ); }); describe("pingBlock", () => { it("should call state.pingBlock", () => { const blockchain = container.resolve(Blockchain); - + const incomingBlock = { id: "123", height: 444 }; blockchain.pingBlock(incomingBlock as Interfaces.IBlockData); expect(stateStore.pingBlock).toBeCalledTimes(1); expect(stateStore.pingBlock).toHaveBeenLastCalledWith(incomingBlock); - }) + }); }); describe("pushPingBlock", () => { it("should call state.pushPingBlock", () => { const blockchain = container.resolve(Blockchain); - + const incomingBlock = { id: "123", height: 444 }; const fromForger = true; blockchain.pushPingBlock(incomingBlock as Interfaces.IBlockData, fromForger); expect(stateStore.pushPingBlock).toBeCalledTimes(1); expect(stateStore.pushPingBlock).toHaveBeenLastCalledWith(incomingBlock, fromForger); - }) + }); it("should call state.pushPingBlock with fromForger=false if not specified", () => { const blockchain = container.resolve(Blockchain); - + const incomingBlock = { id: "123", height: 444 }; blockchain.pushPingBlock(incomingBlock as Interfaces.IBlockData); expect(stateStore.pushPingBlock).toBeCalledTimes(1); expect(stateStore.pushPingBlock).toHaveBeenLastCalledWith(incomingBlock, false); - }) + }); }); - describe("checkMissingBlocks", () => { const threshold = Managers.configManager.getMilestone().activeDelegates / 3 - 1; @@ -890,4 +897,4 @@ describe("Blockchain", () => { } }); }); -}); \ No newline at end of file +}); diff --git a/__tests__/unit/core-blockchain/processor/block-processor.test.ts b/__tests__/unit/core-blockchain/processor/block-processor.test.ts index 937d2b99c7..6e58ada417 100644 --- a/__tests__/unit/core-blockchain/processor/block-processor.test.ts +++ b/__tests__/unit/core-blockchain/processor/block-processor.test.ts @@ -29,49 +29,57 @@ describe("BlockProcessor", () => { const verificationFailedHandler = { execute: jest.fn() }; const walletRepository = { - findByPublicKey: jest.fn() + findByPublicKey: jest.fn(), }; const transactionHandlerRegistry = { - getActivatedHandlerForData: jest.fn() + getActivatedHandlerForData: jest.fn(), }; const databaseService = { getActiveDelegates: jest.fn(), walletRepository: { getNonce: jest.fn(), - } + }, }; const mapGetTagged = { [Container.Identifiers.WalletRepository]: walletRepository, - [Container.Identifiers.TransactionHandlerRegistry]: transactionHandlerRegistry + [Container.Identifiers.TransactionHandlerRegistry]: transactionHandlerRegistry, }; const mapGet = { - [Container.Identifiers.DatabaseService]: databaseService + [Container.Identifiers.DatabaseService]: databaseService, }; const application = { - resolve: itemToResolve => { - switch(itemToResolve) { - case AcceptBlockHandler: return acceptBlockHandler; - case AlreadyForgedHandler: return alreadyForgedHandler; - case ExceptionHandler: return exceptionHandler; - case IncompatibleTransactionsHandler: return incompatibleTransactionsHandler; - case InvalidGeneratorHandler: return invalidGeneratorHandler; - case NonceOutOfOrderHandler: return nonceOutOfOrderHandler; - case UnchainedHandler: return unchainedHandler; - case VerificationFailedHandler: return verificationFailedHandler; + resolve: (itemToResolve) => { + switch (itemToResolve) { + case AcceptBlockHandler: + return acceptBlockHandler; + case AlreadyForgedHandler: + return alreadyForgedHandler; + case ExceptionHandler: + return exceptionHandler; + case IncompatibleTransactionsHandler: + return incompatibleTransactionsHandler; + case InvalidGeneratorHandler: + return invalidGeneratorHandler; + case NonceOutOfOrderHandler: + return nonceOutOfOrderHandler; + case UnchainedHandler: + return unchainedHandler; + case VerificationFailedHandler: + return verificationFailedHandler; } return undefined; }, - getTagged: id => mapGetTagged[id], - get: id => mapGet[id] + getTagged: (id) => mapGetTagged[id], + get: (id) => mapGet[id], }; beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); container.bind(Container.Identifiers.LogService).toConstantValue(logService); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); - container.bind(Container.Identifiers.TransactionRepository).toConstantValue(transactionRepository); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.TransactionRepository).toConstantValue(transactionRepository); }); beforeEach(() => { @@ -102,13 +110,13 @@ describe("BlockProcessor", () => { verify: jest.fn(), verifySignature: jest.fn(), toJson: jest.fn(), - transactions: [] - } + transactions: [], + }; it("should execute ExceptionHandler when block is an exception", async () => { Managers.configManager.setFromPreset("devnet"); - const block = { ...baseBlock, data: { ...baseBlock.data, id: "15895730198424359628" } }; - + const block = { ...baseBlock, data: { ...baseBlock.data, id: "15895730198424359628" } }; + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -119,7 +127,7 @@ describe("BlockProcessor", () => { describe("when block does not verify", () => { it("should execute VerificationFailedHandler when !block.verification.verified", async () => { const block = { ...baseBlock, verification: { ...baseBlock.verification, verified: false } }; - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -133,24 +141,27 @@ describe("BlockProcessor", () => { verification: { verified: true, errors: [], containsMultiSignatures: true }, verify: jest.fn().mockReturnValue(true), transactions: [ - { data: { - type: 0, - typeGroup: 1, - version: 1, - amount: Utils.BigNumber.make("12500000000000000"), - fee: Utils.BigNumber.ZERO, - recipientId: "D6Z26L69gdk9qYmTv5uzk3uGepigtHY4ax", - timestamp: 0, - asset: {}, - senderPublicKey: "0208e6835a8f020cfad439c059b89addc1ce21f8cab0af6e6957e22d3720bff8a4", - signature: "304402203a3f0f80aad4e0561ae975f241f72a074245f1205d676d290d6e5630ed4c027502207b31fee68e64007c380a4b6baccd4db9b496daef5f7894676586e1347ac30a3b", - id: "3e3817fd0c35bc36674f3874c2953fa3e35877cbcdb44a08bdc6083dbd39d572" - } } as Interfaces.ITransaction - ] + { + data: { + type: 0, + typeGroup: 1, + version: 1, + amount: Utils.BigNumber.make("12500000000000000"), + fee: Utils.BigNumber.ZERO, + recipientId: "D6Z26L69gdk9qYmTv5uzk3uGepigtHY4ax", + timestamp: 0, + asset: {}, + senderPublicKey: "0208e6835a8f020cfad439c059b89addc1ce21f8cab0af6e6957e22d3720bff8a4", + signature: + "304402203a3f0f80aad4e0561ae975f241f72a074245f1205d676d290d6e5630ed4c027502207b31fee68e64007c380a4b6baccd4db9b496daef5f7894676586e1347ac30a3b", + id: "3e3817fd0c35bc36674f3874c2953fa3e35877cbcdb44a08bdc6083dbd39d572", + }, + } as Interfaces.ITransaction, + ], }; transactionHandlerRegistry.getActivatedHandlerForData = jest.fn().mockReturnValueOnce({ - verify: jest.fn().mockRejectedValueOnce(new Error("oops")) - }) + verify: jest.fn().mockRejectedValueOnce(new Error("oops")), + }); const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -162,9 +173,9 @@ describe("BlockProcessor", () => { const block = { ...baseBlock, verification: { verified: true, errors: [], containsMultiSignatures: true }, - verify: jest.fn().mockReturnValue(false) + verify: jest.fn().mockReturnValue(false), }; - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -172,7 +183,7 @@ describe("BlockProcessor", () => { expect(verificationFailedHandler.execute).toBeCalledTimes(1); expect(block.verify).toBeCalledTimes(1); }); - }) + }); it("should execute IncompatibleTransactionsHandler when block contains incompatible transactions", async () => { const block = { @@ -180,9 +191,9 @@ describe("BlockProcessor", () => { transactions: [ { data: { id: "1", version: 1 } } as Interfaces.ITransaction, { data: { id: "2", version: 2 } } as Interfaces.ITransaction, - ] + ], }; - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -196,22 +207,24 @@ describe("BlockProcessor", () => { id: "1", version: 2, senderPublicKey: "038082dad560a22ea003022015e3136b21ef1ffd9f2fd50049026cbe8e2258ca17", - nonce: Utils.BigNumber.make(2) + nonce: Utils.BigNumber.make(2), } as Interfaces.ITransactionData; const block = { ...baseBlock, transactions: [ { data: { ...baseTransactionData } } as Interfaces.ITransaction, - { data: { ...baseTransactionData, id: "2", nonce: Utils.BigNumber.make(4) } } as Interfaces.ITransaction, - ] + { + data: { ...baseTransactionData, id: "2", nonce: Utils.BigNumber.make(4) }, + } as Interfaces.ITransaction, + ], }; - + databaseService.walletRepository.getNonce = jest.fn().mockReturnValueOnce(Utils.BigNumber.ONE); - + const blockProcessor = container.resolve(BlockProcessor); - + await blockProcessor.process(block); - + expect(nonceOutOfOrderHandler.execute).toBeCalledTimes(1); }); @@ -226,26 +239,25 @@ describe("BlockProcessor", () => { transactions: [ { data: { ...baseTransactionData } } as Interfaces.ITransaction, { data: { ...baseTransactionData, id: "2" } } as Interfaces.ITransaction, - ] + ], }; - + databaseService.walletRepository.getNonce = jest.fn().mockReturnValueOnce(Utils.BigNumber.ONE); databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([]); blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); const generatorWallet = { - getAttribute: jest.fn().mockReturnValue("generatorusername") + getAttribute: jest.fn().mockReturnValue("generatorusername"), }; walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet); unchainedHandler.initialize = jest.fn().mockReturnValueOnce(unchainedHandler); const blockProcessor = container.resolve(BlockProcessor); - + await blockProcessor.process(block); - + expect(nonceOutOfOrderHandler.execute).toBeCalledTimes(0); }); - }) - + }); it("should execute UnchainedHandler when block is not chained", async () => { const block = { @@ -253,12 +265,12 @@ describe("BlockProcessor", () => { }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); const generatorWallet = { - getAttribute: jest.fn().mockReturnValue("generatorusername") + getAttribute: jest.fn().mockReturnValue("generatorusername"), }; walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet); unchainedHandler.initialize = jest.fn().mockReturnValueOnce(unchainedHandler); databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([]); - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -290,7 +302,7 @@ describe("BlockProcessor", () => { verify: jest.fn(), verifySignature: jest.fn(), toJson: jest.fn(), - transactions: [] + transactions: [], }; describe("when invalid generator", () => { it("should execute InvalidGeneratorHandler when block has invalid generator", async () => { @@ -299,17 +311,22 @@ describe("BlockProcessor", () => { }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); const generatorWallet = { - getAttribute: jest.fn().mockReturnValue("generatorusername") + getAttribute: jest.fn().mockReturnValue("generatorusername"), + }; + walletRepository.findByPublicKey = jest + .fn() + .mockReturnValueOnce(generatorWallet) + .mockReturnValueOnce(generatorWallet); + const notBlockGenerator = { + publicKey: "02ff171adaef486b7db9fc160b28433d20cf43163d56fd28fee72145f0d5219a4b", }; - walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet).mockReturnValueOnce(generatorWallet); - const notBlockGenerator = { publicKey: "02ff171adaef486b7db9fc160b28433d20cf43163d56fd28fee72145f0d5219a4b" } - - databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([ notBlockGenerator ]); - + + databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([notBlockGenerator]); + const blockProcessor = container.resolve(BlockProcessor); - + await blockProcessor.process(block); - + expect(invalidGeneratorHandler.execute).toBeCalledTimes(1); }); @@ -319,44 +336,48 @@ describe("BlockProcessor", () => { }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); const generatorWallet = { - getAttribute: jest.fn().mockImplementation(() => { throw new Error("oops") }) + getAttribute: jest.fn().mockImplementation(() => { + throw new Error("oops"); + }), }; - walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet).mockReturnValueOnce(generatorWallet); - const notBlockGenerator = { publicKey: "02ff171adaef486b7db9fc160b28433d20cf43163d56fd28fee72145f0d5219a4b" } - - databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([ notBlockGenerator ]); - + walletRepository.findByPublicKey = jest + .fn() + .mockReturnValueOnce(generatorWallet) + .mockReturnValueOnce(generatorWallet); + const notBlockGenerator = { + publicKey: "02ff171adaef486b7db9fc160b28433d20cf43163d56fd28fee72145f0d5219a4b", + }; + + databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([notBlockGenerator]); + const blockProcessor = container.resolve(BlockProcessor); - + await blockProcessor.process(block); - + expect(invalidGeneratorHandler.execute).toBeCalledTimes(1); }); - }) - + }); it("should execute AlreadyForgedHandler when block has already forged transactions", async () => { const transactionData = { id: "34821dfa9cbe59aad663b972326ff19265d788c4d4142747606aa29b19d6b1dab", version: 2, senderPublicKey: "038082dad560a22ea003022015e3136b21ef1ffd9f2fd50049026cbe8e2258ca17", - nonce: Utils.BigNumber.make(2) + nonce: Utils.BigNumber.make(2), } as Interfaces.ITransactionData; const block = { ...chainedBlock, - transactions: [ - { data: transactionData, id: transactionData.id } as Interfaces.ITransaction - ] + transactions: [{ data: transactionData, id: transactionData.id } as Interfaces.ITransaction], }; databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([]); blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); - transactionRepository.getForgedTransactionsIds = jest.fn().mockReturnValueOnce([transactionData.id]) + transactionRepository.getForgedTransactionsIds = jest.fn().mockReturnValueOnce([transactionData.id]); databaseService.walletRepository.getNonce = jest.fn().mockReturnValueOnce(Utils.BigNumber.ONE); const generatorWallet = { - getAttribute: jest.fn().mockReturnValue("generatorusername") + getAttribute: jest.fn().mockReturnValue("generatorusername"), }; walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet); - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); @@ -370,16 +391,16 @@ describe("BlockProcessor", () => { }; databaseService.getActiveDelegates = jest.fn().mockReturnValueOnce([]); blockchain.getLastBlock = jest.fn().mockReturnValueOnce(baseBlock); - transactionRepository.getForgedTransactionsIds = jest.fn().mockReturnValueOnce([]) + transactionRepository.getForgedTransactionsIds = jest.fn().mockReturnValueOnce([]); const generatorWallet = { - getAttribute: jest.fn().mockReturnValue("generatorusername") + getAttribute: jest.fn().mockReturnValue("generatorusername"), }; walletRepository.findByPublicKey = jest.fn().mockReturnValueOnce(generatorWallet); - + const blockProcessor = container.resolve(BlockProcessor); await blockProcessor.process(block); expect(acceptBlockHandler.execute).toBeCalledTimes(1); }); -}) \ No newline at end of file +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/accept-block-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/accept-block-handler.test.ts index 904a3cfb2f..d2d0c1d369 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/accept-block-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/accept-block-handler.test.ts @@ -12,7 +12,7 @@ describe("AcceptBlockHandler", () => { forkedBlock: undefined, started: undefined, setLastBlock: jest.fn(), - lastDownloadedBlock: undefined + lastDownloadedBlock: undefined, }; const database = { applyBlock: jest.fn() }; const transactionPool = { acceptForgedTransaction: jest.fn() }; @@ -36,10 +36,7 @@ describe("AcceptBlockHandler", () => { describe("execute", () => { const block = { data: { id: "1222", height: 5544 }, - transactions: [ - { "id": "11" }, - { "id": "12" }, - ] + transactions: [{ id: "11" }, { id: "12" }], }; it("should apply block to database, transaction pool, blockchain and state", async () => { @@ -61,7 +58,7 @@ describe("AcceptBlockHandler", () => { expect(state.setLastBlock).toBeCalledTimes(1); expect(state.setLastBlock).toHaveBeenCalledWith(block); - }) + }); it("should reset state.forkedBlock if incoming block has same height", async () => { const acceptBlockHandler = container.resolve(AcceptBlockHandler); @@ -72,7 +69,7 @@ describe("AcceptBlockHandler", () => { expect(result).toBe(BlockProcessorResult.Accepted); expect(state.forkedBlock).toBeUndefined(); - }) + }); it("should set state.lastDownloadedBlock if incoming block height is higher", async () => { const acceptBlockHandler = container.resolve(AcceptBlockHandler); @@ -83,7 +80,7 @@ describe("AcceptBlockHandler", () => { expect(result).toBe(BlockProcessorResult.Accepted); expect(state.lastDownloadedBlock).toBe(block.data); - }) + }); it("should return Reject and resetLastDownloadedBlock when something throws", async () => { const acceptBlockHandler = container.resolve(AcceptBlockHandler); @@ -94,6 +91,6 @@ describe("AcceptBlockHandler", () => { expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/already-forged-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/already-forged-handler.test.ts index bd9f9894bf..ed9addbcc1 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/already-forged-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/already-forged-handler.test.ts @@ -29,6 +29,6 @@ describe("AlreadyForgedHandler", () => { expect(result).toBe(BlockProcessorResult.DiscardedButCanBeBroadcasted); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/exception-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/exception-handler.test.ts index 70de7bc1c3..45e50c2f6f 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/exception-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/exception-handler.test.ts @@ -37,13 +37,13 @@ describe("ExceptionHandler", () => { expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) + }); it("should call AcceptHandler when block not already forged", async () => { const exceptionHandler = container.resolve(ExceptionHandler); const mockAcceptHandler = { - execute: () => BlockProcessorResult.Accepted + execute: () => BlockProcessorResult.Accepted, }; application.resolve = jest.fn().mockReturnValue(mockAcceptHandler); @@ -53,6 +53,6 @@ describe("ExceptionHandler", () => { expect(application.resolve).toBeCalledTimes(1); expect(application.resolve).toBeCalledWith(AcceptBlockHandler); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/incompatible-transactions-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/incompatible-transactions-handler.test.ts index 2b3f6b0482..70f2b9b81e 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/incompatible-transactions-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/incompatible-transactions-handler.test.ts @@ -22,13 +22,15 @@ describe("IncompatibleTransactionsHandler", () => { describe("execute", () => { it("should call blockchain.resetLastDownloadedBlock and return DiscardedButCanBeBroadcasted", async () => { - const incompatibleTransactionsHandler = container.resolve(IncompatibleTransactionsHandler); + const incompatibleTransactionsHandler = container.resolve( + IncompatibleTransactionsHandler, + ); const block = {}; const result = await incompatibleTransactionsHandler.execute(block as Interfaces.IBlock); expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/invalid-generator-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/invalid-generator-handler.test.ts index 39171020e2..61f11ceaa3 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/invalid-generator-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/invalid-generator-handler.test.ts @@ -29,6 +29,6 @@ describe("InvalidGeneratorHandler", () => { expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/nonce-out-of-order-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/nonce-out-of-order-handler.test.ts index e7984ec496..1c1be778bb 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/nonce-out-of-order-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/nonce-out-of-order-handler.test.ts @@ -29,6 +29,6 @@ describe("NonceOutOfOrderHandler", () => { expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/unchained-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/unchained-handler.test.ts index 18e1e51ae2..d3c44cae5d 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/unchained-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/unchained-handler.test.ts @@ -11,7 +11,7 @@ describe("UnchainedHandler", () => { resetLastDownloadedBlock: jest.fn(), clearQueue: jest.fn(), getLastBlock: jest.fn(), - queue: { length: jest.fn() } + queue: { length: jest.fn() }, }; const stateStore = { numberOfBlocksToRollback: undefined }; const database = { getActiveDelegates: jest.fn() }; @@ -19,7 +19,7 @@ describe("UnchainedHandler", () => { const applicationGetMap = { [Container.Identifiers.DatabaseService]: database, [Container.Identifiers.StateStore]: stateStore, - } + }; const application = { get: (key) => applicationGetMap[key] }; beforeAll(() => { @@ -39,153 +39,159 @@ describe("UnchainedHandler", () => { const unchainedHandler = container.resolve(UnchainedHandler); unchainedHandler.initialize(true); - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: 443, timestamp: 111122, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); - database.getActiveDelegates = jest.fn().mockResolvedValueOnce([ - block.data.generatorPublicKey, - "02aea83a44f1d6b073e5bcffb4176bbe3c51dcd0e96a793a88f3a6135600224adf", - "03a3c6fd74a23fbe1e02f08d9c626ebb255b48de7ba8c283ee27c9303be81a2933" - ].map(publicKey => ({ publicKey }))); + database.getActiveDelegates = jest + .fn() + .mockResolvedValueOnce( + [ + block.data.generatorPublicKey, + "02aea83a44f1d6b073e5bcffb4176bbe3c51dcd0e96a793a88f3a6135600224adf", + "03a3c6fd74a23fbe1e02f08d9c626ebb255b48de7ba8c283ee27c9303be81a2933", + ].map((publicKey) => ({ publicKey })), + ); const result = await unchainedHandler.execute(block as Interfaces.IBlock); - + expect(result).toBe(BlockProcessorResult.Rollback); - }) - + }); + it("should return Rejected if block generator is not an active delegate", async () => { const unchainedHandler = container.resolve(UnchainedHandler); unchainedHandler.initialize(true); - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: 443, timestamp: 111122, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); - database.getActiveDelegates = jest.fn().mockResolvedValueOnce([ - "02aea83a44f1d6b073e5bcffb4176bbe3c51dcd0e96a793a88f3a6135600224adf", - "03a3c6fd74a23fbe1e02f08d9c626ebb255b48de7ba8c283ee27c9303be81a2933" - ].map(publicKey => ({ publicKey }))); + database.getActiveDelegates = jest + .fn() + .mockResolvedValueOnce( + [ + "02aea83a44f1d6b073e5bcffb4176bbe3c51dcd0e96a793a88f3a6135600224adf", + "03a3c6fd74a23fbe1e02f08d9c626ebb255b48de7ba8c283ee27c9303be81a2933", + ].map((publicKey) => ({ publicKey })), + ); const result = await unchainedHandler.execute(block as Interfaces.IBlock); - + expect(result).toBe(BlockProcessorResult.Rejected); - }) - }) + }); + }); describe("when it is a ExceededNotReadyToAcceptNewHeightMaxAttempts case", () => { it("should return DiscardedButCanBeBroadcasted 5 times then Rollback when height > lastBlock height +1", async () => { const unchainedHandler = container.resolve(UnchainedHandler); unchainedHandler.initialize(true); - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: lastBlock.data.height + 2, timestamp: 111122, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValue(lastBlock); blockchain.queue.length = jest.fn().mockReturnValueOnce(1); for (let i = 0; i < 5; i++) { expect(await unchainedHandler.execute(block as Interfaces.IBlock)).toBe( - BlockProcessorResult.DiscardedButCanBeBroadcasted + BlockProcessorResult.DiscardedButCanBeBroadcasted, ); } - - expect(await unchainedHandler.execute(block as Interfaces.IBlock)).toBe( - BlockProcessorResult.Rollback - ); - }) - }) + + expect(await unchainedHandler.execute(block as Interfaces.IBlock)).toBe(BlockProcessorResult.Rollback); + }); + }); describe("when block is already in blockchain (height < last height)", () => { it("should return DiscardedButCanBeBroadcasted", async () => { const unchainedHandler = container.resolve(UnchainedHandler); - - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: 442, timestamp: 111102, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); const result = await unchainedHandler.execute(block as Interfaces.IBlock); - + expect(result).toBe(BlockProcessorResult.DiscardedButCanBeBroadcasted); - }) - }) + }); + }); describe("when it is a GeneratorMismatch case", () => { it("should return Rejected", async () => { const unchainedHandler = container.resolve(UnchainedHandler); - - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: 443, timestamp: 111122, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); const result = await unchainedHandler.execute(block as Interfaces.IBlock); - + expect(result).toBe(BlockProcessorResult.Rejected); - }) - }) + }); + }); describe("when it is a InvalidTimestamp case", () => { it("should return Rejected", async () => { const unchainedHandler = container.resolve(UnchainedHandler); - - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = { data: { - id:"987", + id: "987", height: lastBlock.data.height + 1, timestamp: lastBlock.data.timestamp - 20, - generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db" - } + generatorPublicKey: "03ea97a59522c4cb4bb3420fc94555f6223813d9817dd421bf533b390a7ea140db", + }, }; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); const result = await unchainedHandler.execute(block as Interfaces.IBlock); - + expect(result).toBe(BlockProcessorResult.Rejected); - }) - }) + }); + }); it("should return DiscardedButCanBeBroadcasted when does not match above cases", async () => { const unchainedHandler = container.resolve(UnchainedHandler); - const lastBlock = { data: { id:"123", height: 443, timestamp: 111112 } }; + const lastBlock = { data: { id: "123", height: 443, timestamp: 111112 } }; const block = lastBlock; blockchain.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); const result = await unchainedHandler.execute(block as Interfaces.IBlock); expect(result).toBe(BlockProcessorResult.DiscardedButCanBeBroadcasted); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/processor/handlers/verification-failed-handler.test.ts b/__tests__/unit/core-blockchain/processor/handlers/verification-failed-handler.test.ts index be2f072b2a..457309b39d 100644 --- a/__tests__/unit/core-blockchain/processor/handlers/verification-failed-handler.test.ts +++ b/__tests__/unit/core-blockchain/processor/handlers/verification-failed-handler.test.ts @@ -29,6 +29,6 @@ describe("VerificationFailedHandler", () => { expect(result).toBe(BlockProcessorResult.Rejected); expect(blockchain.resetLastDownloadedBlock).toBeCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/service-provider.test.ts b/__tests__/unit/core-blockchain/service-provider.test.ts index faab16b2f9..c6b3ecde03 100644 --- a/__tests__/unit/core-blockchain/service-provider.test.ts +++ b/__tests__/unit/core-blockchain/service-provider.test.ts @@ -16,7 +16,7 @@ describe("ServiceProvider", () => { app.bind(Container.Identifiers.EventDispatcherService).toConstantValue({}); app.bind(Container.Identifiers.TransactionRepository).toConstantValue({}); app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); - + serviceProvider = app.resolve(ServiceProvider); }); @@ -32,8 +32,8 @@ describe("ServiceProvider", () => { expect(app.isBound(Container.Identifiers.StateMachine)).toBeTrue(); expect(app.isBound(Container.Identifiers.BlockchainService)).toBeTrue(); - }) - }) + }); + }); describe("boot", () => { it("should call boot on blockchain service", async () => { @@ -43,8 +43,8 @@ describe("ServiceProvider", () => { await serviceProvider.boot(); expect(blockchainService.boot).toBeCalledTimes(1); - }) - }) + }); + }); describe("dispose", () => { it("should call dispose on blockchain service", async () => { @@ -54,32 +54,32 @@ describe("ServiceProvider", () => { await serviceProvider.dispose(); expect(blockchainService.dispose).toBeCalledTimes(1); - }) - }) + }); + }); describe("bootWhen", () => { it("should return false when process.env.CORE_SKIP_BLOCKCHAIN", async () => { process.env.CORE_SKIP_BLOCKCHAIN = "true"; - + const bootWhenResult = await serviceProvider.bootWhen(); expect(bootWhenResult).toBeFalse(); - }) + }); it("should return true when !process.env.CORE_SKIP_BLOCKCHAIN", async () => { delete process.env.CORE_SKIP_BLOCKCHAIN; - + const bootWhenResult = await serviceProvider.bootWhen(); expect(bootWhenResult).toBeTrue(); - }) - }) + }); + }); describe("required", () => { it("should return true", async () => { const required = await serviceProvider.required(); expect(required).toBeTrue(); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/blockchain-ready.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/blockchain-ready.test.ts index 14cd3489f2..0912f58b69 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/blockchain-ready.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/blockchain-ready.test.ts @@ -1,7 +1,6 @@ import { Container, Enums } from "@arkecosystem/core-kernel"; import { BlockchainReady } from "../../../../../packages/core-blockchain/src/state-machine/actions/blockchain-ready"; - describe("BlockchainReady", () => { const container = new Container.Container(); @@ -15,8 +14,8 @@ describe("BlockchainReady", () => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); container.bind(Container.Identifiers.LogService).toConstantValue(logService); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); - container.bind(Container.Identifiers.EventDispatcherService).toConstantValue(eventDispatcher); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.EventDispatcherService).toConstantValue(eventDispatcher); }); beforeEach(() => { @@ -24,7 +23,7 @@ describe("BlockchainReady", () => { }); describe("handle", () => { - it("should set stateStore.started = true and dispatch started event",() => { + it("should set stateStore.started = true and dispatch started event", () => { const blockchainReady = container.resolve(BlockchainReady); stateStore.started = false; @@ -33,15 +32,15 @@ describe("BlockchainReady", () => { expect(stateStore.started).toBeTrue(); expect(eventDispatcher.dispatch).toHaveBeenCalledTimes(1); expect(eventDispatcher.dispatch).toHaveBeenLastCalledWith(Enums.StateEvent.Started, true); - }) - - it("should do nothing if stateStore.started is true",() => { + }); + + it("should do nothing if stateStore.started is true", () => { const blockchainReady = container.resolve(BlockchainReady); stateStore.started = true; blockchainReady.handle(); expect(eventDispatcher.dispatch).toHaveBeenCalledTimes(0); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/check-last-block-synced.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/check-last-block-synced.test.ts index 4f99ae3b01..0686dbc70f 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/check-last-block-synced.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/check-last-block-synced.test.ts @@ -1,7 +1,6 @@ import { Container } from "@arkecosystem/core-kernel"; import { CheckLastBlockSynced } from "../../../../../packages/core-blockchain/src/state-machine/actions/check-last-block-synced"; - describe("CheckLastBlockSynced", () => { const container = new Container.Container(); @@ -12,7 +11,7 @@ describe("CheckLastBlockSynced", () => { beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); }); beforeEach(() => { @@ -20,7 +19,7 @@ describe("CheckLastBlockSynced", () => { }); describe("handle", () => { - it("should dispatch SYNCED if blockchain is synced",() => { + it("should dispatch SYNCED if blockchain is synced", () => { const checkLastBlockSynced = container.resolve(CheckLastBlockSynced); blockchain.isSynced = jest.fn().mockReturnValue(true); @@ -28,9 +27,9 @@ describe("CheckLastBlockSynced", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("SYNCED"); - }) - - it("should dispatch NOTSYNCED if blockchain is not synced",() => { + }); + + it("should dispatch NOTSYNCED if blockchain is not synced", () => { const checkLastBlockSynced = container.resolve(CheckLastBlockSynced); blockchain.isSynced = jest.fn().mockReturnValue(false); @@ -38,6 +37,6 @@ describe("CheckLastBlockSynced", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("NOTSYNCED"); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/check-last-downloaded-block-synced.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/check-last-downloaded-block-synced.test.ts index 1686bc15b0..bc9b9a6fdd 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/check-last-downloaded-block-synced.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/check-last-downloaded-block-synced.test.ts @@ -1,14 +1,13 @@ import { Container } from "@arkecosystem/core-kernel"; import { CheckLastDownloadedBlockSynced } from "../../../../../packages/core-blockchain/src/state-machine/actions/check-last-downloaded-block-synced"; - describe("CheckLastDownloadedBlockSynced", () => { const container = new Container.Container(); const blockchain = { isSynced: jest.fn(), dispatch: jest.fn(), - queue: { length: jest.fn(), idle: jest.fn() } + queue: { length: jest.fn(), idle: jest.fn() }, }; const stateStore = { noBlockCounter: undefined, @@ -18,17 +17,17 @@ describe("CheckLastDownloadedBlockSynced", () => { networkStart: undefined, }; const peerNetworkMonitor = { checkNetworkHealth: jest.fn() }; - const logger = { warn: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), }; + const logger = { warn: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn() }; const application = { resolve: jest.fn(), get: () => peerNetworkMonitor }; beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); - container.bind(Container.Identifiers.LogService).toConstantValue(logger); - container.bind(Container.Identifiers.PeerNetworkMonitor).toConstantValue(peerNetworkMonitor); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.LogService).toConstantValue(logger); + container.bind(Container.Identifiers.PeerNetworkMonitor).toConstantValue(peerNetworkMonitor); }); beforeEach(() => { @@ -39,8 +38,10 @@ describe("CheckLastDownloadedBlockSynced", () => { }); describe("handle", () => { - it("should dispatch NOTSYNCED by default",() => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); + it("should dispatch NOTSYNCED by default", () => { + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); process.env.CORE_ENV = ""; checkLastDownloadedBlockSynced.handle(); @@ -49,8 +50,10 @@ describe("CheckLastDownloadedBlockSynced", () => { expect(blockchain.dispatch).toHaveBeenLastCalledWith("NOTSYNCED"); }); - it("should dispatch TEST when process.env.CORE_ENV === 'test'",() => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); + it("should dispatch TEST when process.env.CORE_ENV === 'test'", () => { + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); process.env.CORE_ENV = "test"; checkLastDownloadedBlockSynced.handle(); @@ -59,8 +62,10 @@ describe("CheckLastDownloadedBlockSynced", () => { expect(blockchain.dispatch).toHaveBeenLastCalledWith("TEST"); }); - it("should dispatch SYNCED when stateStore.networkStart",() => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); + it("should dispatch SYNCED when stateStore.networkStart", () => { + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); stateStore.networkStart = true; @@ -70,8 +75,10 @@ describe("CheckLastDownloadedBlockSynced", () => { expect(blockchain.dispatch).toHaveBeenLastCalledWith("SYNCED"); }); - it("should dispatch PAUSED when blockchain.queue.length() > 100",() => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); + it("should dispatch PAUSED when blockchain.queue.length() > 100", () => { + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); blockchain.queue.length = jest.fn().mockReturnValue(101); @@ -95,22 +102,26 @@ describe("CheckLastDownloadedBlockSynced", () => { }); it("should dispatch NETWORKHALTED when !networkStatus.forked", async () => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); - + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); + peerNetworkMonitor.checkNetworkHealth = jest.fn().mockReturnValueOnce({ forked: false }); await checkLastDownloadedBlockSynced.handle(); - + expect(blockchain.dispatch).toBeCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("NETWORKHALTED"); expect(stateStore.p2pUpdateCounter).toBe(0); // should be reset }); it("should dispatch FORK when networkStatus.forked", async () => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); - + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); + peerNetworkMonitor.checkNetworkHealth = jest.fn().mockReturnValueOnce({ forked: true }); await checkLastDownloadedBlockSynced.handle(); - + expect(blockchain.dispatch).toBeCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("FORK"); expect(stateStore.p2pUpdateCounter).toBe(0); // should be reset @@ -122,20 +133,24 @@ describe("CheckLastDownloadedBlockSynced", () => { stateStore.p2pUpdateCounter = 0; }); - it("should dispatch NETWORKHALTED and do stateStore.p2pUpdateCounter++",() => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); - + it("should dispatch NETWORKHALTED and do stateStore.p2pUpdateCounter++", () => { + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); + checkLastDownloadedBlockSynced.handle(); - + expect(blockchain.dispatch).toBeCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("NETWORKHALTED"); expect(stateStore.p2pUpdateCounter).toBe(1); // should have done counter++ }); }); - }) - + }); + it("should dispatch SYNCED when stateStore.lastDownloadedBlock && blockchain.isSynced()", () => { - const checkLastDownloadedBlockSynced = container.resolve(CheckLastDownloadedBlockSynced); + const checkLastDownloadedBlockSynced = container.resolve( + CheckLastDownloadedBlockSynced, + ); stateStore.lastDownloadedBlock = {}; blockchain.isSynced = jest.fn().mockReturnValueOnce(true); @@ -145,5 +160,5 @@ describe("CheckLastDownloadedBlockSynced", () => { expect(blockchain.dispatch).toBeCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("SYNCED"); }); - }) -}) \ No newline at end of file + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/check-later.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/check-later.test.ts index 1b277221df..5a013b05b0 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/check-later.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/check-later.test.ts @@ -1,7 +1,6 @@ import { Container } from "@arkecosystem/core-kernel"; import { CheckLater } from "../../../../../packages/core-blockchain/src/state-machine/actions/check-later"; - describe("CheckLater", () => { const container = new Container.Container(); @@ -13,8 +12,8 @@ describe("CheckLater", () => { beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); }); beforeEach(() => { @@ -22,21 +21,21 @@ describe("CheckLater", () => { }); describe("handle", () => { - it("should call blockchain.setWakeUp() when !blockchain.isStopped && !stateStore.wakeUpTimeout",() => { + it("should call blockchain.setWakeUp() when !blockchain.isStopped && !stateStore.wakeUpTimeout", () => { const checkLater = container.resolve(CheckLater); checkLater.handle(); expect(blockchain.setWakeUp).toHaveBeenCalledTimes(1); - }) - - it("should do nothing otherwise",() => { + }); + + it("should do nothing otherwise", () => { const checkLater = container.resolve(CheckLater); blockchain.isStopped = true; checkLater.handle(); expect(blockchain.setWakeUp).toHaveBeenCalledTimes(0); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/download-blocks.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/download-blocks.test.ts index f4ab40b546..40cd9aa2a0 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/download-blocks.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/download-blocks.test.ts @@ -2,7 +2,6 @@ import delay from "delay"; import { Container } from "@arkecosystem/core-kernel"; import { DownloadBlocks } from "../../../../../packages/core-blockchain/src/state-machine/actions/download-blocks"; - describe("DownloadBlocks", () => { const container = new Container.Container(); @@ -11,14 +10,14 @@ describe("DownloadBlocks", () => { dispatch: jest.fn(), queue: { length: () => 0 }, clearQueue: jest.fn(), - enqueueBlocks: jest.fn() + enqueueBlocks: jest.fn(), }; const lastBlock = { data: { id: "1234", height: 3333, timestamp: 11111 } }; const stateStore = { lastDownloadedBlock: undefined, - getLastBlock: () => lastBlock + getLastBlock: () => lastBlock, }; - const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), }; + const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn() }; const peerNetworkMonitor = { downloadBlocksFromHeight: jest.fn() }; const application = { get: () => peerNetworkMonitor }; @@ -26,10 +25,10 @@ describe("DownloadBlocks", () => { beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); - container.bind(Container.Identifiers.LogService).toConstantValue(logger); - container.bind(Container.Identifiers.PeerNetworkMonitor).toConstantValue(peerNetworkMonitor); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.LogService).toConstantValue(logger); + container.bind(Container.Identifiers.PeerNetworkMonitor).toConstantValue(peerNetworkMonitor); }); beforeEach(() => { @@ -54,14 +53,14 @@ describe("DownloadBlocks", () => { peerNetworkMonitor.downloadBlocksFromHeight = jest.fn().mockImplementationOnce(async () => { await delay(1000); return []; - }) + }); const handlePromise = downloadBlocks.handle(); stateStore.lastDownloadedBlock = { data: { id: "987", height: 233, timestamp: 111 } }; await handlePromise; - + expect(blockchain.dispatch).toHaveBeenCalledTimes(0); }); - + it("should dispatch NOBLOCK when downloadBlocksFromHeight returns no block", async () => { const downloadBlocks = container.resolve(DownloadBlocks); @@ -75,9 +74,7 @@ describe("DownloadBlocks", () => { it("should dispatch NOBLOCK when downloadBlocksFromHeight returns no chained block", async () => { const downloadBlocks = container.resolve(DownloadBlocks); - peerNetworkMonitor.downloadBlocksFromHeight = jest.fn().mockReturnValue([ - { height: 11 } - ]); + peerNetworkMonitor.downloadBlocksFromHeight = jest.fn().mockReturnValue([{ height: 11 }]); await downloadBlocks.handle(); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); @@ -91,8 +88,8 @@ describe("DownloadBlocks", () => { { height: lastBlock.data.height + 1, previousBlock: lastBlock.data.id, - timestamp: lastBlock.data.timestamp + 20 - } + timestamp: lastBlock.data.timestamp + 20, + }, ]); await downloadBlocks.handle(); @@ -108,14 +105,16 @@ describe("DownloadBlocks", () => { { height: lastBlock.data.height + 1, previousBlock: lastBlock.data.id, - timestamp: lastBlock.data.timestamp + 20 - } + timestamp: lastBlock.data.timestamp + 20, + }, ]); - blockchain.enqueueBlocks = jest.fn().mockImplementationOnce(() => { throw new Error("oops") }); + blockchain.enqueueBlocks = jest.fn().mockImplementationOnce(() => { + throw new Error("oops"); + }); await downloadBlocks.handle(); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenLastCalledWith("NOBLOCK"); }); - }) -}) \ No newline at end of file + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/download-finished.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/download-finished.test.ts index d0475c5a2c..ad15a408d4 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/download-finished.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/download-finished.test.ts @@ -1,22 +1,21 @@ import { Container } from "@arkecosystem/core-kernel"; import { DownloadFinished } from "../../../../../packages/core-blockchain/src/state-machine/actions/download-finished"; - describe("DownloadFinished", () => { const container = new Container.Container(); const blockchain = { dispatch: jest.fn(), queue: { idle: jest.fn() } }; const stateStore = { networkStart: false }; - const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), }; + const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn() }; const application = { resolve: jest.fn() }; beforeAll(() => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); - container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); - container.bind(Container.Identifiers.LogService).toConstantValue(logger); + container.bind(Container.Identifiers.BlockchainService).toConstantValue(blockchain); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.LogService).toConstantValue(logger); }); beforeEach(() => { @@ -24,7 +23,7 @@ describe("DownloadFinished", () => { }); describe("handle", () => { - it("should dispatch SYNCFINISHED when stateStore.networkStart",() => { + it("should dispatch SYNCFINISHED when stateStore.networkStart", () => { const downloadFinished = container.resolve(DownloadFinished); stateStore.networkStart = true; @@ -32,9 +31,9 @@ describe("DownloadFinished", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("SYNCFINISHED"); - }) - - it("should dispatch PROCESSFINISHED when blockchain.queue.idle()",() => { + }); + + it("should dispatch PROCESSFINISHED when blockchain.queue.idle()", () => { const downloadFinished = container.resolve(DownloadFinished); blockchain.queue.idle = jest.fn().mockReturnValueOnce(true); @@ -42,14 +41,14 @@ describe("DownloadFinished", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("PROCESSFINISHED"); - }) + }); - it("should dispatch nothing when !blockchain.queue.idle()",() => { + it("should dispatch nothing when !blockchain.queue.idle()", () => { const downloadFinished = container.resolve(DownloadFinished); downloadFinished.handle(); expect(blockchain.dispatch).toHaveBeenCalledTimes(0); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/download-paused.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/download-paused.test.ts index aff1ff4200..4d97e6624f 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/download-paused.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/download-paused.test.ts @@ -4,13 +4,13 @@ import { DownloadPaused } from "../../../../../packages/core-blockchain/src/stat describe("DownloadPaused", () => { const container = new Container.Container(); - const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), }; + const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn() }; const application = { resolve: jest.fn() }; beforeAll(() => { container.unbindAll(); - container.bind(Container.Identifiers.Application).toConstantValue(application); + container.bind(Container.Identifiers.Application).toConstantValue(application); container.bind(Container.Identifiers.LogService).toConstantValue(logger); }); @@ -19,13 +19,13 @@ describe("DownloadPaused", () => { }); describe("handle", () => { - it("should log 'Blockchain download paused'",() => { + it("should log 'Blockchain download paused'", () => { const downloadPaused = container.resolve(DownloadPaused); downloadPaused.handle(); expect(logger.info).toHaveBeenCalledTimes(1); expect(logger.info).toHaveBeenCalledWith("Blockchain download paused"); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/exit-app.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/exit-app.test.ts index 444c41d9b5..5646da7246 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/exit-app.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/exit-app.test.ts @@ -16,12 +16,12 @@ describe("ExitApp", () => { }); describe("handle", () => { - it("should call app.terminate()",() => { + it("should call app.terminate()", () => { const exitApp = container.resolve(ExitApp); exitApp.handle(); expect(application.terminate).toHaveBeenCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/initialize.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/initialize.test.ts index 28e270bb2e..5b2a3110ff 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/initialize.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/initialize.test.ts @@ -5,12 +5,12 @@ import { Managers } from "@arkecosystem/crypto"; describe("Initialize", () => { const container = new Container.Container(); - const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), notice: jest.fn(), }; + const logger = { warning: jest.fn(), debug: jest.fn(), info: jest.fn(), error: jest.fn(), notice: jest.fn() }; const blockchain = { dispatch: jest.fn() }; const stateStore = { getLastBlock: jest.fn(), setLastBlock: jest.fn(), - networkStart: undefined + networkStart: undefined, }; const transactionPool = { readdTransactions: jest.fn() }; const databaseService = { @@ -46,8 +46,8 @@ describe("Initialize", () => { const lastBlock = { data: { id: "345", - height: 5554 - } + height: 5554, + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); databaseService.restoredDatabaseIntegrity = true; @@ -62,8 +62,8 @@ describe("Initialize", () => { expect(peerNetworkMonitor.boot).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("STARTED"); - }) - }) + }); + }); describe("when !databaseService.restoredDatabaseIntegrity", () => { it("should dispatch ROLLBACK when databaseService.verifyBlockchain() returns false", async () => { @@ -72,8 +72,8 @@ describe("Initialize", () => { const lastBlock = { data: { id: "345", - height: 5554 - } + height: 5554, + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); databaseService.restoredDatabaseIntegrity = false; @@ -82,7 +82,7 @@ describe("Initialize", () => { await initialize.handle(); expect(blockchain.dispatch).toHaveBeenCalledWith("ROLLBACK"); - }) + }); it("should dispatch STARTED when databaseService.verifyBlockchain() returns true", async () => { const initialize = container.resolve(Initialize); @@ -90,8 +90,8 @@ describe("Initialize", () => { const lastBlock = { data: { id: "345", - height: 5554 - } + height: 5554, + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); databaseService.restoredDatabaseIntegrity = false; @@ -100,8 +100,8 @@ describe("Initialize", () => { await initialize.handle(); expect(blockchain.dispatch).toHaveBeenCalledWith("STARTED"); - }) - }) + }); + }); describe("when block.data.height === 1", () => { it("should dispatch FAILURE when block payloadHash is !== network hash", async () => { @@ -111,8 +111,8 @@ describe("Initialize", () => { data: { id: "345", height: 1, - payloadHash: "6d84d08bd299ed97c212c886c98a57e36545c8f5d645ca7eeae63a8bd62d8988" - } + payloadHash: "6d84d08bd299ed97c212c886c98a57e36545c8f5d645ca7eeae63a8bd62d8988", + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); databaseService.restoredDatabaseIntegrity = true; @@ -120,7 +120,7 @@ describe("Initialize", () => { await initialize.handle(); expect(blockchain.dispatch).toHaveBeenCalledWith("FAILURE"); - }) + }); it("should dispatch STARTED and databaseService.deleteRound(1) when block payloadHash === network hash", async () => { const initialize = container.resolve(Initialize); @@ -129,8 +129,8 @@ describe("Initialize", () => { data: { id: "345", height: 1, - payloadHash: Managers.configManager.get("network.nethash") - } + payloadHash: Managers.configManager.get("network.nethash"), + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); databaseService.restoredDatabaseIntegrity = true; @@ -139,8 +139,8 @@ describe("Initialize", () => { expect(databaseService.deleteRound).toHaveBeenCalledWith(1); expect(blockchain.dispatch).toHaveBeenCalledWith("STARTED"); - }) - }) + }); + }); describe("when stateStore.networkStart", () => { it("should dispatch STARTED", async () => { @@ -150,8 +150,8 @@ describe("Initialize", () => { data: { id: "345", height: 334, - payloadHash: Managers.configManager.get("network.nethash") - } + payloadHash: Managers.configManager.get("network.nethash"), + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); stateStore.networkStart = true; @@ -160,8 +160,8 @@ describe("Initialize", () => { await initialize.handle(); expect(blockchain.dispatch).toHaveBeenCalledWith("STARTED"); - }) - }) + }); + }); describe("when process.env.NODE_ENV === 'test'", () => { it("should dispatch STARTED", async () => { @@ -171,8 +171,8 @@ describe("Initialize", () => { data: { id: "345", height: 334, - payloadHash: Managers.configManager.get("network.nethash") - } + payloadHash: Managers.configManager.get("network.nethash"), + }, }; stateStore.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); stateStore.networkStart = false; @@ -188,22 +188,22 @@ describe("Initialize", () => { expect(peerNetworkMonitor.boot).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("STARTED"); - }) - }) + }); + }); describe("when something throws an exception", () => { it("should dispatch FAILURE", async () => { const initialize = container.resolve(Initialize); stateStore.getLastBlock = jest.fn().mockImplementationOnce(() => { - throw new Error("oops") + throw new Error("oops"); }); databaseService.restoredDatabaseIntegrity = true; process.env.NODE_ENV = ""; await initialize.handle(); expect(blockchain.dispatch).toHaveBeenCalledWith("FAILURE"); - }) - }) - }) -}) \ No newline at end of file + }); + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/rollback-database.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/rollback-database.test.ts index 0649d408c5..38abd8e5a4 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/rollback-database.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/rollback-database.test.ts @@ -16,8 +16,8 @@ describe("RollbackDatabase", () => { }; const mapConfiguration = { "databaseRollback.maxBlockRewind": 20, - "databaseRollback.steps": 5 - } + "databaseRollback.steps": 5, + }; const configuration = { getRequired: (key) => mapConfiguration[key] }; const application = { get: jest.fn() }; @@ -42,11 +42,12 @@ describe("RollbackDatabase", () => { const lastBlock = { data: { id: "123", - height: 5556 - } + height: 5556, + }, }; databaseService.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); - databaseService.verifyBlockchain = jest.fn() + databaseService.verifyBlockchain = jest + .fn() .mockReturnValueOnce(false) .mockReturnValueOnce(false) .mockReturnValueOnce(false) @@ -56,7 +57,7 @@ describe("RollbackDatabase", () => { expect(databaseService.verifyBlockchain).toHaveBeenCalledTimes(5); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("SUCCESS"); - }) + }); it("should dispatch FAILURE when !databaseService.verifyBlockchain() after trying according to maxBlockRewind and steps", async () => { const rollbackDatabase = container.resolve(RollbackDatabase); @@ -64,11 +65,12 @@ describe("RollbackDatabase", () => { const lastBlock = { data: { id: "123", - height: 5556 - } + height: 5556, + }, }; databaseService.getLastBlock = jest.fn().mockReturnValueOnce(lastBlock); - databaseService.verifyBlockchain = jest.fn() + databaseService.verifyBlockchain = jest + .fn() .mockReturnValueOnce(false) .mockReturnValueOnce(false) .mockReturnValueOnce(false) @@ -81,6 +83,6 @@ describe("RollbackDatabase", () => { expect(databaseService.verifyBlockchain).toHaveBeenCalledTimes(6); expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("FAILURE"); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/start-fork-recovery.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/start-fork-recovery.test.ts index 134bc1d514..fad2208140 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/start-fork-recovery.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/start-fork-recovery.test.ts @@ -9,7 +9,7 @@ describe("StartForkRecovery", () => { dispatch: jest.fn(), clearAndStopQueue: jest.fn(), removeBlocks: jest.fn(), - queue: { resume: jest.fn() } + queue: { resume: jest.fn() }, }; const stateStore = { numberOfBlocksToRollback: undefined }; const peerNetworkMonitor = { refreshPeersAfterFork: jest.fn() }; @@ -43,12 +43,12 @@ describe("StartForkRecovery", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("SUCCESS"); expect(blockchain.queue.resume).toHaveBeenCalledTimes(1); - }) + }); it("should remove stateStore.numberOfBlocksToRollback blocks when defined", async () => { const startForkRecovery = container.resolve(StartForkRecovery); - stateStore.numberOfBlocksToRollback = 7 + stateStore.numberOfBlocksToRollback = 7; await startForkRecovery.handle(); expect(stateStore.numberOfBlocksToRollback).toBeUndefined(); @@ -59,6 +59,6 @@ describe("StartForkRecovery", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("SUCCESS"); expect(blockchain.queue.resume).toHaveBeenCalledTimes(1); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/stopped.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/stopped.test.ts index 789fe0506c..63627e8428 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/stopped.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/stopped.test.ts @@ -26,6 +26,6 @@ describe("Stopped", () => { expect(logger.info).toHaveBeenCalledTimes(1); expect(logger.info).toHaveBeenCalledWith("The blockchain has been stopped"); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/actions/syncing-complete.test.ts b/__tests__/unit/core-blockchain/state-machine/actions/syncing-complete.test.ts index 676927a754..dcb835c220 100644 --- a/__tests__/unit/core-blockchain/state-machine/actions/syncing-complete.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/actions/syncing-complete.test.ts @@ -28,6 +28,6 @@ describe("Stopped", () => { expect(blockchain.dispatch).toHaveBeenCalledTimes(1); expect(blockchain.dispatch).toHaveBeenCalledWith("SYNCFINISHED"); - }) - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-blockchain/state-machine/state-machine.test.ts b/__tests__/unit/core-blockchain/state-machine/state-machine.test.ts index 30110953d0..b2d8e5e909 100644 --- a/__tests__/unit/core-blockchain/state-machine/state-machine.test.ts +++ b/__tests__/unit/core-blockchain/state-machine/state-machine.test.ts @@ -3,7 +3,6 @@ import { Container } from "@arkecosystem/core-kernel"; import { StateMachine } from "../../../../packages/core-blockchain/src/state-machine/state-machine"; import { blockchainMachine } from "../../../../packages/core-blockchain/src/state-machine/machine"; - describe("State machine", () => { const container = new Container.Container(); @@ -16,7 +15,7 @@ describe("State machine", () => { container.unbindAll(); container.bind(Container.Identifiers.Application).toConstantValue(application); container.bind(Container.Identifiers.LogService).toConstantValue(logService); - container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); + container.bind(Container.Identifiers.StateStore).toConstantValue(stateStore); }); beforeEach(() => { @@ -24,7 +23,7 @@ describe("State machine", () => { }); describe("transition", () => { - it("should use blockchainMachine.transition to get next state and return it",() => { + it("should use blockchainMachine.transition to get next state and return it", () => { const stateMachine = container.resolve(StateMachine); const mockNextState = { state: "next", actions: [] }; @@ -32,38 +31,37 @@ describe("State machine", () => { const nextState = stateMachine.transition("EVENT"); expect(nextState).toEqual(mockNextState); - }) + }); describe("when there are actions associated to the next state", () => { it("should log an error if the action cannot be resolved", () => { const stateMachine = container.resolve(StateMachine); - + const nextAction = "dothis"; - const mockNextState = { state: "next", actions: [ nextAction ] }; + const mockNextState = { state: "next", actions: [nextAction] }; jest.spyOn(blockchainMachine, "transition").mockReturnValueOnce(mockNextState); const nextState = stateMachine.transition("EVENT"); - + expect(nextState).toEqual(mockNextState); expect(logService.error).toHaveBeenCalledTimes(1); - expect(logService.error).toHaveBeenLastCalledWith(`No action '${nextAction}' found`); + expect(logService.error).toHaveBeenLastCalledWith(`No action '${nextAction}' found`); }); it("should execute the action", async () => { const stateMachine = container.resolve(StateMachine); - + const nextAction = "dothis"; - const mockNextState = { state: "next", actions: [ nextAction ] }; + const mockNextState = { state: "next", actions: [nextAction] }; jest.spyOn(blockchainMachine, "transition").mockReturnValueOnce(mockNextState); const handle = jest.fn(); application.resolve = jest.fn().mockReturnValue({ handle }); - + const nextState = stateMachine.transition("EVENT"); await delay(100); // just to give time for setImmediate to launch expect(nextState).toEqual(mockNextState); expect(handle).toHaveBeenCalledTimes(1); }); - }) - - }) -}) \ No newline at end of file + }); + }); +}); diff --git a/__tests__/unit/core-cli/actions/abort-errored-process.test.ts b/__tests__/unit/core-cli/actions/abort-errored-process.test.ts index 19a5768332..c689d53e1a 100644 --- a/__tests__/unit/core-cli/actions/abort-errored-process.test.ts +++ b/__tests__/unit/core-cli/actions/abort-errored-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AbortErroredProcess) - .to(AbortErroredProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AbortErroredProcess).to(AbortErroredProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.AbortErroredProcess); }); diff --git a/__tests__/unit/core-cli/actions/abort-missing-process.test.ts b/__tests__/unit/core-cli/actions/abort-missing-process.test.ts index e20ea049e6..2dc2fef9a8 100644 --- a/__tests__/unit/core-cli/actions/abort-missing-process.test.ts +++ b/__tests__/unit/core-cli/actions/abort-missing-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AbortMissingProcess) - .to(AbortMissingProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AbortMissingProcess).to(AbortMissingProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.AbortMissingProcess); }); diff --git a/__tests__/unit/core-cli/actions/abort-running-process.test.ts b/__tests__/unit/core-cli/actions/abort-running-process.test.ts index 060ff71ca9..be9869d9b8 100644 --- a/__tests__/unit/core-cli/actions/abort-running-process.test.ts +++ b/__tests__/unit/core-cli/actions/abort-running-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AbortRunningProcess) - .to(AbortRunningProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AbortRunningProcess).to(AbortRunningProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.AbortRunningProcess); }); diff --git a/__tests__/unit/core-cli/actions/abort-stopped-process.test.ts b/__tests__/unit/core-cli/actions/abort-stopped-process.test.ts index 711954bb7c..edf3a41dd4 100644 --- a/__tests__/unit/core-cli/actions/abort-stopped-process.test.ts +++ b/__tests__/unit/core-cli/actions/abort-stopped-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AbortStoppedProcess) - .to(AbortStoppedProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AbortStoppedProcess).to(AbortStoppedProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.AbortStoppedProcess); }); diff --git a/__tests__/unit/core-cli/actions/abort-unknown-process.test.ts b/__tests__/unit/core-cli/actions/abort-unknown-process.test.ts index 85103bc244..ed4299495e 100644 --- a/__tests__/unit/core-cli/actions/abort-unknown-process.test.ts +++ b/__tests__/unit/core-cli/actions/abort-unknown-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AbortUnknownProcess) - .to(AbortUnknownProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AbortUnknownProcess).to(AbortUnknownProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.AbortUnknownProcess); }); diff --git a/__tests__/unit/core-cli/actions/daemonize-process.test.ts b/__tests__/unit/core-cli/actions/daemonize-process.test.ts index 749cdbd499..2ab6089bbc 100644 --- a/__tests__/unit/core-cli/actions/daemonize-process.test.ts +++ b/__tests__/unit/core-cli/actions/daemonize-process.test.ts @@ -12,10 +12,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.DaemonizeProcess) - .to(DaemonizeProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.DaemonizeProcess).to(DaemonizeProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.DaemonizeProcess); }); diff --git a/__tests__/unit/core-cli/actions/restart-process.test.ts b/__tests__/unit/core-cli/actions/restart-process.test.ts index 96652913f0..3c2edbd95b 100644 --- a/__tests__/unit/core-cli/actions/restart-process.test.ts +++ b/__tests__/unit/core-cli/actions/restart-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.RestartProcess) - .to(RestartProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.RestartProcess).to(RestartProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.RestartProcess); }); diff --git a/__tests__/unit/core-cli/actions/restart-running-process.test.ts b/__tests__/unit/core-cli/actions/restart-running-process.test.ts index 5a957e1252..7a079a1af3 100644 --- a/__tests__/unit/core-cli/actions/restart-running-process.test.ts +++ b/__tests__/unit/core-cli/actions/restart-running-process.test.ts @@ -13,10 +13,7 @@ beforeEach(() => { processManager = cli.app.get(Container.Identifiers.ProcessManager); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.RestartRunningProcess) - .to(RestartRunningProcess) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.RestartRunningProcess).to(RestartRunningProcess).inSingletonScope(); action = cli.app.get(Container.Identifiers.RestartRunningProcess); }); diff --git a/__tests__/unit/core-cli/components/app-header.test.ts b/__tests__/unit/core-cli/components/app-header.test.ts index bc59950eff..88e425fc24 100644 --- a/__tests__/unit/core-cli/components/app-header.test.ts +++ b/__tests__/unit/core-cli/components/app-header.test.ts @@ -11,10 +11,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AppHeader) - .to(AppHeader) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AppHeader).to(AppHeader).inSingletonScope(); component = cli.app.get(Container.Identifiers.AppHeader); }); diff --git a/__tests__/unit/core-cli/components/ask-date.test.ts b/__tests__/unit/core-cli/components/ask-date.test.ts index 58b9d2e928..21fb14da87 100644 --- a/__tests__/unit/core-cli/components/ask-date.test.ts +++ b/__tests__/unit/core-cli/components/ask-date.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AskDate) - .to(AskDate) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AskDate).to(AskDate).inSingletonScope(); component = cli.app.get(Container.Identifiers.AskDate); }); diff --git a/__tests__/unit/core-cli/components/ask-hidden.test.ts b/__tests__/unit/core-cli/components/ask-hidden.test.ts index 34c3fbb03a..d559696869 100644 --- a/__tests__/unit/core-cli/components/ask-hidden.test.ts +++ b/__tests__/unit/core-cli/components/ask-hidden.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AskHidden) - .to(AskHidden) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AskHidden).to(AskHidden).inSingletonScope(); component = cli.app.get(Container.Identifiers.AskHidden); }); diff --git a/__tests__/unit/core-cli/components/ask-number.test.ts b/__tests__/unit/core-cli/components/ask-number.test.ts index ebd548d811..cdf85f0855 100644 --- a/__tests__/unit/core-cli/components/ask-number.test.ts +++ b/__tests__/unit/core-cli/components/ask-number.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AskNumber) - .to(AskNumber) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AskNumber).to(AskNumber).inSingletonScope(); component = cli.app.get(Container.Identifiers.AskNumber); }); diff --git a/__tests__/unit/core-cli/components/ask-password.test.ts b/__tests__/unit/core-cli/components/ask-password.test.ts index cb1822ab59..7327b7a166 100644 --- a/__tests__/unit/core-cli/components/ask-password.test.ts +++ b/__tests__/unit/core-cli/components/ask-password.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AskPassword) - .to(AskPassword) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AskPassword).to(AskPassword).inSingletonScope(); component = cli.app.get(Container.Identifiers.AskPassword); }); diff --git a/__tests__/unit/core-cli/components/ask.test.ts b/__tests__/unit/core-cli/components/ask.test.ts index 5092054c26..2180476494 100644 --- a/__tests__/unit/core-cli/components/ask.test.ts +++ b/__tests__/unit/core-cli/components/ask.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Ask) - .to(Ask) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Ask).to(Ask).inSingletonScope(); component = cli.app.get(Container.Identifiers.Ask); }); diff --git a/__tests__/unit/core-cli/components/auto-complete.test.ts b/__tests__/unit/core-cli/components/auto-complete.test.ts index 92bd1c85e5..03b37acf76 100644 --- a/__tests__/unit/core-cli/components/auto-complete.test.ts +++ b/__tests__/unit/core-cli/components/auto-complete.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.AutoComplete) - .to(AutoComplete) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.AutoComplete).to(AutoComplete).inSingletonScope(); component = cli.app.get(Container.Identifiers.AutoComplete); }); diff --git a/__tests__/unit/core-cli/components/box.test.ts b/__tests__/unit/core-cli/components/box.test.ts index 477cf0f629..a2b1707088 100644 --- a/__tests__/unit/core-cli/components/box.test.ts +++ b/__tests__/unit/core-cli/components/box.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Box) - .to(Box) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Box).to(Box).inSingletonScope(); component = cli.app.get(Container.Identifiers.Box); }); diff --git a/__tests__/unit/core-cli/components/clear.test.ts b/__tests__/unit/core-cli/components/clear.test.ts index fc812ab5e0..8af891930f 100644 --- a/__tests__/unit/core-cli/components/clear.test.ts +++ b/__tests__/unit/core-cli/components/clear.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Clear) - .to(Clear) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Clear).to(Clear).inSingletonScope(); component = cli.app.get(Container.Identifiers.Clear); }); diff --git a/__tests__/unit/core-cli/components/confirm.test.ts b/__tests__/unit/core-cli/components/confirm.test.ts index 574c3a9ca6..dff03967ed 100644 --- a/__tests__/unit/core-cli/components/confirm.test.ts +++ b/__tests__/unit/core-cli/components/confirm.test.ts @@ -12,10 +12,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Confirm) - .to(Confirm) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Confirm).to(Confirm).inSingletonScope(); component = cli.app.get(Container.Identifiers.Confirm); }); diff --git a/__tests__/unit/core-cli/components/error.test.ts b/__tests__/unit/core-cli/components/error.test.ts index 1ae7e42f7b..67ced637f1 100644 --- a/__tests__/unit/core-cli/components/error.test.ts +++ b/__tests__/unit/core-cli/components/error.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Error) - .to(Error) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Error).to(Error).inSingletonScope(); component = cli.app.get(Container.Identifiers.Error); }); diff --git a/__tests__/unit/core-cli/components/fatal.test.ts b/__tests__/unit/core-cli/components/fatal.test.ts index 12b8310db0..853750aae7 100644 --- a/__tests__/unit/core-cli/components/fatal.test.ts +++ b/__tests__/unit/core-cli/components/fatal.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Fatal) - .to(Fatal) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Fatal).to(Fatal).inSingletonScope(); component = cli.app.get(Container.Identifiers.Fatal); }); diff --git a/__tests__/unit/core-cli/components/info.test.ts b/__tests__/unit/core-cli/components/info.test.ts index 4185083961..6684fe9ba3 100644 --- a/__tests__/unit/core-cli/components/info.test.ts +++ b/__tests__/unit/core-cli/components/info.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Info) - .to(Info) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Info).to(Info).inSingletonScope(); component = cli.app.get(Container.Identifiers.Info); }); diff --git a/__tests__/unit/core-cli/components/listing.test.ts b/__tests__/unit/core-cli/components/listing.test.ts index 62a042aa37..c731907d46 100644 --- a/__tests__/unit/core-cli/components/listing.test.ts +++ b/__tests__/unit/core-cli/components/listing.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Listing) - .to(Listing) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Listing).to(Listing).inSingletonScope(); component = cli.app.get(Container.Identifiers.Listing); }); diff --git a/__tests__/unit/core-cli/components/log.test.ts b/__tests__/unit/core-cli/components/log.test.ts index c1f9f0e3f0..cf205ad3c9 100644 --- a/__tests__/unit/core-cli/components/log.test.ts +++ b/__tests__/unit/core-cli/components/log.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Log) - .to(Log) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Log).to(Log).inSingletonScope(); component = cli.app.get(Container.Identifiers.Log); }); diff --git a/__tests__/unit/core-cli/components/multi-select.test.ts b/__tests__/unit/core-cli/components/multi-select.test.ts index 5fb4948a8e..71917530c4 100644 --- a/__tests__/unit/core-cli/components/multi-select.test.ts +++ b/__tests__/unit/core-cli/components/multi-select.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.MultiSelect) - .to(MultiSelect) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.MultiSelect).to(MultiSelect).inSingletonScope(); component = cli.app.get(Container.Identifiers.MultiSelect); }); diff --git a/__tests__/unit/core-cli/components/new-line.test.ts b/__tests__/unit/core-cli/components/new-line.test.ts index 210c9e4e1c..6ea6f9ce7f 100644 --- a/__tests__/unit/core-cli/components/new-line.test.ts +++ b/__tests__/unit/core-cli/components/new-line.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.NewLine) - .to(NewLine) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.NewLine).to(NewLine).inSingletonScope(); component = cli.app.get(Container.Identifiers.NewLine); }); diff --git a/__tests__/unit/core-cli/components/prompt.test.ts b/__tests__/unit/core-cli/components/prompt.test.ts index 625793e8e7..e3eab88be5 100644 --- a/__tests__/unit/core-cli/components/prompt.test.ts +++ b/__tests__/unit/core-cli/components/prompt.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Prompt) - .to(Prompt) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Prompt).to(Prompt).inSingletonScope(); component = cli.app.get(Container.Identifiers.Prompt); }); diff --git a/__tests__/unit/core-cli/components/select.test.ts b/__tests__/unit/core-cli/components/select.test.ts index 1c800fe192..a3c6b5ea7c 100644 --- a/__tests__/unit/core-cli/components/select.test.ts +++ b/__tests__/unit/core-cli/components/select.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Select) - .to(Select) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Select).to(Select).inSingletonScope(); component = cli.app.get(Container.Identifiers.Select); }); diff --git a/__tests__/unit/core-cli/components/spinner.test.ts b/__tests__/unit/core-cli/components/spinner.test.ts index b7290ab5d7..4a4f46402e 100644 --- a/__tests__/unit/core-cli/components/spinner.test.ts +++ b/__tests__/unit/core-cli/components/spinner.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Spinner) - .to(Spinner) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Spinner).to(Spinner).inSingletonScope(); component = cli.app.get(Container.Identifiers.Spinner); }); diff --git a/__tests__/unit/core-cli/components/success.test.ts b/__tests__/unit/core-cli/components/success.test.ts index 5ae93e0e41..36dc54b537 100644 --- a/__tests__/unit/core-cli/components/success.test.ts +++ b/__tests__/unit/core-cli/components/success.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Success) - .to(Success) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Success).to(Success).inSingletonScope(); component = cli.app.get(Container.Identifiers.Success); }); diff --git a/__tests__/unit/core-cli/components/table.test.ts b/__tests__/unit/core-cli/components/table.test.ts index 69d44f5619..fdba9f7580 100644 --- a/__tests__/unit/core-cli/components/table.test.ts +++ b/__tests__/unit/core-cli/components/table.test.ts @@ -9,19 +9,16 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Table) - .to(Table) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Table).to(Table).inSingletonScope(); component = cli.app.get(Container.Identifiers.Table); }); describe("Table", () => { it("should render the component", () => { let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); - component.render(["ID", "Name"], table => { + component.render(["ID", "Name"], (table) => { table.push([1, "John Doe"]); table.push([2, "Jane Doe"]); }); diff --git a/__tests__/unit/core-cli/components/task-list.test.ts b/__tests__/unit/core-cli/components/task-list.test.ts index 6d20955e66..8ecc260825 100644 --- a/__tests__/unit/core-cli/components/task-list.test.ts +++ b/__tests__/unit/core-cli/components/task-list.test.ts @@ -9,10 +9,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.TaskList) - .to(TaskList) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.TaskList).to(TaskList).inSingletonScope(); component = cli.app.get(Container.Identifiers.TaskList); }); diff --git a/__tests__/unit/core-cli/components/title.test.ts b/__tests__/unit/core-cli/components/title.test.ts index 62fdb3e2b3..6e576d0424 100644 --- a/__tests__/unit/core-cli/components/title.test.ts +++ b/__tests__/unit/core-cli/components/title.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Title) - .to(Title) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Title).to(Title).inSingletonScope(); component = cli.app.get(Container.Identifiers.Title); }); diff --git a/__tests__/unit/core-cli/components/toggle.test.ts b/__tests__/unit/core-cli/components/toggle.test.ts index d4bc86a546..8fe51860fd 100644 --- a/__tests__/unit/core-cli/components/toggle.test.ts +++ b/__tests__/unit/core-cli/components/toggle.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Toggle) - .to(Toggle) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Toggle).to(Toggle).inSingletonScope(); component = cli.app.get(Container.Identifiers.Toggle); }); diff --git a/__tests__/unit/core-cli/components/warning.test.ts b/__tests__/unit/core-cli/components/warning.test.ts index be9b182acd..ebffc928ad 100644 --- a/__tests__/unit/core-cli/components/warning.test.ts +++ b/__tests__/unit/core-cli/components/warning.test.ts @@ -10,10 +10,7 @@ beforeEach(() => { cli = new Console(); // Bind from src instead of dist to collect coverage. - cli.app - .rebind(Container.Identifiers.Warning) - .to(Warning) - .inSingletonScope(); + cli.app.rebind(Container.Identifiers.Warning).to(Warning).inSingletonScope(); component = cli.app.get(Container.Identifiers.Warning); }); diff --git a/__tests__/unit/core-cli/services/updater.test.ts b/__tests__/unit/core-cli/services/updater.test.ts index 414a7063ea..dc49803601 100644 --- a/__tests__/unit/core-cli/services/updater.test.ts +++ b/__tests__/unit/core-cli/services/updater.test.ts @@ -32,9 +32,7 @@ afterAll(() => nock.enableNetConnect()); describe("Updater", () => { describe("#check", () => { it("should forget the latest version if it has one from a previous check", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionNext); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionNext); config.set("latestVersion", {}); @@ -45,9 +43,7 @@ describe("Updater", () => { }); it("should return false if the latest version cannot be retrieved", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, {}); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, {}); const spyWarning = jest.spyOn(cli.app.get(Container.Identifiers.Warning), "render"); @@ -56,17 +52,13 @@ describe("Updater", () => { }); it("should return false if the latest version is already installed", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionNext); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionNext); await expect(updater.check()).resolves.toBeFalse(); }); it("should return false if the last check has been within the last 24 hours ago", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionNext); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionNext); config.set("lastUpdateCheck", Date.now()); @@ -82,9 +74,7 @@ describe("Updater", () => { ...{ version: "4.0.0-next.0" }, }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); config.set("latestVersion", {}); @@ -110,9 +100,7 @@ describe("Updater", () => { ...{ version: "4.0.0-next.0" }, }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const spySync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -143,9 +131,7 @@ describe("Updater", () => { ...{ version: "4.0.0-next.0" }, }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const spySync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -178,9 +164,7 @@ describe("Updater", () => { ...{ version: "4.0.0-next.0" }, }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const spySync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", diff --git a/__tests__/unit/core-cli/utils/process.test.ts b/__tests__/unit/core-cli/utils/process.test.ts index 144ddff0ae..2f61c836a2 100644 --- a/__tests__/unit/core-cli/utils/process.test.ts +++ b/__tests__/unit/core-cli/utils/process.test.ts @@ -154,7 +154,7 @@ describe("Process", () => { }); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); proc.status(); diff --git a/__tests__/unit/core-cli/utils/update.ts b/__tests__/unit/core-cli/utils/update.ts index 6a899d2f84..f533b90714 100644 --- a/__tests__/unit/core-cli/utils/update.ts +++ b/__tests__/unit/core-cli/utils/update.ts @@ -18,17 +18,13 @@ describe("getLatestVersion", () => { }); it("should get the npm registry channel (latest)", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionLatest); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionLatest); await expect(getLatestVersion("@arkecosystem/core", "latest")).resolves.toBe("2.5.24"); }); it("should get the npm registry channel (next)", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionNext); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionNext); await expect(getLatestVersion("@arkecosystem/core", "next")).resolves.toBe("2.5.0-next.10"); }); diff --git a/__tests__/unit/core-cli/utils/update/check-for-updates.ts b/__tests__/unit/core-cli/utils/update/check-for-updates.ts index 527911c117..e63f39c71d 100644 --- a/__tests__/unit/core-cli/utils/update/check-for-updates.ts +++ b/__tests__/unit/core-cli/utils/update/check-for-updates.ts @@ -33,9 +33,7 @@ describe("checkForUpdates", () => { }); it("should find a new version if the npm registry is up", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionLatest); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionLatest); await expect( checkForUpdates({ diff --git a/__tests__/unit/core-forger/client.test.ts b/__tests__/unit/core-forger/client.test.ts index 5541b5ac8a..0217f12b15 100644 --- a/__tests__/unit/core-forger/client.test.ts +++ b/__tests__/unit/core-forger/client.test.ts @@ -198,15 +198,15 @@ describe("Client", () => { }); it("should log debug message when no sockets are open", async () => { - hosts.forEach(host => (host.socket.getState = () => "closed")); + hosts.forEach((host) => (host.socket.getState = () => "closed")); client.register(hosts); await expect(client.selectHost()).rejects.toThrow( - `${hosts.map(host => host.hostname).join()} didn't respond. Trying again later.`, + `${hosts.map((host) => host.hostname).join()} didn't respond. Trying again later.`, ); expect(logger.debug).toHaveBeenCalledWith( `No open socket connection to any host: ${JSON.stringify( - hosts.map(host => `${host.hostname}:${host.port}`), + hosts.map((host) => `${host.hostname}:${host.port}`), )}.`, ); }); diff --git a/__tests__/unit/core-forger/forger-service.test.ts b/__tests__/unit/core-forger/forger-service.test.ts index d1599cc244..4203c79493 100644 --- a/__tests__/unit/core-forger/forger-service.test.ts +++ b/__tests__/unit/core-forger/forger-service.test.ts @@ -136,7 +136,7 @@ describe("ForgerService", () => { "active delegate", delegates.length, true, - )}: ${delegates.map(wallet => `${wallet.delegate.username} (${wallet.publicKey})`).join(", ")}`; + )}: ${delegates.map((wallet) => `${wallet.delegate.username} (${wallet.publicKey})`).join(", ")}`; expect(logger.info).toHaveBeenCalledWith(expectedInfoMessage); }); @@ -169,7 +169,7 @@ describe("ForgerService", () => { true, )}: ${delegates .slice(numberActive) - .map(delegate => delegate.publicKey) + .map((delegate) => delegate.publicKey) .join(", ")}`; forgerService.register({ hosts: [mockHost] }); diff --git a/__tests__/unit/core-forger/service-provider.test.ts b/__tests__/unit/core-forger/service-provider.test.ts index 5fa7d55b94..9fb336b544 100644 --- a/__tests__/unit/core-forger/service-provider.test.ts +++ b/__tests__/unit/core-forger/service-provider.test.ts @@ -49,9 +49,7 @@ describe("ServiceProvider", () => { it("should fail to register when mock options are now set", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -80,9 +78,7 @@ describe("ServiceProvider", () => { it("should register with the correct config", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -112,9 +108,7 @@ describe("ServiceProvider", () => { it("boot should set bip 39 delegates and start tracker", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -142,7 +136,7 @@ describe("ServiceProvider", () => { app.config( "delegates.secrets", - calculateActiveDelegates().map(delegate => delegate.publicKey), + calculateActiveDelegates().map((delegate) => delegate.publicKey), ); app.config("app.flags", { @@ -157,9 +151,7 @@ describe("ServiceProvider", () => { it("boot should set bip 38 delegates and start tracker", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -234,9 +226,7 @@ describe("ServiceProvider", () => { app.bind(Container.Identifiers.WalletRepository).to(MockWalletRepository); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -265,7 +255,7 @@ describe("ServiceProvider", () => { app.config( "delegates.secrets", - calculateActiveDelegates().map(delegate => delegate.publicKey), + calculateActiveDelegates().map((delegate) => delegate.publicKey), ); app.config("app.flags", { @@ -326,9 +316,7 @@ describe("ServiceProvider", () => { app.bind(Container.Identifiers.WalletRepository).to(MockWalletRepository); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -382,9 +370,7 @@ describe("ServiceProvider", () => { it("bootWhen should return true for bip 39 config", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -412,7 +398,7 @@ describe("ServiceProvider", () => { app.config( "delegates.secrets", - calculateActiveDelegates().map(delegate => delegate.publicKey), + calculateActiveDelegates().map((delegate) => delegate.publicKey), ); app.config("app.flags", { @@ -427,9 +413,7 @@ describe("ServiceProvider", () => { it("bootWhen should return false for bip 38 config", async () => { const app: Application = new Application(new Container.Container()); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -504,9 +488,7 @@ describe("ServiceProvider", () => { app.bind(Container.Identifiers.WalletRepository).to(MockWalletRepository); - app.bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); const logger = { error: jest.fn(), @@ -535,7 +517,7 @@ describe("ServiceProvider", () => { app.config( "delegates.secrets", - calculateActiveDelegates().map(delegate => delegate.publicKey), + calculateActiveDelegates().map((delegate) => delegate.publicKey), ); app.config("app.flags", { diff --git a/__tests__/unit/core-forger/setup.ts b/__tests__/unit/core-forger/setup.ts index ceee8b417b..83cc415fa5 100644 --- a/__tests__/unit/core-forger/setup.ts +++ b/__tests__/unit/core-forger/setup.ts @@ -10,7 +10,7 @@ export const mockLastBlock = { data: { height: 3, timestamp: 111150 }, }; -export const setup = async activeDelegates => { +export const setup = async (activeDelegates) => { const sandbox = new Sandbox(); const error: jest.SpyInstance = jest.fn(); @@ -36,7 +36,7 @@ export const setup = async activeDelegates => { class MockWalletRepository { public findByPublicKey(publicKey: string) { return { - getAttribute: () => activeDelegates.find(wallet => wallet.publicKey === publicKey).publicKey, + getAttribute: () => activeDelegates.find((wallet) => wallet.publicKey === publicKey).publicKey, }; } } diff --git a/__tests__/unit/core-kernel/application.test.ts b/__tests__/unit/core-kernel/application.test.ts index 55e82e9dc7..169f6d8203 100644 --- a/__tests__/unit/core-kernel/application.test.ts +++ b/__tests__/unit/core-kernel/application.test.ts @@ -489,12 +489,8 @@ describe("Application", () => { }); it("should get tagged value from the IoC container", () => { - app.bind("animal") - .toConstantValue("bear") - .whenTargetTagged("order", "carnivora"); - app.bind("animal") - .toConstantValue("dolphin") - .whenTargetTagged("order", "cetacea"); + app.bind("animal").toConstantValue("bear").whenTargetTagged("order", "carnivora"); + app.bind("animal").toConstantValue("dolphin").whenTargetTagged("order", "cetacea"); expect(() => app.get("animal")).toThrow(); expect(app.getTagged("animal", "order", "carnivora")).toBe("bear"); diff --git a/__tests__/unit/core-kernel/bootstrap/app/load-service-providers.test.ts b/__tests__/unit/core-kernel/bootstrap/app/load-service-providers.test.ts index 2b5c73c5ca..34cfe64131 100644 --- a/__tests__/unit/core-kernel/bootstrap/app/load-service-providers.test.ts +++ b/__tests__/unit/core-kernel/bootstrap/app/load-service-providers.test.ts @@ -19,9 +19,7 @@ let serviceProviderRepository: ServiceProviderRepository; beforeEach(() => { app = new Application(new Container()); - app.bind(Identifiers.EventDispatcherService) - .to(MemoryEventDispatcher) - .inSingletonScope(); + app.bind(Identifiers.EventDispatcherService).to(MemoryEventDispatcher).inSingletonScope(); configRepository = app.get(Identifiers.ConfigRepository); serviceProviderRepository = app.get(Identifiers.ServiceProviderRepository); diff --git a/__tests__/unit/core-kernel/bootstrap/service-providers/boot-service-providers.test.ts b/__tests__/unit/core-kernel/bootstrap/service-providers/boot-service-providers.test.ts index 5ad5dda1cf..e79c529c0d 100644 --- a/__tests__/unit/core-kernel/bootstrap/service-providers/boot-service-providers.test.ts +++ b/__tests__/unit/core-kernel/bootstrap/service-providers/boot-service-providers.test.ts @@ -24,9 +24,7 @@ let logger: Record; beforeEach(() => { app = new Application(new Container()); - app.bind(Identifiers.EventDispatcherService) - .to(MemoryEventDispatcher) - .inSingletonScope(); + app.bind(Identifiers.EventDispatcherService).to(MemoryEventDispatcher).inSingletonScope(); serviceProviderRepository = app.get(Identifiers.ServiceProviderRepository); diff --git a/__tests__/unit/core-kernel/ioc/selectors.test.ts b/__tests__/unit/core-kernel/ioc/selectors.test.ts index f24378145e..b556e55a43 100644 --- a/__tests__/unit/core-kernel/ioc/selectors.test.ts +++ b/__tests__/unit/core-kernel/ioc/selectors.test.ts @@ -38,10 +38,7 @@ container .bind("WalletRepository") .to(BlockchainWalletRepository) .when(anyAncestorOrTargetTaggedFirst("state", "blockchain")); -container - .bind("WalletRepository") - .to(PoolWalletRepository) - .when(anyAncestorOrTargetTaggedFirst("state", "pool")); +container.bind("WalletRepository").to(PoolWalletRepository).when(anyAncestorOrTargetTaggedFirst("state", "pool")); container.bind("TransactionHandler").to(TransactionHandler); describe("anyAncestorOrTargetTaggedFirst", () => { diff --git a/__tests__/unit/core-kernel/providers/plugin-manifest.test.ts b/__tests__/unit/core-kernel/providers/plugin-manifest.test.ts index 1f1a2ff592..282d53110a 100644 --- a/__tests__/unit/core-kernel/providers/plugin-manifest.test.ts +++ b/__tests__/unit/core-kernel/providers/plugin-manifest.test.ts @@ -15,9 +15,7 @@ beforeEach(() => { container.snapshot(); app = new Application(container); - app.bind(Identifiers.ConfigRepository) - .to(ConfigRepository) - .inSingletonScope(); + app.bind(Identifiers.ConfigRepository).to(ConfigRepository).inSingletonScope(); pluginManifest = app.resolve(PluginManifest); }); diff --git a/__tests__/unit/core-kernel/providers/service-provider-repository.test.ts b/__tests__/unit/core-kernel/providers/service-provider-repository.test.ts index f275de4d99..1c5662affd 100644 --- a/__tests__/unit/core-kernel/providers/service-provider-repository.test.ts +++ b/__tests__/unit/core-kernel/providers/service-provider-repository.test.ts @@ -33,9 +33,7 @@ beforeEach(() => { app = new Application(container); - app.bind(Identifiers.EventDispatcherService) - .to(MemoryEventDispatcher) - .inSingletonScope(); + app.bind(Identifiers.EventDispatcherService).to(MemoryEventDispatcher).inSingletonScope(); serviceProviderRepository = app.get(Identifiers.ServiceProviderRepository); }); diff --git a/__tests__/unit/core-kernel/services/cache/drivers/memory.test.ts b/__tests__/unit/core-kernel/services/cache/drivers/memory.test.ts index ffec16fecf..93255fee7d 100644 --- a/__tests__/unit/core-kernel/services/cache/drivers/memory.test.ts +++ b/__tests__/unit/core-kernel/services/cache/drivers/memory.test.ts @@ -23,9 +23,7 @@ let store: MemoryCacheStore; beforeEach(() => { app = new Application(new Container()); - app.bind(Identifiers.EventDispatcherService) - .to(MemoryEventDispatcher) - .inSingletonScope(); + app.bind(Identifiers.EventDispatcherService).to(MemoryEventDispatcher).inSingletonScope(); store = app.resolve(MemoryCacheStore); }); diff --git a/__tests__/unit/core-kernel/services/cache/service-provider.test.ts b/__tests__/unit/core-kernel/services/cache/service-provider.test.ts index 8e616b8623..61f7bfab71 100644 --- a/__tests__/unit/core-kernel/services/cache/service-provider.test.ts +++ b/__tests__/unit/core-kernel/services/cache/service-provider.test.ts @@ -11,9 +11,7 @@ let app: Application; beforeEach(() => { app = new Application(new Container()); - app.bind(Identifiers.EventDispatcherService) - .to(MemoryEventDispatcher) - .inSingletonScope(); + app.bind(Identifiers.EventDispatcherService).to(MemoryEventDispatcher).inSingletonScope(); }); describe("CacheServiceProvider", () => { diff --git a/__tests__/unit/core-kernel/services/log/drivers/memory.test.ts b/__tests__/unit/core-kernel/services/log/drivers/memory.test.ts index 9047da46d1..852519859a 100644 --- a/__tests__/unit/core-kernel/services/log/drivers/memory.test.ts +++ b/__tests__/unit/core-kernel/services/log/drivers/memory.test.ts @@ -18,15 +18,15 @@ beforeEach(async () => { afterEach(() => (message = undefined)); beforeAll(() => { - capcon.startCapture(process.stdout, stdout => (message = stdout.toString())); + capcon.startCapture(process.stdout, (stdout) => (message = stdout.toString())); - capcon.startCapture(process.stderr, stderr => (message = stderr.toString())); + capcon.startCapture(process.stderr, (stderr) => (message = stderr.toString())); // @ts-ignore - capcon.startCapture(console._stdout, stdout => (message = stdout.toString())); + capcon.startCapture(console._stdout, (stdout) => (message = stdout.toString())); // @ts-ignore - capcon.startCapture(console._stderr, stderr => (message = stderr.toString())); + capcon.startCapture(console._stderr, (stderr) => (message = stderr.toString())); }); describe("Logger", () => { diff --git a/__tests__/unit/core-kernel/services/pipeline/drivers/memory.test.ts b/__tests__/unit/core-kernel/services/pipeline/drivers/memory.test.ts index 46713572d8..642c462190 100644 --- a/__tests__/unit/core-kernel/services/pipeline/drivers/memory.test.ts +++ b/__tests__/unit/core-kernel/services/pipeline/drivers/memory.test.ts @@ -111,10 +111,7 @@ describe("Pipeline", () => { const removeDash = async (payload: string) => payload.replace("_", ""); const removeUnderscore = async (payload: string) => payload.replace("-", " "); - const actual: string = await pipeline - .pipe(removeDash) - .pipe(removeUnderscore) - .process("_Hello-World"); + const actual: string = await pipeline.pipe(removeDash).pipe(removeUnderscore).process("_Hello-World"); expect(actual).toBe("Hello World"); }); @@ -123,10 +120,7 @@ describe("Pipeline", () => { const removeDash = (payload: string) => payload.replace("_", ""); const removeUnderscore = (payload: string) => payload.replace("-", " "); - const actual: string = pipeline - .pipe(removeDash) - .pipe(removeUnderscore) - .processSync("_Hello-World"); + const actual: string = pipeline.pipe(removeDash).pipe(removeUnderscore).processSync("_Hello-World"); expect(actual).toBe("Hello World"); }); diff --git a/__tests__/unit/core-kernel/services/schedule/cron-job.test.ts b/__tests__/unit/core-kernel/services/schedule/cron-job.test.ts index 0a3fdfe5cd..2d386eb1dd 100644 --- a/__tests__/unit/core-kernel/services/schedule/cron-job.test.ts +++ b/__tests__/unit/core-kernel/services/schedule/cron-job.test.ts @@ -35,9 +35,7 @@ const expectExecutionAfterDelay = (callback: CronJob, minutes: number): void => const expectExecutionOnDate = (callback: CronJob, day: string): void => { clock = useFakeTimers({ - now: moment(day) - .subtract(1, "second") - .valueOf(), + now: moment(day).subtract(1, "second").valueOf(), }); const fn = jest.fn(); diff --git a/__tests__/unit/core-kernel/services/triggers/triggers.test.ts b/__tests__/unit/core-kernel/services/triggers/triggers.test.ts index 5c701cb4a5..74de9e3e89 100644 --- a/__tests__/unit/core-kernel/services/triggers/triggers.test.ts +++ b/__tests__/unit/core-kernel/services/triggers/triggers.test.ts @@ -63,11 +63,7 @@ test("binds a trigger with hooks and executes them", async const error: jest.Mock = jest.fn(); const after: jest.Mock = jest.fn(); - triggers - .bind("count", new DummyActionWithException()) - .before(before) - .error(error) - .after(after); + triggers.bind("count", new DummyActionWithException()).before(before).error(error).after(after); await expect(triggers.call("count")).resolves.toBeUndefined(); expect(before).toHaveBeenCalled(); diff --git a/__tests__/unit/core-kernel/services/validation/drivers/joi.test.ts b/__tests__/unit/core-kernel/services/validation/drivers/joi.test.ts index bcfad33e8e..84b6166a16 100644 --- a/__tests__/unit/core-kernel/services/validation/drivers/joi.test.ts +++ b/__tests__/unit/core-kernel/services/validation/drivers/joi.test.ts @@ -4,9 +4,7 @@ import Joi from "@hapi/joi"; import { JoiValidator } from "@packages/core-kernel/src/services/validation/drivers/joi"; const schema = Joi.object({ - username: Joi.string() - .alphanum() - .required(), + username: Joi.string().alphanum().required(), }); let validator: JoiValidator; diff --git a/__tests__/unit/core-kernel/support/instance-manager.test.ts b/__tests__/unit/core-kernel/support/instance-manager.test.ts index 6ef4153ec7..ff56d22e76 100644 --- a/__tests__/unit/core-kernel/support/instance-manager.test.ts +++ b/__tests__/unit/core-kernel/support/instance-manager.test.ts @@ -64,7 +64,7 @@ describe("ClassManager.getDrivers", () => { console.log(drivers); - expect(drivers.some(d => d instanceof MyMemoryDriver)).toBeTrue(); - expect(drivers.some(d => d instanceof MyRemoteDriver)).toBeTrue(); + expect(drivers.some((d) => d instanceof MyMemoryDriver)).toBeTrue(); + expect(drivers.some((d) => d instanceof MyRemoteDriver)).toBeTrue(); }); }); diff --git a/__tests__/unit/core-kernel/utils/round-calculator/calculate-round.test.ts b/__tests__/unit/core-kernel/utils/round-calculator/calculate-round.test.ts index 7cbecf312b..a0470b9453 100644 --- a/__tests__/unit/core-kernel/utils/round-calculator/calculate-round.test.ts +++ b/__tests__/unit/core-kernel/utils/round-calculator/calculate-round.test.ts @@ -48,7 +48,7 @@ describe("Round Calculator", () => { Managers.configManager.set("milestones", [...milestones.values()]); - Managers.configManager.getMilestone = jest.fn().mockImplementation(height => milestones.get(height)); + Managers.configManager.getMilestone = jest.fn().mockImplementation((height) => milestones.get(height)); testVector.forEach(({ height, round, roundHeight, nextRound, activeDelegates }) => { const result = calculateRound(height); diff --git a/__tests__/unit/core-kernel/utils/round-calculator/is-new-round.test.ts b/__tests__/unit/core-kernel/utils/round-calculator/is-new-round.test.ts index 47bcc3ad0d..fa594ee94a 100644 --- a/__tests__/unit/core-kernel/utils/round-calculator/is-new-round.test.ts +++ b/__tests__/unit/core-kernel/utils/round-calculator/is-new-round.test.ts @@ -5,10 +5,10 @@ import { isNewRound } from "@packages/core-kernel/src/utils/round-calculator"; describe("Round Calculator", () => { describe("isNewRound", () => { - const setMilestones = milestones => { + const setMilestones = (milestones) => { Managers.configManager.set("milestones", milestones); - Managers.configManager.getMilestone = jest.fn().mockImplementation(height => { + Managers.configManager.getMilestone = jest.fn().mockImplementation((height) => { for (let i = milestones.length - 1; i >= 0; i--) { if (milestones[i].height <= height) { return milestones[i]; diff --git a/__tests__/unit/core-kernel/utils/supply-calculator.test.ts b/__tests__/unit/core-kernel/utils/supply-calculator.test.ts index 06a5a48237..f038eda176 100644 --- a/__tests__/unit/core-kernel/utils/supply-calculator.test.ts +++ b/__tests__/unit/core-kernel/utils/supply-calculator.test.ts @@ -3,7 +3,7 @@ import "jest-extended"; import { Managers, Utils } from "@arkecosystem/crypto"; import { calculate } from "@packages/core-kernel/src/utils/supply-calculator"; -const toString = value => Utils.BigNumber.make(value).toFixed(); +const toString = (value) => Utils.BigNumber.make(value).toFixed(); const mockConfig = { genesisBlock: { totalAmount: 1000 }, @@ -22,18 +22,18 @@ describe("Supply calculator", () => { mockConfig.milestones[0].height = 1; }); - describe.each([0, 5, 100, 2000, 4000, 8000])("at height %s", height => { + describe.each([0, 5, 100, 2000, 4000, 8000])("at height %s", (height) => { it("should calculate the genesis supply without milestone", () => { const genesisSupply = mockConfig.genesisBlock.totalAmount; expect(calculate(height)).toBe(toString(genesisSupply + height * mockConfig.milestones[0].reward)); }); }); - describe.each([0, 2000, 4000, 8000, 16000])("at height %s", height => { + describe.each([0, 2000, 4000, 8000, 16000])("at height %s", (height) => { it("should calculate the genesis supply with one milestone", () => { mockConfig.milestones.push({ height: 8000, reward: 3 }); - const reward = current => { + const reward = (current) => { if (current < 8000) { return current * 2; } @@ -48,14 +48,14 @@ describe("Supply calculator", () => { }); }); - describe.each([0, 4000, 8000, 12000, 16000, 20000, 32000, 48000, 64000, 128000])("at height %s", height => { + describe.each([0, 4000, 8000, 12000, 16000, 20000, 32000, 48000, 64000, 128000])("at height %s", (height) => { it("should calculate the genesis supply with four milestones", () => { mockConfig.milestones.push({ height: 8000, reward: 4 }); mockConfig.milestones.push({ height: 16000, reward: 5 }); mockConfig.milestones.push({ height: 32000, reward: 10 }); mockConfig.milestones.push({ height: 64000, reward: 15 }); - const reward = current => { + const reward = (current) => { if (current < 8000) { return current * 2; } diff --git a/__tests__/unit/core-logger-pino/driver.test.ts b/__tests__/unit/core-logger-pino/driver.test.ts index c5f084eca0..9a64f9d3d3 100644 --- a/__tests__/unit/core-logger-pino/driver.test.ts +++ b/__tests__/unit/core-logger-pino/driver.test.ts @@ -33,15 +33,15 @@ beforeEach(async () => { afterEach(() => (message = undefined)); beforeAll(() => { - capcon.startCapture(process.stdout, stdout => (message = stdout.toString())); + capcon.startCapture(process.stdout, (stdout) => (message = stdout.toString())); - capcon.startCapture(process.stderr, stderr => (message = stderr.toString())); + capcon.startCapture(process.stderr, (stderr) => (message = stderr.toString())); // @ts-ignore - capcon.startCapture(console._stdout, stdout => (message = stdout.toString())); + capcon.startCapture(console._stdout, (stdout) => (message = stdout.toString())); // @ts-ignore - capcon.startCapture(console._stderr, stderr => (message = stderr.toString())); + capcon.startCapture(console._stderr, (stderr) => (message = stderr.toString())); }); afterAll(() => setGracefulCleanup()); @@ -149,7 +149,7 @@ describe("Logger", () => { } const files = readdirSync(app.logPath()); - expect(files.filter(file => file.endsWith(".log.gz"))).toHaveLength(3); + expect(files.filter((file) => file.endsWith(".log.gz"))).toHaveLength(3); expect(files).toHaveLength(5); }); }); diff --git a/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/assets.ts b/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/assets.ts index afd613d2e1..0e281bec42 100644 --- a/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/assets.ts +++ b/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/assets.ts @@ -1,6 +1,8 @@ import { - IBridgechainRegistrationAsset, IBridgechainUpdateAsset, - IBusinessRegistrationAsset, IBusinessUpdateAsset, + IBridgechainRegistrationAsset, + IBridgechainUpdateAsset, + IBusinessRegistrationAsset, + IBusinessUpdateAsset, } from "@packages/core-magistrate-crypto/src/interfaces"; export const businessRegistrationAsset: IBusinessRegistrationAsset = { @@ -12,13 +14,7 @@ export const businessRegistrationAsset: IBusinessRegistrationAsset = { export const bridgechainRegistrationAsset: IBridgechainRegistrationAsset = { name: "arkecosystem1", - seedNodes: [ - "74.125.224.71", - "74.125.224.72", - "64.233.173.193", - "2001:4860:4860::8888", - "2001:4860:4860::8844", - ], + seedNodes: ["74.125.224.71", "74.125.224.72", "64.233.173.193", "2001:4860:4860::8888", "2001:4860:4860::8844"], genesisHash: "127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935", bridgechainRepository: "http://www.repository.com/myorg/myrepo", bridgechainAssetRepository: "http://www.repository.com/myorg/myassetrepo", @@ -34,13 +30,7 @@ export const businessUpdateAsset: IBusinessUpdateAsset = { export const bridgechainUpdateAsset: IBridgechainUpdateAsset = { bridgechainId: bridgechainRegistrationAsset.genesisHash, - seedNodes: [ - "74.125.224.71", - "74.125.224.72", - "64.233.173.193", - "2001:4860:4860::8888", - "2001:4860:4860::8844", - ], + seedNodes: ["74.125.224.71", "74.125.224.72", "64.233.173.193", "2001:4860:4860::8888", "2001:4860:4860::8844"], bridgechainRepository: "http://www.repository.com/myorg/myrepo", bridgechainAssetRepository: "http://www.repository.com/myorg/myassetrepo", ports: { "@arkecosystem/core-api": 12345 }, diff --git a/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/index.ts b/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/index.ts index 4226e139da..eb34a5e24b 100644 --- a/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/index.ts +++ b/__tests__/unit/core-magistrate-transactions/handlers/__fixtures__/index.ts @@ -1,3 +1,3 @@ -import * as Assets from "./assets" +import * as Assets from "./assets"; -export { Assets } +export { Assets }; diff --git a/__tests__/unit/core-magistrate-transactions/handlers/business-resignation.test.ts b/__tests__/unit/core-magistrate-transactions/handlers/business-resignation.test.ts index 3387f61d28..dee190d307 100644 --- a/__tests__/unit/core-magistrate-transactions/handlers/business-resignation.test.ts +++ b/__tests__/unit/core-magistrate-transactions/handlers/business-resignation.test.ts @@ -100,9 +100,7 @@ describe("BusinessRegistration", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(businessResignationTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(businessResignationTransaction)]); await expect(handler.bootstrap()).toResolve(); expect(senderWallet.getAttribute("business.resigned")).toBeTrue(); diff --git a/__tests__/unit/core-magistrate-transactions/handlers/business-update.test.ts b/__tests__/unit/core-magistrate-transactions/handlers/business-update.test.ts index debdd4b5a9..b7bd5c431d 100644 --- a/__tests__/unit/core-magistrate-transactions/handlers/business-update.test.ts +++ b/__tests__/unit/core-magistrate-transactions/handlers/business-update.test.ts @@ -71,7 +71,7 @@ describe("BusinessRegistration", () => { let handler: TransactionHandler; const businessRegistrationAsset = _.cloneDeep(Assets.businessRegistrationAsset); - const businessUpdateAsset = _.cloneDeep(Assets.businessUpdateAsset); + const businessUpdateAsset = _.cloneDeep(Assets.businessUpdateAsset); beforeEach(async () => { handler = transactionHandlerRegistry.getRegisteredHandlerByType( @@ -106,9 +106,7 @@ describe("BusinessRegistration", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(businessUpdateTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(businessUpdateTransaction)]); await expect(handler.bootstrap()).toResolve(); expect(senderWallet.getAttribute("business.businessAsset")).toEqual(businessUpdateAsset); diff --git a/__tests__/unit/core-p2p/transaction-broadcaster.test.ts b/__tests__/unit/core-p2p/transaction-broadcaster.test.ts index bcb06b21ce..000cf3e89b 100644 --- a/__tests__/unit/core-p2p/transaction-broadcaster.test.ts +++ b/__tests__/unit/core-p2p/transaction-broadcaster.test.ts @@ -44,7 +44,7 @@ describe("TransactionBroadcaster", () => { configuration.getRequired.mockReturnValue(3); storage.getPeers.mockReturnValue(peers); const jsons = [{}]; - const transactions: any[] = jsons.map(j => ({ toJson: jest.fn().mockReturnValue(j) })); + const transactions: any[] = jsons.map((j) => ({ toJson: jest.fn().mockReturnValue(j) })); const broadcaster = container.resolve(TransactionBroadcaster); await broadcaster.broadcastTransactions(transactions as Interfaces.ITransaction[]); diff --git a/__tests__/unit/core-state/__utils__/fixture-generator.ts b/__tests__/unit/core-state/__utils__/fixture-generator.ts index 83e0e3ce27..d4884836a1 100644 --- a/__tests__/unit/core-state/__utils__/fixture-generator.ts +++ b/__tests__/unit/core-state/__utils__/fixture-generator.ts @@ -10,11 +10,11 @@ export class FixtureGenerator { private genesisSenders; public constructor(private genesisBlock, private attributeSet: Services.Attributes.AttributeSet) { - this.genesisSenders = unique(compact(genesisBlock.transactions.map(tx => tx.senderPublicKey))); + this.genesisSenders = unique(compact(genesisBlock.transactions.map((tx) => tx.senderPublicKey))); } public generateFullWallets(): Wallet[] { - return this.genesisSenders.map(senderPublicKey => { + return this.genesisSenders.map((senderPublicKey) => { const address = Identities.Address.fromPublicKey(senderPublicKey); const wallet = new Wallet(address, new Services.Attributes.AttributeMap(this.attributeSet)); wallet.publicKey = `${address}`; @@ -35,7 +35,7 @@ export class FixtureGenerator { public generateHtlcLocks(): Wallet[] { return this.genesisBlock.transactions - .filter(transaction => transaction.recipientId) + .filter((transaction) => transaction.recipientId) .map((transaction, i) => { const address = Identities.Address.fromPublicKey(transaction.senderPublicKey); const wallet = new Wallet(address, new Services.Attributes.AttributeMap(this.attributeSet)); @@ -106,7 +106,7 @@ export class FixtureGenerator { } public generateVotes(): Wallet[] { - return this.genesisSenders.map(senderPublicKey => { + return this.genesisSenders.map((senderPublicKey) => { const address = Identities.Address.fromPublicKey(senderPublicKey); const wallet = new Wallet(address, new Services.Attributes.AttributeMap(this.attributeSet)); wallet.setAttribute("vote", wallet.publicKey); diff --git a/__tests__/unit/core-state/__utils__/make-vote-transactions.ts b/__tests__/unit/core-state/__utils__/make-vote-transactions.ts index a1de5d22bf..d3a7839135 100644 --- a/__tests__/unit/core-state/__utils__/make-vote-transactions.ts +++ b/__tests__/unit/core-state/__utils__/make-vote-transactions.ts @@ -4,10 +4,7 @@ import { ITransaction } from "@packages/crypto/src/interfaces"; export const makeVoteTransactions = (length: number, voteAssets: string[]): ITransaction[] => { const txs: ITransaction[] = []; for (let i = 0; i < length; i++) { - txs[i] = Transactions.BuilderFactory.vote() - .sign(Math.random().toString(36)) - .votesAsset(voteAssets) - .build(); + txs[i] = Transactions.BuilderFactory.vote().sign(Math.random().toString(36)).votesAsset(voteAssets).build(); } return txs; }; diff --git a/__tests__/unit/core-state/__utils__/transactions.ts b/__tests__/unit/core-state/__utils__/transactions.ts index 9f639264aa..6df3a7a4d9 100644 --- a/__tests__/unit/core-state/__utils__/transactions.ts +++ b/__tests__/unit/core-state/__utils__/transactions.ts @@ -3,7 +3,7 @@ import { IBlock, ITransaction } from "@packages/crypto/src/interfaces"; export const addTransactionsToBlock = (txs: ITransaction[], block: IBlock) => { const { data } = block; data.transactions = []; - txs.forEach(tx => data.transactions?.push(tx.data)); + txs.forEach((tx) => data.transactions?.push(tx.data)); data.transactions.push(txs[0].data); data.transactions.push(txs[1].data); data.transactions.push(txs[2].data); diff --git a/__tests__/unit/core-state/block-state.test.ts b/__tests__/unit/core-state/block-state.test.ts index 808a8b4493..6772bb49e1 100644 --- a/__tests__/unit/core-state/block-state.test.ts +++ b/__tests__/unit/core-state/block-state.test.ts @@ -747,7 +747,7 @@ describe("BlockState", () => { describe("when 1 transaction fails while reverting it", () => { it("should apply sequentially (from first to last) all the reverted transactions of the block", async () => { // @ts-ignore - spyRevertTransaction.mockImplementation(tx => { + spyRevertTransaction.mockImplementation((tx) => { if (tx === blocks[0].transactions[0]) { throw new Error("Fake error"); } @@ -776,7 +776,7 @@ describe("BlockState", () => { describe("when 1 transaction fails while applying it", () => { it("should revert sequentially (from last to first) all the transactions of the block", async () => { // @ts-ignore - spyApplyTransaction.mockImplementation(tx => { + spyApplyTransaction.mockImplementation((tx) => { if (tx === blocks[0].transactions[2]) { throw new Error("Fake error"); } diff --git a/__tests__/unit/core-state/setup.ts b/__tests__/unit/core-state/setup.ts index 302bcd798d..d0f818fcc7 100644 --- a/__tests__/unit/core-state/setup.ts +++ b/__tests__/unit/core-state/setup.ts @@ -67,10 +67,7 @@ export const setUpDefaults = { export const setUp = async (setUpOptions = setUpDefaults, skipBoot = false): Promise => { const sandbox = new Sandbox(); - sandbox.app - .bind(Container.Identifiers.WalletAttributes) - .to(Services.Attributes.AttributeSet) - .inSingletonScope(); + sandbox.app.bind(Container.Identifiers.WalletAttributes).to(Services.Attributes.AttributeSet).inSingletonScope(); sandbox.app.get(Container.Identifiers.WalletAttributes).set("delegate"); @@ -88,9 +85,7 @@ export const setUp = async (setUpOptions = setUpDefaults, skipBoot = false): Pro .get(Container.Identifiers.WalletAttributes) .set("delegate.forgedTotal"); - sandbox.app - .get(Container.Identifiers.WalletAttributes) - .set("delegate.approval"); + sandbox.app.get(Container.Identifiers.WalletAttributes).set("delegate.approval"); sandbox.app.get(Container.Identifiers.WalletAttributes).set("vote"); @@ -140,10 +135,7 @@ export const setUp = async (setUpOptions = setUpDefaults, skipBoot = false): Pro registerIndexers(sandbox.app); registerFactories(sandbox.app); - sandbox.app - .bind(Container.Identifiers.PluginConfiguration) - .to(Providers.PluginConfiguration) - .inSingletonScope(); + sandbox.app.bind(Container.Identifiers.PluginConfiguration).to(Providers.PluginConfiguration).inSingletonScope(); sandbox.app .get(Container.Identifiers.PluginConfiguration) @@ -153,10 +145,7 @@ export const setUp = async (setUpOptions = setUpDefaults, skipBoot = false): Pro .get(Container.Identifiers.PluginConfiguration) .set("storage.maxLastTransactionIds", defaults.storage.maxLastTransactionIds); - sandbox.app - .bind(Container.Identifiers.StateStore) - .to(StateStore) - .inSingletonScope(); + sandbox.app.bind(Container.Identifiers.StateStore).to(StateStore).inSingletonScope(); const stateStore: StateStore = sandbox.app.get(Container.Identifiers.StateStore); diff --git a/__tests__/unit/core-state/stores/state.test.ts b/__tests__/unit/core-state/stores/state.test.ts index df4fc5d9ca..4962b8481b 100644 --- a/__tests__/unit/core-state/stores/state.test.ts +++ b/__tests__/unit/core-state/stores/state.test.ts @@ -234,7 +234,7 @@ describe("State Storage", () => { } // Heights 90 - 100 - const ids = blocks.slice(89, 99).map(block => block.data.id); + const ids = blocks.slice(89, 99).map((block) => block.data.id); const commonBlocks = stateStorage.getCommonBlocks(ids); expect(ids).toHaveLength(10); expect(commonBlocks).toHaveLength(10); diff --git a/__tests__/unit/core-state/transaction-validator.test.ts b/__tests__/unit/core-state/transaction-validator.test.ts index 4a71fee191..8b10d6b6bb 100644 --- a/__tests__/unit/core-state/transaction-validator.test.ts +++ b/__tests__/unit/core-state/transaction-validator.test.ts @@ -37,6 +37,6 @@ describe("Transaction Validator", () => { copiedTransaction.id = "wrong"; expect.assertions(1); - transactionValidator.validate(copiedTransaction).catch(e => expect(e).toBeInstanceOf(AssertionError)); + transactionValidator.validate(copiedTransaction).catch((e) => expect(e).toBeInstanceOf(AssertionError)); }); }); diff --git a/__tests__/unit/core-state/wallets/utils/search-entires.test.ts b/__tests__/unit/core-state/wallets/utils/search-entires.test.ts index 3c61e9c2e6..2804dba43e 100644 --- a/__tests__/unit/core-state/wallets/utils/search-entires.test.ts +++ b/__tests__/unit/core-state/wallets/utils/search-entires.test.ts @@ -29,13 +29,13 @@ describe("searchEntries", () => { const wallets = fixtureGenerator.generateFullWallets(); const addresses = [wallets[1].address, wallets[3].address, wallets[9].address]; - + const query = { - exact: [ 'publicKey', 'secondPublicKey', 'username', 'vote' ], - between: [ 'balance', 'voteBalance', 'lockedBalance' ], - in: [ 'address' ] + exact: ["publicKey", "secondPublicKey", "username", "vote"], + between: ["balance", "voteBalance", "lockedBalance"], + in: ["address"], }; - const defaultOrder = [ 'balance', 'desc' ]; + const defaultOrder = ["balance", "desc"]; const result = searchEntries({ addresses }, query, wallets, defaultOrder); @@ -47,13 +47,13 @@ describe("searchEntries", () => { const { address } = wallets[0]; const addresses = [wallets[1].address, wallets[3].address, wallets[9].address]; - + const query = { - exact: [ 'publicKey', 'secondPublicKey', 'username', 'vote' ], - between: [ 'balance', 'voteBalance', 'lockedBalance' ], - in: [ 'address' ] + exact: ["publicKey", "secondPublicKey", "username", "vote"], + between: ["balance", "voteBalance", "lockedBalance"], + in: ["address"], }; - const defaultOrder = [ 'balance', 'desc' ]; + const defaultOrder = ["balance", "desc"]; const result = searchEntries({ addresses, address }, query, wallets, defaultOrder); @@ -76,15 +76,15 @@ describe("searchEntries", () => { voteBalance: { from: 11, to: 18, - } + }, }; - + const query = { - exact: [ 'publicKey', 'secondPublicKey', 'username', 'vote' ], - between: [ 'balance', 'voteBalance', 'lockedBalance' ], - in: [ 'address' ] + exact: ["publicKey", "secondPublicKey", "username", "vote"], + between: ["balance", "voteBalance", "lockedBalance"], + in: ["address"], }; - const defaultOrder = [ 'balance', 'desc' ]; + const defaultOrder = ["balance", "desc"]; const result = searchEntries(params, query, wallets, defaultOrder); @@ -107,15 +107,15 @@ describe("searchEntries", () => { voteBalance: { from: 11, to: 18, - } + }, }; - + const query = { - exact: [ 'publicKey', 'secondPublicKey', 'username', 'vote' ], - between: [ 'balance', 'voteBalance', 'lockedBalance' ], - in: [ 'address' ] + exact: ["publicKey", "secondPublicKey", "username", "vote"], + between: ["balance", "voteBalance", "lockedBalance"], + in: ["address"], }; - const defaultOrder = [ 'balance', 'desc' ]; + const defaultOrder = ["balance", "desc"]; const result = searchEntries(params, query, wallets, defaultOrder); diff --git a/__tests__/unit/core-state/wallets/utils/sort-entries.test.ts b/__tests__/unit/core-state/wallets/utils/sort-entries.test.ts index c47af7371d..29945c03f8 100644 --- a/__tests__/unit/core-state/wallets/utils/sort-entries.test.ts +++ b/__tests__/unit/core-state/wallets/utils/sort-entries.test.ts @@ -30,14 +30,16 @@ const moveIndexToFrontofArray = (index, array) => .concat(array.slice(0, index)) .concat(array.slice(index + 1)); -const moveIndexToBackOfArray = (index, array) => array.slice(0, index).concat(array.slice(index + 1)).concat(array - .slice(index, index + 1)); +const moveIndexToBackOfArray = (index, array) => + array + .slice(0, index) + .concat(array.slice(index + 1)) + .concat(array.slice(index, index + 1)); describe("sortEntries", () => { - it("should sort entries using an iteratee", () => { const entries = fixtureGenerator.generateFullWallets(); - const collectThird = entry => entry !== entries[3]; + const collectThird = (entry) => entry !== entries[3]; const thirdNowAtStart = moveIndexToFrontofArray(3, entries); const actual = sortEntries([collectThird, "asc"], entries); @@ -45,14 +47,12 @@ describe("sortEntries", () => { }); it("should use default value if there is no orderBy set - asc", () => { - const wallets = fixtureGenerator.generateFullWallets(); wallets[3].setAttribute("delegate", { balance: Utils.BigNumber.make(500), - }); - - const actual = sortEntries(["balance", "asc"], wallets); + + const actual = sortEntries(["balance", "asc"], wallets); const thirdNowAtBack = moveIndexToBackOfArray(3, wallets); expect(actual).toEqual(thirdNowAtBack); @@ -62,10 +62,9 @@ describe("sortEntries", () => { const wallets = fixtureGenerator.generateFullWallets(); wallets[3].setAttribute("delegate", { balance: Utils.BigNumber.make(500), - }); - const actual = sortEntries(["balance", "desc"], wallets);; + const actual = sortEntries(["balance", "desc"], wallets); const thirdNowAtFront = moveIndexToFrontofArray(3, wallets); expect(actual).toEqual(thirdNowAtFront); @@ -73,13 +72,12 @@ describe("sortEntries", () => { it("should default to 0 balance when not set", () => { const wallets = fixtureGenerator.generateFullWallets(); - wallets[3].forgetAttribute("delegate"); - wallets[5].forgetAttribute("delegate"); + wallets[3].forgetAttribute("delegate"); + wallets[5].forgetAttribute("delegate"); const actual = sortEntries(["voteBalance", "asc"], wallets); expect(actual[0]).toEqual(wallets[3]); expect(actual[1]).toEqual(wallets[5]); - }); }); diff --git a/__tests__/unit/core-state/wallets/wallet-repository.test.ts b/__tests__/unit/core-state/wallets/wallet-repository.test.ts index 48880bdc32..7a0b0e634e 100644 --- a/__tests__/unit/core-state/wallets/wallet-repository.test.ts +++ b/__tests__/unit/core-state/wallets/wallet-repository.test.ts @@ -312,7 +312,7 @@ describe("Wallet Repository", () => { } walletRepo.index(wallets); - walletAddresses.forEach(address => expect(walletRepo.has(address)).toBeTrue()); + walletAddresses.forEach((address) => expect(walletRepo.has(address)).toBeTrue()); const publicKey = "22337416a26d8d49ec27059bd0589c49bb474029c3627715380f4df83fb431aece"; @@ -322,7 +322,7 @@ describe("Wallet Repository", () => { walletRepo.getIndex("locks").set("lock", wallets[4]); walletRepo.getIndex("ipfs").set("ipfs", wallets[5]); - wallets.forEach(wallet => walletRepo.index(wallet)); + wallets.forEach((wallet) => walletRepo.index(wallet)); walletRepo.forgetByIndex("addresses", walletAddresses[0]); walletRepo.forgetByIndex("publicKeys", publicKey); @@ -331,7 +331,7 @@ describe("Wallet Repository", () => { walletRepo.forgetByIndex("locks", "locks"); walletRepo.forgetByIndex("ipfs", "ipfs"); - walletAddresses.forEach(address => expect(walletRepo.has(address)).toBeFalse()); + walletAddresses.forEach((address) => expect(walletRepo.has(address)).toBeFalse()); }); it("should get the nonce of a wallet", () => { @@ -885,7 +885,7 @@ describe("Delegate Wallets", () => { { username: "delegate-2", forgedFees: Utils.BigNumber.make(30), forgedRewards: Utils.BigNumber.make(30) }, ]; - const wallets = [delegates[0], {}, delegates[1], { username: "" }, delegates[2], {}].map(delegate => { + const wallets = [delegates[0], {}, delegates[1], { username: "" }, delegates[2], {}].map((delegate) => { const wallet = new Wallet("", new Services.Attributes.AttributeMap(attributeSet)); return Object.assign(wallet, { attributes: { delegate } }); }); diff --git a/__tests__/unit/core-test-framework/utils/mapper.test.ts b/__tests__/unit/core-test-framework/utils/mapper.test.ts index cf5ee80fa7..be9950e290 100644 --- a/__tests__/unit/core-test-framework/utils/mapper.test.ts +++ b/__tests__/unit/core-test-framework/utils/mapper.test.ts @@ -29,10 +29,11 @@ beforeEach(() => { fee: Utils.BigNumber.make(5), amount: Utils.BigNumber.make(5), recipientId: "D7RVC5iZqs3f8ETtHRL3REeVzsxrrBexcT", - signature: "efd9acefcc843123f7f518ebc34cd8a81ba536b9604d42eaf3bc84fa9df4e2f51e4596ca2671e5726e99bff83a85f98122512ec9ed5f9a3de97045d23f6c94f3", + signature: + "efd9acefcc843123f7f518ebc34cd8a81ba536b9604d42eaf3bc84fa9df4e2f51e4596ca2671e5726e99bff83a85f98122512ec9ed5f9a3de97045d23f6c94f3", blockId: "717093ac984e1a82a2de1fb334e92bda648547955417bc830d7825c515b5f2f9", sequence: 1, - asset: {} + asset: {}, }, serialized: Buffer.from(""), serialize: jest.fn(), @@ -44,28 +45,28 @@ beforeEach(() => { }; transactionModel = { - id: 'f0880e972206698bf48e43325ec03045a3b2ab215b8f716a51742a909b718177', + id: "f0880e972206698bf48e43325ec03045a3b2ab215b8f716a51742a909b718177", version: 2, - blockId: '717093ac984e1a82a2de1fb334e92bda648547955417bc830d7825c515b5f2f9', + blockId: "717093ac984e1a82a2de1fb334e92bda648547955417bc830d7825c515b5f2f9", sequence: 0, timestamp: 2000123, nonce: Utils.BigNumber.make(5), - senderPublicKey: '025805c82bb3ff7068e1b20da4ad2f89638e404950b0af7a0d2e23512b3701a21a', - recipientId: 'D7RVC5iZqs3f8ETtHRL3REeVzsxrrBexcT', + senderPublicKey: "025805c82bb3ff7068e1b20da4ad2f89638e404950b0af7a0d2e23512b3701a21a", + recipientId: "D7RVC5iZqs3f8ETtHRL3REeVzsxrrBexcT", type: 2, typeGroup: 1, vendorField: undefined, amount: BigInt(Utils.BigNumber.make(5)), fee: BigInt(Utils.BigNumber.make(5)), serialized: Buffer.from(""), - asset: {} + asset: {}, }; }); describe("Mapper", () => { describe("mapTransactionToModel", () => { it("should convert crypto transaction to database model", async () => { - expect(mapTransactionToModel(transaction)).toEqual(transactionModel) + expect(mapTransactionToModel(transaction)).toEqual(transactionModel); }); it("should convert crypto transaction to database model without optional parameters", async () => { @@ -83,7 +84,7 @@ describe("Mapper", () => { transactionModel.recipientId = ""; transactionModel.typeGroup = 1; - expect(mapTransactionToModel(transaction)).toEqual(transactionModel) + expect(mapTransactionToModel(transaction)).toEqual(transactionModel); }); }); }); diff --git a/__tests__/unit/core-transaction-pool/utils.test.ts b/__tests__/unit/core-transaction-pool/utils.test.ts index 51b9cc822e..e732cb5d76 100644 --- a/__tests__/unit/core-transaction-pool/utils.test.ts +++ b/__tests__/unit/core-transaction-pool/utils.test.ts @@ -37,7 +37,7 @@ describe("createLock", () => { const lock = createLock(); const promise1 = lock(async () => { - await new Promise(resolve => setTimeout(resolve, 100)); + await new Promise((resolve) => setTimeout(resolve, 100)); return ++counter; }); const promise2 = lock(async () => { @@ -54,7 +54,7 @@ describe("createLock", () => { const promise1 = lock(async () => { await new Promise((_, reject) => setTimeout(() => reject(++counter), 100)); - }).catch(value => value); + }).catch((value) => value); const promise2 = lock(async () => { return ++counter; }); diff --git a/__tests__/unit/core-transactions/handlers/handler-registry.test.ts b/__tests__/unit/core-transactions/handlers/handler-registry.test.ts index 73101731cb..96f017ced8 100644 --- a/__tests__/unit/core-transactions/handlers/handler-registry.test.ts +++ b/__tests__/unit/core-transactions/handlers/handler-registry.test.ts @@ -7,12 +7,7 @@ import { DeactivatedTransactionHandlerError, InvalidTransactionTypeError, } from "@packages/core-transactions/src/errors"; -import { - One, - TransactionHandler, - TransactionHandlerConstructor, - Two, -} from "@packages/core-transactions/src/handlers"; +import { One, TransactionHandler, TransactionHandlerConstructor, Two } from "@packages/core-transactions/src/handlers"; import { TransactionHandlerProvider } from "@packages/core-transactions/src/handlers/handler-provider"; import { TransactionHandlerRegistry } from "@packages/core-transactions/src/handlers/handler-registry"; import { Crypto, Enums, Identities, Interfaces, Managers, Transactions, Utils } from "@packages/crypto"; diff --git a/__tests__/unit/core-transactions/handlers/one/multi-signature-registration.test.ts b/__tests__/unit/core-transactions/handlers/one/multi-signature-registration.test.ts index 602d2067a2..57d40041ae 100644 --- a/__tests__/unit/core-transactions/handlers/one/multi-signature-registration.test.ts +++ b/__tests__/unit/core-transactions/handlers/one/multi-signature-registration.test.ts @@ -72,7 +72,6 @@ afterEach(() => { Mocks.TransactionRepository.setTransactions([]); }); - describe("MultiSignatureRegistrationTransaction", () => { let multiSignatureTransaction: Interfaces.ITransaction; let recipientWallet: Wallets.Wallet; @@ -124,17 +123,13 @@ describe("MultiSignatureRegistrationTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(multiSignatureTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(multiSignatureTransaction)]); await expect(handler.bootstrap()).toResolve(); }); it("should throw when wallet has multi signature", async () => { senderWallet.setAttribute("multiSignature", multiSignatureAsset); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(multiSignatureTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(multiSignatureTransaction)]); await expect(handler.bootstrap()).rejects.toThrow(MultiSignatureAlreadyRegisteredError); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/delegate-registration.test.ts b/__tests__/unit/core-transactions/handlers/two/delegate-registration.test.ts index e3931c6d1d..59ddb4ce5e 100644 --- a/__tests__/unit/core-transactions/handlers/two/delegate-registration.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/delegate-registration.test.ts @@ -107,44 +107,56 @@ describe("DelegateRegistrationTransaction", () => { }); it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(delegateRegistrationTransaction)]); + Mocks.TransactionRepository.setTransactions([ + Mapper.mapTransactionToModel(delegateRegistrationTransaction), + ]); await expect(handler.bootstrap()).toResolve(); }); it("should resolve with bocks", async () => { - Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(delegateRegistrationTransaction)]); - - Mocks.BlockRepository.setDelegateForgedBlocks([{ - generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), - totalRewards: "2", - totalFees: "2", - totalProduced: 1, - }]); - - Mocks.BlockRepository.setLastForgedBlocks([{ - generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), - id: "123", - height: "1", - timestamp: 1 - }]); + Mocks.TransactionRepository.setTransactions([ + Mapper.mapTransactionToModel(delegateRegistrationTransaction), + ]); + + Mocks.BlockRepository.setDelegateForgedBlocks([ + { + generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), + totalRewards: "2", + totalFees: "2", + totalProduced: 1, + }, + ]); + + Mocks.BlockRepository.setLastForgedBlocks([ + { + generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), + id: "123", + height: "1", + timestamp: 1, + }, + ]); await expect(handler.bootstrap()).toResolve(); }); it("should resolve with bocks and genesis wallet", async () => { - Mocks.BlockRepository.setDelegateForgedBlocks([{ - generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), - totalRewards: "2", - totalFees: "2", - totalProduced: 1, - }]); - - Mocks.BlockRepository.setLastForgedBlocks([{ - generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), - id: "123", - height: "1", - timestamp: 1 - }]); + Mocks.BlockRepository.setDelegateForgedBlocks([ + { + generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), + totalRewards: "2", + totalFees: "2", + totalProduced: 1, + }, + ]); + + Mocks.BlockRepository.setLastForgedBlocks([ + { + generatorPublicKey: Identities.PublicKey.fromPassphrase(passphrases[0]), + id: "123", + height: "1", + timestamp: 1, + }, + ]); await expect(handler.bootstrap()).toResolve(); }); diff --git a/__tests__/unit/core-transactions/handlers/two/delegate-resignation.test.ts b/__tests__/unit/core-transactions/handlers/two/delegate-resignation.test.ts index 2127eef0d7..81d4c9d437 100644 --- a/__tests__/unit/core-transactions/handlers/two/delegate-resignation.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/delegate-resignation.test.ts @@ -31,7 +31,6 @@ import { } from "../__support__/app"; import { Mocks, Mapper } from "@packages/core-test-framework"; - let app: Application; let senderWallet: Wallets.Wallet; let secondSignatureWallet: Wallets.Wallet; diff --git a/__tests__/unit/core-transactions/handlers/two/htlc-claim.test.ts b/__tests__/unit/core-transactions/handlers/two/htlc-claim.test.ts index cd4aa6e66e..818cb55440 100644 --- a/__tests__/unit/core-transactions/handlers/two/htlc-claim.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/htlc-claim.test.ts @@ -192,9 +192,7 @@ describe("Htlc claim", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); @@ -467,9 +465,7 @@ describe("Htlc claim", () => { handler.throwIfCannotBeApplied(htlcClaimTransaction, claimWallet, walletRepository), ).toResolve(); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); const balanceBefore = claimWallet.balance; @@ -507,9 +503,7 @@ describe("Htlc claim", () => { handler.throwIfCannotBeApplied(htlcClaimTransaction, claimWallet, walletRepository), ).toResolve(); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); const balanceBefore = claimWallet.balance; diff --git a/__tests__/unit/core-transactions/handlers/two/htlc-lock.test.ts b/__tests__/unit/core-transactions/handlers/two/htlc-lock.test.ts index 6598eff20f..ac3272b974 100644 --- a/__tests__/unit/core-transactions/handlers/two/htlc-lock.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/htlc-lock.test.ts @@ -25,7 +25,6 @@ import { import { Mocks, Mapper } from "@packages/core-test-framework"; - let app: Application; let senderWallet: Wallets.Wallet; let secondSignatureWallet: Wallets.Wallet; @@ -72,7 +71,7 @@ beforeEach(() => { }); afterEach(() => { - Mocks.TransactionRepository.setTransactions([]); + Mocks.TransactionRepository.setTransactions([]); }); describe("Htlc lock", () => { @@ -144,21 +143,16 @@ describe("Htlc lock", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); await expect(handler.bootstrap()).toResolve(); }); it("should resolve with open transaction", async () => { - let mockHtlcLockTransacton = Mapper.mapTransactionToModel(htlcLockTransaction); // @ts-ignore mockHtlcLockTransacton.open = true; - Mocks.TransactionRepository.setTransactions([ - mockHtlcLockTransacton - ]); + Mocks.TransactionRepository.setTransactions([mockHtlcLockTransacton]); await expect(handler.bootstrap()).toResolve(); }); @@ -180,9 +174,7 @@ describe("Htlc lock", () => { // @ts-ignore mockHtlcLockTransacton.open = true; - Mocks.TransactionRepository.setTransactions([ - mockHtlcLockTransacton - ]); + Mocks.TransactionRepository.setTransactions([mockHtlcLockTransacton]); await expect(handler.bootstrap()).toResolve(); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/htlc-refund.test.ts b/__tests__/unit/core-transactions/handlers/two/htlc-refund.test.ts index e813a43410..d6885030ee 100644 --- a/__tests__/unit/core-transactions/handlers/two/htlc-refund.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/htlc-refund.test.ts @@ -25,7 +25,6 @@ import { } from "../__support__/app"; import { Mocks, Mapper } from "@packages/core-test-framework"; - let app: Application; let senderWallet: Wallets.Wallet; let secondSignatureWallet: Wallets.Wallet; @@ -174,9 +173,7 @@ describe("Htlc refund", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); @@ -425,9 +422,7 @@ describe("Htlc refund", () => { handler.throwIfCannotBeApplied(htlcRefundTransaction, lockWallet, walletRepository), ).toResolve(); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); const balanceBefore = lockWallet.balance; await handler.apply(htlcRefundTransaction, walletRepository); @@ -463,9 +458,7 @@ describe("Htlc refund", () => { handler.throwIfCannotBeApplied(htlcRefundTransaction, lockWallet, walletRepository), ).toResolve(); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(htlcLockTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(htlcLockTransaction)]); const balanceBefore = lockWallet.balance; await handler.apply(htlcRefundTransaction, walletRepository); diff --git a/__tests__/unit/core-transactions/handlers/two/ipfs.test.ts b/__tests__/unit/core-transactions/handlers/two/ipfs.test.ts index b0f71795ff..d572892c4c 100644 --- a/__tests__/unit/core-transactions/handlers/two/ipfs.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/ipfs.test.ts @@ -104,9 +104,7 @@ describe("Ipfs", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(ipfsTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(ipfsTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/multi-payment.test.ts b/__tests__/unit/core-transactions/handlers/two/multi-payment.test.ts index 88514f84d9..466c178bb4 100644 --- a/__tests__/unit/core-transactions/handlers/two/multi-payment.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/multi-payment.test.ts @@ -119,9 +119,7 @@ describe("MultiPaymentTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(multiPaymentTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(multiPaymentTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/multi-signature-registration.test.ts b/__tests__/unit/core-transactions/handlers/two/multi-signature-registration.test.ts index 207baf5d56..c72abc28a7 100644 --- a/__tests__/unit/core-transactions/handlers/two/multi-signature-registration.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/multi-signature-registration.test.ts @@ -63,7 +63,7 @@ beforeEach(() => { }); afterEach(() => { - Mocks.TransactionRepository.setTransactions([]); + Mocks.TransactionRepository.setTransactions([]); }); describe("MultiSignatureRegistrationTransaction", () => { @@ -135,16 +135,12 @@ describe("MultiSignatureRegistrationTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(multiSignatureTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(multiSignatureTransaction)]); await expect(handler.bootstrap()).toResolve(); }); it("should throw if wallet is mutli signature", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(multiSignatureTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(multiSignatureTransaction)]); recipientWallet.setAttribute("multiSignature", multiSignatureTransaction.data.asset!.multiSignature); await expect(handler.bootstrap()).rejects.toThrow(MultiSignatureAlreadyRegisteredError); }); diff --git a/__tests__/unit/core-transactions/handlers/two/second-signature-registration.test.ts b/__tests__/unit/core-transactions/handlers/two/second-signature-registration.test.ts index 1a402a17ac..dbcbe6b9d4 100644 --- a/__tests__/unit/core-transactions/handlers/two/second-signature-registration.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/second-signature-registration.test.ts @@ -96,9 +96,7 @@ describe("SecondSignatureRegistrationTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(secondSignatureTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(secondSignatureTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/transfer.test.ts b/__tests__/unit/core-transactions/handlers/two/transfer.test.ts index 11b6898920..8229c93759 100644 --- a/__tests__/unit/core-transactions/handlers/two/transfer.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/transfer.test.ts @@ -119,9 +119,7 @@ describe("TransferTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(transferTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(transferTransaction)]); await expect(handler.bootstrap()).toResolve(); }); }); diff --git a/__tests__/unit/core-transactions/handlers/two/vote.test.ts b/__tests__/unit/core-transactions/handlers/two/vote.test.ts index 38beb65ef6..f94b7e2a5d 100644 --- a/__tests__/unit/core-transactions/handlers/two/vote.test.ts +++ b/__tests__/unit/core-transactions/handlers/two/vote.test.ts @@ -150,36 +150,26 @@ describe("VoteTransaction", () => { describe("bootstrap", () => { it("should resolve", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(voteTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(voteTransaction)]); await expect(handler.bootstrap()).toResolve(); - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(unvoteTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(unvoteTransaction)]); await expect(handler.bootstrap()).toResolve(); }); it("should throw on vote if wallet already voted", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(voteTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(voteTransaction)]); senderWallet.setAttribute("vote", delegateWallet.publicKey); await expect(handler.bootstrap()).rejects.toThrow(AlreadyVotedError); }); it("should throw on unvote if wallet did not vote", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(unvoteTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(unvoteTransaction)]); await expect(handler.bootstrap()).rejects.toThrow(NoVoteError); }); it("should throw on unvote if wallet vote is mismatch", async () => { - Mocks.TransactionRepository.setTransactions([ - Mapper.mapTransactionToModel(unvoteTransaction), - ]); + Mocks.TransactionRepository.setTransactions([Mapper.mapTransactionToModel(unvoteTransaction)]); senderWallet.setAttribute("vote", "no_a_public_key"); await expect(handler.bootstrap()).rejects.toThrow(UnvoteMismatchError); }); diff --git a/__tests__/unit/core/commands/config-publish.test.ts b/__tests__/unit/core/commands/config-publish.test.ts index 75e7b7fe4b..9d36351b02 100644 --- a/__tests__/unit/core/commands/config-publish.test.ts +++ b/__tests__/unit/core/commands/config-publish.test.ts @@ -33,18 +33,13 @@ describe("PublishCommand", () => { }); it("should throw if the configuration files cannot be found", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(false); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(false); await expect(cli.execute(Command)).rejects.toThrow("Couldn't find the core configuration files"); }); it("should throw if the environment file cannot be found", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(false); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(false); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); @@ -54,10 +49,7 @@ describe("PublishCommand", () => { }); it("should publish the configuration", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); const spyCopy = jest.spyOn(fs, "copySync"); @@ -69,10 +61,7 @@ describe("PublishCommand", () => { }); it("should reset the configuration", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true); const spyRemove = jest.spyOn(fs, "removeSync"); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); @@ -86,10 +75,7 @@ describe("PublishCommand", () => { }); it("should publish the configuration via prompt", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); const spyCopy = jest.spyOn(fs, "copySync"); @@ -107,10 +93,7 @@ describe("PublishCommand", () => { }); it("should throw if no network is selected via prompt", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); const spyCopy = jest.spyOn(fs, "copySync"); @@ -130,10 +113,7 @@ describe("PublishCommand", () => { }); it("should throw if the selected network is invalid via prompt", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true).mockReturnValueOnce(true); const spyEnsure = jest.spyOn(fs, "ensureDirSync"); const spyCopy = jest.spyOn(fs, "copySync"); diff --git a/__tests__/unit/core/commands/core-status.test.ts b/__tests__/unit/core/commands/core-status.test.ts index 08f2ad214d..8c0901763d 100644 --- a/__tests__/unit/core/commands/core-status.test.ts +++ b/__tests__/unit/core/commands/core-status.test.ts @@ -30,7 +30,7 @@ describe("StatusCommand", () => { }); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.execute(Command); diff --git a/__tests__/unit/core/commands/env-get.test.ts b/__tests__/unit/core/commands/env-get.test.ts index e02e8b4f3e..731cb10e59 100644 --- a/__tests__/unit/core/commands/env-get.test.ts +++ b/__tests__/unit/core/commands/env-get.test.ts @@ -17,7 +17,7 @@ describe("GetCommand", () => { writeFileSync(`${process.env.CORE_PATH_CONFIG}/.env`, "CORE_LOG_LEVEL=emergency"); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.withFlags({ key: "CORE_LOG_LEVEL" }).execute(Command); diff --git a/__tests__/unit/core/commands/env-list.test.ts b/__tests__/unit/core/commands/env-list.test.ts index d3bd59329f..3c7fde7a55 100644 --- a/__tests__/unit/core/commands/env-list.test.ts +++ b/__tests__/unit/core/commands/env-list.test.ts @@ -21,7 +21,7 @@ describe("ListCommand", () => { it("should list all environment variables", async () => { let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); const envFile: string = `${process.env.CORE_PATH_CONFIG}/.env`; diff --git a/__tests__/unit/core/commands/env-paths.test.ts b/__tests__/unit/core/commands/env-paths.test.ts index c961432375..4a9c59d272 100644 --- a/__tests__/unit/core/commands/env-paths.test.ts +++ b/__tests__/unit/core/commands/env-paths.test.ts @@ -8,7 +8,7 @@ beforeEach(() => (cli = new Console())); describe("PathsCommand", () => { it("should list all system paths", async () => { let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.execute(Command); diff --git a/__tests__/unit/core/commands/forger-status.test.ts b/__tests__/unit/core/commands/forger-status.test.ts index 855c384160..0aafb0bb23 100644 --- a/__tests__/unit/core/commands/forger-status.test.ts +++ b/__tests__/unit/core/commands/forger-status.test.ts @@ -30,7 +30,7 @@ describe("StatusCommand", () => { }); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.execute(Command); diff --git a/__tests__/unit/core/commands/network-generate.test.ts b/__tests__/unit/core/commands/network-generate.test.ts index 6d3730adcf..99b9a8bacd 100644 --- a/__tests__/unit/core/commands/network-generate.test.ts +++ b/__tests__/unit/core/commands/network-generate.test.ts @@ -81,9 +81,7 @@ describe("GenerateCommand", () => { }); it("should throw if the crypto configuration destination already exists", async () => { - jest.spyOn(fs, "existsSync") - .mockReturnValueOnce(false) - .mockReturnValueOnce(true); + jest.spyOn(fs, "existsSync").mockReturnValueOnce(false).mockReturnValueOnce(true); await expect( cli diff --git a/__tests__/unit/core/commands/relay-status.test.ts b/__tests__/unit/core/commands/relay-status.test.ts index 72aeb7a8db..1c1163b024 100644 --- a/__tests__/unit/core/commands/relay-status.test.ts +++ b/__tests__/unit/core/commands/relay-status.test.ts @@ -30,7 +30,7 @@ describe("StatusCommand", () => { }); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.execute(Command); diff --git a/__tests__/unit/core/commands/top.test.ts b/__tests__/unit/core/commands/top.test.ts index eaa416b317..0518a9e855 100644 --- a/__tests__/unit/core/commands/top.test.ts +++ b/__tests__/unit/core/commands/top.test.ts @@ -37,7 +37,7 @@ describe("TopCommand", () => { ]); let message: string; - jest.spyOn(console, "log").mockImplementationOnce(m => (message = m)); + jest.spyOn(console, "log").mockImplementationOnce((m) => (message = m)); await cli.execute(Command); diff --git a/__tests__/unit/core/commands/update.test.ts b/__tests__/unit/core/commands/update.test.ts index da507353c2..7c5a6a6099 100644 --- a/__tests__/unit/core/commands/update.test.ts +++ b/__tests__/unit/core/commands/update.test.ts @@ -27,9 +27,7 @@ afterAll(() => nock.enableNetConnect()); describe("UpdateCommand", () => { it("should throw if the latest version is already installed", async () => { - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, versionNext); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, versionNext); const spySuccess = jest.spyOn(cli.app.get(Container.Identifiers.Success), "render"); @@ -44,9 +42,7 @@ describe("UpdateCommand", () => { response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"] }; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -66,9 +62,7 @@ describe("UpdateCommand", () => { response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"] }; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -86,9 +80,7 @@ describe("UpdateCommand", () => { response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"] }; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -109,9 +101,7 @@ describe("UpdateCommand", () => { response["dist-tags"].next = "4.0.0-next.0"; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -129,9 +119,7 @@ describe("UpdateCommand", () => { response["dist-tags"].next = "4.0.0-next.0"; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -153,9 +141,7 @@ describe("UpdateCommand", () => { response["dist-tags"].next = "4.0.0-next.0"; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -177,9 +163,7 @@ describe("UpdateCommand", () => { response["dist-tags"].next = "4.0.0-next.0"; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", @@ -202,9 +186,7 @@ describe("UpdateCommand", () => { response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"] }; response.versions["4.0.0-next.0"] = { ...response.versions["2.5.0-next.10"], ...{ version: "4.0.0-next.0" } }; - nock(/.*/) - .get("/@arkecosystem%2Fcore") - .reply(200, response); + nock(/.*/).get("/@arkecosystem%2Fcore").reply(200, response); const sync: jest.SpyInstance = jest.spyOn(execa, "sync").mockReturnValue({ stdout: "stdout", diff --git a/__tests__/unit/crypto/blocks/block.test.ts b/__tests__/unit/crypto/blocks/block.test.ts index 2488732687..d16aa63f96 100644 --- a/__tests__/unit/crypto/blocks/block.test.ts +++ b/__tests__/unit/crypto/blocks/block.test.ts @@ -75,7 +75,7 @@ describe("Block", () => { }); it("should fail to verify a block with incorrect timestamp", () => { - jest.spyOn(Slots, "getSlotNumber").mockImplementation(timestamp => (timestamp ? 2 : 0)); + jest.spyOn(Slots, "getSlotNumber").mockImplementation((timestamp) => (timestamp ? 2 : 0)); const block = BlockFactory.fromData(dummyBlock); expect(block.verification.verified).toBeFalse(); @@ -131,7 +131,7 @@ describe("Block", () => { }); it("should fail to verify a block with too large payload", () => { - jest.spyOn(configManager, "getMilestone").mockImplementation(height => ({ + jest.spyOn(configManager, "getMilestone").mockImplementation((height) => ({ block: { version: 0, maxTransactions: 200, @@ -145,7 +145,7 @@ describe("Block", () => { expect(block.verification.verified).toBeFalse(); expect(block.verification.errors[0]).toContain("Payload is too large"); - jest.spyOn(configManager, "getMilestone").mockImplementation(height => ({ + jest.spyOn(configManager, "getMilestone").mockImplementation((height) => ({ block: { version: 0, maxTransactions: 200, @@ -357,7 +357,7 @@ describe("Block", () => { it("should fail to verify a block if error is thrown", () => { const errorMessage = "Very very, very bad error"; - jest.spyOn(Slots, "getSlotNumber").mockImplementation(height => { + jest.spyOn(Slots, "getSlotNumber").mockImplementation((height) => { throw errorMessage; }); const block = BlockFactory.fromData(dummyBlock); @@ -458,11 +458,9 @@ describe("Block", () => { const dataWithPreviousBlock: any = Object.assign({}, data, { previousBlock: "1234", }); - expect( - serialize(dataWithPreviousBlock) - .slice(12, 20) - .toString("hex"), - ).toEqual(dataWithPreviousBlock.previousBlockHex); + expect(serialize(dataWithPreviousBlock).slice(12, 20).toString("hex")).toEqual( + dataWithPreviousBlock.previousBlockHex, + ); }); }); @@ -470,11 +468,7 @@ describe("Block", () => { it("8 bytes are added, as padding", () => { const dataWithoutPreviousBlock = Object.assign({}, data); delete dataWithoutPreviousBlock.previousBlock; - expect( - serialize(dataWithoutPreviousBlock) - .slice(12, 20) - .toString("hex"), - ).toEqual("0000000000000000"); + expect(serialize(dataWithoutPreviousBlock).slice(12, 20).toString("hex")).toEqual("0000000000000000"); }); }); @@ -483,27 +477,15 @@ describe("Block", () => { }); it("`totalAmount` of transactions is serialized as a UInt64", () => { - expect( - serialize(data) - .readUint64(24) - .toNumber(), - ).toEqual(+data.totalAmount); + expect(serialize(data).readUint64(24).toNumber()).toEqual(+data.totalAmount); }); it("`totalFee` of transactions is serialized as a UInt64", () => { - expect( - serialize(data) - .readUint64(32) - .toNumber(), - ).toEqual(+data.totalFee); + expect(serialize(data).readUint64(32).toNumber()).toEqual(+data.totalFee); }); it("`reward` of transactions is serialized as a UInt64", () => { - expect( - serialize(data) - .readUint64(40) - .toNumber(), - ).toEqual(+data.reward); + expect(serialize(data).readUint64(40).toNumber()).toEqual(+data.reward); }); it("`payloadLength` of transactions is serialized as a UInt32", () => { @@ -542,11 +524,7 @@ describe("Block", () => { describe("if the `blockSignature` is included", () => { it("is serialized", () => { - expect( - serialize(data) - .slice(117, 188) - .toString("hex"), - ).toEqual(data.blockSignature); + expect(serialize(data).slice(117, 188).toString("hex")).toEqual(data.blockSignature); }); it("is serialized unless the `includeSignature` parameter is false", () => { diff --git a/__tests__/unit/crypto/blocks/deserializer.test.ts b/__tests__/unit/crypto/blocks/deserializer.test.ts index 0802387908..168e832ba9 100644 --- a/__tests__/unit/crypto/blocks/deserializer.test.ts +++ b/__tests__/unit/crypto/blocks/deserializer.test.ts @@ -34,7 +34,7 @@ describe("block deserializer", () => { "generatorPublicKey", "blockSignature", ]; - blockFields.forEach(field => { + blockFields.forEach((field) => { expect(deserialized[field].toString()).toEqual(dummyBlock2.data[field].toString()); }); @@ -50,10 +50,10 @@ describe("block deserializer", () => { "recipientId", "signature", ]; - deserialized.transactions.forEach(tx => { - const dummyBlockTx = dummyBlock2.data.transactions.find(dummyTx => dummyTx.id === tx.id); + deserialized.transactions.forEach((tx) => { + const dummyBlockTx = dummyBlock2.data.transactions.find((dummyTx) => dummyTx.id === tx.id); expect(dummyBlockTx).toBeDefined(); - transactionFields.forEach(field => { + transactionFields.forEach((field) => { expect(tx[field].toString()).toEqual(dummyBlockTx[field].toString()); }); }); diff --git a/__tests__/unit/crypto/crypto/hash.test.ts b/__tests__/unit/crypto/crypto/hash.test.ts index a88a19b785..db80ce3331 100644 --- a/__tests__/unit/crypto/crypto/hash.test.ts +++ b/__tests__/unit/crypto/crypto/hash.test.ts @@ -21,9 +21,7 @@ beforeEach(() => { const config = Generators.generateCryptoConfigRaw(); configManager.setConfig(config); - identity = Factories.factory("Identity") - .withOptions({ passphrase: "this is a top secret passphrase" }) - .make(); + identity = Factories.factory("Identity").withOptions({ passphrase: "this is a top secret passphrase" }).make(); }); describe("Hash", () => { diff --git a/__tests__/unit/crypto/crypto/hdwallet.test.ts b/__tests__/unit/crypto/crypto/hdwallet.test.ts index 87b1ab82bb..cc45cf3d1e 100644 --- a/__tests__/unit/crypto/crypto/hdwallet.test.ts +++ b/__tests__/unit/crypto/crypto/hdwallet.test.ts @@ -23,10 +23,7 @@ describe("HDWallet", () => { const child1 = root.derivePath(path); // option 2, manually - const child2 = root - .deriveHardened(0) - .derive(0) - .derive(0); + const child2 = root.deriveHardened(0).derive(0).derive(0); expect(Address.fromPublicKey(child1.publicKey.toString("hex"))).toBe("AZXdSTRFGHPokX6yfXTfHcTzzHKncioj31"); expect(Address.fromPublicKey(child2.publicKey.toString("hex"))).toBe("AZXdSTRFGHPokX6yfXTfHcTzzHKncioj31"); @@ -43,12 +40,7 @@ describe("HDWallet", () => { const child1 = root.derivePath(path); // option 2, manually - const child2 = root - .deriveHardened(44) - .deriveHardened(111) - .deriveHardened(0) - .derive(0) - .derive(0); + const child2 = root.deriveHardened(44).deriveHardened(111).deriveHardened(0).derive(0).derive(0); expect(Address.fromPublicKey(child1.publicKey.toString("hex"))).toBe("AKdstZSrxzeF54e1M41fQzqGqjod9ydG3E"); expect(Address.fromPublicKey(child2.publicKey.toString("hex"))).toBe("AKdstZSrxzeF54e1M41fQzqGqjod9ydG3E"); @@ -118,17 +110,9 @@ describe("HDWallet", () => { it("should derive path", () => { const root = HDWallet.fromMnemonic(mnemonic); - const actual = HDWallet.deriveSlip44(root) - .deriveHardened(0) - .derive(0) - .derive(0); + const actual = HDWallet.deriveSlip44(root).deriveHardened(0).derive(0).derive(0); - const expected = root - .deriveHardened(44) - .deriveHardened(111) - .deriveHardened(0) - .derive(0) - .derive(0); + const expected = root.deriveHardened(44).deriveHardened(111).deriveHardened(0).derive(0).derive(0); expect(Address.fromPublicKey(actual.publicKey.toString("hex"))).toBe("AHQhEsLWX5BbvvK836f1rUyZZZ77YikYq5"); expect(actual.publicKey.toString("hex")).toBe( @@ -147,9 +131,7 @@ describe("HDWallet", () => { it("should derive path", () => { const root = HDWallet.fromMnemonic(mnemonic); - const actual = HDWallet.deriveNetwork(root) - .deriveHardened(0) - .derive(0); + const actual = HDWallet.deriveNetwork(root).deriveHardened(0).derive(0); expect(Address.fromPublicKey(actual.publicKey.toString("hex"))).toBe("AKjBp5V1xG9c5PQqUvtvtoGjvnyA3wLVpA"); expect(actual.publicKey.toString("hex")).toBe( diff --git a/__tests__/unit/crypto/identities/address.test.ts b/__tests__/unit/crypto/identities/address.test.ts index 34c746098c..479bb415ac 100644 --- a/__tests__/unit/crypto/identities/address.test.ts +++ b/__tests__/unit/crypto/identities/address.test.ts @@ -44,7 +44,7 @@ describe("Identities - Address", () => { expect( Address.fromMultiSignatureAsset({ min: 3, - publicKeys: ["secret 1", "secret 2", "secret 3"].map(secret => PublicKey.fromPassphrase(secret)), + publicKeys: ["secret 1", "secret 2", "secret 3"].map((secret) => PublicKey.fromPassphrase(secret)), }), ).toBe("DMS861mLRrtH47QUMVif3C2rBCAdHbmwsi"); }); @@ -73,7 +73,7 @@ describe("Identities - Address", () => { expect(() => { Address.fromMultiSignatureAsset({ min: 7, - publicKeys: ["secret 1", "secret 2", "secret 3"].map(secret => PublicKey.fromPassphrase(secret)), + publicKeys: ["secret 1", "secret 2", "secret 3"].map((secret) => PublicKey.fromPassphrase(secret)), }); }).toThrowError(InvalidMultiSignatureAssetError); diff --git a/__tests__/unit/crypto/identities/public-key.test.ts b/__tests__/unit/crypto/identities/public-key.test.ts index 58dd0480d2..9bca93bb54 100644 --- a/__tests__/unit/crypto/identities/public-key.test.ts +++ b/__tests__/unit/crypto/identities/public-key.test.ts @@ -23,7 +23,7 @@ describe("Identities - Public Key", () => { expect( PublicKey.fromMultiSignatureAsset({ min: 3, - publicKeys: ["secret 1", "secret 2", "secret 3"].map(secret => PublicKey.fromPassphrase(secret)), + publicKeys: ["secret 1", "secret 2", "secret 3"].map((secret) => PublicKey.fromPassphrase(secret)), }), ).toBe("0279f05076556da7173610a7676399c3620276ebbf8c67552ad3b1f26ec7627794"); }); @@ -64,7 +64,7 @@ describe("Identities - Public Key", () => { ], ]; - permutations.forEach(publicKeys => { + permutations.forEach((publicKeys) => { publicKeySet.add( PublicKey.fromMultiSignatureAsset({ min: 2, @@ -100,7 +100,7 @@ describe("Identities - Public Key", () => { expect(() => { PublicKey.fromMultiSignatureAsset({ min: 7, - publicKeys: ["secret 1", "secret 2", "secret 3"].map(secret => PublicKey.fromPassphrase(secret)), + publicKeys: ["secret 1", "secret 2", "secret 3"].map((secret) => PublicKey.fromPassphrase(secret)), }); }).toThrowError(InvalidMultiSignatureAssetError); diff --git a/__tests__/unit/crypto/managers/config.test.ts b/__tests__/unit/crypto/managers/config.test.ts index b86079effb..6ad4ea5da0 100644 --- a/__tests__/unit/crypto/managers/config.test.ts +++ b/__tests__/unit/crypto/managers/config.test.ts @@ -36,7 +36,7 @@ describe("Configuration", () => { const milestones = devnet.milestones.sort((a, b) => a.height - b.height); configManager.setHeight(milestones[0].height); - const lastMilestone = milestones.find(milestone => !!milestone.p2p && !!milestone.p2p.minimumVersions); + const lastMilestone = milestones.find((milestone) => !!milestone.p2p && !!milestone.p2p.minimumVersions); if (lastMilestone && lastMilestone.p2p && configManager.getMilestone().p2p) { expect(configManager.getMilestone().p2p.minimumVersions).toEqual(lastMilestone.p2p.minimumVersions); diff --git a/__tests__/unit/crypto/transactions/__support__/index.ts b/__tests__/unit/crypto/transactions/__support__/index.ts index ab0aa37137..dd8a6461e8 100644 --- a/__tests__/unit/crypto/transactions/__support__/index.ts +++ b/__tests__/unit/crypto/transactions/__support__/index.ts @@ -6,7 +6,7 @@ import { ITransaction } from "@arkecosystem/crypto/src/interfaces"; import { configManager } from "@arkecosystem/crypto/src/managers"; import { BuilderFactory } from "@arkecosystem/crypto/src/transactions"; -export const createRandomTx = type => { +export const createRandomTx = (type) => { let transaction: ITransaction; switch (type) { @@ -55,7 +55,7 @@ export const createRandomTx = type => { const passphrases = [Math.random().toString(36), Math.random().toString(36), Math.random().toString(36)]; - const participants = passphrases.map(passphrase => { + const participants = passphrases.map((passphrase) => { return Keys.fromPassphrase(passphrase); }); @@ -66,7 +66,7 @@ export const createRandomTx = type => { Math.floor(Math.random() * (max - min)) + min, ); - participants.forEach(participant => { + participants.forEach((participant) => { multiSigRegistration.participant(participant.publicKey); }); diff --git a/__tests__/unit/crypto/transactions/builders/transactions/delegate-registration.test.ts b/__tests__/unit/crypto/transactions/builders/transactions/delegate-registration.test.ts index fcdda378e1..2ce43bdf86 100644 --- a/__tests__/unit/crypto/transactions/builders/transactions/delegate-registration.test.ts +++ b/__tests__/unit/crypto/transactions/builders/transactions/delegate-registration.test.ts @@ -31,10 +31,7 @@ describe("Delegate Registration Transaction", () => { }); it("should be valid with a second signature", () => { - const actual = builder - .usernameAsset("homer") - .sign("dummy passphrase") - .secondSign("dummy passphrase"); + const actual = builder.usernameAsset("homer").sign("dummy passphrase").secondSign("dummy passphrase"); expect(actual.build().verified).toBeTrue(); expect(actual.verify()).toBeTrue(); diff --git a/__tests__/unit/crypto/transactions/builders/transactions/multi-signature.test.ts b/__tests__/unit/crypto/transactions/builders/transactions/multi-signature.test.ts index a22beaaa61..ced962ee60 100644 --- a/__tests__/unit/crypto/transactions/builders/transactions/multi-signature.test.ts +++ b/__tests__/unit/crypto/transactions/builders/transactions/multi-signature.test.ts @@ -102,10 +102,7 @@ describe("Multi Signature Transaction", () => { .senderPublicKey("039180ea4a8a803ee11ecb462bb8f9613fcdb5fe917e292dbcc73409f0e98f8f22") .nonce("1"); - actual - .multiSign("secret 1", 0) - .multiSign("secret 2", 1) - .multiSign("secret 3", 2); + actual.multiSign("secret 1", 0).multiSign("secret 2", 1).multiSign("secret 3", 2); expect(actual.data.signatures).toEqual([ "009fe6ca3b83a9a5e693fecb2b184900c5135a8c07e704c473b2f19117630f840428416f583f1a24ff371ba7e6fbca9a7fb796226ef9ef6542f44ed911951ac88d", diff --git a/__tests__/unit/crypto/transactions/builders/transactions/transaction-builder.test.ts b/__tests__/unit/crypto/transactions/builders/transactions/transaction-builder.test.ts index 30753cae45..246aecf18e 100644 --- a/__tests__/unit/crypto/transactions/builders/transactions/transaction-builder.test.ts +++ b/__tests__/unit/crypto/transactions/builders/transactions/transaction-builder.test.ts @@ -24,7 +24,7 @@ describe.each([ BuilderFactory.htlcLock, BuilderFactory.htlcClaim, BuilderFactory.htlcRefund, -])("%s", provider => { +])("%s", (provider) => { describe("TransactionBuilder", () => { let identity; let identitySecond; diff --git a/__tests__/unit/crypto/transactions/builders/transactions/transfer.test.ts b/__tests__/unit/crypto/transactions/builders/transactions/transfer.test.ts index 428c7cb980..46c6676586 100644 --- a/__tests__/unit/crypto/transactions/builders/transactions/transfer.test.ts +++ b/__tests__/unit/crypto/transactions/builders/transactions/transfer.test.ts @@ -58,11 +58,7 @@ describe("Transfer Transaction", () => { const keys = Keys.fromPassphrase(passphrase); const wif = WIF.fromKeys(keys, devnet.network); - const wifTransaction = builder - .recipientId(identity.address) - .amount("10") - .fee("10") - .network(network); + const wifTransaction = builder.recipientId(identity.address).amount("10").fee("10").network(network); const passphraseTransaction = BuilderFactory.transfer(); passphraseTransaction.data = { ...wifTransaction.data }; diff --git a/__tests__/unit/crypto/transactions/deserializer.test.ts b/__tests__/unit/crypto/transactions/deserializer.test.ts index 31c53086eb..e0ba6d2243 100644 --- a/__tests__/unit/crypto/transactions/deserializer.test.ts +++ b/__tests__/unit/crypto/transactions/deserializer.test.ts @@ -322,9 +322,7 @@ describe("Transaction serializer / deserializer", () => { }); it("should fail if more than hardcoded maximum of payments", () => { - const multiPayment = BuilderFactory.multiPayment() - .fee("50000000") - .network(23); + const multiPayment = BuilderFactory.multiPayment().fee("50000000").network(23); for (let i = 0; i < configManager.getMilestone().multiPaymentLimit; i++) { multiPayment.addPayment(Address.fromPassphrase(`recipient-${i}`), "1"); diff --git a/__tests__/unit/crypto/transactions/factory.test.ts b/__tests__/unit/crypto/transactions/factory.test.ts index 9ce7e75474..6dbe39f2a7 100644 --- a/__tests__/unit/crypto/transactions/factory.test.ts +++ b/__tests__/unit/crypto/transactions/factory.test.ts @@ -104,8 +104,8 @@ describe("TransactionFactory", () => { it("should match transaction id", () => { configManager.setFromPreset("testnet"); [0, 1, 2, 3] - .map(type => createRandomTx(type)) - .forEach(transaction => { + .map((type) => createRandomTx(type)) + .forEach((transaction) => { const originalId = transaction.data.id; const newTransaction = TransactionFactory.fromData(transaction.data); expect(newTransaction.data.id).toEqual(originalId); diff --git a/__tests__/unit/crypto/transactions/schemas.test.ts b/__tests__/unit/crypto/transactions/schemas.test.ts index a76a562fcd..38f5ca75f4 100644 --- a/__tests__/unit/crypto/transactions/schemas.test.ts +++ b/__tests__/unit/crypto/transactions/schemas.test.ts @@ -30,10 +30,7 @@ describe("Transfer Transaction", () => { }); it("should be valid", () => { - transaction - .recipientId(address) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(address).amount(amount).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).toBeUndefined(); @@ -73,10 +70,7 @@ describe("Transfer Transaction", () => { }); it("should be invalid with more than 64 bytes in vendor field", () => { - transaction - .recipientId(address) - .amount(amount) - .fee(Utils.BigNumber.make(fee).toFixed()); + transaction.recipientId(address).amount(amount).fee(Utils.BigNumber.make(fee).toFixed()); // Bypass vendorfield check by manually assigning a vendorfield > 64 bytes transaction.data.vendorField = "a".repeat(65); @@ -85,10 +79,7 @@ describe("Transfer Transaction", () => { let { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); - transaction - .recipientId(address) - .amount(amount) - .fee(Utils.BigNumber.make(fee).toFixed()); + transaction.recipientId(address).amount(amount).fee(Utils.BigNumber.make(fee).toFixed()); // Bypass vendorfield check by manually assigning a vendorfield > 64 bytes transaction.data.vendorField = "⊁".repeat(22); @@ -104,20 +95,14 @@ describe("Transfer Transaction", () => { }); it("should be invalid due to no address", () => { - transaction - .recipientId(undefined) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(undefined).amount(amount).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to invalid address", () => { - transaction - .recipientId(address) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(address).amount(amount).sign("passphrase"); const struct = transaction.getStruct(); struct.recipientId = "woop"; @@ -127,21 +112,14 @@ describe("Transfer Transaction", () => { }); it("should be invalid due to zero amount", () => { - transaction - .recipientId(address) - .amount(0) - .sign("passphrase"); + transaction.recipientId(address).amount(0).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to zero fee", () => { - transaction - .recipientId(address) - .amount("1") - .fee("0") - .sign("passphrase"); + transaction.recipientId(address).amount("1").fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -156,11 +134,7 @@ describe("Transfer Transaction", () => { }); it("should be valid due to missing network byte", () => { - transaction - .recipientId(address) - .amount("1") - .fee("1") - .sign("passphrase"); + transaction.recipientId(address).amount("1").fee("1").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).toBeUndefined(); @@ -179,12 +153,7 @@ describe("Transfer Transaction", () => { }); it("should be invalid due to wrong network byte", () => { - transaction - .recipientId(address) - .amount("1") - .fee("1") - .network(1) - .sign("passphrase"); + transaction.recipientId(address).amount("1").fee("1").network(1).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -259,10 +228,7 @@ describe("Second Signature Transaction", () => { }); it("should be valid with correct data", () => { - transaction - .signatureAsset("second passphrase") - .fee("100000000") - .sign("passphrase"); + transaction.signatureAsset("second passphrase").fee("100000000").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).toBeUndefined(); @@ -274,31 +240,21 @@ describe("Second Signature Transaction", () => { }); it("should be invalid due to non-zero amount", () => { - transaction - .signatureAsset("second passphrase") - .amount("1000000000") - .sign("passphrase"); + transaction.signatureAsset("second passphrase").amount("1000000000").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to zero fee", () => { - transaction - .signatureAsset("second passphrase") - .fee("0") - .sign("passphrase"); + transaction.signatureAsset("second passphrase").fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to second signature", () => { - transaction - .signatureAsset("second passphrase") - .fee("1") - .sign("passphrase") - .secondSign("second passphrase"); + transaction.signatureAsset("second passphrase").fee("1").sign("passphrase").secondSign("second passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -345,10 +301,7 @@ describe("Delegate Registration Transaction", () => { }); it("should be invalid due to zero fee", () => { - transaction - .usernameAsset("delegate1") - .fee("0") - .sign("passphrase"); + transaction.usernameAsset("delegate1").fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -455,10 +408,7 @@ describe("Vote Transaction", () => { }); it("should be invalid due to zero fee", () => { - transaction - .votesAsset(votes) - .fee("0") - .sign("passphrase"); + transaction.votesAsset(votes).fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -588,10 +538,7 @@ describe("Multi Signature Registration Transaction", () => { }); it("should be invalid due to zero fee", () => { - transaction - .multiSignatureAsset(multiSignatureAsset) - .fee("0") - .sign("passphrase"); + transaction.multiSignatureAsset(multiSignatureAsset).fee("0").sign("passphrase"); signTransaction(transaction, passphrases); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); @@ -699,11 +646,11 @@ describe("Multi Signature Registration Transaction", () => { signTransaction(transaction, passphrases); const struct = transaction.getStruct(); - struct.asset.multiSignature.publicKeys = participants.map(value => `-${value.slice(1)}`); + struct.asset.multiSignature.publicKeys = participants.map((value) => `-${value.slice(1)}`); let { error } = Ajv.validate(transactionSchema.$id, struct); expect(error).not.toBeUndefined(); - struct.asset.multiSignature.publicKeys = participants.map(value => "a"); + struct.asset.multiSignature.publicKeys = participants.map((value) => "a"); error = Ajv.validate(transactionSchema.$id, struct).error; expect(error).not.toBeUndefined(); }); @@ -759,10 +706,7 @@ describe("Multi Payment Transaction", () => { }); it("should be valid with 2 payments", () => { - multiPayment - .addPayment(address, "150") - .addPayment(address, "100") - .sign("passphrase"); + multiPayment.addPayment(address, "150").addPayment(address, "100").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, multiPayment.getStruct()); expect(error).toBeUndefined(); @@ -813,11 +757,7 @@ describe("Multi Payment Transaction", () => { }); it("should be invalid due to zero fee", () => { - multiPayment - .addPayment(address, "150") - .addPayment(address, "100") - .fee("0") - .sign("passphrase"); + multiPayment.addPayment(address, "150").addPayment(address, "100").fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, multiPayment.getStruct()); expect(error).not.toBeUndefined(); @@ -853,11 +793,7 @@ describe("HTLC Lock Transaction", () => { }); it("should be valid with valid secret hash and expiration timestamp", () => { - transaction - .recipientId(address) - .fee(fee) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(address).fee(fee).amount(amount).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).toBeUndefined(); @@ -882,11 +818,7 @@ describe("HTLC Lock Transaction", () => { }); it("should be invalid when expiration value is not a number", () => { - transaction - .recipientId(address) - .fee(fee) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(address).fee(fee).amount(amount).sign("passphrase"); const struct = transaction.getStruct(); struct.asset.lock.expiration.value = "woop"; @@ -896,20 +828,14 @@ describe("HTLC Lock Transaction", () => { }); it("should be invalid due to no address", () => { - transaction - .recipientId(undefined) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(undefined).amount(amount).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to invalid address", () => { - transaction - .recipientId(address) - .amount(amount) - .sign("passphrase"); + transaction.recipientId(address).amount(amount).sign("passphrase"); const struct = transaction.getStruct(); struct.recipientId = "woop"; @@ -919,21 +845,14 @@ describe("HTLC Lock Transaction", () => { }); it("should be invalid due to zero amount", () => { - transaction - .recipientId(address) - .amount(0) - .sign("passphrase"); + transaction.recipientId(address).amount(0).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to zero fee", () => { - transaction - .recipientId(address) - .amount("1") - .fee("0") - .sign("passphrase"); + transaction.recipientId(address).amount("1").fee("0").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -965,10 +884,7 @@ describe("HTLC Claim Transaction", () => { }); it("should be valid with valid transaction id and unlock secret", () => { - transaction - .recipientId(address) - .fee(fee) - .sign("passphrase"); + transaction.recipientId(address).fee(fee).sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).toBeUndefined(); @@ -1017,21 +933,14 @@ describe("HTLC Claim Transaction", () => { }); it("should be invalid due to non-zero amount", () => { - transaction - .recipientId(address) - .amount("1") - .sign("passphrase"); + transaction.recipientId(address).amount("1").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to non-zero fee", () => { - transaction - .recipientId(address) - .amount("0") - .fee("1") - .sign("passphrase"); + transaction.recipientId(address).amount("0").fee("1").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); @@ -1057,10 +966,7 @@ describe("HTLC Refund Transaction", () => { }); beforeEach(() => { - transaction = BuilderFactory.htlcRefund() - .recipientId(address) - .fee("0") - .htlcRefundAsset(htlcRefundAsset); + transaction = BuilderFactory.htlcRefund().recipientId(address).fee("0").htlcRefundAsset(htlcRefundAsset); }); it("should be valid with valid transaction id", () => { @@ -1093,21 +999,14 @@ describe("HTLC Refund Transaction", () => { }); it("should be invalid due to non-zero amount", () => { - transaction - .recipientId(address) - .amount("1") - .sign("passphrase"); + transaction.recipientId(address).amount("1").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); }); it("should be invalid due to non-zero fee", () => { - transaction - .recipientId(address) - .amount("0") - .fee("1") - .sign("passphrase"); + transaction.recipientId(address).amount("0").fee("1").sign("passphrase"); const { error } = Ajv.validate(transactionSchema.$id, transaction.getStruct()); expect(error).not.toBeUndefined(); diff --git a/__tests__/unit/crypto/transactions/utils.test.ts b/__tests__/unit/crypto/transactions/utils.test.ts index 282782c3cd..8ad1c52d39 100644 --- a/__tests__/unit/crypto/transactions/utils.test.ts +++ b/__tests__/unit/crypto/transactions/utils.test.ts @@ -23,7 +23,7 @@ import { transaction as transactionDataFixture } from "../fixtures/transaction"; let transactionData: ITransactionData; let transactionDataJSON; -const createRandomTx = type => { +const createRandomTx = (type) => { let transaction: ITransaction; switch (type) { @@ -70,7 +70,7 @@ const createRandomTx = type => { configManager.getMilestone().aip11 = true; const passphrases = [Math.random().toString(36), Math.random().toString(36), Math.random().toString(36)]; - const participants = passphrases.map(passphrase => { + const participants = passphrases.map((passphrase) => { return Keys.fromPassphrase(passphrase); }); @@ -81,7 +81,7 @@ const createRandomTx = type => { Math.floor(Math.random() * (max - min)) + min, ); - participants.forEach(participant => { + participants.forEach((participant) => { multiSigRegistration.participant(participant.publicKey); }); @@ -118,8 +118,8 @@ describe("Transaction", () => { describe("toBytes / fromBytes", () => { it("should verify all transactions", () => { [0, 1, 2, 3] - .map(type => createRandomTx(type)) - .forEach(transaction => { + .map((type) => createRandomTx(type)) + .forEach((transaction) => { const newTransaction = TransactionFactory.fromBytes(TransactionUtils.toBytes(transaction.data)); // TODO: Remove both from data when not needed diff --git a/__tests__/unit/crypto/transactions/verifier.test.ts b/__tests__/unit/crypto/transactions/verifier.test.ts index 393059c5c5..5061ec8b57 100644 --- a/__tests__/unit/crypto/transactions/verifier.test.ts +++ b/__tests__/unit/crypto/transactions/verifier.test.ts @@ -60,7 +60,7 @@ describe("Verifier", () => { }); // Test each type on it's own - describe.each([0, 1, 2, 3])("type %s", type => { + describe.each([0, 1, 2, 3])("type %s", (type) => { it("should be ok", () => { const tx = createRandomTx(type); expect(tx.verify()).toBeTrue(); diff --git a/__tests__/unit/crypto/utils/is-valid-peer.test.ts b/__tests__/unit/crypto/utils/is-valid-peer.test.ts index 1c54471607..e31b7388c3 100644 --- a/__tests__/unit/crypto/utils/is-valid-peer.test.ts +++ b/__tests__/unit/crypto/utils/is-valid-peer.test.ts @@ -38,7 +38,7 @@ describe("isValidPeer", () => { // getting local addresses for (const iface of Object.keys(interfaces)) { - interfaces[iface].some(iface => (addresses as any).push(iface.address)); + interfaces[iface].some((iface) => (addresses as any).push(iface.address)); } for (const ipAddress of addresses) { diff --git a/__tests__/unit/crypto/utils/network-list.ts b/__tests__/unit/crypto/utils/network-list.ts index b936c6cf38..b179d53de2 100644 --- a/__tests__/unit/crypto/utils/network-list.ts +++ b/__tests__/unit/crypto/utils/network-list.ts @@ -6,11 +6,11 @@ import tg from "tiny-glob/sync"; const entries = tg("../../../../packages/crypto/src/networks/**/*.json", { cwd: __dirname }); const NETWORKS = {}; -entries.forEach(file => { +entries.forEach((file) => { NETWORKS[parse(file).name] = require(file); }); const NETWORKS_LIST = []; -entries.forEach(file => NETWORKS_LIST.push(require(file))); +entries.forEach((file) => NETWORKS_LIST.push(require(file))); module.exports = { NETWORKS, NETWORKS_LIST }; diff --git a/package.json b/package.json index dd1412c2f3..6b0fd265a4 100644 --- a/package.json +++ b/package.json @@ -50,57 +50,57 @@ "bench": "node benchmark/index.js" }, "devDependencies": { - "@babel/core": "^7.7.7", - "@babel/preset-env": "^7.7.7", - "@commitlint/cli": "^8.2.0", - "@commitlint/config-conventional": "^8.2.0", + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@commitlint/cli": "^8.3.5", + "@commitlint/config-conventional": "^8.3.4", "@faustbrian/benchmarker": "^0.1.2", "@oclif/dev-cli": "^1.22.2", - "@types/babel__core": "^7.1.3", + "@types/babel__core": "^7.1.6", "@types/create-hash": "^1.2.2", "@types/depcheck": "^0.9.1", - "@types/jest": "^24.0.24", - "@types/js-yaml": "^3.12.1", - "@types/node": "^12.12.21", - "@types/prettier": "^1.19.0", + "@types/jest": "^25.1.4", + "@types/js-yaml": "^3.12.3", + "@types/node": "^13.9.5", + "@types/prettier": "^1.19.1", "@types/rimraf": "^3.0.0", - "@types/uuid": "^3.4.6", - "@typescript-eslint/eslint-plugin": "^2.22.0", - "@typescript-eslint/parser": "^2.22.0", - "babel-loader": "^8.0.6", + "@types/uuid": "^7.0.2", + "@typescript-eslint/eslint-plugin": "^2.25.0", + "@typescript-eslint/parser": "^2.25.0", + "babel-loader": "^8.1.0", "capture-console": "^1.0.1", - "codecov": "^3.6.1", - "cpy-cli": "^3.0.0", + "codecov": "^3.6.5", + "cpy-cli": "^3.1.0", "create-hash": "^1.2.0", - "cross-env": "^7.0.0", + "cross-env": "^7.0.2", "del-cli": "^3.0.0", - "depcheck": "^0.9.1", - "eslint": "^6.7.2", - "eslint-config-prettier": "^6.7.0", - "eslint-plugin-jest": "^23.1.1", + "depcheck": "^0.9.2", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-jest": "^23.8.2", "eslint-plugin-prettier": "^3.1.2", - "eslint-plugin-simple-import-sort": "^5.0.0", - "get-port": "^5.1.0", - "husky": "^3.1.0", - "jest": "^24.9.0", - "jest-extended": "^0.11.2", + "eslint-plugin-simple-import-sort": "^5.0.2", + "get-port": "^5.1.1", + "husky": "^4.2.3", + "jest": "^25.2.3", + "jest-extended": "^0.11.5", "js-yaml": "^3.13.1", - "lerna": "^3.19.0", - "lint-staged": "^9.5.0", - "madge": "^3.6.0", + "lerna": "^3.20.2", + "lint-staged": "^10.0.9", + "madge": "^3.8.0", "moment": "^2.24.0", - "moment-timezone": "^0.5.27", - "nock": "^11.7.0", - "npm-check-updates": "^4.0.1", - "prettier": "^2.0.0", - "rimraf": "^3.0.0", - "sinon": "^9.0.0", + "moment-timezone": "^0.5.28", + "nock": "^12.0.3", + "npm-check-updates": "^4.1.0", + "prettier": "^2.0.2", + "rimraf": "^3.0.2", + "sinon": "^9.0.1", "tmp": "^0.1.0", - "ts-jest": "^24.2.0", - "typedoc": "^0.17.0", + "ts-jest": "^25.2.1", + "typedoc": "^0.17.3", "typescript": "^3.8.3", "typesync": "^0.6.1", - "uuid": "^3.3.3" + "uuid": "^7.0.2" }, "workspaces": [ "packages/*", diff --git a/packages/core-api/src/controllers/controller.ts b/packages/core-api/src/controllers/controller.ts index 3fba19bba4..bfafd241ad 100644 --- a/packages/core-api/src/controllers/controller.ts +++ b/packages/core-api/src/controllers/controller.ts @@ -45,7 +45,7 @@ export class Controller { /* istanbul ignore next */ protected toCollection(data, transformer, transform = true): object { - return data.map(item => this.toResource(item, transformer, transform)); + return data.map((item) => this.toResource(item, transformer, transform)); } protected toPagination(data, transformer, transform = true): object { diff --git a/packages/core-api/src/controllers/peers.ts b/packages/core-api/src/controllers/peers.ts index 3c794d8c5f..2a2d2f6a02 100644 --- a/packages/core-api/src/controllers/peers.ts +++ b/packages/core-api/src/controllers/peers.ts @@ -20,7 +20,7 @@ export class PeersController extends Controller { const versionRange = semver.validRange(decodeURIComponent((request.query as any).version)); if (versionRange) { - result = result.filter(peer => peer.version && semver.satisfies(peer.version, versionRange)); + result = result.filter((peer) => peer.version && semver.satisfies(peer.version, versionRange)); } else { return Boom.notFound("Invalid version range provided"); } @@ -42,7 +42,7 @@ export class PeersController extends Controller { const order: string = request.query.orderBy as string; if (order) { - const orderByMapped = order.split(":").map(p => p.toLowerCase()); + const orderByMapped = order.split(":").map((p) => p.toLowerCase()); switch (orderByMapped[0]) { case "version": { @@ -55,7 +55,7 @@ export class PeersController extends Controller { case "height": { result = Utils.orderBy( result, - el => el.state[orderByMapped[0]], + (el) => el.state[orderByMapped[0]], orderByMapped[1] === "asc" ? "asc" : "desc", ); break; diff --git a/packages/core-api/src/controllers/transactions.ts b/packages/core-api/src/controllers/transactions.ts index 8fbc0073f3..bb3eba0d01 100644 --- a/packages/core-api/src/controllers/transactions.ts +++ b/packages/core-api/src/controllers/transactions.ts @@ -69,7 +69,7 @@ export class TransactionsController extends Controller { pagination.offset, pagination.offset + pagination.limit, ); - const rows = transactions.map(t => ({ serialized: t.serialized.toString("hex") })); + const rows = transactions.map((t) => ({ serialized: t.serialized.toString("hex") })); return super.toPagination({ count: all.length, rows }, TransactionResource, !!request.query.transform); } diff --git a/packages/core-api/src/plugins/cache.ts b/packages/core-api/src/plugins/cache.ts index 5e05da7411..202681466c 100644 --- a/packages/core-api/src/plugins/cache.ts +++ b/packages/core-api/src/plugins/cache.ts @@ -42,16 +42,10 @@ export = { } if (value.isBoom) { - return h - .response(value.data.payload) - .code(value.data.statusCode) - .takeover(); + return h.response(value.data.payload).code(value.data.statusCode).takeover(); } - return h - .response(value.data) - .code(200) - .takeover(); + return h.response(value.data).code(200).takeover(); } return h.continue; diff --git a/packages/core-api/src/plugins/hapi-ajv.ts b/packages/core-api/src/plugins/hapi-ajv.ts index cba5f440c7..86ec1d0c8f 100644 --- a/packages/core-api/src/plugins/hapi-ajv.ts +++ b/packages/core-api/src/plugins/hapi-ajv.ts @@ -10,7 +10,7 @@ export const hapiAjv = { version: "1.0.0", register: async (server: Hapi.Server, options: any): Promise => { const createErrorResponse = (request, h, errors) => { - return Boom.badData(errors.map(error => error.message).join(",")); + return Boom.badData(errors.map((error) => error.message).join(",")); }; server.ext({ diff --git a/packages/core-api/src/plugins/index.ts b/packages/core-api/src/plugins/index.ts index 4d10894841..8159ef5838 100644 --- a/packages/core-api/src/plugins/index.ts +++ b/packages/core-api/src/plugins/index.ts @@ -1,7 +1,7 @@ import { hapiAjv } from "./hapi-ajv"; import { whitelist } from "./whitelist"; -export const preparePlugins = config => [ +export const preparePlugins = (config) => [ { plugin: whitelist, options: { diff --git a/packages/core-api/src/plugins/pagination/config.ts b/packages/core-api/src/plugins/pagination/config.ts index 58c0ce2c85..532e677a6e 100644 --- a/packages/core-api/src/plugins/pagination/config.ts +++ b/packages/core-api/src/plugins/pagination/config.ts @@ -2,14 +2,11 @@ import Joi from "@hapi/joi"; -export const getConfig = options => { +export const getConfig = (options) => { const { error, value } = Joi.object({ query: Joi.object({ limit: Joi.object({ - default: Joi.number() - .integer() - .positive() - .default(100), + default: Joi.number().integer().positive().default(100), }), }), }).validate(options); diff --git a/packages/core-api/src/plugins/pagination/ext.ts b/packages/core-api/src/plugins/pagination/ext.ts index 693fbd2c20..da08a1705a 100644 --- a/packages/core-api/src/plugins/pagination/ext.ts +++ b/packages/core-api/src/plugins/pagination/ext.ts @@ -52,7 +52,7 @@ export class Ext { const { method, path } = request.route; return ( - this.routes.find(route => route.method === method && `${this.routePathPrefix}${route.path}` === path) !== + this.routes.find((route) => route.method === method && `${this.routePathPrefix}${route.path}` === path) !== undefined ); } diff --git a/packages/core-api/src/routes/blocks.ts b/packages/core-api/src/routes/blocks.ts index d01967e232..8f96076c71 100644 --- a/packages/core-api/src/routes/blocks.ts +++ b/packages/core-api/src/routes/blocks.ts @@ -18,35 +18,17 @@ export const register = (server: Hapi.Server): void => { ...{ orderBy: server.app.schemas.orderBy, id: server.app.schemas.blockId, - version: Joi.number() - .integer() - .min(0), - timestamp: Joi.number() - .integer() - .min(0), + version: Joi.number().integer().min(0), + timestamp: Joi.number().integer().min(0), previousBlock: server.app.schemas.blockId, - height: Joi.number() - .integer() - .positive(), - numberOfTransactions: Joi.number() - .integer() - .min(0), - totalAmount: Joi.number() - .integer() - .min(0), - totalFee: Joi.number() - .integer() - .min(0), - reward: Joi.number() - .integer() - .min(0), - payloadLength: Joi.number() - .integer() - .positive(), + height: Joi.number().integer().positive(), + numberOfTransactions: Joi.number().integer().min(0), + totalAmount: Joi.number().integer().min(0), + totalFee: Joi.number().integer().min(0), + reward: Joi.number().integer().min(0), + payloadLength: Joi.number().integer().positive(), payloadHash: Joi.string().hex(), - generatorPublicKey: Joi.string() - .hex() - .length(66), + generatorPublicKey: Joi.string().hex().length(66), blockSignature: Joi.string().hex(), transform: Joi.bool().default(true), }, @@ -110,34 +92,16 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(66), + id: Joi.string().hex().length(66), blockId: server.app.schemas.blockId, - type: Joi.number() - .integer() - .min(0), - version: Joi.number() - .integer() - .min(0), - senderPublicKey: Joi.string() - .hex() - .length(66), - senderId: Joi.string() - .alphanum() - .length(34), - recipientId: Joi.string() - .alphanum() - .length(34), - timestamp: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + type: Joi.number().integer().min(0), + version: Joi.number().integer().min(0), + senderPublicKey: Joi.string().hex().length(66), + senderId: Joi.string().alphanum().length(34), + recipientId: Joi.string().alphanum().length(34), + timestamp: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -164,40 +128,36 @@ export const register = (server: Hapi.Server): void => { offset: Joi.number().min(0), criteria: Joi.array().items( server.app.schemas.searchCriteria("id", server.app.schemas.blockId, ["equal", "in", "like"]), - server.app.schemas.searchCriteria( - "version", - Joi.number() - .integer() - .min(0), - ["equal", "in", "like", "lessThanEqual", "greaterThanEqual"], - ), + server.app.schemas.searchCriteria("version", Joi.number().integer().min(0), [ + "equal", + "in", + "like", + "lessThanEqual", + "greaterThanEqual", + ]), server.app.schemas.searchCriteria("previousBlock", server.app.schemas.blockId, [ "equal", "in", "like", ]), server.app.schemas.searchCriteria("payloadHash", Joi.string().hex(), ["equal", "in", "like"]), - server.app.schemas.searchCriteria( - "generatorPublicKey", - Joi.string() - .hex() - .length(66), - ["equal", "in", "like"], - ), - server.app.schemas.searchCriteria( - "blockSignature", - Joi.string() - .hex() - .max(144), - ["equal", "in", "like"], - ), - server.app.schemas.searchCriteria( - "timestamp", - Joi.number() - .integer() - .min(0), - ["equal", "in", "like", "lessThanEqual", "greaterThanEqual"], - ), + server.app.schemas.searchCriteria("generatorPublicKey", Joi.string().hex().length(66), [ + "equal", + "in", + "like", + ]), + server.app.schemas.searchCriteria("blockSignature", Joi.string().hex().max(144), [ + "equal", + "in", + "like", + ]), + server.app.schemas.searchCriteria("timestamp", Joi.number().integer().min(0), [ + "equal", + "in", + "like", + "lessThanEqual", + "greaterThanEqual", + ]), server.app.schemas.searchCriteria("height", server.app.schemas.numberFixedOrBetween, [ "between", "equal", diff --git a/packages/core-api/src/routes/delegates.ts b/packages/core-api/src/routes/delegates.ts index 16ce5f7ae7..59718d7bce 100644 --- a/packages/core-api/src/routes/delegates.ts +++ b/packages/core-api/src/routes/delegates.ts @@ -19,28 +19,14 @@ export const register = (server: Hapi.Server): void => { ...{ orderBy: server.app.schemas.orderBy, type: Joi.string().valid("resigned", "never-forged"), - address: Joi.string() - .alphanum() - .length(34), - publicKey: Joi.string() - .hex() - .length(66), - secondPublicKey: Joi.string() - .hex() - .length(66), - vote: Joi.string() - .hex() - .length(66), + address: Joi.string().alphanum().length(34), + publicKey: Joi.string().hex().length(66), + secondPublicKey: Joi.string().hex().length(66), + vote: Joi.string().hex().length(66), username: server.app.schemas.username, - balance: Joi.number() - .integer() - .min(0), - voteBalance: Joi.number() - .integer() - .min(0), - producedBlocks: Joi.number() - .integer() - .min(0), + balance: Joi.number().integer().min(0), + voteBalance: Joi.number().integer().min(0), + producedBlocks: Joi.number().integer().min(0), }, }), }, @@ -73,28 +59,14 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - address: Joi.string() - .alphanum() - .length(34), - publicKey: Joi.string() - .hex() - .length(66), - secondPublicKey: Joi.string() - .hex() - .length(66), - vote: Joi.string() - .hex() - .length(66), + address: Joi.string().alphanum().length(34), + publicKey: Joi.string().hex().length(66), + secondPublicKey: Joi.string().hex().length(66), + vote: Joi.string().hex().length(66), username: server.app.schemas.username, - balance: Joi.number() - .integer() - .min(0), - voteBalance: Joi.number() - .integer() - .min(0), - producedBlocks: Joi.number() - .integer() - .min(0), + balance: Joi.number().integer().min(0), + voteBalance: Joi.number().integer().min(0), + producedBlocks: Joi.number().integer().min(0), transform: Joi.bool().default(true), }, }), @@ -116,35 +88,17 @@ export const register = (server: Hapi.Server): void => { ...{ orderBy: server.app.schemas.orderBy, id: server.app.schemas.blockId, - version: Joi.number() - .integer() - .min(0), - timestamp: Joi.number() - .integer() - .min(0), + version: Joi.number().integer().min(0), + timestamp: Joi.number().integer().min(0), previousBlock: server.app.schemas.blockId, - height: Joi.number() - .integer() - .positive(), - numberOfTransactions: Joi.number() - .integer() - .min(0), - totalAmount: Joi.number() - .integer() - .min(0), - totalFee: Joi.number() - .integer() - .min(0), - reward: Joi.number() - .integer() - .min(0), - payloadLength: Joi.number() - .integer() - .min(0), + height: Joi.number().integer().positive(), + numberOfTransactions: Joi.number().integer().min(0), + totalAmount: Joi.number().integer().min(0), + totalFee: Joi.number().integer().min(0), + reward: Joi.number().integer().min(0), + payloadLength: Joi.number().integer().min(0), payloadHash: Joi.string().hex(), - generatorPublicKey: Joi.string() - .hex() - .length(66), + generatorPublicKey: Joi.string().hex().length(66), blockSignature: Joi.string().hex(), transform: Joi.bool().default(true), }, @@ -166,12 +120,8 @@ export const register = (server: Hapi.Server): void => { }, }), payload: Joi.object({ - address: Joi.string() - .alphanum() - .length(34), - publicKey: Joi.string() - .hex() - .length(66), + address: Joi.string().alphanum().length(34), + publicKey: Joi.string().hex().length(66), username: server.app.schemas.username, usernames: Joi.array() .unique() diff --git a/packages/core-api/src/routes/locks.ts b/packages/core-api/src/routes/locks.ts index dc36afc867..cc826dae67 100644 --- a/packages/core-api/src/routes/locks.ts +++ b/packages/core-api/src/routes/locks.ts @@ -18,24 +18,12 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - recipientId: Joi.string() - .alphanum() - .length(34), - senderPublicKey: Joi.string() - .hex() - .length(66), - lockId: Joi.string() - .hex() - .length(64), - secretHash: Joi.string() - .hex() - .length(64), - amount: Joi.number() - .integer() - .min(0), - expirationValue: Joi.number() - .integer() - .min(0), + recipientId: Joi.string().alphanum().length(34), + senderPublicKey: Joi.string().hex().length(66), + lockId: Joi.string().hex().length(64), + secretHash: Joi.string().hex().length(64), + amount: Joi.number().integer().min(0), + expirationValue: Joi.number().integer().min(0), expirationType: Joi.number().allow(...Object.values(Enums.HtlcLockExpirationType)), isExpired: Joi.bool(), }, @@ -51,9 +39,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), }), }, }, @@ -72,45 +58,23 @@ export const register = (server: Hapi.Server): void => { }, }), payload: Joi.object({ - recipientId: Joi.string() - .alphanum() - .length(34), - senderPublicKey: Joi.string() - .hex() - .length(66), - lockId: Joi.string() - .hex() - .length(64), - secretHash: Joi.string() - .hex() - .length(64), + recipientId: Joi.string().alphanum().length(34), + senderPublicKey: Joi.string().hex().length(66), + lockId: Joi.string().hex().length(64), + secretHash: Joi.string().hex().length(64), amount: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), timestamp: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), - vendorField: Joi.string() - .min(1) - .max(255), + vendorField: Joi.string().min(1).max(255), expirationType: Joi.number().allow(...Object.values(Enums.HtlcLockExpirationType)), expirationValue: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), isExpired: Joi.bool(), }), @@ -131,15 +95,7 @@ export const register = (server: Hapi.Server): void => { }, }), payload: Joi.object({ - ids: Joi.array() - .unique() - .min(1) - .max(25) - .items( - Joi.string() - .hex() - .length(64), - ), + ids: Joi.array().unique().min(1).max(25).items(Joi.string().hex().length(64)), }), }, }, diff --git a/packages/core-api/src/routes/node.ts b/packages/core-api/src/routes/node.ts index 18b9b8f7b1..7f21156386 100644 --- a/packages/core-api/src/routes/node.ts +++ b/packages/core-api/src/routes/node.ts @@ -38,11 +38,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { query: Joi.object({ - days: Joi.number() - .integer() - .min(1) - .max(30) - .default(7), + days: Joi.number().integer().min(1).max(30).default(7), }), }, }, diff --git a/packages/core-api/src/routes/rounds.ts b/packages/core-api/src/routes/rounds.ts index e5875fd786..7b0f9d9905 100644 --- a/packages/core-api/src/routes/rounds.ts +++ b/packages/core-api/src/routes/rounds.ts @@ -14,9 +14,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.number() - .integer() - .min(1), + id: Joi.number().integer().min(1), }), }, }, diff --git a/packages/core-api/src/routes/transactions.ts b/packages/core-api/src/routes/transactions.ts index 3658a20f1f..c040885bf1 100644 --- a/packages/core-api/src/routes/transactions.ts +++ b/packages/core-api/src/routes/transactions.ts @@ -18,40 +18,18 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), blockId: server.app.schemas.blockId, - type: Joi.number() - .integer() - .min(0), - typeGroup: Joi.number() - .integer() - .min(0), - version: Joi.number() - .integer() - .positive(), - senderPublicKey: Joi.string() - .hex() - .length(66), - senderId: Joi.string() - .alphanum() - .length(34), - recipientId: Joi.string() - .alphanum() - .length(34), - timestamp: Joi.number() - .integer() - .min(0), - nonce: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + type: Joi.number().integer().min(0), + typeGroup: Joi.number().integer().min(0), + version: Joi.number().integer().positive(), + senderPublicKey: Joi.string().hex().length(66), + senderId: Joi.string().alphanum().length(34), + recipientId: Joi.string().alphanum().length(34), + timestamp: Joi.number().integer().min(0), + nonce: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -97,9 +75,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), }), query: Joi.object({ transform: Joi.bool().default(true), @@ -131,9 +107,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), }), }, }, @@ -156,55 +130,43 @@ export const register = (server: Hapi.Server): void => { limit: Joi.number().min(0), offset: Joi.number().min(0), criteria: Joi.array().items( - server.app.schemas.searchCriteria( - "id", - Joi.string() - .hex() - .length(64), - ["equal", "in", "like"], - ), + server.app.schemas.searchCriteria("id", Joi.string().hex().length(64), ["equal", "in", "like"]), server.app.schemas.searchCriteria("blockId", server.app.schemas.blockId, [ "equal", "in", "like", ]), - server.app.schemas.searchCriteria( - "type", - Joi.number() - .integer() - .min(0), - ["equal", "in", "like", "lessThanEqual", "greaterThanEqual"], - ), - server.app.schemas.searchCriteria( - "typeGroup", - Joi.number() - .integer() - .min(0), - ["equal", "in", "like", "lessThanEqual", "greaterThanEqual"], - ), - server.app.schemas.searchCriteria( - "version", - Joi.number() - .integer() - .positive(), - ["equal", "in", "like", "lessThanEqual", "greaterThanEqual"], - ), - server.app.schemas.searchCriteria( - "senderPublicKey", - Joi.string() - .hex() - .length(66), - ["equal", "in", "like"], - ), + server.app.schemas.searchCriteria("type", Joi.number().integer().min(0), [ + "equal", + "in", + "like", + "lessThanEqual", + "greaterThanEqual", + ]), + server.app.schemas.searchCriteria("typeGroup", Joi.number().integer().min(0), [ + "equal", + "in", + "like", + "lessThanEqual", + "greaterThanEqual", + ]), + server.app.schemas.searchCriteria("version", Joi.number().integer().positive(), [ + "equal", + "in", + "like", + "lessThanEqual", + "greaterThanEqual", + ]), + server.app.schemas.searchCriteria("senderPublicKey", Joi.string().hex().length(66), [ + "equal", + "in", + "like", + ]), server.app.schemas.searchCriteria( "senderId", Joi.alternatives().try( server.app.schemas.address, - Joi.array() - .unique() - .min(1) - .max(50) - .items(server.app.schemas.address), + Joi.array().unique().min(1).max(50).items(server.app.schemas.address), ), ["equal", "in", "like"], ), @@ -212,11 +174,7 @@ export const register = (server: Hapi.Server): void => { "recipientId", Joi.alternatives().try( server.app.schemas.address, - Joi.array() - .unique() - .min(1) - .max(50) - .items(server.app.schemas.address), + Joi.array().unique().min(1).max(50).items(server.app.schemas.address), ), ["equal", "in", "like"], ), diff --git a/packages/core-api/src/routes/votes.ts b/packages/core-api/src/routes/votes.ts index f2c5cf2d6b..85765ccd39 100644 --- a/packages/core-api/src/routes/votes.ts +++ b/packages/core-api/src/routes/votes.ts @@ -17,31 +17,15 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), blockId: server.app.schemas.blockId, - version: Joi.number() - .integer() - .positive(), - senderPublicKey: Joi.string() - .hex() - .length(66), - senderId: Joi.string() - .alphanum() - .length(34), - recipientId: Joi.string() - .alphanum() - .length(34), - timestamp: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + version: Joi.number().integer().positive(), + senderPublicKey: Joi.string().hex().length(66), + senderId: Joi.string().alphanum().length(34), + recipientId: Joi.string().alphanum().length(34), + timestamp: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -57,9 +41,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), }), query: Joi.object({ transform: Joi.bool().default(true), diff --git a/packages/core-api/src/routes/wallets.ts b/packages/core-api/src/routes/wallets.ts index 3b38c003d4..d20db00db5 100644 --- a/packages/core-api/src/routes/wallets.ts +++ b/packages/core-api/src/routes/wallets.ts @@ -17,26 +17,14 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - address: Joi.string() - .alphanum() - .length(34), - publicKey: Joi.string() - .hex() - .length(66), - secondPublicKey: Joi.string() - .hex() - .length(66), - vote: Joi.string() - .hex() - .length(66), + address: Joi.string().alphanum().length(34), + publicKey: Joi.string().hex().length(66), + secondPublicKey: Joi.string().hex().length(66), + vote: Joi.string().hex().length(66), username: Joi.string(), balance: Joi.number().integer(), - voteBalance: Joi.number() - .integer() - .min(0), - producedBlocks: Joi.number() - .integer() - .min(0), + voteBalance: Joi.number().integer().min(0), + producedBlocks: Joi.number().integer().min(0), }, }), }, @@ -53,26 +41,14 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - address: Joi.string() - .alphanum() - .length(34), - publicKey: Joi.string() - .hex() - .length(66), - secondPublicKey: Joi.string() - .hex() - .length(66), - vote: Joi.string() - .hex() - .length(66), + address: Joi.string().alphanum().length(34), + publicKey: Joi.string().hex().length(66), + secondPublicKey: Joi.string().hex().length(66), + vote: Joi.string().hex().length(66), username: Joi.string(), balance: Joi.number().integer(), - voteBalance: Joi.number() - .integer() - .min(0), - producedBlocks: Joi.number() - .integer() - .min(0), + voteBalance: Joi.number().integer().min(0), + producedBlocks: Joi.number().integer().min(0), }, }), }, @@ -105,31 +81,15 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), blockId: server.app.schemas.blockId, - type: Joi.number() - .integer() - .min(0), - typeGroup: Joi.number() - .integer() - .min(0), - version: Joi.number() - .integer() - .positive(), - timestamp: Joi.number() - .integer() - .min(0), - nonce: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + type: Joi.number().integer().min(0), + typeGroup: Joi.number().integer().min(0), + version: Joi.number().integer().positive(), + timestamp: Joi.number().integer().min(0), + nonce: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -151,34 +111,16 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), blockId: server.app.schemas.blockId, - type: Joi.number() - .integer() - .min(0), - typeGroup: Joi.number() - .integer() - .min(0), - version: Joi.number() - .integer() - .positive(), - recipientId: Joi.string() - .alphanum() - .length(34), - timestamp: Joi.number() - .integer() - .min(0), - nonce: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + type: Joi.number().integer().min(0), + typeGroup: Joi.number().integer().min(0), + version: Joi.number().integer().positive(), + recipientId: Joi.string().alphanum().length(34), + timestamp: Joi.number().integer().min(0), + nonce: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -200,37 +142,17 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - id: Joi.string() - .hex() - .length(64), + id: Joi.string().hex().length(64), blockId: server.app.schemas.blockId, - type: Joi.number() - .integer() - .min(0), - typeGroup: Joi.number() - .integer() - .min(0), - version: Joi.number() - .integer() - .positive(), - senderPublicKey: Joi.string() - .hex() - .length(66), - senderId: Joi.string() - .alphanum() - .length(34), - timestamp: Joi.number() - .integer() - .min(0), - nonce: Joi.number() - .integer() - .min(0), - amount: Joi.number() - .integer() - .min(0), - fee: Joi.number() - .integer() - .min(0), + type: Joi.number().integer().min(0), + typeGroup: Joi.number().integer().min(0), + version: Joi.number().integer().positive(), + senderPublicKey: Joi.string().hex().length(66), + senderId: Joi.string().alphanum().length(34), + timestamp: Joi.number().integer().min(0), + nonce: Joi.number().integer().min(0), + amount: Joi.number().integer().min(0), + fee: Joi.number().integer().min(0), vendorField: Joi.string().max(255, "utf8"), transform: Joi.bool().default(true), }, @@ -292,43 +214,23 @@ export const register = (server: Hapi.Server): void => { }), payload: Joi.object({ address: server.app.schemas.address, - addresses: Joi.array() - .unique() - .min(1) - .max(50) - .items(server.app.schemas.address), - publicKey: Joi.string() - .hex() - .length(66), - secondPublicKey: Joi.string() - .hex() - .length(66), - vote: Joi.string() - .hex() - .length(66), + addresses: Joi.array().unique().min(1).max(50).items(server.app.schemas.address), + publicKey: Joi.string().hex().length(66), + secondPublicKey: Joi.string().hex().length(66), + vote: Joi.string().hex().length(66), username: Joi.string(), - producedBlocks: Joi.number() - .integer() - .min(0), + producedBlocks: Joi.number().integer().min(0), balance: Joi.object().keys({ from: Joi.number().integer(), to: Joi.number().integer(), }), voteBalance: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), lockedBalance: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), }), }, diff --git a/packages/core-api/src/schemas.ts b/packages/core-api/src/schemas.ts index 64b2e9b65b..5c8f05766a 100644 --- a/packages/core-api/src/schemas.ts +++ b/packages/core-api/src/schemas.ts @@ -2,31 +2,18 @@ import Joi from "@hapi/joi"; export const createSchemas = ({ pagination }: { pagination: { limit: number } }) => ({ pagination: { - page: Joi.number() - .integer() - .positive() - .default(1), - offset: Joi.number() - .integer() - .min(0), - limit: Joi.number() - .integer() - .min(1) - .default(100) - .max(pagination.limit), + page: Joi.number().integer().positive().default(1), + offset: Joi.number().integer().min(0), + limit: Joi.number().integer().min(1).default(100).max(pagination.limit), }, blockId: Joi.alternatives().try( Joi.string() .min(1) .max(20) .regex(/^[0-9]+$/, "decimal non-negative integer"), - Joi.string() - .length(64) - .hex(), + Joi.string().length(64).hex(), ), - address: Joi.string() - .alphanum() - .length(34), + address: Joi.string().alphanum().length(34), delegateIdentifier: Joi.string() .regex(/^[a-zA-Z0-9!@$&_.]+$/) .min(1) @@ -36,44 +23,26 @@ export const createSchemas = ({ pagination }: { pagination: { limit: number } }) .min(1) .max(20), integerBetween: Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), percentage: Joi.object().keys({ - from: Joi.number() - .precision(2) - .min(0) - .max(100), - to: Joi.number() - .precision(2) - .min(0) - .max(100), + from: Joi.number().precision(2).min(0).max(100), + to: Joi.number().precision(2).min(0).max(100), }), searchCriteria: (field: string, value: any, operator: string[]) => Joi.object().keys({ - field: Joi.string() - .allow(field) - .required(), + field: Joi.string().allow(field).required(), value: value.required(), operator: Joi.string() .allow(...operator) .required(), }), numberFixedOrBetween: Joi.alternatives().try( - Joi.number() - .integer() - .min(0), + Joi.number().integer().min(0), Joi.object().keys({ - from: Joi.number() - .integer() - .min(0), - to: Joi.number() - .integer() - .min(0), + from: Joi.number().integer().min(0), + to: Joi.number().integer().min(0), }), ), walletId: Joi.alternatives().try( @@ -81,12 +50,8 @@ export const createSchemas = ({ pagination }: { pagination: { limit: number } }) .regex(/^[a-z0-9!@$&_.]+$/) .min(1) .max(20), - Joi.string() - .alphanum() - .length(34), - Joi.string() - .hex() - .length(66), + Joi.string().alphanum().length(34), + Joi.string().hex().length(66), ), orderBy: Joi.string().regex(/^[a-z._]{1,40}:(asc|desc)$/i, "orderBy query parameter (:)"), }); diff --git a/packages/core-api/src/service-provider.ts b/packages/core-api/src/service-provider.ts index 16e5ab3101..46a134ca80 100644 --- a/packages/core-api/src/service-provider.ts +++ b/packages/core-api/src/service-provider.ts @@ -37,10 +37,7 @@ export class ServiceProvider extends Providers.ServiceProvider { } private async buildServer(type: string, id: symbol): Promise { - this.app - .bind(id) - .to(Server) - .inSingletonScope(); + this.app.bind(id).to(Server).inSingletonScope(); const server: Server = this.app.get(id); diff --git a/packages/core-blockchain/src/blockchain.ts b/packages/core-blockchain/src/blockchain.ts index 490fbbb7db..d6d30fb781 100644 --- a/packages/core-blockchain/src/blockchain.ts +++ b/packages/core-blockchain/src/blockchain.ts @@ -216,9 +216,9 @@ export class Blockchain implements Contracts.Blockchain.Blockchain { const lastDownloadedHeight: number = this.getLastDownloadedBlock().height; const milestoneHeights: number[] = Managers.configManager .getMilestones() - .map(milestone => milestone.height) + .map((milestone) => milestone.height) .sort((a, b) => a - b) - .filter(height => height >= lastDownloadedHeight); + .filter((height) => height >= lastDownloadedHeight); // divide blocks received into chunks depending on number of transactions // this is to avoid blocking the application when processing "heavy" blocks @@ -296,7 +296,7 @@ export class Blockchain implements Contracts.Blockchain.Blockchain { this.state.lastDownloadedBlock = newLastBlock.data; }; - const __removeBlocks = async numberOfBlocks => { + const __removeBlocks = async (numberOfBlocks) => { if (numberOfBlocks < 1) { return; } diff --git a/packages/core-blockchain/src/processor/block-processor.ts b/packages/core-blockchain/src/processor/block-processor.ts index 878577c23a..dee95563bc 100644 --- a/packages/core-blockchain/src/processor/block-processor.ts +++ b/packages/core-blockchain/src/processor/block-processor.ts @@ -55,10 +55,7 @@ export class BlockProcessor { const isValidGenerator: boolean = await this.validateGenerator(block); const isChained: boolean = AppUtils.isBlockChained(this.blockchain.getLastBlock().data, block.data); if (!isChained) { - return this.app - .resolve(UnchainedHandler) - .initialize(isValidGenerator) - .execute(block); + return this.app.resolve(UnchainedHandler).initialize(isValidGenerator).execute(block); } if (!isValidGenerator) { @@ -112,7 +109,7 @@ export class BlockProcessor { private async checkBlockContainsForgedTransactions(block: Interfaces.IBlock): Promise { if (block.transactions.length > 0) { const forgedIds: string[] = await this.transactionRepository.getForgedTransactionsIds( - block.transactions.map(tx => { + block.transactions.map((tx) => { AppUtils.assert.defined(tx.id); return tx.id; diff --git a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts index 25a355e696..85e95ea9bb 100644 --- a/packages/core-blockchain/src/processor/handlers/unchained-handler.ts +++ b/packages/core-blockchain/src/processor/handlers/unchained-handler.ts @@ -86,7 +86,7 @@ export class UnchainedHandler implements BlockHandler { .get(Container.Identifiers.DatabaseService) .getActiveDelegates(roundInfo); - if (delegates.some(delegate => delegate.publicKey === block.data.generatorPublicKey)) { + if (delegates.some((delegate) => delegate.publicKey === block.data.generatorPublicKey)) { return BlockProcessorResult.Rollback; } diff --git a/packages/core-blockchain/src/service-provider.ts b/packages/core-blockchain/src/service-provider.ts index 91fb7debef..5a554cd406 100644 --- a/packages/core-blockchain/src/service-provider.ts +++ b/packages/core-blockchain/src/service-provider.ts @@ -6,10 +6,7 @@ import { blockchainMachine } from "./state-machine/machine"; export class ServiceProvider extends Providers.ServiceProvider { public async register(): Promise { - this.app - .bind(Container.Identifiers.StateMachine) - .to(StateMachine) - .inSingletonScope(); + this.app.bind(Container.Identifiers.StateMachine).to(StateMachine).inSingletonScope(); const blockchain: Blockchain = this.app.resolve(Blockchain); diff --git a/packages/core-blockchain/src/state-machine/state-machine.ts b/packages/core-blockchain/src/state-machine/state-machine.ts index a043c117b1..541fa5b639 100644 --- a/packages/core-blockchain/src/state-machine/state-machine.ts +++ b/packages/core-blockchain/src/state-machine/state-machine.ts @@ -28,7 +28,7 @@ export class StateMachine { this.logger.debug( `event '${event}': ${JSON.stringify(this.stateStore.blockchain.value)} -> ${JSON.stringify( nextState.value, - )} -> actions: [${nextState.actions.map(a => a.type).join(", ")}]`, + )} -> actions: [${nextState.actions.map((a) => a.type).join(", ")}]`, ); } else { this.logger.debug( diff --git a/packages/core-cli/src/application-factory.ts b/packages/core-cli/src/application-factory.ts index 51b34fe980..a74d071c34 100644 --- a/packages/core-cli/src/application-factory.ts +++ b/packages/core-cli/src/application-factory.ts @@ -60,13 +60,9 @@ export class ApplicationFactory { app.bind(Identifiers.ConsolePaths).toConstantValue(envPaths(pkg.name!)); // Factories - app.bind(Identifiers.ActionFactory) - .to(ActionFactory) - .inSingletonScope(); + app.bind(Identifiers.ActionFactory).to(ActionFactory).inSingletonScope(); - app.bind(Identifiers.ComponentFactory) - .to(ComponentFactory) - .inSingletonScope(); + app.bind(Identifiers.ComponentFactory).to(ComponentFactory).inSingletonScope(); app.bind(Identifiers.ProcessFactory).toFactory( (context: interfaces.Context) => (token: string, type: string): Process => { @@ -78,184 +74,96 @@ export class ApplicationFactory { ); // Services - app.bind(Identifiers.Output) - .to(Output) - .inSingletonScope(); + app.bind(Identifiers.Output).to(Output).inSingletonScope(); - app.bind(Identifiers.Logger) - .to(Logger) - .inSingletonScope(); + app.bind(Identifiers.Logger).to(Logger).inSingletonScope(); - app.bind(Identifiers.Config) - .to(Config) - .inSingletonScope(); + app.bind(Identifiers.Config).to(Config).inSingletonScope(); - app.bind(Identifiers.Updater) - .to(Updater) - .inSingletonScope(); + app.bind(Identifiers.Updater).to(Updater).inSingletonScope(); - app.bind(Identifiers.ProcessManager) - .to(ProcessManager) - .inSingletonScope(); + app.bind(Identifiers.ProcessManager).to(ProcessManager).inSingletonScope(); - app.bind(Identifiers.Installer) - .to(Installer) - .inSingletonScope(); + app.bind(Identifiers.Installer).to(Installer).inSingletonScope(); - app.bind(Identifiers.Environment) - .to(Environment) - .inSingletonScope(); + app.bind(Identifiers.Environment).to(Environment).inSingletonScope(); // Input - app.bind(Identifiers.Input) - .to(Input) - .inSingletonScope(); + app.bind(Identifiers.Input).to(Input).inSingletonScope(); - app.bind(Identifiers.InputValidator) - .to(InputValidator) - .inSingletonScope(); + app.bind(Identifiers.InputValidator).to(InputValidator).inSingletonScope(); // Actions - app.bind(Identifiers.AbortErroredProcess) - .to(AbortErroredProcess) - .inSingletonScope(); + app.bind(Identifiers.AbortErroredProcess).to(AbortErroredProcess).inSingletonScope(); - app.bind(Identifiers.AbortMissingProcess) - .to(AbortMissingProcess) - .inSingletonScope(); + app.bind(Identifiers.AbortMissingProcess).to(AbortMissingProcess).inSingletonScope(); - app.bind(Identifiers.AbortRunningProcess) - .to(AbortRunningProcess) - .inSingletonScope(); + app.bind(Identifiers.AbortRunningProcess).to(AbortRunningProcess).inSingletonScope(); - app.bind(Identifiers.AbortStoppedProcess) - .to(AbortStoppedProcess) - .inSingletonScope(); + app.bind(Identifiers.AbortStoppedProcess).to(AbortStoppedProcess).inSingletonScope(); - app.bind(Identifiers.AbortUnknownProcess) - .to(AbortUnknownProcess) - .inSingletonScope(); + app.bind(Identifiers.AbortUnknownProcess).to(AbortUnknownProcess).inSingletonScope(); - app.bind(Identifiers.DaemonizeProcess) - .to(DaemonizeProcess) - .inSingletonScope(); + app.bind(Identifiers.DaemonizeProcess).to(DaemonizeProcess).inSingletonScope(); - app.bind(Identifiers.RestartProcess) - .to(RestartProcess) - .inSingletonScope(); + app.bind(Identifiers.RestartProcess).to(RestartProcess).inSingletonScope(); - app.bind(Identifiers.RestartRunningProcess) - .to(RestartRunningProcess) - .inSingletonScope(); + app.bind(Identifiers.RestartRunningProcess).to(RestartRunningProcess).inSingletonScope(); - app.bind(Identifiers.RestartRunningProcessWithPrompt) - .to(RestartRunningProcessWithPrompt) - .inSingletonScope(); + app.bind(Identifiers.RestartRunningProcessWithPrompt).to(RestartRunningProcessWithPrompt).inSingletonScope(); // Components - app.bind(Identifiers.AppHeader) - .to(AppHeader) - .inSingletonScope(); + app.bind(Identifiers.AppHeader).to(AppHeader).inSingletonScope(); - app.bind(Identifiers.Ask) - .to(Ask) - .inSingletonScope(); + app.bind(Identifiers.Ask).to(Ask).inSingletonScope(); - app.bind(Identifiers.AskDate) - .to(AskDate) - .inSingletonScope(); + app.bind(Identifiers.AskDate).to(AskDate).inSingletonScope(); - app.bind(Identifiers.AskHidden) - .to(AskHidden) - .inSingletonScope(); + app.bind(Identifiers.AskHidden).to(AskHidden).inSingletonScope(); - app.bind(Identifiers.AskNumber) - .to(AskNumber) - .inSingletonScope(); + app.bind(Identifiers.AskNumber).to(AskNumber).inSingletonScope(); - app.bind(Identifiers.AskPassword) - .to(AskPassword) - .inSingletonScope(); + app.bind(Identifiers.AskPassword).to(AskPassword).inSingletonScope(); - app.bind(Identifiers.AutoComplete) - .to(AutoComplete) - .inSingletonScope(); + app.bind(Identifiers.AutoComplete).to(AutoComplete).inSingletonScope(); - app.bind(Identifiers.Box) - .to(Box) - .inSingletonScope(); + app.bind(Identifiers.Box).to(Box).inSingletonScope(); - app.bind(Identifiers.Clear) - .to(Clear) - .inSingletonScope(); + app.bind(Identifiers.Clear).to(Clear).inSingletonScope(); - app.bind(Identifiers.Confirm) - .to(Confirm) - .inSingletonScope(); + app.bind(Identifiers.Confirm).to(Confirm).inSingletonScope(); - app.bind(Identifiers.Error) - .to(Error) - .inSingletonScope(); + app.bind(Identifiers.Error).to(Error).inSingletonScope(); - app.bind(Identifiers.Fatal) - .to(Fatal) - .inSingletonScope(); + app.bind(Identifiers.Fatal).to(Fatal).inSingletonScope(); - app.bind(Identifiers.Info) - .to(Info) - .inSingletonScope(); + app.bind(Identifiers.Info).to(Info).inSingletonScope(); - app.bind(Identifiers.Listing) - .to(Listing) - .inSingletonScope(); + app.bind(Identifiers.Listing).to(Listing).inSingletonScope(); - app.bind(Identifiers.Log) - .to(Log) - .inSingletonScope(); + app.bind(Identifiers.Log).to(Log).inSingletonScope(); - app.bind(Identifiers.MultiSelect) - .to(MultiSelect) - .inSingletonScope(); + app.bind(Identifiers.MultiSelect).to(MultiSelect).inSingletonScope(); - app.bind(Identifiers.NewLine) - .to(NewLine) - .inSingletonScope(); + app.bind(Identifiers.NewLine).to(NewLine).inSingletonScope(); - app.bind(Identifiers.Prompt) - .to(Prompt) - .inSingletonScope(); + app.bind(Identifiers.Prompt).to(Prompt).inSingletonScope(); - app.bind(Identifiers.Select) - .to(Select) - .inSingletonScope(); + app.bind(Identifiers.Select).to(Select).inSingletonScope(); - app.bind(Identifiers.Spinner) - .to(Spinner) - .inSingletonScope(); + app.bind(Identifiers.Spinner).to(Spinner).inSingletonScope(); - app.bind(Identifiers.Success) - .to(Success) - .inSingletonScope(); + app.bind(Identifiers.Success).to(Success).inSingletonScope(); - app.bind(Identifiers.Table) - .to(Table) - .inSingletonScope(); + app.bind(Identifiers.Table).to(Table).inSingletonScope(); - app.bind(Identifiers.TaskList) - .to(TaskList) - .inSingletonScope(); + app.bind(Identifiers.TaskList).to(TaskList).inSingletonScope(); - app.bind(Identifiers.Title) - .to(Title) - .inSingletonScope(); + app.bind(Identifiers.Title).to(Title).inSingletonScope(); - app.bind(Identifiers.Toggle) - .to(Toggle) - .inSingletonScope(); + app.bind(Identifiers.Toggle).to(Toggle).inSingletonScope(); - app.bind(Identifiers.Warning) - .to(Warning) - .inSingletonScope(); + app.bind(Identifiers.Warning).to(Warning).inSingletonScope(); return app; } diff --git a/packages/core-cli/src/commands/discover-network.ts b/packages/core-cli/src/commands/discover-network.ts index 6c4a23e353..914f549e57 100644 --- a/packages/core-cli/src/commands/discover-network.ts +++ b/packages/core-cli/src/commands/discover-network.ts @@ -24,7 +24,7 @@ export class DiscoverNetwork { throw new Error(`The [${path}] directory does not exist.`); } - const folders: string[] = readdirSync(path).filter(folder => this.isValidNetwork(folder)); + const folders: string[] = readdirSync(path).filter((folder) => this.isValidNetwork(folder)); if (!folders || folders.length === 0) { throw new Error( @@ -51,8 +51,8 @@ export class DiscoverNetwork { name: "network", message: "What network do you want to operate on?", choices: folders - .filter(folder => this.isValidNetwork(folder)) - .map(folder => ({ title: folder, value: folder })), + .filter((folder) => this.isValidNetwork(folder)) + .map((folder) => ({ title: folder, value: folder })), }, { type: "confirm", diff --git a/packages/core-cli/src/input/validator.ts b/packages/core-cli/src/input/validator.ts index 1de054d305..20a8432381 100644 --- a/packages/core-cli/src/input/validator.ts +++ b/packages/core-cli/src/input/validator.ts @@ -15,9 +15,7 @@ export class InputValidator { * @memberof InputValidator */ public validate(data: object, schema: object): object { - const { error, value } = Joi.object(schema) - .unknown(true) - .validate(data); + const { error, value } = Joi.object(schema).unknown(true).validate(data); if (error) { let errorMessage: string = ""; diff --git a/packages/core-cli/src/plugins/suggest.ts b/packages/core-cli/src/plugins/suggest.ts index ea8317901e..417393e0ee 100644 --- a/packages/core-cli/src/plugins/suggest.ts +++ b/packages/core-cli/src/plugins/suggest.ts @@ -39,7 +39,7 @@ export class SuggestCommand { return undefined; } - const suggestion: string = minBy(signatures, c => Levenshtein.get(signature, c)); + const suggestion: string = minBy(signatures, (c) => Levenshtein.get(signature, c)); this.app.get(Identifiers.Warning).render(`${red(signature)} is not a ${context.bin} command.`); diff --git a/packages/core-cli/src/utils/process.ts b/packages/core-cli/src/utils/process.ts index 1028a13f32..0895d1c8ea 100644 --- a/packages/core-cli/src/utils/process.ts +++ b/packages/core-cli/src/utils/process.ts @@ -91,7 +91,7 @@ export class Process { this.app .get(Identifiers.Table) - .render(["ID", "Name", "Version", "Status", "Uptime", "CPU", "RAM"], table => { + .render(["ID", "Name", "Version", "Status", "Uptime", "CPU", "RAM"], (table) => { const app: ProcessDescription | undefined = this.processManager.describe(this.processName); Utils.assert.defined(app); diff --git a/packages/core-database/src/database-service.ts b/packages/core-database/src/database-service.ts index d10cf53dac..ac94b5e93f 100644 --- a/packages/core-database/src/database-service.ts +++ b/packages/core-database/src/database-service.ts @@ -212,7 +212,7 @@ export class DatabaseService { const seedSource: string = round.toString(); let currentSeed: Buffer = Crypto.HashAlgorithms.sha256(seedSource); - delegates = delegates.map(delegate => delegate.clone()); + delegates = delegates.map((delegate) => delegate.clone()); for (let i = 0, delCount = delegates.length; i < delCount; i++) { for (let x = 0; x < 4 && i < delCount; i++, x++) { const newIndex = currentSeed[x] % delCount; @@ -328,7 +328,7 @@ export class DatabaseService { } } - const heightsToGetFromDB: number[] = Object.keys(toGetFromDB).map(height => +height); + const heightsToGetFromDB: number[] = Object.keys(toGetFromDB).map((height) => +height); if (heightsToGetFromDB.length > 0) { const blocksByHeights = await this.blockRepository.findByHeights(heightsToGetFromDB); @@ -422,7 +422,7 @@ export class DatabaseService { blocks = await this.blockRepository.findRecent(10); } - return blocks.map(block => block.id); + return blocks.map((block) => block.id); } public async getTopBlocks(count: number): Promise { @@ -654,7 +654,7 @@ export class DatabaseService { serialized: Buffer; }> = await this.getTransactionsForBlocks(blocks); - const transactions = dbTransactions.map(tx => { + const transactions = dbTransactions.map((tx) => { const { data } = Transactions.TransactionFactory.fromBytesUnsafe(tx.serialized, tx.id); data.blockId = tx.blockId; return data; @@ -662,7 +662,7 @@ export class DatabaseService { for (const block of blocks) { if (block.numberOfTransactions > 0) { - block.transactions = transactions.filter(transaction => transaction.blockId === block.id); + block.transactions = transactions.filter((transaction) => transaction.blockId === block.id); } } } @@ -715,7 +715,7 @@ export class DatabaseService { for (const delegate of delegates) { const producedBlocks: Interfaces.IBlock[] = this.blocksInCurrentRound.filter( - blockGenerator => blockGenerator.data.generatorPublicKey === delegate.publicKey, + (blockGenerator) => blockGenerator.data.generatorPublicKey === delegate.publicKey, ); if (producedBlocks.length === 0) { diff --git a/packages/core-database/src/repositories/block-repository.ts b/packages/core-database/src/repositories/block-repository.ts index 99a8eeaf72..850f455118 100644 --- a/packages/core-database/src/repositories/block-repository.ts +++ b/packages/core-database/src/repositories/block-repository.ts @@ -81,14 +81,14 @@ export class BlockRepository extends AbstractEntityRepository { ); const blocks = await this.query(query, parameters); - return blocks.map(block => { + return blocks.map((block) => { return this.rawToEntity( block, // @ts-ignore (entity: Block & { transactions: Interfaces.ITransactionData[] }, _, value: Buffer[] | undefined) => { if (value && value.length) { entity.transactions = value.map( - buffer => Transactions.TransactionFactory.fromBytesUnsafe(buffer).data, + (buffer) => Transactions.TransactionFactory.fromBytesUnsafe(buffer).data, ); } }, @@ -172,7 +172,7 @@ export class BlockRepository extends AbstractEntityRepository { } public async saveBlocks(blocks: Interfaces.IBlock[]): Promise { - return this.manager.transaction(async manager => { + return this.manager.transaction(async (manager) => { const blockEntities: Block[] = []; const transactionEntities: Transaction[] = []; @@ -182,7 +182,7 @@ export class BlockRepository extends AbstractEntityRepository { }); if (block.transactions.length > 0) { - let transactions = block.transactions.map(tx => + let transactions = block.transactions.map((tx) => Object.assign(new Transaction(), { ...tx.data, timestamp: tx.timestamp, @@ -196,7 +196,7 @@ export class BlockRepository extends AbstractEntityRepository { const fixedOrderIds = wrongTransactionOrder[block.data.id!].reverse(); transactions = fixedOrderIds.map((id: string) => - transactions.find(transaction => transaction.id === id), + transactions.find((transaction) => transaction.id === id), ); } @@ -212,12 +212,12 @@ export class BlockRepository extends AbstractEntityRepository { } public async deleteBlocks(blocks: Interfaces.IBlockData[]): Promise { - return this.manager.transaction(async manager => { + return this.manager.transaction(async (manager) => { // Delete all rounds after the current round if there are still // any left. const lastBlockHeight: number = blocks[blocks.length - 1].height; const { round } = Utils.roundCalculator.calculateRound(lastBlockHeight); - const blockIds = { blockIds: blocks.map(b => b.id) }; + const blockIds = { blockIds: blocks.map((b) => b.id) }; await manager .createQueryBuilder() @@ -226,12 +226,7 @@ export class BlockRepository extends AbstractEntityRepository { .where("block_id IN (:...blockIds)", blockIds) .execute(); - await manager - .createQueryBuilder() - .delete() - .from(Block) - .where("id IN (:...blockIds)", blockIds) - .execute(); + await manager.createQueryBuilder().delete().from(Block).where("id IN (:...blockIds)", blockIds).execute(); await manager .createQueryBuilder() @@ -254,7 +249,7 @@ export class BlockRepository extends AbstractEntityRepository { const queryBuilder: SelectQueryBuilder = this.createQueryBuilderFromFilter(filter); const criteria: SearchCriteria[] = filter.criteria; - for (const item of criteria.filter(param => param.operator !== SearchOperator.Custom)) { + for (const item of criteria.filter((param) => param.operator !== SearchOperator.Custom)) { const { expression, parameters } = this.criteriaToExpression(item); queryBuilder.andWhere(expression, parameters); } diff --git a/packages/core-database/src/repositories/repository.ts b/packages/core-database/src/repositories/repository.ts index ef462ea066..e70240d93a 100644 --- a/packages/core-database/src/repositories/repository.ts +++ b/packages/core-database/src/repositories/repository.ts @@ -17,7 +17,7 @@ export abstract class AbstractEntityRepository ext protected propertyToColumnName(property: string): string | undefined { // Property names coming from query parameters are always lowercase - return this.metadata.columns.find(column => column.propertyName.toLowerCase() === property.toLowerCase()) + return this.metadata.columns.find((column) => column.propertyName.toLowerCase() === property.toLowerCase()) ?.databaseName; } @@ -81,7 +81,7 @@ export abstract class AbstractEntityRepository ext // Replace auto-generated column name with property name, if any. const columnName: string = key.replace(`${this.metadata.givenTableName}_`, ""); const columnMetadata: ColumnMetadata | undefined = this.metadata.columns.find( - column => column.databaseName === columnName, + (column) => column.databaseName === columnName, ); if (columnMetadata) { let propertyValue: any; diff --git a/packages/core-database/src/repositories/search.ts b/packages/core-database/src/repositories/search.ts index a62c6ec6e8..8db2fb761f 100644 --- a/packages/core-database/src/repositories/search.ts +++ b/packages/core-database/src/repositories/search.ts @@ -55,9 +55,9 @@ export class SearchQueryConverter { offset: pagination.offset ?? 0, }; - const fieldNames: string[] = Object.keys(query).filter(field => !this.IGNORED_FIELD_NAMES.has(field)); + const fieldNames: string[] = Object.keys(query).filter((field) => !this.IGNORED_FIELD_NAMES.has(field)); for (const field of fieldNames) { - const columnMetadata: ColumnMetadata | undefined = columns.find(column => column.propertyName === field); + const columnMetadata: ColumnMetadata | undefined = columns.find((column) => column.propertyName === field); if (!columnMetadata) { searchFilter.criteria.push({ field, diff --git a/packages/core-database/src/repositories/transaction-repository.ts b/packages/core-database/src/repositories/transaction-repository.ts index 5a4b52c80a..cd62ebb45f 100644 --- a/packages/core-database/src/repositories/transaction-repository.ts +++ b/packages/core-database/src/repositories/transaction-repository.ts @@ -74,11 +74,7 @@ export class TransactionRepository extends AbstractEntityRepository > { minFee = minFee || 0; - const age = Crypto.Slots.getTime( - dayjs() - .subtract(days, "day") - .valueOf(), - ); + const age = Crypto.Slots.getTime(dayjs().subtract(days, "day").valueOf()); return this.createQueryBuilder() .select(['type_group AS "typeGroup"', "type"]) @@ -139,7 +135,7 @@ export class TransactionRepository extends AbstractEntityRepository .take(limit) .getRawMany(); - return transactions.map(transaction => { + return transactions.map((transaction) => { return this.rawToEntity( transaction, // @ts-ignore @@ -206,7 +202,7 @@ export class TransactionRepository extends AbstractEntityRepository return this.createQueryBuilder() .select() - .addSelect(subQuery => { + .addSelect((subQuery) => { return subQuery .select([]) .select("id") @@ -220,10 +216,7 @@ export class TransactionRepository extends AbstractEntityRepository } public async getClaimedHtlcLockBalances(): Promise<{ amount: string; recipientId: string }[]> { - const lockedIds = this.createQueryBuilder() - .select("id") - .where("type = 9") - .andWhere("type_group = 1"); + const lockedIds = this.createQueryBuilder().select("id").where("type = 9").andWhere("type_group = 1"); return this.createQueryBuilder() .select("recipient_id") @@ -234,10 +227,7 @@ export class TransactionRepository extends AbstractEntityRepository } public async getRefundedHtlcLockBalances(): Promise<{ amount: string; senderPublicKey: string }[]> { - const lockedIds = this.createQueryBuilder() - .select("id") - .where("type = 10") - .andWhere("type_group = 1"); + const lockedIds = this.createQueryBuilder().select("id").where("type = 10").andWhere("type_group = 1"); return this.createQueryBuilder() .select("sender_public_key") @@ -268,7 +258,7 @@ export class TransactionRepository extends AbstractEntityRepository let useWhere: boolean = false; // 'search' doesn't support custom-op 'ownerId' like 'findAll' can - const operators = criteria.filter(value => { + const operators = criteria.filter((value) => { if (value.field === "walletAddress") { walletAddress = value.value as string; } else if (value.field === "walletPublicKey") { @@ -278,7 +268,7 @@ export class TransactionRepository extends AbstractEntityRepository return value.operator !== SearchOperator.Custom; }); - const [participants, rest] = Utils.partition(operators, operator => + const [participants, rest] = Utils.partition(operators, (operator) => ["sender_public_key", "recipient_id"].includes(this.propertyToColumnName(operator.field)!), ); @@ -290,7 +280,7 @@ export class TransactionRepository extends AbstractEntityRepository if (last) { const usesInOperator: boolean = participants.every( - condition => condition.operator === SearchOperator.In, + (condition) => condition.operator === SearchOperator.In, ); const { expression, parameters } = this.criteriaToExpression(last); if (usesInOperator) { @@ -307,14 +297,14 @@ export class TransactionRepository extends AbstractEntityRepository queryBuilder .orWhere( - new Brackets(qb => { + new Brackets((qb) => { qb.where("sender_public_key = :recipientPublicKey", { recipientPublicKey: recipientWallet.publicKey, }).andWhere("recipient_id IS NULL"); }), ) .orWhere( - new Brackets(qb => { + new Brackets((qb) => { qb.where("type = 6") .andWhere("type_group = 1") .andWhere(`asset @> :paymentAsset`, { @@ -338,7 +328,7 @@ export class TransactionRepository extends AbstractEntityRepository queryBuilder[useWhere ? "where" : "andWhere"]("recipient_id = :walletAddress", { walletAddress, }).orWhere( - new Brackets(qb => { + new Brackets((qb) => { qb.where("type = 6") .andWhere("type_group = 1") .andWhere(`asset @> :paymentAsset`, { diff --git a/packages/core-database/src/service-provider.ts b/packages/core-database/src/service-provider.ts index 01182fda03..2de3e9dc92 100644 --- a/packages/core-database/src/service-provider.ts +++ b/packages/core-database/src/service-provider.ts @@ -25,10 +25,7 @@ export class ServiceProvider extends Providers.ServiceProvider { this.app.bind(Container.Identifiers.RoundRepository).toConstantValue(getCustomRepository(RoundRepository)); - this.app - .bind(Container.Identifiers.DatabaseService) - .to(DatabaseService) - .inSingletonScope(); + this.app.bind(Container.Identifiers.DatabaseService).to(DatabaseService).inSingletonScope(); } public async boot(): Promise { diff --git a/packages/core-forger/src/client.ts b/packages/core-forger/src/client.ts index a59e8c060e..6c72306193 100644 --- a/packages/core-forger/src/client.ts +++ b/packages/core-forger/src/client.ts @@ -50,7 +50,7 @@ export class Client { codecEngine: codec, }); - host.socket.on("error", err => { + host.socket.on("error", (err) => { if (err.message !== "Socket hung up") { this.logger.error(err.message); } @@ -91,7 +91,7 @@ export class Client { await this.emit("p2p.peer.postBlock", { block: Blocks.Serializer.serializeWithTransactions({ ...block.data, - transactions: block.transactions.map(tx => tx.data), + transactions: block.transactions.map((tx) => tx.data), }), }); } catch (error) { @@ -163,8 +163,8 @@ export class Client { const allowedHosts: string[] = ["127.0.0.1", "::ffff:127.0.0.1"]; - const host: RelayHost | undefined = this.hosts.find(item => - allowedHosts.some(allowedHost => item.hostname.includes(allowedHost)), + const host: RelayHost | undefined = this.hosts.find((item) => + allowedHosts.some((allowedHost) => item.hostname.includes(allowedHost)), ); if (!host) { @@ -197,11 +197,11 @@ export class Client { this.logger.debug( `No open socket connection to any host: ${JSON.stringify( - this.hosts.map(host => `${host.hostname}:${host.port}`), + this.hosts.map((host) => `${host.hostname}:${host.port}`), )}.`, ); - throw new HostNoResponseError(this.hosts.map(host => host.hostname).join()); + throw new HostNoResponseError(this.hosts.map((host) => host.hostname).join()); } /** diff --git a/packages/core-forger/src/forger-service.ts b/packages/core-forger/src/forger-service.ts index d59ce7a835..57b424fe5e 100644 --- a/packages/core-forger/src/forger-service.ts +++ b/packages/core-forger/src/forger-service.ts @@ -257,7 +257,7 @@ export class ForgerService { return []; } const transactions = response.transactions.map( - hex => Transactions.TransactionFactory.fromBytesUnsafe(Buffer.from(hex, "hex")).data, + (hex) => Transactions.TransactionFactory.fromBytesUnsafe(Buffer.from(hex, "hex")).data, ); this.logger.debug( `Received ${AppUtils.pluralize("transaction", transactions.length, true)} ` + @@ -326,7 +326,7 @@ export class ForgerService { * @memberof ForgerService */ private isActiveDelegate(publicKey: string): Delegate | undefined { - return this.delegates.find(delegate => delegate.publicKey === publicKey); + return this.delegates.find((delegate) => delegate.publicKey === publicKey); } /** @@ -350,7 +350,7 @@ export class ForgerService { // @ts-ignore this.client.emitEvent(Enums.ForgerEvent.Started, { - activeDelegates: this.delegates.map(delegate => delegate.publicKey), + activeDelegates: this.delegates.map((delegate) => delegate.publicKey), }); this.logger.info(`Forger Manager started.`); @@ -373,7 +373,7 @@ export class ForgerService { * @memberof ForgerService */ private printLoadedDelegates(): void { - const activeDelegates: Delegate[] = this.delegates.filter(delegate => { + const activeDelegates: Delegate[] = this.delegates.filter((delegate) => { AppUtils.assert.defined(delegate.publicKey); return this.usernames.hasOwnProperty(delegate.publicKey); @@ -393,8 +393,8 @@ export class ForgerService { if (this.delegates.length > activeDelegates.length) { const inactiveDelegates: (string | undefined)[] = this.delegates - .filter(delegate => !activeDelegates.includes(delegate)) - .map(delegate => delegate.publicKey); + .filter((delegate) => !activeDelegates.includes(delegate)) + .map((delegate) => delegate.publicKey); this.logger.info( `Loaded ${AppUtils.pluralize( diff --git a/packages/core-forger/src/service-provider.ts b/packages/core-forger/src/service-provider.ts index 1a9a6248da..33a002e6bd 100644 --- a/packages/core-forger/src/service-provider.ts +++ b/packages/core-forger/src/service-provider.ts @@ -16,10 +16,7 @@ export class ServiceProvider extends Providers.ServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Container.Identifiers.ForgerService) - .to(ForgerService) - .inSingletonScope(); + this.app.bind(Container.Identifiers.ForgerService).to(ForgerService).inSingletonScope(); this.app.get(Container.Identifiers.ForgerService).register(this.config().all()); // ? why it isn't in boot? } diff --git a/packages/core-kernel/src/application.ts b/packages/core-kernel/src/application.ts index 1d19eccadd..89c72ed1b1 100644 --- a/packages/core-kernel/src/application.ts +++ b/packages/core-kernel/src/application.ts @@ -40,9 +40,7 @@ export class Application implements Contracts.Kernel.Application { this.bind(Identifiers.Application).toConstantValue(this); - this.bind(Identifiers.ConfigRepository) - .to(ConfigRepository) - .inSingletonScope(); + this.bind(Identifiers.ConfigRepository).to(ConfigRepository).inSingletonScope(); this.bind(Identifiers.ServiceProviderRepository) .to(ServiceProviderRepository) diff --git a/packages/core-kernel/src/bootstrap/app/load-service-providers.ts b/packages/core-kernel/src/bootstrap/app/load-service-providers.ts index 50db6bdf72..e049054375 100644 --- a/packages/core-kernel/src/bootstrap/app/load-service-providers.ts +++ b/packages/core-kernel/src/bootstrap/app/load-service-providers.ts @@ -91,9 +91,6 @@ export class LoadServiceProviders implements Bootstrapper { .merge(options); } - return this.app - .resolve(PluginConfiguration) - .discover(serviceProviderName) - .merge(options); + return this.app.resolve(PluginConfiguration).discover(serviceProviderName).merge(options); } } diff --git a/packages/core-kernel/src/bootstrap/app/register-base-configuration.ts b/packages/core-kernel/src/bootstrap/app/register-base-configuration.ts index 82e385e272..adfd5378f8 100644 --- a/packages/core-kernel/src/bootstrap/app/register-base-configuration.ts +++ b/packages/core-kernel/src/bootstrap/app/register-base-configuration.ts @@ -37,10 +37,7 @@ export class RegisterBaseConfiguration implements Bootstrapper { * @memberof RegisterBaseConfiguration */ public async bootstrap(): Promise { - this.app - .bind(Identifiers.ConfigManager) - .to(ConfigManager) - .inSingletonScope(); + this.app.bind(Identifiers.ConfigManager).to(ConfigManager).inSingletonScope(); await this.app.get(Identifiers.ConfigManager).boot(); diff --git a/packages/core-kernel/src/ioc/selectors.ts b/packages/core-kernel/src/ioc/selectors.ts index cd983a9188..78ee96dccb 100644 --- a/packages/core-kernel/src/ioc/selectors.ts +++ b/packages/core-kernel/src/ioc/selectors.ts @@ -5,7 +5,7 @@ export const anyAncestorOrTargetTaggedFirst = (key: string | number | symbol, va for (;;) { const targetTags = req.target.getCustomTags(); if (targetTags) { - const targetTag = targetTags.find(t => t.key === key); + const targetTag = targetTags.find((t) => t.key === key); if (targetTag) { return targetTag.value === value; } diff --git a/packages/core-kernel/src/services/cache/service-provider.ts b/packages/core-kernel/src/services/cache/service-provider.ts index e908fdf605..e0397c4705 100644 --- a/packages/core-kernel/src/services/cache/service-provider.ts +++ b/packages/core-kernel/src/services/cache/service-provider.ts @@ -11,10 +11,7 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.CacheManager) - .to(CacheManager) - .inSingletonScope(); + this.app.bind(Identifiers.CacheManager).to(CacheManager).inSingletonScope(); this.app .bind(Identifiers.CacheFactory) diff --git a/packages/core-kernel/src/services/config/drivers/local.ts b/packages/core-kernel/src/services/config/drivers/local.ts index 9371eadd29..2df63cb223 100644 --- a/packages/core-kernel/src/services/config/drivers/local.ts +++ b/packages/core-kernel/src/services/config/drivers/local.ts @@ -18,9 +18,7 @@ import { assert } from "../../../utils"; import { ConfigRepository } from "../repository"; const processSchema = { - flags: Joi.array() - .items(Joi.string()) - .optional(), + flags: Joi.array().items(Joi.string()).optional(), services: Joi.object().optional(), plugins: Joi.array() .items(Joi.object().keys({ package: Joi.string(), options: Joi.object().optional() })) @@ -107,15 +105,9 @@ export class LocalConfigLoader implements ConfigLoader { this.validationService.validate( this.loadFromLocation(["app.json", "app.js"]), Joi.object({ - core: Joi.object() - .keys(processSchema) - .required(), - relay: Joi.object() - .keys(processSchema) - .required(), - forger: Joi.object() - .keys(processSchema) - .required(), + core: Joi.object().keys(processSchema).required(), + relay: Joi.object().keys(processSchema).required(), + forger: Joi.object().keys(processSchema).required(), }).unknown(true), ); @@ -143,18 +135,12 @@ export class LocalConfigLoader implements ConfigLoader { list: Joi.array() .items( Joi.object().keys({ - ip: Joi.string() - .ip() - .required(), - port: Joi.number() - .port() - .required(), + ip: Joi.string().ip().required(), + port: Joi.number().port().required(), }), ) .required(), - sources: Joi.array() - .items(Joi.string().uri()) - .optional(), + sources: Joi.array().items(Joi.string().uri()).optional(), }), ); @@ -174,9 +160,7 @@ export class LocalConfigLoader implements ConfigLoader { this.validationService.validate( this.loadFromLocation(["delegates.json"]), Joi.object({ - secrets: Joi.array() - .items(Joi.string()) - .optional(), + secrets: Joi.array().items(Joi.string()).optional(), bip38: Joi.string().optional(), }), ); diff --git a/packages/core-kernel/src/services/events/drivers/memory.ts b/packages/core-kernel/src/services/events/drivers/memory.ts index da1b8bf7e0..a770fe169c 100644 --- a/packages/core-kernel/src/services/events/drivers/memory.ts +++ b/packages/core-kernel/src/services/events/drivers/memory.ts @@ -160,7 +160,7 @@ export class MemoryEventDispatcher implements EventDispatcherContract { const resolvers: Array> = []; for (const listener of this.getListenersByPattern(event)) { - resolvers.push(new Promise(resolve => resolve(listener.handle({ name: event, data })))); + resolvers.push(new Promise((resolve) => resolve(listener.handle({ name: event, data })))); } await Promise.all(resolvers); diff --git a/packages/core-kernel/src/services/filesystem/service-provider.ts b/packages/core-kernel/src/services/filesystem/service-provider.ts index fad9ae684d..2e783bc9d1 100644 --- a/packages/core-kernel/src/services/filesystem/service-provider.ts +++ b/packages/core-kernel/src/services/filesystem/service-provider.ts @@ -10,10 +10,7 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.FilesystemManager) - .to(FilesystemManager) - .inSingletonScope(); + this.app.bind(Identifiers.FilesystemManager).to(FilesystemManager).inSingletonScope(); await this.app.get(Identifiers.FilesystemManager).boot(); diff --git a/packages/core-kernel/src/services/log/service-provider.ts b/packages/core-kernel/src/services/log/service-provider.ts index 30bd3ccff6..3c2590e7a5 100644 --- a/packages/core-kernel/src/services/log/service-provider.ts +++ b/packages/core-kernel/src/services/log/service-provider.ts @@ -10,10 +10,7 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.LogManager) - .to(LogManager) - .inSingletonScope(); + this.app.bind(Identifiers.LogManager).to(LogManager).inSingletonScope(); await this.app.get(Identifiers.LogManager).boot(); diff --git a/packages/core-kernel/src/services/mixins/service-provider.ts b/packages/core-kernel/src/services/mixins/service-provider.ts index 26cb09d2ed..bc81fd8378 100644 --- a/packages/core-kernel/src/services/mixins/service-provider.ts +++ b/packages/core-kernel/src/services/mixins/service-provider.ts @@ -10,9 +10,6 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.MixinService) - .to(MixinService) - .inSingletonScope(); + this.app.bind(Identifiers.MixinService).to(MixinService).inSingletonScope(); } } diff --git a/packages/core-kernel/src/services/queue/service-provider.ts b/packages/core-kernel/src/services/queue/service-provider.ts index 2e86b1fd82..92ace7c51c 100644 --- a/packages/core-kernel/src/services/queue/service-provider.ts +++ b/packages/core-kernel/src/services/queue/service-provider.ts @@ -11,10 +11,7 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.QueueManager) - .to(QueueManager) - .inSingletonScope(); + this.app.bind(Identifiers.QueueManager).to(QueueManager).inSingletonScope(); this.app .bind(Identifiers.QueueFactory) diff --git a/packages/core-kernel/src/services/schedule/cron-job.ts b/packages/core-kernel/src/services/schedule/cron-job.ts index b7d9645d2e..5635ea9c5e 100644 --- a/packages/core-kernel/src/services/schedule/cron-job.ts +++ b/packages/core-kernel/src/services/schedule/cron-job.ts @@ -142,9 +142,7 @@ export class CronJob implements Job { * @memberof CronJob */ public weekdays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("1-5"); + return this.setMinute("0").setHour("0").setDayWeek("1-5"); } /** @@ -154,9 +152,7 @@ export class CronJob implements Job { * @memberof CronJob */ public weekends(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("6,0"); + return this.setMinute("0").setHour("0").setDayWeek("6,0"); } /** @@ -166,9 +162,7 @@ export class CronJob implements Job { * @memberof CronJob */ public mondays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("MON"); + return this.setMinute("0").setHour("0").setDayWeek("MON"); } /** @@ -178,9 +172,7 @@ export class CronJob implements Job { * @memberof CronJob */ public tuesdays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("TUE"); + return this.setMinute("0").setHour("0").setDayWeek("TUE"); } /** @@ -190,9 +182,7 @@ export class CronJob implements Job { * @memberof CronJob */ public wednesdays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("WED"); + return this.setMinute("0").setHour("0").setDayWeek("WED"); } /** @@ -202,9 +192,7 @@ export class CronJob implements Job { * @memberof CronJob */ public thursdays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("THU"); + return this.setMinute("0").setHour("0").setDayWeek("THU"); } /** @@ -214,9 +202,7 @@ export class CronJob implements Job { * @memberof CronJob */ public fridays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("FRI"); + return this.setMinute("0").setHour("0").setDayWeek("FRI"); } /** @@ -226,9 +212,7 @@ export class CronJob implements Job { * @memberof CronJob */ public saturdays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("SAT"); + return this.setMinute("0").setHour("0").setDayWeek("SAT"); } /** @@ -238,9 +222,7 @@ export class CronJob implements Job { * @memberof CronJob */ public sundays(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("SUN"); + return this.setMinute("0").setHour("0").setDayWeek("SUN"); } /** @@ -250,9 +232,7 @@ export class CronJob implements Job { * @memberof CronJob */ public weekly(): this { - return this.setMinute("0") - .setHour("0") - .setDayWeek("0"); + return this.setMinute("0").setHour("0").setDayWeek("0"); } /** @@ -265,9 +245,7 @@ export class CronJob implements Job { * @memberof CronJob */ public weeklyOn(day: string, hour: string, minute: string): this { - return this.setMinute(minute) - .setHour(hour) - .setDayWeek(day); + return this.setMinute(minute).setHour(hour).setDayWeek(day); } /** @@ -277,9 +255,7 @@ export class CronJob implements Job { * @memberof CronJob */ public monthly(): this { - return this.setMinute("0") - .setHour("0") - .setDayMonth("1"); + return this.setMinute("0").setHour("0").setDayMonth("1"); } /** @@ -292,9 +268,7 @@ export class CronJob implements Job { * @memberof CronJob */ public monthlyOn(day: string, hour: string, minute: string): this { - return this.setMinute(minute) - .setHour(hour) - .setDayMonth(day); + return this.setMinute(minute).setHour(hour).setDayMonth(day); } /** @@ -304,10 +278,7 @@ export class CronJob implements Job { * @memberof CronJob */ public quarterly(): this { - return this.setMinute("0") - .setHour("0") - .setDayMonth("1") - .setMonth("*/3"); + return this.setMinute("0").setHour("0").setDayMonth("1").setMonth("*/3"); } /** @@ -317,10 +288,7 @@ export class CronJob implements Job { * @memberof CronJob */ public yearly(): this { - return this.setMinute("0") - .setHour("0") - .setDayMonth("1") - .setMonth("1"); + return this.setMinute("0").setHour("0").setDayMonth("1").setMonth("1"); } /** diff --git a/packages/core-kernel/src/services/schedule/service-provider.ts b/packages/core-kernel/src/services/schedule/service-provider.ts index 8cc0a479af..6ad87369bf 100644 --- a/packages/core-kernel/src/services/schedule/service-provider.ts +++ b/packages/core-kernel/src/services/schedule/service-provider.ts @@ -13,9 +13,6 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.ScheduleService) - .to(Schedule) - .inSingletonScope(); + this.app.bind(Identifiers.ScheduleService).to(Schedule).inSingletonScope(); } } diff --git a/packages/core-kernel/src/services/triggers/service-provider.ts b/packages/core-kernel/src/services/triggers/service-provider.ts index 6bf7c34178..77da97f524 100644 --- a/packages/core-kernel/src/services/triggers/service-provider.ts +++ b/packages/core-kernel/src/services/triggers/service-provider.ts @@ -10,9 +10,6 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.TriggerService) - .to(Triggers) - .inSingletonScope(); + this.app.bind(Identifiers.TriggerService).to(Triggers).inSingletonScope(); } } diff --git a/packages/core-kernel/src/services/validation/service-provider.ts b/packages/core-kernel/src/services/validation/service-provider.ts index 63f573a751..5d8b32ff75 100644 --- a/packages/core-kernel/src/services/validation/service-provider.ts +++ b/packages/core-kernel/src/services/validation/service-provider.ts @@ -10,10 +10,7 @@ export class ServiceProvider extends BaseServiceProvider { * @memberof ServiceProvider */ public async register(): Promise { - this.app - .bind(Identifiers.ValidationManager) - .to(ValidationManager) - .inSingletonScope(); + this.app.bind(Identifiers.ValidationManager).to(ValidationManager).inSingletonScope(); await this.app.get(Identifiers.ValidationManager).boot(); diff --git a/packages/core-logger-pino/src/driver.ts b/packages/core-logger-pino/src/driver.ts index b6d2ab1551..d491b8f676 100644 --- a/packages/core-logger-pino/src/driver.ts +++ b/packages/core-logger-pino/src/driver.ts @@ -84,9 +84,9 @@ export class PinoLogger implements Contracts.Kernel.Logger { }, level: "emergency", formatters: { - level (label, number) { - return { level: label } - } + level(label, number) { + return { level: label }; + }, }, useOnlyCustomLevels: true, safe: true, diff --git a/packages/core-magistrate-api/src/routes/bridgechains.ts b/packages/core-magistrate-api/src/routes/bridgechains.ts index 1d4417438a..a4c922a560 100644 --- a/packages/core-magistrate-api/src/routes/bridgechains.ts +++ b/packages/core-magistrate-api/src/routes/bridgechains.ts @@ -17,21 +17,13 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - publicKey: Joi.string() - .hex() - .length(66), + publicKey: Joi.string().hex().length(66), bridgechainRepository: Joi.string().max(80), - genesisHash: Joi.string() - .hex() - .length(64), + genesisHash: Joi.string().hex().length(64), name: Joi.string() .regex(/^[a-zA-Z0-9_-]+$/) .max(40), - seedNodes: Joi.array() - .unique() - .min(1) - .max(10) - .items(Joi.string().ip()), + seedNodes: Joi.array().unique().min(1).max(10).items(Joi.string().ip()), isResigned: Joi.bool(), }, }), @@ -46,9 +38,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(64), // id is genesisHash + id: Joi.string().hex().length(64), // id is genesisHash }), }, }, @@ -68,12 +58,8 @@ export const register = (server: Hapi.Server): void => { }), payload: Joi.object({ bridgechainRepository: Joi.string().max(80), - publicKey: Joi.string() - .hex() - .length(66), - genesisHash: Joi.string() - .hex() - .length(64), + publicKey: Joi.string().hex().length(66), + genesisHash: Joi.string().hex().length(64), isResigned: Joi.bool(), }), }, diff --git a/packages/core-magistrate-api/src/routes/businesses.ts b/packages/core-magistrate-api/src/routes/businesses.ts index 100faa0608..c7794a671a 100644 --- a/packages/core-magistrate-api/src/routes/businesses.ts +++ b/packages/core-magistrate-api/src/routes/businesses.ts @@ -17,9 +17,7 @@ export const register = (server: Hapi.Server): void => { ...server.app.schemas.pagination, ...{ orderBy: server.app.schemas.orderBy, - publicKey: Joi.string() - .hex() - .length(66), + publicKey: Joi.string().hex().length(66), isResigned: Joi.bool(), transform: Joi.bool().default(true), }, @@ -35,9 +33,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(66), + id: Joi.string().hex().length(66), }), query: Joi.object({ transform: Joi.bool().default(true), @@ -53,9 +49,7 @@ export const register = (server: Hapi.Server): void => { options: { validate: { params: Joi.object({ - id: Joi.string() - .hex() - .length(66), + id: Joi.string().hex().length(66), }), query: Joi.object({ ...server.app.schemas.pagination, @@ -82,16 +76,12 @@ export const register = (server: Hapi.Server): void => { }, }), payload: Joi.object({ - publicKey: Joi.string() - .hex() - .length(66), + publicKey: Joi.string().hex().length(66), name: Joi.string() .regex(/^[a-zA-Z0-9_-]+$/) .max(40), website: Joi.string().max(80), - vat: Joi.string() - .alphanum() - .max(15), + vat: Joi.string().alphanum().max(15), repository: Joi.string().max(80), isResigned: Joi.bool(), }), diff --git a/packages/core-magistrate-transactions/src/handlers/bridgechain-registration.ts b/packages/core-magistrate-transactions/src/handlers/bridgechain-registration.ts index 34f3885896..4c76053394 100644 --- a/packages/core-magistrate-transactions/src/handlers/bridgechain-registration.ts +++ b/packages/core-magistrate-transactions/src/handlers/bridgechain-registration.ts @@ -110,7 +110,7 @@ export class BridgechainRegistrationTransactionHandler extends MagistrateTransac ); if ( - bridgechainValues.some(bridgechain => { + bridgechainValues.some((bridgechain) => { return ( bridgechain.bridgechainAsset.name.toLowerCase() === data.asset!.bridgechainRegistration.name.toLowerCase() diff --git a/packages/core-magistrate-transactions/src/handlers/bridgechain-resignation.ts b/packages/core-magistrate-transactions/src/handlers/bridgechain-resignation.ts index 581572482f..cbd497e14d 100644 --- a/packages/core-magistrate-transactions/src/handlers/bridgechain-resignation.ts +++ b/packages/core-magistrate-transactions/src/handlers/bridgechain-resignation.ts @@ -106,7 +106,7 @@ export class BridgechainResignationTransactionHandler extends MagistrateTransact const hasResignation: boolean = this.poolQuery .getAllBySender(transaction.data.senderPublicKey) .whereKind(transaction) - .wherePredicate(t => t.data.asset?.bridgechainResignation.bridgechainId === bridgechainId) + .wherePredicate((t) => t.data.asset?.bridgechainResignation.bridgechainId === bridgechainId) .has(); if (hasResignation) { diff --git a/packages/core-magistrate-transactions/src/handlers/bridgechain-update.ts b/packages/core-magistrate-transactions/src/handlers/bridgechain-update.ts index 020e0d7c41..d2f75a2944 100644 --- a/packages/core-magistrate-transactions/src/handlers/bridgechain-update.ts +++ b/packages/core-magistrate-transactions/src/handlers/bridgechain-update.ts @@ -120,7 +120,7 @@ export class BridgechainUpdateTransactionHandler extends MagistrateTransactionHa const hasUpdate: boolean = this.poolQuery .getAllBySender(transaction.data.senderPublicKey) .whereKind(transaction) - .wherePredicate(t => t.data.asset?.bridgechainUpdate.bridgechainId === bridgechainId) + .wherePredicate((t) => t.data.asset?.bridgechainUpdate.bridgechainId === bridgechainId) .has(); if (hasUpdate) { diff --git a/packages/core-p2p/src/network-monitor.ts b/packages/core-p2p/src/network-monitor.ts index f3d13577e0..608908362e 100644 --- a/packages/core-p2p/src/network-monitor.ts +++ b/packages/core-p2p/src/network-monitor.ts @@ -82,7 +82,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { for (const [version, peers] of Object.entries( // @ts-ignore - Utils.groupBy(this.storage.getPeers(), peer => peer.version), + Utils.groupBy(this.storage.getPeers(), (peer) => peer.version), )) { this.logger.info(`Discovered ${Utils.pluralize("peer", peers.length, true)} with v${version}.`); } @@ -158,7 +158,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { this.logger.info(`Checking ${max} peers`); const peerErrors = {}; await Promise.all( - peers.map(async peer => { + peers.map(async (peer) => { try { return await this.communicator.ping(peer, pingDelay, forcePing); } catch (error) { @@ -208,7 +208,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { }), ) ) - .map(peers => + .map((peers) => Utils.shuffle(peers) .slice(0, maxPeersPerPeer) .reduce( @@ -224,7 +224,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { ); if (pingAll || !this.hasMinimumPeers() || ownPeers.length < theirPeers.length * 0.75) { - await Promise.all(theirPeers.map(p => this.processor.validateAndAcceptPeer(p, { lessVerbose: true }))); + await Promise.all(theirPeers.map((p) => this.processor.validateAndAcceptPeer(p, { lessVerbose: true }))); this.pingPeerPorts(pingAll); return true; @@ -261,8 +261,8 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { public getNetworkHeight(): number { const medians = this.storage .getPeers() - .filter(peer => peer.state.height) - .map(peer => peer.state.height) + .filter((peer) => peer.state.height) + .map((peer) => peer.state.height) .sort((a, b) => { Utils.assert.defined(a); Utils.assert.defined(b); @@ -309,9 +309,9 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { return { forked: false }; } - const groupedByCommonHeight = Utils.groupBy(allPeers, peer => peer.verification.highestCommonHeight); + const groupedByCommonHeight = Utils.groupBy(allPeers, (peer) => peer.verification.highestCommonHeight); - const groupedByLength = Utils.groupBy(Object.values(groupedByCommonHeight), peer => peer.length); + const groupedByLength = Utils.groupBy(Object.values(groupedByCommonHeight), (peer) => peer.length); // Sort by longest // @ts-ignore @@ -344,7 +344,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { return []; } - const peersNotForked: Contracts.P2P.Peer[] = Utils.shuffle(peersAll.filter(peer => !peer.isForked())); + const peersNotForked: Contracts.P2P.Peer[] = Utils.shuffle(peersAll.filter((peer) => !peer.isForked())); if (peersNotForked.length === 0) { this.logger.error( @@ -442,7 +442,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { try { // Convert the array of AsyncFunction to an array of Promise by calling the functions. // @ts-ignore - await Promise.all(downloadJobs.map(f => f())); + await Promise.all(downloadJobs.map((f) => f())); } catch (error) { firstFailureMessage = error.message; } @@ -515,7 +515,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { )}`, ); - await Promise.all(peers.map(peer => this.communicator.postBlock(peer, block))); + await Promise.all(peers.map((peer) => this.communicator.postBlock(peer, block))); } private async pingPeerPorts(pingAll?: boolean): Promise { @@ -527,7 +527,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { this.logger.debug(`Checking ports of ${Utils.pluralize("peer", peers.length, true)}.`); Promise.all( - peers.map(async peer => { + peers.map(async (peer) => { try { return await this.communicator.pingPorts(peer); } catch (error) { @@ -589,7 +589,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { try { const peersFromUrl = await this.loadPeersFromUrlList(); for (const peer of peersFromUrl) { - if (!peerList.find(p => p.ip === peer.ip)) { + if (!peerList.find((p) => p.ip === peer.ip)) { peerList.push({ ip: peer.ip, ports: { "@arkecosystem/core-api": peer.port }, @@ -603,7 +603,7 @@ export class NetworkMonitor implements Contracts.P2P.NetworkMonitor { this.app.terminate("No seed peers defined in peers.json"); } - const peers: Contracts.P2P.PeerData[] = peerList.map(peer => { + const peers: Contracts.P2P.PeerData[] = peerList.map((peer) => { peer.version = this.app.version(); return peer; }); diff --git a/packages/core-p2p/src/peer-communicator.ts b/packages/core-p2p/src/peer-communicator.ts index a05a0c8400..f1bc557cde 100644 --- a/packages/core-p2p/src/peer-communicator.ts +++ b/packages/core-p2p/src/peer-communicator.ts @@ -51,7 +51,7 @@ export class PeerCommunicator implements Contracts.P2P.PeerCommunicator { { block: Blocks.Serializer.serializeWithTransactions({ ...block.data, - transactions: block.transactions.map(tx => tx.data), + transactions: block.transactions.map((tx) => tx.data), }), }, postBlockTimeout, @@ -225,7 +225,7 @@ export class PeerCommunicator implements Contracts.P2P.PeerCommunicator { continue; } - block.transactions = block.transactions.map(transaction => { + block.transactions = block.transactions.map((transaction) => { const { data } = Transactions.TransactionFactory.fromBytesUnsafe(Buffer.from(transaction, "hex")); data.blockId = block.id; return data; diff --git a/packages/core-p2p/src/peer-connector.ts b/packages/core-p2p/src/peer-connector.ts index 6bc2e54942..b7808d4c05 100644 --- a/packages/core-p2p/src/peer-connector.ts +++ b/packages/core-p2p/src/peer-connector.ts @@ -94,7 +94,7 @@ export class PeerConnector implements Contracts.P2P.PeerConnector { socket.on("ping", () => this.terminate(peer)); socket.on("pong", () => this.terminate(peer)); - socket.on("message", data => { + socket.on("message", (data) => { if (data === "#1") { // this is to establish some rate limit on #1 messages // a simple rate limit of 1 per second doesnt seem to be enough, so decided to give some margin diff --git a/packages/core-p2p/src/peer-storage.ts b/packages/core-p2p/src/peer-storage.ts index 552024a5a6..0d51677b5a 100644 --- a/packages/core-p2p/src/peer-storage.ts +++ b/packages/core-p2p/src/peer-storage.ts @@ -64,6 +64,6 @@ export class PeerStorage implements Contracts.P2P.PeerStorage { } public getSameSubnetPeers(ip: string): Contracts.P2P.Peer[] { - return this.getPeers().filter(peer => cidr(`${peer.ip}/24`) === cidr(`${ip}/24`)); + return this.getPeers().filter((peer) => cidr(`${peer.ip}/24`) === cidr(`${ip}/24`)); } } diff --git a/packages/core-p2p/src/peer-verifier.ts b/packages/core-p2p/src/peer-verifier.ts index fb98223d17..8a98f44dbd 100644 --- a/packages/core-p2p/src/peer-verifier.ts +++ b/packages/core-p2p/src/peer-verifier.ts @@ -149,7 +149,7 @@ export class PeerVerifier implements Contracts.P2P.PeerVerifier { const ownBlock: Interfaces.IBlock | undefined = this.app .get(Container.Identifiers.StateStore) .getLastBlocks() - .find(block => block.data.height === blockHeader.height); + .find((block) => block.data.height === blockHeader.height); // Use shortcut to prevent expensive crypto if the block header equals our own. if (ownBlock && JSON.stringify(ownBlock.getHeader()) === JSON.stringify(blockHeader)) { @@ -297,7 +297,7 @@ export class PeerVerifier implements Contracts.P2P.PeerVerifier { assert.strictEqual(typeof probesIdByHeight[height], "string"); } - const ourBlocksPrint = ourBlocks.map(b => `{ height=${b.height}, id=${b.id} }`).join(", "); + const ourBlocksPrint = ourBlocks.map((b) => `{ height=${b.height}, id=${b.id} }`).join(", "); const rangePrint = `[${ourBlocks[0].height}, ${ourBlocks[ourBlocks.length - 1].height}]`; const msRemaining = this.throwIfPastDeadline(deadline); diff --git a/packages/core-p2p/src/service-provider.ts b/packages/core-p2p/src/service-provider.ts index 67326fd818..a2304e7e62 100644 --- a/packages/core-p2p/src/service-provider.ts +++ b/packages/core-p2p/src/service-provider.ts @@ -53,30 +53,15 @@ export class ServiceProvider extends Providers.ServiceProvider { } private registerServices(): void { - this.app - .bind(Container.Identifiers.PeerStorage) - .to(PeerStorage) - .inSingletonScope(); + this.app.bind(Container.Identifiers.PeerStorage).to(PeerStorage).inSingletonScope(); - this.app - .bind(Container.Identifiers.PeerConnector) - .to(PeerConnector) - .inSingletonScope(); + this.app.bind(Container.Identifiers.PeerConnector).to(PeerConnector).inSingletonScope(); - this.app - .bind(Container.Identifiers.PeerCommunicator) - .to(PeerCommunicator) - .inSingletonScope(); + this.app.bind(Container.Identifiers.PeerCommunicator).to(PeerCommunicator).inSingletonScope(); - this.app - .bind(Container.Identifiers.PeerProcessor) - .to(PeerProcessor) - .inSingletonScope(); + this.app.bind(Container.Identifiers.PeerProcessor).to(PeerProcessor).inSingletonScope(); - this.app - .bind(Container.Identifiers.PeerNetworkMonitor) - .to(NetworkMonitor) - .inSingletonScope(); + this.app.bind(Container.Identifiers.PeerNetworkMonitor).to(NetworkMonitor).inSingletonScope(); this.app.get(Container.Identifiers.PeerNetworkMonitor).initialize(); @@ -84,10 +69,7 @@ export class ServiceProvider extends Providers.ServiceProvider { this.app.get(Container.Identifiers.PeerProcessor).initialize(); - this.app - .bind("p2p.event-listener") - .to(EventListener) - .inSingletonScope(); + this.app.bind("p2p.event-listener").to(EventListener).inSingletonScope(); this.app.bind(Container.Identifiers.PeerTransactionBroadcaster).to(TransactionBroadcaster); } diff --git a/packages/core-p2p/src/socket-server/index.ts b/packages/core-p2p/src/socket-server/index.ts index 65a83bb36a..b0e161a3e5 100644 --- a/packages/core-p2p/src/socket-server/index.ts +++ b/packages/core-p2p/src/socket-server/index.ts @@ -51,7 +51,7 @@ export const startSocketServer = async ( ...config.server, }); - server.on("fail", data => app.log.error(data.message)); + server.on("fail", (data) => app.log.error(data.message)); // socketcluster types do not allow on("workerMessage") so casting as any (server as any).on("workerMessage", async (workerId, req, res) => { @@ -98,7 +98,7 @@ export const startSocketServer = async ( throw new Error("Socket server failed to setup in 10 seconds."); }, 10000); - const serverReadyPromise = await new Promise(resolve => server.on("ready", () => resolve(server))); + const serverReadyPromise = await new Promise((resolve) => server.on("ready", () => resolve(server))); clearTimeout(timeout); diff --git a/packages/core-p2p/src/socket-server/payload-processor.ts b/packages/core-p2p/src/socket-server/payload-processor.ts index 200f938eda..25d88c10df 100644 --- a/packages/core-p2p/src/socket-server/payload-processor.ts +++ b/packages/core-p2p/src/socket-server/payload-processor.ts @@ -64,7 +64,7 @@ class PayloadProcessor { let overflowQueueSize = this.payloadOverflowQueue.length; try { const query = this.payloadDatabase.prepare("INSERT INTO payloads (payload) VALUES (:payload)"); - const saveToDB = this.payloadDatabase.transaction(data => { + const saveToDB = this.payloadDatabase.transaction((data) => { for (const overflowingPayload of data) { query.run({ payload: JSON.stringify(overflowingPayload) }); overflowQueueSize--; @@ -89,12 +89,7 @@ class PayloadProcessor { private totalPayloads() { const queueSize = this.payloadQueue.length + this.payloadOverflowQueue.length; - return queueSize - ? queueSize - : this.payloadDatabase - .prepare("SELECT COUNT(*) FROM payloads") - .pluck() - .get(); + return queueSize ? queueSize : this.payloadDatabase.prepare("SELECT COUNT(*) FROM payloads").pluck().get(); } private async processPayloads() { @@ -121,7 +116,7 @@ class PayloadProcessor { payloadIds.push({ id: row.id }); } const query = this.payloadDatabase.prepare("DELETE FROM payloads WHERE id = :id"); - const deleteFromDB = this.payloadDatabase.transaction(data => { + const deleteFromDB = this.payloadDatabase.transaction((data) => { for (const id of data) { query.run(id); } diff --git a/packages/core-p2p/src/socket-server/versions/internal.ts b/packages/core-p2p/src/socket-server/versions/internal.ts index 6b88d5f21e..5f29710dca 100644 --- a/packages/core-p2p/src/socket-server/versions/internal.ts +++ b/packages/core-p2p/src/socket-server/versions/internal.ts @@ -63,7 +63,7 @@ export const getUnconfirmedTransactions = async ({ return { poolSize: transactionPool.getPoolSize(), - transactions: transactions.map(t => t.serialized.toString("hex")), + transactions: transactions.map((t) => t.serialized.toString("hex")), }; }; @@ -84,7 +84,7 @@ export const getCurrentRound = async ({ const blockTime = Managers.configManager.getMilestone(height).blocktime; const reward = Managers.configManager.getMilestone(height).reward; const delegates: Contracts.P2P.DelegateWallet[] = (await databaseService.getActiveDelegates(roundInfo)).map( - wallet => ({ + (wallet) => ({ ...wallet, delegate: wallet.getAttribute("delegate"), }), diff --git a/packages/core-p2p/src/socket-server/versions/peer.ts b/packages/core-p2p/src/socket-server/versions/peer.ts index 6257f49497..42a104b6da 100644 --- a/packages/core-p2p/src/socket-server/versions/peer.ts +++ b/packages/core-p2p/src/socket-server/versions/peer.ts @@ -14,7 +14,7 @@ import { mapAddr } from "../utils/map-addr"; export const getPeers = ({ service }: { service: PeerService }): Contracts.P2P.PeerBroadcast[] => { return service.storage .getPeers() - .map(peer => peer.toBroadcast()) + .map((peer) => peer.toBroadcast()) .sort((a, b) => { Utils.assert.defined(a.latency); Utils.assert.defined(b.latency); @@ -96,7 +96,7 @@ export const postBlock = async ({ app, req }: { app: Contracts.Kernel.Applicatio const block: Interfaces.IBlockData = { ...deserialized.data, - transactions: deserialized.transactions.map(tx => tx.data), + transactions: deserialized.transactions.map((tx) => tx.data), }; const fromForger: boolean = isWhitelisted( diff --git a/packages/core-p2p/src/socket-server/worker.ts b/packages/core-p2p/src/socket-server/worker.ts index a6d7f23b54..9b8dcebbcc 100644 --- a/packages/core-p2p/src/socket-server/worker.ts +++ b/packages/core-p2p/src/socket-server/worker.ts @@ -43,7 +43,7 @@ export class Worker extends SCWorker { this.scServer.wsServer.on("connection", (ws, req) => { const clients = [...Object.values(this.scServer.clients), ...Object.values(this.scServer.pendingClients)]; const existingSockets = clients.filter( - client => + (client) => client.remoteAddress === req.socket.remoteAddress && client.remotePort !== req.socket.remotePort, ); for (const socket of existingSockets) { @@ -51,7 +51,7 @@ export class Worker extends SCWorker { } this.handlePayload(ws, req); }); - this.scServer.on("connection", socket => this.handleConnection(socket)); + this.scServer.on("connection", (socket) => this.handleConnection(socket)); this.scServer.addMiddleware(this.scServer.MIDDLEWARE_HANDSHAKE_WS, (req, next) => this.handleHandshake(req, next), ); @@ -94,7 +94,7 @@ export class Worker extends SCWorker { this.setErrorForIpAndTerminate(ws, req); }); - ws.prependListener("error", error => { + ws.prependListener("error", (error) => { if (error instanceof RangeError) { this.setErrorForIpAndTerminate(ws, req); } @@ -102,7 +102,7 @@ export class Worker extends SCWorker { const messageListeners = ws.listeners("message"); ws.removeAllListeners("message"); - ws.prependListener("message", message => { + ws.prependListener("message", (message) => { if (ws._disconnected) { return this.setErrorForIpAndTerminate(ws, req); } else if (message === "#2") { @@ -149,7 +149,7 @@ export class Worker extends SCWorker { } private hasAdditionalProperties(object): boolean { - if (Object.keys(object).filter(key => key !== "event" && key !== "data" && key !== "cid").length) { + if (Object.keys(object).filter((key) => key !== "event" && key !== "data" && key !== "cid").length) { return true; } const event = object.event.split("."); @@ -157,7 +157,7 @@ export class Worker extends SCWorker { if (event.length !== 3) { return true; } - if (Object.keys(object.data).filter(key => key !== "data" && key !== "headers").length) { + if (Object.keys(object.data).filter((key) => key !== "data" && key !== "headers").length) { return true; } } @@ -191,7 +191,7 @@ export class Worker extends SCWorker { if (object.data.headers) { if ( Object.keys(object.data.headers).filter( - key => key !== "version" && key !== "port" && key !== "height" && key !== "Content-Type", + (key) => key !== "version" && key !== "port" && key !== "height" && key !== "Content-Type", ).length ) { return true; @@ -249,7 +249,7 @@ export class Worker extends SCWorker { const cidrRemoteAddress = cidr(`${ip}/24`); const sameSubnetSockets = Object.values({ ...this.scServer.clients, ...this.scServer.pendingClients }).filter( - client => cidr(`${client.remoteAddress}/24`) === cidrRemoteAddress, + (client) => cidr(`${client.remoteAddress}/24`) === cidrRemoteAddress, ); if (sameSubnetSockets.length > this.config.maxSameSubnetPeers) { req.socket.destroy(); @@ -328,7 +328,7 @@ export class Worker extends SCWorker { this.sendToMasterAsync("p2p.internal.acceptNewPeer", { data: { ip: req.socket.remoteAddress }, headers: req.data.headers, - }).catch(ex => { + }).catch((ex) => { this.log(`Failed to accept new peer ${req.socket.remoteAddress}: ${ex.message}`, "debug"); }); } else { diff --git a/packages/core-p2p/src/transaction-broadcaster.ts b/packages/core-p2p/src/transaction-broadcaster.ts index 9f15d775c1..ef2a4ce104 100644 --- a/packages/core-p2p/src/transaction-broadcaster.ts +++ b/packages/core-p2p/src/transaction-broadcaster.ts @@ -31,8 +31,8 @@ export class TransactionBroadcaster implements Contracts.P2P.TransactionBroadcas const peersStr = Utils.pluralize("peer", peers.length, true); this.logger.debug(`Broadcasting ${transactionsStr} to ${peersStr}`); - const transactionsBroadcast: Interfaces.ITransactionJson[] = transactions.map(t => t.toJson()); - const promises = peers.map(p => this.communicator.postTransactions(p, transactionsBroadcast)); + const transactionsBroadcast: Interfaces.ITransactionJson[] = transactions.map((t) => t.toJson()); + const promises = peers.map((p) => this.communicator.postTransactions(p, transactionsBroadcast)); await Promise.all(promises); } diff --git a/packages/core-p2p/src/utils/build-rate-limiter.ts b/packages/core-p2p/src/utils/build-rate-limiter.ts index 02cc6ca04e..d5b5c205a7 100644 --- a/packages/core-p2p/src/utils/build-rate-limiter.ts +++ b/packages/core-p2p/src/utils/build-rate-limiter.ts @@ -1,6 +1,6 @@ import { RateLimiter } from "../rate-limiter"; -export const buildRateLimiter = options => +export const buildRateLimiter = (options) => new RateLimiter({ whitelist: [...options.whitelist, ...options.remoteAccess], configurations: { diff --git a/packages/core-p2p/src/utils/sc-codec.ts b/packages/core-p2p/src/utils/sc-codec.ts index 2545c57681..9eff1c7a1f 100644 --- a/packages/core-p2p/src/utils/sc-codec.ts +++ b/packages/core-p2p/src/utils/sc-codec.ts @@ -4,7 +4,7 @@ const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const validJSONStartRegex = /^[ \n\r\t]*[{[]/; -const arrayBufferToBase64 = arraybuffer => { +const arrayBufferToBase64 = (arraybuffer) => { const bytes = new Uint8Array(arraybuffer); const len = bytes.length; let base64 = ""; @@ -62,7 +62,7 @@ const base64ToBinaryReplacer = (key, value) => // Decode the data which was transmitted over the wire to a JavaScript Object in a format which SC understands. // See encode function below for more details. -export const decode = input => { +export const decode = (input) => { if (!input) { return undefined; } @@ -84,7 +84,7 @@ export const decode = input => { return message; }; -export const encode = object => { +export const encode = (object) => { // Leave ping or pong message as is if (object === "#1" || object === "#2") { return object; diff --git a/packages/core-p2p/src/utils/validate-json.ts b/packages/core-p2p/src/utils/validate-json.ts index 8655f1a6b5..0091ef3211 100644 --- a/packages/core-p2p/src/utils/validate-json.ts +++ b/packages/core-p2p/src/utils/validate-json.ts @@ -5,7 +5,7 @@ import ip from "ip"; export const validateJSON = (data, schema) => { Validation.validator.addFormat("ip", { type: "string", - validate: value => ip.isV4Format(value) || ip.isV6Format(value), + validate: (value) => ip.isV4Format(value) || ip.isV6Format(value), }); return Validation.validator.validate(schema, data); diff --git a/packages/core-state/src/service-provider.ts b/packages/core-state/src/service-provider.ts index 6fff81ec3b..5fb665ff80 100644 --- a/packages/core-state/src/service-provider.ts +++ b/packages/core-state/src/service-provider.ts @@ -51,10 +51,7 @@ export class ServiceProvider extends Providers.ServiceProvider { this.app.bind(Container.Identifiers.StateBlockStore).toConstantValue(new BlockStore(1000)); this.app.bind(Container.Identifiers.StateTransactionStore).toConstantValue(new TransactionStore(1000)); - this.app - .bind(Container.Identifiers.StateStore) - .to(StateStore) - .inSingletonScope(); + this.app.bind(Container.Identifiers.StateStore).to(StateStore).inSingletonScope(); this.app .bind(Container.Identifiers.DposPreviousRoundStateProvider) diff --git a/packages/core-state/src/stores/state.ts b/packages/core-state/src/stores/state.ts index 98ca3f5921..aa9fa5d4f1 100644 --- a/packages/core-state/src/stores/state.ts +++ b/packages/core-state/src/stores/state.ts @@ -101,7 +101,7 @@ export class StateStore implements Contracts.State.StateStore { // Only keep blocks which are below the new block height (i.e. rollback) if (this.lastBlocks.last() && this.lastBlocks.last().data.height !== block.data.height - 1) { assert(block.data.height - 1 <= this.lastBlocks.last().data.height); - this.lastBlocks = this.lastBlocks.filter(b => b.data.height < block.data.height); + this.lastBlocks = this.lastBlocks.filter((b) => b.data.height < block.data.height); } this.lastBlocks = this.lastBlocks.set(block.data.height, block); @@ -129,10 +129,7 @@ export class StateStore implements Contracts.State.StateStore { * Get the last blocks. */ public getLastBlocks(): Interfaces.IBlock[] { - return this.lastBlocks - .valueSeq() - .reverse() - .toArray(); + return this.lastBlocks.valueSeq().reverse().toArray(); } /** @@ -149,7 +146,7 @@ export class StateStore implements Contracts.State.StateStore { return this.lastBlocks .valueSeq() .reverse() - .map(b => { + .map((b) => { Utils.assert.defined(b.data.id); return b.data.id; @@ -169,7 +166,7 @@ export class StateStore implements Contracts.State.StateStore { const blocks = this.lastBlocks .valueSeq() - .filter(block => block.data.height >= start && block.data.height <= tail); + .filter((block) => block.data.height >= start && block.data.height <= tail); return this.mapToBlockData(blocks, headersOnly).toArray() as Interfaces.IBlockData[]; } @@ -185,7 +182,7 @@ export class StateStore implements Contracts.State.StateStore { } return this.getLastBlocksData(true) - .filter(block => { + .filter((block) => { Utils.assert.defined(block.id); return idsHash[block.id]; @@ -200,7 +197,7 @@ export class StateStore implements Contracts.State.StateStore { transactions: Interfaces.ITransactionData[], ): { added: Interfaces.ITransactionData[]; notAdded: Interfaces.ITransactionData[] } { const notAdded: Interfaces.ITransactionData[] = []; - const added: Interfaces.ITransactionData[] = transactions.filter(tx => { + const added: Interfaces.ITransactionData[] = transactions.filter((tx) => { Utils.assert.defined(tx.id); if (this.cachedTransactionIds.has(tx.id)) { @@ -212,7 +209,7 @@ export class StateStore implements Contracts.State.StateStore { return true; }); - this.cachedTransactionIds = this.cachedTransactionIds.withMutations(cache => { + this.cachedTransactionIds = this.cachedTransactionIds.withMutations((cache) => { for (const tx of added) { Utils.assert.defined(tx.id); @@ -287,9 +284,9 @@ export class StateStore implements Contracts.State.StateStore { blocks: Seq, headersOnly?: boolean, ): Seq { - return blocks.map(block => ({ + return blocks.map((block) => ({ ...block.data, - transactions: headersOnly ? undefined : block.transactions.map(tx => tx.data), + transactions: headersOnly ? undefined : block.transactions.map((tx) => tx.data), })); } } diff --git a/packages/core-state/src/wallets/utils/filter-rows.ts b/packages/core-state/src/wallets/utils/filter-rows.ts index 3016adca88..203231b31d 100644 --- a/packages/core-state/src/wallets/utils/filter-rows.ts +++ b/packages/core-state/src/wallets/utils/filter-rows.ts @@ -14,7 +14,7 @@ export default ( params: Contracts.Database.QueryParameters, filters: Record, ): T[] => { - return wallets.filter(wallet => { + return wallets.filter((wallet) => { if (filters.hasOwnProperty("exact")) { for (const elem of filters.exact) { if (params[elem] !== undefined && getProperty(wallet, elem) !== params[elem]) { @@ -80,7 +80,7 @@ export default ( if (Array.isArray(wallet[elem])) { if (Array.isArray(params[elem])) { // @ts-ignore - return params[elem].every(a => wallet[elem].includes(a)); + return params[elem].every((a) => wallet[elem].includes(a)); } else { throw new Error('Filtering by "every" requires an Array'); } @@ -98,7 +98,7 @@ export default ( if (params[elem] && getProperty(wallet, elem)) { if (Array.isArray(params[elem])) { // @ts-ignore - if (wallet[elem].every(a => params[elem].indexOf(a) === -1)) { + if (wallet[elem].every((a) => params[elem].indexOf(a) === -1)) { return false; } } else { diff --git a/packages/core-state/src/wallets/utils/search-entries.ts b/packages/core-state/src/wallets/utils/search-entries.ts index 931f418b4c..fce8aeb56a 100644 --- a/packages/core-state/src/wallets/utils/search-entries.ts +++ b/packages/core-state/src/wallets/utils/search-entries.ts @@ -31,7 +31,7 @@ const calculateOrder = (params: Contracts.Database.QueryParameters, defaultOrder } // @ts-ignore - const orderByMapped: string[] = params.orderBy.split(":").map(p => p.toLowerCase()); + const orderByMapped: string[] = params.orderBy.split(":").map((p) => p.toLowerCase()); if (orderByMapped.length !== 2 || ["desc", "asc"].includes(orderByMapped[1]) !== true) { orderBy = defaultOrder; diff --git a/packages/core-state/src/wallets/utils/search-parameter-converter.ts b/packages/core-state/src/wallets/utils/search-parameter-converter.ts index 2c8969d045..b5a7cc054a 100644 --- a/packages/core-state/src/wallets/utils/search-parameter-converter.ts +++ b/packages/core-state/src/wallets/utils/search-parameter-converter.ts @@ -47,7 +47,7 @@ export class SearchParameterConverter implements Contracts.Database.SearchParame private parseOrderBy(searchParameters: Contracts.Database.SearchParameters, orderBy?: any) { if (orderBy && typeof orderBy === "string") { - const fieldDirection = orderBy.split(":").map(o => o.toLowerCase()); + const fieldDirection = orderBy.split(":").map((o) => o.toLowerCase()); if (fieldDirection.length === 2 && (fieldDirection[1] === "asc" || fieldDirection[1] === "desc")) { Utils.assert.defined(searchParameters.orderBy); @@ -72,7 +72,7 @@ export class SearchParameterConverter implements Contracts.Database.SearchParame page, pagination are added automatically by hapi-pagination */ const fieldNames: string[] = Object.keys(params).filter( - value => !["orderBy", "limit", "offset", "page", "pagination"].includes(value), + (value) => !["orderBy", "limit", "offset", "page", "pagination"].includes(value), ); for (const fieldName of fieldNames) { const fieldDescriptor = mapByFieldName[fieldName]; diff --git a/packages/core-state/src/wallets/wallet-repository.ts b/packages/core-state/src/wallets/wallet-repository.ts index 509ca11100..8ae37704ac 100644 --- a/packages/core-state/src/wallets/wallet-repository.ts +++ b/packages/core-state/src/wallets/wallet-repository.ts @@ -99,7 +99,7 @@ export class WalletRepository implements Contracts.State.WalletRepository { } public has(key: string): boolean { - return Object.values(this.indexes).some(index => index.has(key)); + return Object.values(this.indexes).some((index) => index.has(key)); } public hasByAddress(address: string): boolean { @@ -296,7 +296,7 @@ export class WalletRepository implements Contracts.State.WalletRepository { break; } case "never-forged": { - entries = this.allByUsername().filter(delegate => { + entries = this.allByUsername().filter((delegate) => { return delegate.getAttribute("delegate.producedBlocks") === 0; }); break; @@ -313,7 +313,7 @@ export class WalletRepository implements Contracts.State.WalletRepository { }; if (AppUtils.hasSomeProperty(params, Object.keys(manipulators))) { - entries = entries.map(delegate => { + entries = entries.map((delegate) => { for (const [prop, method] of Object.entries(manipulators)) { if (params.hasOwnProperty(prop)) { delegate.setAttribute(`delegate.${prop}`, method(delegate)); @@ -397,7 +397,7 @@ export class WalletRepository implements Contracts.State.WalletRepository { const entries: any[] = this.getIndex("businesses") .values() - .map(wallet => { + .map((wallet) => { const business: any = wallet.getAttribute("business"); return params.transform ? { diff --git a/packages/core-test-framework/src/app/generators/core.ts b/packages/core-test-framework/src/app/generators/core.ts index 5c07f6dea8..a63f6ca8f1 100644 --- a/packages/core-test-framework/src/app/generators/core.ts +++ b/packages/core-test-framework/src/app/generators/core.ts @@ -75,7 +75,7 @@ export class CoreGenerator extends Generator { if (this.options.core.delegates) { writeJSONSync(filePath, this.options.core.delegates, { spaces: 4 }); } else { - writeJSONSync(filePath, { secrets: delegates.map(d => d.passphrase) }, { spaces: 4 }); + writeJSONSync(filePath, { secrets: delegates.map((d) => d.passphrase) }, { spaces: 4 }); } } diff --git a/packages/core-test-framework/src/app/generators/crypto.ts b/packages/core-test-framework/src/app/generators/crypto.ts index fb843c5b8d..eeb3dcedd4 100644 --- a/packages/core-test-framework/src/app/generators/crypto.ts +++ b/packages/core-test-framework/src/app/generators/crypto.ts @@ -188,9 +188,7 @@ export class CryptoGenerator extends Generator { totalPremine: string, pubKeyHash: number, ): any { - const amount: string = Utils.BigNumber.make(totalPremine) - .dividedBy(recipients.length) - .toString(); + const amount: string = Utils.BigNumber.make(totalPremine).dividedBy(recipients.length).toString(); return recipients.map((recipientWallet: Wallet) => this.createTransferTransaction(sender, recipientWallet, amount, pubKeyHash), diff --git a/packages/core-test-framework/src/factories/factories/block.ts b/packages/core-test-framework/src/factories/factories/block.ts index 78124dbd3e..72e67b04ef 100644 --- a/packages/core-test-framework/src/factories/factories/block.ts +++ b/packages/core-test-framework/src/factories/factories/block.ts @@ -22,7 +22,7 @@ export const registerBlockFactory = (factory: FactoryBuilder): void => { const signer = new Signer(options.config, options.nonce); const genesisWallets = previousBlock.transactions - .map(transaction => transaction.recipientId) + .map((transaction) => transaction.recipientId) .filter((address: string) => !!address); for (let i = 0; i < options.transactionsCount; i++) { diff --git a/packages/core-test-framework/src/factories/factories/transaction.ts b/packages/core-test-framework/src/factories/factories/transaction.ts index 77e37ea6c1..7ab0a1b64d 100644 --- a/packages/core-test-framework/src/factories/factories/transaction.ts +++ b/packages/core-test-framework/src/factories/factories/transaction.ts @@ -13,14 +13,7 @@ import { FactoryFunctionOptions } from "../types"; const chance: Chance = new Chance(); -const randomHash = (): string => - createHash("sha256") - .update( - Math.random() - .toString(36) - .substring(8), - ) - .digest("hex"); +const randomHash = (): string => createHash("sha256").update(Math.random().toString(36).substring(8)).digest("hex"); const sign = ({ entity, options }: FactoryFunctionOptions) => entity.sign(options.passphrase || secrets[0]); @@ -100,10 +93,7 @@ export const registerSecondSignatureFactory = (factory: FactoryBuilder): void => export const registerDelegateRegistrationFactory = (factory: FactoryBuilder): void => { factory.set("DelegateRegistration", ({ options }) => Transactions.BuilderFactory.delegateRegistration().usernameAsset( - options.username || - Math.random() - .toString(36) - .substring(8), + options.username || Math.random().toString(36).substring(8), ), ); @@ -210,11 +200,7 @@ export const registerHtlcClaimFactory = (factory: FactoryBuilder): void => { applyModifiers( Transactions.BuilderFactory.htlcClaim().htlcClaimAsset({ lockTransactionId: options.lockTransactionId || randomHash(), - unlockSecret: - options.unlockSecret || - Math.random() - .toString(36) - .substring(8), + unlockSecret: options.unlockSecret || Math.random().toString(36).substring(8), }), options, ), diff --git a/packages/core-test-framework/src/factories/factories/wallet.ts b/packages/core-test-framework/src/factories/factories/wallet.ts index 4de76558bb..aea4f2439e 100644 --- a/packages/core-test-framework/src/factories/factories/wallet.ts +++ b/packages/core-test-framework/src/factories/factories/wallet.ts @@ -1,6 +1,6 @@ +import { Services } from "@arkecosystem/core-kernel"; import { Wallets } from "@arkecosystem/core-state"; import { Identities } from "@arkecosystem/crypto"; -import { Services } from "@arkecosystem/core-kernel"; import { generateMnemonic } from "bip39"; import { getWalletAttributeSet } from "../../internal/wallet-attributes"; diff --git a/packages/core-test-framework/src/matchers/api/block.ts b/packages/core-test-framework/src/matchers/api/block.ts index ca245b034e..f5ffab5c31 100644 --- a/packages/core-test-framework/src/matchers/api/block.ts +++ b/packages/core-test-framework/src/matchers/api/block.ts @@ -12,7 +12,7 @@ declare global { } } -const isValidBlock = block => { +const isValidBlock = (block) => { const allowedKeys = Utils.sortBy([ "blockSignature", "createdAt", @@ -31,7 +31,7 @@ const isValidBlock = block => { "updatedAt", "version", ]); - const actualKeys = Object.keys(block).filter(key => allowedKeys.includes(key)); + const actualKeys = Object.keys(block).filter((key) => allowedKeys.includes(key)); return Utils.isEqual(Utils.sortBy(actualKeys), allowedKeys); }; diff --git a/packages/core-test-framework/src/matchers/api/peer.ts b/packages/core-test-framework/src/matchers/api/peer.ts index a6d867b72a..c2d0663558 100644 --- a/packages/core-test-framework/src/matchers/api/peer.ts +++ b/packages/core-test-framework/src/matchers/api/peer.ts @@ -12,9 +12,9 @@ declare global { } } -const isValidPeer = peer => { +const isValidPeer = (peer) => { const allowedKeys = Utils.sortBy(["ip", "port"]); - const actualKeys = Object.keys(peer).filter(key => allowedKeys.includes(key)); + const actualKeys = Object.keys(peer).filter((key) => allowedKeys.includes(key)); return Utils.isEqual(Utils.sortBy(actualKeys), allowedKeys); }; diff --git a/packages/core-test-framework/src/matchers/api/response.ts b/packages/core-test-framework/src/matchers/api/response.ts index 409de9d0a0..8b337bad12 100644 --- a/packages/core-test-framework/src/matchers/api/response.ts +++ b/packages/core-test-framework/src/matchers/api/response.ts @@ -33,7 +33,7 @@ expect.extend({ })} to be a paginated response`, pass: actual.data.meta && - ["pageCount", "totalCount", "next", "previous", "self", "first", "last"].every(property => + ["pageCount", "totalCount", "next", "previous", "self", "first", "last"].every((property) => Object.keys(actual.data.meta).includes(property), ), }; diff --git a/packages/core-test-framework/src/matchers/api/transaction.ts b/packages/core-test-framework/src/matchers/api/transaction.ts index 755b171f3e..9e61e5fc14 100644 --- a/packages/core-test-framework/src/matchers/api/transaction.ts +++ b/packages/core-test-framework/src/matchers/api/transaction.ts @@ -27,7 +27,7 @@ expect.extend({ "asset", "confirmations", ]); - const actualKeys = Object.keys(actual).filter(key => allowedKeys.includes(key)); + const actualKeys = Object.keys(actual).filter((key) => allowedKeys.includes(key)); return { message: /* istanbul ignore next */ () => `Expected ${JSON.stringify(actual)} to be a valid transaction`, diff --git a/packages/core-test-framework/src/matchers/blockchain/execute-on-entry.ts b/packages/core-test-framework/src/matchers/blockchain/execute-on-entry.ts index 9fb521bf4d..dad8fa2097 100644 --- a/packages/core-test-framework/src/matchers/blockchain/execute-on-entry.ts +++ b/packages/core-test-framework/src/matchers/blockchain/execute-on-entry.ts @@ -23,7 +23,7 @@ expect.extend({ const state: any = Utils.get(machine.states, path); - const actions = transition.actions.map(action => `"${action}"`).join(", "); + const actions = transition.actions.map((action) => `"${action}"`).join(", "); return { // FIXME isNot is necessary to write the right message @@ -34,7 +34,7 @@ expect.extend({ transition.state }"`, pass: Utils.isEqual( - state.onEntry.map(action => action.type), + state.onEntry.map((action) => action.type), transition.actions, ), }; diff --git a/packages/core-test-framework/src/matchers/fields/public-key.ts b/packages/core-test-framework/src/matchers/fields/public-key.ts index a6eb407109..2d77d92044 100644 --- a/packages/core-test-framework/src/matchers/fields/public-key.ts +++ b/packages/core-test-framework/src/matchers/fields/public-key.ts @@ -12,7 +12,7 @@ declare global { } expect.extend({ - toBePublicKey: received => { + toBePublicKey: (received) => { let pass: boolean; try { diff --git a/packages/core-test-framework/src/matchers/functional/accepted.ts b/packages/core-test-framework/src/matchers/functional/accepted.ts index 41cfbec41a..b0f90e64d7 100644 --- a/packages/core-test-framework/src/matchers/functional/accepted.ts +++ b/packages/core-test-framework/src/matchers/functional/accepted.ts @@ -74,7 +74,7 @@ expect.extend({ }`, }; }, - toBeEachAccepted: async transactions => { + toBeEachAccepted: async (transactions) => { let pass = true; let error: string | undefined; diff --git a/packages/core-test-framework/src/matchers/functional/rejected.ts b/packages/core-test-framework/src/matchers/functional/rejected.ts index 8e92621158..a50c70bc84 100644 --- a/packages/core-test-framework/src/matchers/functional/rejected.ts +++ b/packages/core-test-framework/src/matchers/functional/rejected.ts @@ -30,8 +30,10 @@ expect.extend({ return { pass, - // @ts-ignore - message: /* istanbul ignore next */ () => `expected ${transaction.id} ${this.isNot ? "not" : ""} to be rejected, but: ${response}`, + message: () => + /* istanbul ignore next */ + // @ts-ignore + `expected ${transaction.id} ${this.isNot ? "not" : ""} to be rejected, but: ${response}`, }; }, toBeEachRejected: async (transactions: Interfaces.ITransactionData[]) => { @@ -57,8 +59,10 @@ expect.extend({ return { pass, - // @ts-ignore - message: /* istanbul ignore next */ () => `expected transactions ${this.isNot ? "not" : ""} to be rejected, but: ${response}`, + message: () => + /* istanbul ignore next */ + // @ts-ignore + `expected transactions ${this.isNot ? "not" : ""} to be rejected, but: ${response}`, }; }, }); diff --git a/packages/core-test-framework/src/matchers/models/delegate.ts b/packages/core-test-framework/src/matchers/models/delegate.ts index 18ddb422de..147f45924b 100644 --- a/packages/core-test-framework/src/matchers/models/delegate.ts +++ b/packages/core-test-framework/src/matchers/models/delegate.ts @@ -12,7 +12,7 @@ declare global { } expect.extend({ - toBeDelegate: actual => { + toBeDelegate: (actual) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid delegate", pass: Utils.isEqual(Utils.sortBy(Object.keys(actual)), ["address", "publicKey", "username"]), diff --git a/packages/core-test-framework/src/matchers/models/transaction.ts b/packages/core-test-framework/src/matchers/models/transaction.ts index 485ca7b888..099727ad7f 100644 --- a/packages/core-test-framework/src/matchers/models/transaction.ts +++ b/packages/core-test-framework/src/matchers/models/transaction.ts @@ -12,10 +12,10 @@ declare global { } expect.extend({ - toBeTransaction: actual => { + toBeTransaction: (actual) => { // TODO based on type const allowedKeys = Utils.sortBy(["id", "type", "amount", "fee", "timestamp", "signature"]); - const actualKeys = Object.keys(actual).filter(key => allowedKeys.includes(key)); + const actualKeys = Object.keys(actual).filter((key) => allowedKeys.includes(key)); return { message: /* istanbul ignore next */ () => "Expected value to be a valid transaction", diff --git a/packages/core-test-framework/src/matchers/models/wallet.ts b/packages/core-test-framework/src/matchers/models/wallet.ts index 410af39c7d..8c63463d40 100644 --- a/packages/core-test-framework/src/matchers/models/wallet.ts +++ b/packages/core-test-framework/src/matchers/models/wallet.ts @@ -12,7 +12,7 @@ declare global { } expect.extend({ - toBeWallet: actual => { + toBeWallet: (actual) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid wallet", pass: Utils.isEqual(Utils.sortBy(Object.keys(actual)), ["address", "publicKey"]), diff --git a/packages/core-test-framework/src/matchers/transactions/types/delegate-registration.ts b/packages/core-test-framework/src/matchers/transactions/types/delegate-registration.ts index 523064b4d1..6ca831e4b2 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/delegate-registration.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/delegate-registration.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeDelegateRegistrationType: received => { + toBeDelegateRegistrationType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid DELEGATE transaction.", pass: received.type === DelegateRegistration, diff --git a/packages/core-test-framework/src/matchers/transactions/types/delegate-resignation.ts b/packages/core-test-framework/src/matchers/transactions/types/delegate-resignation.ts index 68d89915e4..eb5bb26ad8 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/delegate-resignation.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/delegate-resignation.ts @@ -13,7 +13,7 @@ declare global { } expect.extend({ - toBeDelegateResignationType: received => { + toBeDelegateResignationType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid DelegateResignation transaction.", pass: received.type === DelegateResignation, diff --git a/packages/core-test-framework/src/matchers/transactions/types/ipfs.ts b/packages/core-test-framework/src/matchers/transactions/types/ipfs.ts index 3fa503a31e..9733c077b4 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/ipfs.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/ipfs.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeIpfsType: received => { + toBeIpfsType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid IPFS transaction.", pass: received.type === Ipfs, diff --git a/packages/core-test-framework/src/matchers/transactions/types/multi-payment.ts b/packages/core-test-framework/src/matchers/transactions/types/multi-payment.ts index 1d6da12db2..98e82d68dc 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/multi-payment.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/multi-payment.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeMultiPaymentType: received => { + toBeMultiPaymentType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid MultiPayment transaction.", pass: received.type === MultiPayment, diff --git a/packages/core-test-framework/src/matchers/transactions/types/multi-signature.ts b/packages/core-test-framework/src/matchers/transactions/types/multi-signature.ts index 8477c1606a..8258c2a3a7 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/multi-signature.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/multi-signature.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeMultiSignatureType: received => { + toBeMultiSignatureType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid MultiSignature transaction.", pass: received.type === MultiSignature, diff --git a/packages/core-test-framework/src/matchers/transactions/types/second-signature.ts b/packages/core-test-framework/src/matchers/transactions/types/second-signature.ts index 762ddeb9d6..bbf1a80e0e 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/second-signature.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/second-signature.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeSecondSignatureType: received => { + toBeSecondSignatureType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid SecondSignature transaction.", pass: received.type === SecondSignature, diff --git a/packages/core-test-framework/src/matchers/transactions/types/transfer.ts b/packages/core-test-framework/src/matchers/transactions/types/transfer.ts index 21e3820381..c70efd84ff 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/transfer.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/transfer.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeTransferType: received => { + toBeTransferType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid Transfer transaction.", pass: received.type === Transfer, diff --git a/packages/core-test-framework/src/matchers/transactions/types/vote.ts b/packages/core-test-framework/src/matchers/transactions/types/vote.ts index 41422e61ae..2363e60d7b 100644 --- a/packages/core-test-framework/src/matchers/transactions/types/vote.ts +++ b/packages/core-test-framework/src/matchers/transactions/types/vote.ts @@ -14,7 +14,7 @@ declare global { } expect.extend({ - toBeVoteType: received => { + toBeVoteType: (received) => { return { message: /* istanbul ignore next */ () => "Expected value to be a valid VOTE transaction.", pass: received.type === Vote, diff --git a/packages/core-test-framework/src/matchers/transactions/valid.ts b/packages/core-test-framework/src/matchers/transactions/valid.ts index 86ff80b4f4..92eecd363c 100644 --- a/packages/core-test-framework/src/matchers/transactions/valid.ts +++ b/packages/core-test-framework/src/matchers/transactions/valid.ts @@ -12,7 +12,7 @@ declare global { } expect.extend({ - toBeValidTransaction: actual => { + toBeValidTransaction: (actual) => { let verified = false; try { diff --git a/packages/core-test-framework/src/mocks/block-repository.ts b/packages/core-test-framework/src/mocks/block-repository.ts index a98d440f9f..7d1b5bee8d 100644 --- a/packages/core-test-framework/src/mocks/block-repository.ts +++ b/packages/core-test-framework/src/mocks/block-repository.ts @@ -1,5 +1,5 @@ -import { BlockRepository, RepositorySearchResult } from "@arkecosystem/core-database/src/repositories"; import { Block } from "@arkecosystem/core-database/src/models"; +import { BlockRepository, RepositorySearchResult } from "@arkecosystem/core-database/src/repositories"; import { SearchFilter, SearchPagination } from "@arkecosystem/core-database/src/repositories/search"; export type DelegateForgedBlock = { diff --git a/packages/core-test-framework/src/mocks/blockchain.ts b/packages/core-test-framework/src/mocks/blockchain.ts index ff5d300cf0..f29b192b7b 100644 --- a/packages/core-test-framework/src/mocks/blockchain.ts +++ b/packages/core-test-framework/src/mocks/blockchain.ts @@ -1,5 +1,5 @@ -import { IBlock } from "@arkecosystem/crypto/src/interfaces"; import { Blockchain } from "@arkecosystem/core-blockchain"; +import { IBlock } from "@arkecosystem/crypto/src/interfaces"; let mockBlock: Partial | undefined; let mockIsSynced: boolean = true; diff --git a/packages/core-test-framework/src/mocks/index.ts b/packages/core-test-framework/src/mocks/index.ts index d87c75fa6a..85f524ccd4 100644 --- a/packages/core-test-framework/src/mocks/index.ts +++ b/packages/core-test-framework/src/mocks/index.ts @@ -6,8 +6,8 @@ import * as TransactionPoolQuery from "./query"; import * as RoundRepository from "./round-repository"; import * as ServiceProviderRepository from "./service-provider-repository"; import * as StateStore from "./state-store"; -import * as TransactionRepository from "./transaction-repository"; import * as TransactionPoolProcessor from "./transaction-pool-processor"; +import * as TransactionRepository from "./transaction-repository"; import * as WalletRepository from "./wallet-respository"; export { diff --git a/packages/core-test-framework/src/mocks/peer-storage.ts b/packages/core-test-framework/src/mocks/peer-storage.ts index 6eb3c76d64..338da9fa0a 100644 --- a/packages/core-test-framework/src/mocks/peer-storage.ts +++ b/packages/core-test-framework/src/mocks/peer-storage.ts @@ -1,5 +1,5 @@ -import { PeerStorage } from "@arkecosystem/core-p2p/src/peer-storage"; import { Contracts } from "@arkecosystem/core-kernel"; +import { PeerStorage } from "@arkecosystem/core-p2p/src/peer-storage"; let mockPeers: Partial[] = []; diff --git a/packages/core-test-framework/src/mocks/query.ts b/packages/core-test-framework/src/mocks/query.ts index 7a82b5f985..f11f3665ca 100644 --- a/packages/core-test-framework/src/mocks/query.ts +++ b/packages/core-test-framework/src/mocks/query.ts @@ -1,6 +1,6 @@ -import { Transaction } from "@arkecosystem/crypto/src/transactions"; import { Contracts } from "@arkecosystem/core-kernel"; import { Interfaces } from "@arkecosystem/crypto"; +import { Transaction } from "@arkecosystem/crypto/src/transactions"; let mockTransactions: Partial[] = []; diff --git a/packages/core-test-framework/src/mocks/round-repository.ts b/packages/core-test-framework/src/mocks/round-repository.ts index e2159d2d40..bb304ca2ad 100644 --- a/packages/core-test-framework/src/mocks/round-repository.ts +++ b/packages/core-test-framework/src/mocks/round-repository.ts @@ -1,5 +1,5 @@ -import { RoundRepository } from "@arkecosystem/core-database/src/repositories"; import { Round } from "@arkecosystem/core-database/src/models"; +import { RoundRepository } from "@arkecosystem/core-database/src/repositories"; let mockRounds: Partial[] = []; diff --git a/packages/core-test-framework/src/mocks/transaction-repository.ts b/packages/core-test-framework/src/mocks/transaction-repository.ts index 45dc67c9d6..412e6f367a 100644 --- a/packages/core-test-framework/src/mocks/transaction-repository.ts +++ b/packages/core-test-framework/src/mocks/transaction-repository.ts @@ -1,5 +1,5 @@ -import { RepositorySearchResult, TransactionRepository } from "@arkecosystem/core-database/src/repositories"; import { Transaction } from "@arkecosystem/core-database/src/models"; +import { RepositorySearchResult, TransactionRepository } from "@arkecosystem/core-database/src/repositories"; import { SearchCriteria, SearchFilter, SearchPagination } from "@arkecosystem/core-database/src/repositories/search"; export type FeeStatistics = { @@ -48,7 +48,7 @@ class TransactionRepositoryMock implements Partial { } return { - rows: transitions as Transaction[], + rows: transitions, count: transitions.length, countIsEstimate: false, }; diff --git a/packages/core-test-framework/src/utils/index.ts b/packages/core-test-framework/src/utils/index.ts index 3fcec18c24..8e29f79861 100644 --- a/packages/core-test-framework/src/utils/index.ts +++ b/packages/core-test-framework/src/utils/index.ts @@ -3,6 +3,6 @@ export * from "./generic"; export * from "./rest-client"; export * from "./transaction-factory"; -import * as Mapper from './mapper' +import * as Mapper from "./mapper"; -export { Mapper } +export { Mapper }; diff --git a/packages/core-test-framework/src/utils/mapper.ts b/packages/core-test-framework/src/utils/mapper.ts index bc87501b58..e619405ba7 100644 --- a/packages/core-test-framework/src/utils/mapper.ts +++ b/packages/core-test-framework/src/utils/mapper.ts @@ -1,9 +1,12 @@ -import { Interfaces, Utils } from "@packages/crypto"; import { Models } from "@packages/core-database"; +import { Interfaces, Utils } from "@packages/crypto"; -export const mapTransactionToModel = (transaction: Interfaces.ITransaction, sequence: number = 0): Models.Transaction => { +export const mapTransactionToModel = ( + transaction: Interfaces.ITransaction, + sequence: number = 0, +): Models.Transaction => { return { - id: transaction.id as string, + id: transaction.id!, version: transaction.data.version || 1, blockId: transaction.data.blockId || "", sequence: sequence, @@ -18,5 +21,5 @@ export const mapTransactionToModel = (transaction: Interfaces.ITransaction, sequ fee: BigInt(transaction.data.fee), serialized: transaction.serialized, asset: transaction.data.asset as Record, - } + }; }; diff --git a/packages/core-test-framework/src/utils/transaction-factory.ts b/packages/core-test-framework/src/utils/transaction-factory.ts index 44d5eacf34..796082c335 100644 --- a/packages/core-test-framework/src/utils/transaction-factory.ts +++ b/packages/core-test-framework/src/utils/transaction-factory.ts @@ -454,8 +454,6 @@ export class TransactionFactory { } private getRandomUsername(): string { - return Math.random() - .toString(36) - .toLowerCase(); + return Math.random().toString(36).toLowerCase(); } } diff --git a/packages/core-transaction-pool/src/processor.ts b/packages/core-transaction-pool/src/processor.ts index ad239cd394..0e6053244a 100644 --- a/packages/core-transaction-pool/src/processor.ts +++ b/packages/core-transaction-pool/src/processor.ts @@ -26,7 +26,7 @@ export class Processor implements Contracts.TransactionPool.Processor { public async process(data: Interfaces.ITransactionData[]): Promise { const broadcastableTransactions: Interfaces.ITransaction[] = []; - const transactions = data.map(d => Transactions.TransactionFactory.fromData(d)); + const transactions = data.map((d) => Transactions.TransactionFactory.fromData(d)); try { for (const transaction of transactions) { diff --git a/packages/core-transaction-pool/src/query.ts b/packages/core-transaction-pool/src/query.ts index 994b43ddf9..9c7ffde39b 100644 --- a/packages/core-transaction-pool/src/query.ts +++ b/packages/core-transaction-pool/src/query.ts @@ -28,23 +28,23 @@ export class QueryIterable implements Contracts.TransactionPool.QueryIterable { } public whereId(id: string): QueryIterable { - return this.wherePredicate(t => t.id === id); + return this.wherePredicate((t) => t.id === id); } public whereType(type: Enums.TransactionType): QueryIterable { - return this.wherePredicate(t => t.type === type); + return this.wherePredicate((t) => t.type === type); } public whereTypeGroup(typeGroup: Enums.TransactionTypeGroup): QueryIterable { - return this.wherePredicate(t => t.typeGroup === typeGroup); + return this.wherePredicate((t) => t.typeGroup === typeGroup); } public whereVersion(version: number): QueryIterable { - return this.wherePredicate(t => t.data.version === version); + return this.wherePredicate((t) => t.data.version === version); } public whereKind(transaction: Interfaces.ITransaction): QueryIterable { - return this.wherePredicate(t => t.type === transaction.type && t.typeGroup === transaction.typeGroup); + return this.wherePredicate((t) => t.type === transaction.type && t.typeGroup === transaction.typeGroup); } public has(): boolean { @@ -68,7 +68,7 @@ export class Query implements Contracts.TransactionPool.Query { private readonly mempool!: Contracts.TransactionPool.Mempool; public getAll(): QueryIterable { - const iterable: Iterable = function*(this: Query) { + const iterable: Iterable = function* (this: Query) { for (const senderMempool of this.mempool.getSenderMempools()) { for (const transaction of senderMempool.getFromLatest()) { yield transaction; @@ -80,7 +80,7 @@ export class Query implements Contracts.TransactionPool.Query { } public getAllBySender(senderPublicKey: string): QueryIterable { - const iterable: Iterable = function*(this: Query) { + const iterable: Iterable = function* (this: Query) { if (this.mempool.hasSenderMempool(senderPublicKey)) { const transactions = this.mempool.getSenderMempool(senderPublicKey).getFromEarliest(); for (const transaction of transactions) { @@ -103,8 +103,8 @@ export class Query implements Contracts.TransactionPool.Query { }; const iterators: Iterator[] = Array.from(this.mempool.getSenderMempools()) - .map(p => p.getFromLatest()) - .map(i => i[Symbol.iterator]()); + .map((p) => p.getFromLatest()) + .map((i) => i[Symbol.iterator]()); return new IteratorMany(iterators, comparator); }, @@ -124,8 +124,8 @@ export class Query implements Contracts.TransactionPool.Query { }; const iterators: Iterator[] = Array.from(this.mempool.getSenderMempools()) - .map(p => p.getFromEarliest()) - .map(i => i[Symbol.iterator]()); + .map((p) => p.getFromEarliest()) + .map((i) => i[Symbol.iterator]()); return new IteratorMany(iterators, comparator); }, diff --git a/packages/core-transaction-pool/src/sender-mempool.ts b/packages/core-transaction-pool/src/sender-mempool.ts index 090d24f18c..bf3f0025dc 100644 --- a/packages/core-transaction-pool/src/sender-mempool.ts +++ b/packages/core-transaction-pool/src/sender-mempool.ts @@ -52,7 +52,7 @@ export class SenderMempool implements Contracts.TransactionPool.SenderMempool { public async removeTransaction(transaction: Interfaces.ITransaction): Promise { return await this.lock(async () => { - const index = this.transactions.findIndex(t => t.id === transaction.id); + const index = this.transactions.findIndex((t) => t.id === transaction.id); if (index === -1) { return []; } @@ -75,7 +75,7 @@ export class SenderMempool implements Contracts.TransactionPool.SenderMempool { public async acceptForgedTransaction(transaction: Interfaces.ITransaction): Promise { return await this.lock(async () => { - const index: number = this.transactions.findIndex(t => t.id === transaction.id); + const index: number = this.transactions.findIndex((t) => t.id === transaction.id); if (index === -1) { return this.transactions.splice(0, this.transactions.length); } else { diff --git a/packages/core-transaction-pool/src/service-provider.ts b/packages/core-transaction-pool/src/service-provider.ts index 1bd537593c..6ba031368c 100644 --- a/packages/core-transaction-pool/src/service-provider.ts +++ b/packages/core-transaction-pool/src/service-provider.ts @@ -25,10 +25,7 @@ export class ServiceProvider extends Providers.ServiceProvider { this.app.bind(Container.Identifiers.TransactionPoolCollator).to(Collator); this.app.bind(Container.Identifiers.TransactionPoolDynamicFeeMatcher).to(DynamicFeeMatcher); this.app.bind(Container.Identifiers.TransactionPoolExpirationService).to(ExpirationService); - this.app - .bind(Container.Identifiers.TransactionPoolMempool) - .to(Mempool) - .inSingletonScope(); + this.app.bind(Container.Identifiers.TransactionPoolMempool).to(Mempool).inSingletonScope(); this.app.bind(Container.Identifiers.TransactionPoolProcessor).to(Processor); this.app .bind(Container.Identifiers.TransactionPoolProcessorFactory) @@ -39,14 +36,8 @@ export class ServiceProvider extends Providers.ServiceProvider { .bind(Container.Identifiers.TransactionPoolSenderMempoolFactory) .toAutoFactory(Container.Identifiers.TransactionPoolSenderMempool); this.app.bind(Container.Identifiers.TransactionPoolSenderState).to(SenderState); - this.app - .bind(Container.Identifiers.TransactionPoolService) - .to(Service) - .inSingletonScope(); - this.app - .bind(Container.Identifiers.TransactionPoolStorage) - .to(Storage) - .inSingletonScope(); + this.app.bind(Container.Identifiers.TransactionPoolService).to(Service).inSingletonScope(); + this.app.bind(Container.Identifiers.TransactionPoolStorage).to(Storage).inSingletonScope(); } /** diff --git a/packages/core-transaction-pool/src/service.ts b/packages/core-transaction-pool/src/service.ts index cdda959ac9..7bb5b5b1df 100644 --- a/packages/core-transaction-pool/src/service.ts +++ b/packages/core-transaction-pool/src/service.ts @@ -66,7 +66,7 @@ export class Service implements Contracts.TransactionPool.Service { this.logger.debug(`${removedTransaction} removed from pool`); } - if (!removedTransactions.find(t => t.id === transaction.id)) { + if (!removedTransactions.find((t) => t.id === transaction.id)) { this.storage.removeTransaction(transaction.id); this.logger.error(`${transaction} removed from pool (wasn't in mempool)`); } @@ -85,7 +85,7 @@ export class Service implements Contracts.TransactionPool.Service { this.logger.debug(`${removedTransaction} removed from pool`); } - if (removedTransactions.find(t => t.id === transaction.id)) { + if (removedTransactions.find((t) => t.id === transaction.id)) { this.logger.debug(`${transaction} forged and accepted by pool`); } else { this.storage.removeTransaction(transaction.id); diff --git a/packages/core-transaction-pool/src/storage.ts b/packages/core-transaction-pool/src/storage.ts index f8ac5e53af..6c621c472c 100644 --- a/packages/core-transaction-pool/src/storage.ts +++ b/packages/core-transaction-pool/src/storage.ts @@ -27,10 +27,7 @@ export class Storage implements Contracts.TransactionPool.Storage { } public hasTransaction(id: string): boolean { - return !!this.database - .prepare("SELECT COUNT(*) FROM pool WHERE id = ?") - .pluck(true) - .get(id); + return !!this.database.prepare("SELECT COUNT(*) FROM pool WHERE id = ?").pluck(true).get(id); } public getAllTransactions(): Iterable { @@ -38,7 +35,7 @@ export class Storage implements Contracts.TransactionPool.Storage { .prepare("SELECT LOWER(HEX(serialized)) FROM pool") .pluck(true) .all() - .map(hex => Transactions.TransactionFactory.fromHex(hex)); + .map((hex) => Transactions.TransactionFactory.fromHex(hex)); } public addTransaction(transaction: Interfaces.ITransaction): void { diff --git a/packages/core-transactions/src/handlers/handler-provider.ts b/packages/core-transactions/src/handlers/handler-provider.ts index fd4aa03662..b863166c14 100644 --- a/packages/core-transactions/src/handlers/handler-provider.ts +++ b/packages/core-transactions/src/handlers/handler-provider.ts @@ -81,7 +81,7 @@ export class TransactionHandlerProvider { } private hasOtherHandlerInstance(handler: TransactionHandler, dependency: TransactionHandlerConstructor) { - return this.handlers.some(otherHandler => { + return this.handlers.some((otherHandler) => { return otherHandler !== handler && otherHandler.constructor === dependency; }); } diff --git a/packages/core-transactions/src/handlers/one/delegate-registration.ts b/packages/core-transactions/src/handlers/one/delegate-registration.ts index 7aa51b6527..ca5e50cda7 100644 --- a/packages/core-transactions/src/handlers/one/delegate-registration.ts +++ b/packages/core-transactions/src/handlers/one/delegate-registration.ts @@ -102,7 +102,7 @@ export class DelegateRegistrationTransactionHandler extends TransactionHandler { const hasUsername: boolean = this.poolQuery .getAll() .whereKind(transaction) - .wherePredicate(t => t.data.asset?.delegate?.username === username) + .wherePredicate((t) => t.data.asset?.delegate?.username === username) .has(); if (hasUsername) { diff --git a/packages/core-transactions/src/handlers/transaction.ts b/packages/core-transactions/src/handlers/transaction.ts index baa4f3f04f..72998deff0 100644 --- a/packages/core-transactions/src/handlers/transaction.ts +++ b/packages/core-transactions/src/handlers/transaction.ts @@ -215,12 +215,7 @@ export abstract class TransactionHandler { this.verifyTransactionNonceApply(sender, transaction); - if ( - sender.balance - .minus(data.amount) - .minus(data.fee) - .isNegative() - ) { + if (sender.balance.minus(data.amount).minus(data.fee).isNegative()) { throw new InsufficientBalanceError(); } diff --git a/packages/core-transactions/src/handlers/two/delegate-resignation.ts b/packages/core-transactions/src/handlers/two/delegate-resignation.ts index d63841f2a8..956c660660 100644 --- a/packages/core-transactions/src/handlers/two/delegate-resignation.ts +++ b/packages/core-transactions/src/handlers/two/delegate-resignation.ts @@ -55,7 +55,7 @@ export class DelegateResignationTransactionHandler extends TransactionHandler { const requiredDelegatesCount: number = Managers.configManager.getMilestone().activeDelegates; const currentDelegatesCount: number = this.walletRepository .allByUsername() - .filter(w => w.hasAttribute("delegate.resigned") === false).length; + .filter((w) => w.hasAttribute("delegate.resigned") === false).length; if (currentDelegatesCount - 1 < requiredDelegatesCount) { throw new NotEnoughDelegatesError(); diff --git a/packages/core-transactions/src/handlers/two/htlc-claim.ts b/packages/core-transactions/src/handlers/two/htlc-claim.ts index 58933cb307..49c26864bd 100644 --- a/packages/core-transactions/src/handlers/two/htlc-claim.ts +++ b/packages/core-transactions/src/handlers/two/htlc-claim.ts @@ -99,7 +99,7 @@ export class HtlcClaimTransactionHandler extends TransactionHandler { const hasClaim: boolean = this.poolQuery .getAll() .whereKind(transaction) - .wherePredicate(t => t.data.asset?.claim?.lockTransactionId === lockId) + .wherePredicate((t) => t.data.asset?.claim?.lockTransactionId === lockId) .has(); if (hasClaim) { diff --git a/packages/core-transactions/src/handlers/two/htlc-refund.ts b/packages/core-transactions/src/handlers/two/htlc-refund.ts index 0349e416bb..76d609f358 100644 --- a/packages/core-transactions/src/handlers/two/htlc-refund.ts +++ b/packages/core-transactions/src/handlers/two/htlc-refund.ts @@ -98,7 +98,7 @@ export class HtlcRefundTransactionHandler extends TransactionHandler { const hasRefund = this.poolQuery .getAll() .whereKind(transaction) - .wherePredicate(t => t.data.asset?.refund?.lockTransactionId === lockId) + .wherePredicate((t) => t.data.asset?.refund?.lockTransactionId === lockId) .has(); if (hasRefund) { diff --git a/packages/core-transactions/src/handlers/two/multi-payment.ts b/packages/core-transactions/src/handlers/two/multi-payment.ts index c68061aba7..e38e73c951 100644 --- a/packages/core-transactions/src/handlers/two/multi-payment.ts +++ b/packages/core-transactions/src/handlers/two/multi-payment.ts @@ -47,12 +47,7 @@ export class MultiPaymentTransactionHandler extends TransactionHandler { const payments: Interfaces.IMultiPaymentItem[] = transaction.data.asset.payments; const totalPaymentsAmount = payments.reduce((a, p) => a.plus(p.amount), Utils.BigNumber.ZERO); - if ( - wallet.balance - .minus(totalPaymentsAmount) - .minus(transaction.data.fee) - .isNegative() - ) { + if (wallet.balance.minus(totalPaymentsAmount).minus(transaction.data.fee).isNegative()) { throw new InsufficientBalanceError(); } diff --git a/packages/core-webhooks/src/conditions.ts b/packages/core-webhooks/src/conditions.ts index 86dd1bea8f..ba849a13cc 100644 --- a/packages/core-webhooks/src/conditions.ts +++ b/packages/core-webhooks/src/conditions.ts @@ -4,13 +4,7 @@ import { Utils } from "@arkecosystem/crypto"; * @param {*} value * @returns {boolean} */ -const toBoolean = (value): boolean => - value - .toString() - .toLowerCase() - .trim() === "true" - ? true - : false; +const toBoolean = (value): boolean => (value.toString().toLowerCase().trim() === "true" ? true : false); /** * @param {*} value diff --git a/packages/core-webhooks/src/database.ts b/packages/core-webhooks/src/database.ts index c108dce810..0d9081b4e7 100644 --- a/packages/core-webhooks/src/database.ts +++ b/packages/core-webhooks/src/database.ts @@ -64,10 +64,7 @@ export class Database { * @memberof Database */ public findById(id: string): Webhook | undefined { - return this.database - .get("webhooks") - .find({ id }) - .value(); + return this.database.get("webhooks").find({ id }).value(); } /** @@ -76,10 +73,7 @@ export class Database { * @memberof Database */ public findByEvent(event: string): Webhook[] { - return this.database - .get("webhooks") - .filter({ event }) - .value(); + return this.database.get("webhooks").filter({ event }).value(); } /** @@ -90,10 +84,7 @@ export class Database { public create(data: Webhook): Webhook | undefined { data.id = uuidv4(); - this.database - .get("webhooks") - .push(data) - .write(); + this.database.get("webhooks").push(data).write(); return this.findById(data.id); } @@ -105,11 +96,7 @@ export class Database { * @memberof Database */ public update(id: string, data: Webhook): Webhook { - return this.database - .get("webhooks") - .find({ id }) - .assign(data) - .write(); + return this.database.get("webhooks").find({ id }).assign(data).write(); } /** @@ -117,9 +104,6 @@ export class Database { * @memberof Database */ public destroy(id: string): void { - this.database - .get("webhooks") - .remove({ id }) - .write(); + this.database.get("webhooks").remove({ id }).write(); } } diff --git a/packages/core-webhooks/src/server/index.ts b/packages/core-webhooks/src/server/index.ts index 006e9c422c..5edcfb5f6a 100644 --- a/packages/core-webhooks/src/server/index.ts +++ b/packages/core-webhooks/src/server/index.ts @@ -167,9 +167,9 @@ export class Server { this.server.route({ method: "GET", path: "/api/webhooks", - handler: request => { + handler: (request) => { return { - data: request.server.app.database.all().map(webhook => { + data: request.server.app.database.all().map((webhook) => { webhook = { ...webhook }; delete webhook.token; return webhook; diff --git a/packages/core-webhooks/src/server/schema.ts b/packages/core-webhooks/src/server/schema.ts index e2005a7312..07fefbd284 100644 --- a/packages/core-webhooks/src/server/schema.ts +++ b/packages/core-webhooks/src/server/schema.ts @@ -24,9 +24,7 @@ export const show: object = { export const store: object = { payload: Joi.object({ event: Joi.string().required(), - target: Joi.string() - .uri() - .required(), + target: Joi.string().uri().required(), enabled: Joi.boolean().default(true), conditions: Joi.array() .items( @@ -48,9 +46,7 @@ export const update: object = { }), payload: Joi.object({ event: Joi.string().required(), - target: Joi.string() - .uri() - .required(), + target: Joi.string().uri().required(), enabled: Joi.boolean().required(), conditions: Joi.array() .items( diff --git a/packages/core-webhooks/src/service-provider.ts b/packages/core-webhooks/src/service-provider.ts index eea26816be..450fdff467 100644 --- a/packages/core-webhooks/src/service-provider.ts +++ b/packages/core-webhooks/src/service-provider.ts @@ -17,18 +17,12 @@ export class ServiceProvider extends Providers.ServiceProvider { */ public async register(): Promise { // Setup Database... - this.app - .bind(Identifiers.Database) - .to(Database) - .inSingletonScope(); + this.app.bind(Identifiers.Database).to(Database).inSingletonScope(); this.app.get(Identifiers.Database).boot(); // Setup Server... - this.app - .bind(Identifiers.Server) - .to(Server) - .inSingletonScope(); + this.app.bind(Identifiers.Server).to(Server).inSingletonScope(); this.app.get(Identifiers.Server).register(this.config().get("server")!); diff --git a/packages/core/src/commands/config-database.ts b/packages/core/src/commands/config-database.ts index b472e1ccb6..ae2e1c9117 100644 --- a/packages/core/src/commands/config-database.ts +++ b/packages/core/src/commands/config-database.ts @@ -84,7 +84,7 @@ export class Command extends Commands.Command { name: "port", message: "What port do you want to use?", initial: 5432, - validate: value => (value < 1 || value > 65535 ? `The port must be in the range of 1-65535.` : true), + validate: (value) => (value < 1 || value > 65535 ? `The port must be in the range of 1-65535.` : true), }, { type: "text", diff --git a/packages/core/src/commands/config-forger-bip38.ts b/packages/core/src/commands/config-forger-bip38.ts index 4a8f2cda18..ddc0a7af40 100644 --- a/packages/core/src/commands/config-forger-bip38.ts +++ b/packages/core/src/commands/config-forger-bip38.ts @@ -67,14 +67,14 @@ export class Command extends Commands.Command { type: "password", name: "bip39", message: "Please enter your delegate plain text passphrase. Referred to as BIP39.", - validate: value => + validate: (value) => !validateMnemonic(value) ? "Failed to verify the given passphrase as BIP39 compliant." : true, }, { type: "password", name: "password", message: "Please enter your custom password that encrypts the BIP39. Referred to as BIP38.", - validate: value => (typeof value !== "string" ? "The BIP38 password has to be a string." : true), + validate: (value) => (typeof value !== "string" ? "The BIP38 password has to be a string." : true), }, { type: "confirm", diff --git a/packages/core/src/commands/config-forger-bip39.ts b/packages/core/src/commands/config-forger-bip39.ts index bd1f521a48..e38812593d 100644 --- a/packages/core/src/commands/config-forger-bip39.ts +++ b/packages/core/src/commands/config-forger-bip39.ts @@ -64,7 +64,7 @@ export class Command extends Commands.Command { type: "password", name: "bip39", message: "Please enter your delegate plain text passphrase. Referred to as BIP39.", - validate: value => + validate: (value) => !validateMnemonic(value) ? `Failed to verify the given passphrase as BIP39 compliant.` : true, }, { diff --git a/packages/core/src/commands/config-publish.ts b/packages/core/src/commands/config-publish.ts index 541d698971..848733d028 100644 --- a/packages/core/src/commands/config-publish.ts +++ b/packages/core/src/commands/config-publish.ts @@ -72,7 +72,7 @@ export class Command extends Commands.Command { type: "select", name: "network", message: "Please select which network you want to operate on", - choices: Object.keys(Networks).map(network => ({ title: network, value: network })), + choices: Object.keys(Networks).map((network) => ({ title: network, value: network })), }, { type: "confirm", diff --git a/packages/core/src/commands/core-restart.ts b/packages/core/src/commands/core-restart.ts index 163b070c07..9021f6c482 100644 --- a/packages/core/src/commands/core-restart.ts +++ b/packages/core/src/commands/core-restart.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "core") - .restart(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "core").restart(); } } diff --git a/packages/core/src/commands/core-status.ts b/packages/core/src/commands/core-status.ts index ebdb8dbfbc..4a5e354704 100644 --- a/packages/core/src/commands/core-status.ts +++ b/packages/core/src/commands/core-status.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "core") - .status(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "core").status(); } } diff --git a/packages/core/src/commands/env-list.ts b/packages/core/src/commands/env-list.ts index cb7e3a6486..e3ff72d8e5 100644 --- a/packages/core/src/commands/env-list.ts +++ b/packages/core/src/commands/env-list.ts @@ -52,7 +52,7 @@ export class Command extends Commands.Command { this.components.fatal(`No environment file found at ${envFile}.`); } - this.components.table(["Key", "Value"], table => { + this.components.table(["Key", "Value"], (table) => { const env = parseFileSync(envFile); for (const [key, value] of Object.entries(env)) { diff --git a/packages/core/src/commands/env-paths.ts b/packages/core/src/commands/env-paths.ts index 9612e13b93..669a3ac2cf 100644 --- a/packages/core/src/commands/env-paths.ts +++ b/packages/core/src/commands/env-paths.ts @@ -44,7 +44,7 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.components.table(["Type", "Path"], table => { + this.components.table(["Type", "Path"], (table) => { for (const [type, path] of Object.entries(this.app.get(Container.Identifiers.ApplicationPaths))) { table.push([type, path]); } diff --git a/packages/core/src/commands/env-set.ts b/packages/core/src/commands/env-set.ts index 29d74c69c1..d483830f84 100644 --- a/packages/core/src/commands/env-set.ts +++ b/packages/core/src/commands/env-set.ts @@ -46,16 +46,12 @@ export class Command extends Commands.Command { .setFlag( "key", "The environment variable that you wish to set.", - Joi.alternatives() - .try(Joi.string(), Joi.number()) - .required(), + Joi.alternatives().try(Joi.string(), Joi.number()).required(), ) .setFlag( "value", "The value that you wish to set the environment variable to.", - Joi.alternatives() - .try(Joi.string(), Joi.number()) - .required(), + Joi.alternatives().try(Joi.string(), Joi.number()).required(), ); } diff --git a/packages/core/src/commands/forger-restart.ts b/packages/core/src/commands/forger-restart.ts index f19f803e12..b3adb56530 100644 --- a/packages/core/src/commands/forger-restart.ts +++ b/packages/core/src/commands/forger-restart.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "forger") - .restart(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "forger").restart(); } } diff --git a/packages/core/src/commands/forger-status.ts b/packages/core/src/commands/forger-status.ts index 0ed7160f34..7800db0eb9 100644 --- a/packages/core/src/commands/forger-status.ts +++ b/packages/core/src/commands/forger-status.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "forger") - .status(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "forger").status(); } } diff --git a/packages/core/src/commands/network-generate.ts b/packages/core/src/commands/network-generate.ts index 03d202788c..e513fcd3e7 100644 --- a/packages/core/src/commands/network-generate.ts +++ b/packages/core/src/commands/network-generate.ts @@ -57,9 +57,7 @@ export class Command extends Commands.Command { .setFlag( "premine", "The number of pre-mined tokens.", - Joi.alternatives() - .try(Joi.string(), Joi.number()) - .default("12500000000000000"), + Joi.alternatives().try(Joi.string(), Joi.number()).default("12500000000000000"), ) .setFlag("delegates", "The number of delegates to generate.", Joi.number().default(51)) .setFlag("blocktime", "The network blocktime.", Joi.number().default(8)) @@ -69,9 +67,7 @@ export class Command extends Commands.Command { .setFlag( "rewardAmount", "The number of the block reward per forged block.", - Joi.alternatives() - .try(Joi.string(), Joi.number()) - .default("200000000"), + Joi.alternatives().try(Joi.string(), Joi.number()).default("200000000"), ) .setFlag("pubKeyHash", "The public key hash.", Joi.number()) .setFlag("wif", "The WIF (Wallet Import Format) that should be used.", Joi.number()) @@ -96,7 +92,7 @@ export class Command extends Commands.Command { const flags: Contracts.AnyObject = this.getFlags(); - if (!Object.keys(flagsDefinition).find(flagName => !flags[flagName])) { + if (!Object.keys(flagsDefinition).find((flagName) => !flags[flagName])) { return this.generateNetwork(flags); } @@ -104,7 +100,7 @@ export class Command extends Commands.Command { const response = await prompts( Object.keys(flagsDefinition) .map( - flagName => + (flagName) => ({ type: stringFlags.includes(flagName) ? "text" : "number", name: flagName, @@ -119,7 +115,7 @@ export class Command extends Commands.Command { } as prompts.PromptObject), ); - if (Object.keys(flagsDefinition).find(flagName => !response[flagName])) { + if (Object.keys(flagsDefinition).find((flagName) => !response[flagName])) { this.components.fatal("Please provide all flags and try again!"); } @@ -223,7 +219,7 @@ export class Command extends Commands.Command { writeJSONSync( resolve(coreConfigDest, "delegates.json"), - { secrets: delegates.map(d => d.passphrase) }, + { secrets: delegates.map((d) => d.passphrase) }, { spaces: 4 }, ); @@ -393,9 +389,7 @@ export class Command extends Commands.Command { totalPremine: string, pubKeyHash: number, ): any { - const amount: string = Utils.BigNumber.make(totalPremine) - .dividedBy(recipients.length) - .toString(); + const amount: string = Utils.BigNumber.make(totalPremine).dividedBy(recipients.length).toString(); return recipients.map((recipientWallet: Wallet) => this.createTransferTransaction(sender, recipientWallet, amount, pubKeyHash), diff --git a/packages/core/src/commands/relay-restart.ts b/packages/core/src/commands/relay-restart.ts index 826f340e5d..e4e687a7a0 100644 --- a/packages/core/src/commands/relay-restart.ts +++ b/packages/core/src/commands/relay-restart.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "relay") - .restart(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "relay").restart(); } } diff --git a/packages/core/src/commands/relay-status.ts b/packages/core/src/commands/relay-status.ts index 03aa50eb1d..31f8183e14 100644 --- a/packages/core/src/commands/relay-status.ts +++ b/packages/core/src/commands/relay-status.ts @@ -41,8 +41,6 @@ export class Command extends Commands.Command { * @memberof Command */ public async execute(): Promise { - this.app - .get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "relay") - .status(); + this.app.get(Container.Identifiers.ProcessFactory)(this.getFlag("token"), "relay").status(); } } diff --git a/packages/core/src/commands/top.ts b/packages/core/src/commands/top.ts index c0fac9e147..ed7b48f214 100644 --- a/packages/core/src/commands/top.ts +++ b/packages/core/src/commands/top.ts @@ -67,7 +67,7 @@ export class Command extends Commands.Command { this.components.fatal("No processes are running."); } - this.components.table(["ID", "Name", "Version", "Status", "Uptime", "CPU", "RAM"], table => { + this.components.table(["ID", "Name", "Version", "Status", "Uptime", "CPU", "RAM"], (table) => { for (const process of processes) { // @ts-ignore table.push([ diff --git a/packages/crypto/src/blocks/block.ts b/packages/crypto/src/blocks/block.ts index 85ec98d1fc..461fd1c515 100644 --- a/packages/crypto/src/blocks/block.ts +++ b/packages/crypto/src/blocks/block.ts @@ -45,7 +45,7 @@ export class Block implements IBlock { const fixedOrderIds = wrongTransactionOrder[this.data.id]; this.transactions = fixedOrderIds.map((id: string) => - this.transactions.find(transaction => transaction.id === id), + this.transactions.find((transaction) => transaction.id === id), ); } } @@ -150,7 +150,7 @@ export class Block implements IBlock { data.reward = this.data.reward.toString(); data.totalAmount = this.data.totalAmount.toString(); data.totalFee = this.data.totalFee.toString(); - data.transactions = this.transactions.map(transaction => transaction.toJson()); + data.transactions = this.transactions.map((transaction) => transaction.toJson()); return data; } @@ -195,7 +195,7 @@ export class Block implements IBlock { result.errors.push(`Payload is too large: ${size} > ${constants.block.maxPayload}`); } - const invalidTransactions: ITransaction[] = this.transactions.filter(tx => !tx.verified); + const invalidTransactions: ITransaction[] = this.transactions.filter((tx) => !tx.verified); if (invalidTransactions.length > 0) { result.errors.push("One or more transactions are not verified:"); @@ -203,7 +203,7 @@ export class Block implements IBlock { result.errors.push(`=> ${invalidTransaction.serialized.toString("hex")}`); } - result.containsMultiSignatures = invalidTransactions.some(tx => !!tx.data.signatures); + result.containsMultiSignatures = invalidTransactions.some((tx) => !!tx.data.signatures); } if (this.transactions.length !== block.numberOfTransactions) { diff --git a/packages/crypto/src/blocks/deserializer.ts b/packages/crypto/src/blocks/deserializer.ts index d465709cb8..d256d54734 100644 --- a/packages/crypto/src/blocks/deserializer.ts +++ b/packages/crypto/src/blocks/deserializer.ts @@ -74,10 +74,7 @@ export class Deserializer { const signatureLength = (): number => { buf.mark(); - const lengthHex: string = buf - .skip(1) - .readBytes(1) - .toString("hex"); + const lengthHex: string = buf.skip(1).readBytes(1).toString("hex"); buf.reset(); diff --git a/packages/crypto/src/managers/config.ts b/packages/crypto/src/managers/config.ts index 9e7fd6880b..d60ae58df4 100644 --- a/packages/crypto/src/managers/config.ts +++ b/packages/crypto/src/managers/config.ts @@ -69,7 +69,7 @@ export class ConfigManager { throw new Error(); } - return this.milestones.some(milestone => milestone.height === height); + return this.milestones.some((milestone) => milestone.height === height); } public getMilestone(height?: number): { [key: string]: any } { @@ -135,7 +135,7 @@ export class ConfigManager { const delegateMilestones = this.config.milestones .sort((a, b) => a.height - b.height) - .filter(milestone => milestone.activeDelegates); + .filter((milestone) => milestone.activeDelegates); for (let i = 1; i < delegateMilestones.length; i++) { const previous = delegateMilestones[i - 1]; diff --git a/packages/crypto/src/transactions/deserializer.ts b/packages/crypto/src/transactions/deserializer.ts index 6f451b1b30..402e5918b8 100644 --- a/packages/crypto/src/transactions/deserializer.ts +++ b/packages/crypto/src/transactions/deserializer.ts @@ -24,8 +24,8 @@ export class Deserializer { transaction.asset && transaction.asset.multiSignatureLegacy ) { - transaction.asset.multiSignatureLegacy.keysgroup = transaction.asset.multiSignatureLegacy.keysgroup.map(k => - k.startsWith("+") ? k : `+${k}`, + transaction.asset.multiSignatureLegacy.keysgroup = transaction.asset.multiSignatureLegacy.keysgroup.map( + (k) => (k.startsWith("+") ? k : `+${k}`), ); } } @@ -110,10 +110,7 @@ export class Deserializer { const currentSignatureLength = (): number => { buf.mark(); - const lengthHex: string = buf - .skip(1) - .readBytes(1) - .toString("hex"); + const lengthHex: string = buf.skip(1).readBytes(1).toString("hex"); buf.reset(); return parseInt(lengthHex, 16) + 2; diff --git a/packages/crypto/src/transactions/types/one/multi-signature-registration.ts b/packages/crypto/src/transactions/types/one/multi-signature-registration.ts index 36d6180a15..46bbd56275 100644 --- a/packages/crypto/src/transactions/types/one/multi-signature-registration.ts +++ b/packages/crypto/src/transactions/types/one/multi-signature-registration.ts @@ -35,7 +35,7 @@ export abstract class MultiSignatureRegistrationTransaction extends Transaction const { data } = this; const legacyAsset: IMultiSignatureLegacyAsset = data.asset!.multiSignatureLegacy!; - const joined: string = legacyAsset.keysgroup.map(k => (k.startsWith("+") ? k.slice(1) : k)).join(""); + const joined: string = legacyAsset.keysgroup.map((k) => (k.startsWith("+") ? k.slice(1) : k)).join(""); const keysgroupBuffer: Buffer = Buffer.from(joined, "hex"); const buffer: ByteBuffer = new ByteBuffer(keysgroupBuffer.length + 3, true); diff --git a/packages/crypto/src/transactions/types/one/vote.ts b/packages/crypto/src/transactions/types/one/vote.ts index 649a88187e..52c5904831 100644 --- a/packages/crypto/src/transactions/types/one/vote.ts +++ b/packages/crypto/src/transactions/types/one/vote.ts @@ -24,7 +24,7 @@ export class VoteTransaction extends Transaction { if (data.asset && data.asset.votes) { const voteBytes = data.asset.votes - .map(vote => (vote.startsWith("+") ? "01" : "00") + vote.slice(1)) + .map((vote) => (vote.startsWith("+") ? "01" : "00") + vote.slice(1)) .join(""); buffer.writeByte(data.asset.votes.length); buffer.append(voteBytes, "hex"); diff --git a/packages/crypto/src/utils/is-valid-peer.ts b/packages/crypto/src/utils/is-valid-peer.ts index b1787dc759..008fd0123e 100644 --- a/packages/crypto/src/utils/is-valid-peer.ts +++ b/packages/crypto/src/utils/is-valid-peer.ts @@ -14,7 +14,7 @@ export const isLocalHost = (ip: string, includeNetworkInterfaces: boolean = true [index: string]: os.NetworkInterfaceInfo[]; } = os.networkInterfaces(); - return Object.keys(interfaces).some(ifname => interfaces[ifname].some(iface => iface.address === ip)); + return Object.keys(interfaces).some((ifname) => interfaces[ifname].some((iface) => iface.address === ip)); } return false; diff --git a/packages/crypto/src/validation/formats.ts b/packages/crypto/src/validation/formats.ts index 67932dd631..31e5dcc86a 100644 --- a/packages/crypto/src/validation/formats.ts +++ b/packages/crypto/src/validation/formats.ts @@ -3,7 +3,7 @@ import { Ajv } from "ajv"; import { isValidPeer, maxVendorFieldLength } from "../utils"; const vendorField = (ajv: Ajv) => { - ajv.addFormat("vendorField", data => { + ajv.addFormat("vendorField", (data) => { try { return Buffer.from(data, "utf8").length <= maxVendorFieldLength(); } catch { diff --git a/packages/crypto/src/validation/index.ts b/packages/crypto/src/validation/index.ts index 389f833b76..c789a522ce 100644 --- a/packages/crypto/src/validation/index.ts +++ b/packages/crypto/src/validation/index.ts @@ -129,7 +129,7 @@ export class Validator { $id: "transactions", type: "array", additionalItems: false, - items: { anyOf: [...this.transactionSchemas.keys()].map(schema => ({ $ref: `${schema}Signed` })) }, + items: { anyOf: [...this.transactionSchemas.keys()].map((schema) => ({ $ref: `${schema}Signed` })) }, }); ajv.addSchema(schemas.block); } diff --git a/packages/crypto/src/validation/keywords.ts b/packages/crypto/src/validation/keywords.ts index 551d466567..b9dbff578f 100644 --- a/packages/crypto/src/validation/keywords.ts +++ b/packages/crypto/src/validation/keywords.ts @@ -10,7 +10,7 @@ const maxBytes = (ajv: Ajv) => { ajv.addKeyword("maxBytes", { type: "string", compile(schema, parentSchema) { - return data => { + return (data) => { if ((parentSchema as any).type !== "string") { return false; } @@ -57,7 +57,7 @@ const transactionType = (ajv: Ajv) => { const network = (ajv: Ajv) => { ajv.addKeyword("network", { compile(schema) { - return data => { + return (data) => { return schema && data === configManager.get("network.pubKeyHash"); }; }, diff --git a/yarn.lock b/yarn.lock index 12158dc3e2..968d5af25b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,6 +20,22 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== + dependencies: + browserslist "^4.9.1" + invariant "^2.2.4" + semver "^5.5.0" + "@babel/core@^7.1.0": version "7.6.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff" @@ -40,27 +56,29 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" - integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.7" - "@babel/helpers" "^7.7.4" - "@babel/parser" "^7.7.7" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" +"@babel/core@^7.7.5", "@babel/core@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" convert-source-map "^1.7.0" debug "^4.1.0" - json5 "^2.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.6.3", "@babel/generator@^7.6.4": +"@babel/generator@^7.6.3", "@babel/generator@^7.6.4": version "7.6.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671" integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w== @@ -80,64 +98,67 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/generator@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" - integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== +"@babel/generator@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" + integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.9.0" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" - integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== dependencies: - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-function-name@^7.1.0": version "7.1.0" @@ -157,6 +178,15 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -171,98 +201,99 @@ dependencies: "@babel/types" "^7.7.4" -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" - integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" - integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a" - integrity sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA== +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" - integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" - integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== dependencies: - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== +"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-replace-supers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" - integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helper-split-export-declaration@^7.4.4": version "7.4.4" @@ -278,15 +309,27 @@ dependencies: "@babel/types" "^7.7.4" -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" "@babel/helpers@^7.6.2": version "7.6.2" @@ -297,14 +340,14 @@ "@babel/traverse" "^7.6.2" "@babel/types" "^7.6.0" -"@babel/helpers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302" - integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg== +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== dependencies: - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" "@babel/highlight@^7.0.0": version "7.5.0" @@ -315,421 +358,514 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb" integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g== -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4": version "7.6.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81" integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A== +"@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + "@babel/parser@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" - integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" -"@babel/plugin-proposal-unicode-property-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" - integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" + integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" - integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== +"@babel/plugin-syntax-bigint@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-dotall-regex@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" - integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-classes@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" + integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" -"@babel/plugin-transform-modules-amd@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" - integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" - integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== +"@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: - "@babel/helper-module-transforms" "^7.7.5" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-parameters@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" - integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== dependencies: - "@babel/helper-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-regenerator@^7.7.5": - version "7.7.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" - integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== dependencies: - regenerator-transform "^0.14.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.8.7": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" + integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/preset-env@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== + dependencies: + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.7" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" -"@babel/preset-env@^7.7.7": - version "7.7.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" - integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== +"@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.7" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.5" - "@babel/plugin-transform-modules-commonjs" "^7.7.5" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.7" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.5" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.6.0" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" + regenerator-runtime "^0.13.4" -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.6.0": +"@babel/template@^7.1.0", "@babel/template@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== @@ -747,7 +883,16 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3": +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3": version "7.6.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9" integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw== @@ -777,7 +922,22 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.6.3": +"@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.6.3": version "7.6.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA== @@ -795,6 +955,20 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -803,133 +977,133 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@commitlint/cli@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-8.2.0.tgz#fbf9969e04e2162d985eaa644fdad6ce807aadb6" - integrity sha512-8fJ5pmytc38yw2QWbTTJmXLfSiWPwMkHH4govo9zJ/+ERPBF2jvlxD/dQvk24ezcizjKc6LFka2edYC4OQ+Dgw== +"@commitlint/cli@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-8.3.5.tgz#6d93a3a8b2437fa978999d3f6a336bcc70be3fd3" + integrity sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w== dependencies: - "@commitlint/format" "^8.2.0" - "@commitlint/lint" "^8.2.0" - "@commitlint/load" "^8.2.0" - "@commitlint/read" "^8.2.0" + "@commitlint/format" "^8.3.4" + "@commitlint/lint" "^8.3.5" + "@commitlint/load" "^8.3.5" + "@commitlint/read" "^8.3.4" babel-polyfill "6.26.0" chalk "2.4.2" get-stdin "7.0.0" - lodash "4.17.14" + lodash "4.17.15" meow "5.0.0" resolve-from "5.0.0" resolve-global "1.0.0" -"@commitlint/config-conventional@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-8.2.0.tgz#886a5538e3708e017ec2871e0cbce00f635d3102" - integrity sha512-HuwlHQ3DyVhpK9GHgTMhJXD8Zp8PGIQVpQGYh/iTrEU6TVxdRC61BxIDZvfWatCaiG617Z/U8maRAFrqFM4TqA== +"@commitlint/config-conventional@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz#fed13b3711690663b176c1f6b39c205a565618d2" + integrity sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g== + dependencies: + conventional-changelog-conventionalcommits "4.2.1" -"@commitlint/ensure@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-8.2.0.tgz#fad0c81c3d3bd09aa5fbcbcc483ae1f39bc8af8f" - integrity sha512-XZZih/kcRrqK7lEORbSYCfqQw6byfsFbLygRGVdJMlCPGu9E2MjpwCtoj5z7y/lKfUB3MJaBhzn2muJqS1gC6A== +"@commitlint/ensure@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-8.3.4.tgz#6931677e4ca0fde71686ae3b7a367261647a341d" + integrity sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw== dependencies: - lodash "4.17.14" + lodash "4.17.15" -"@commitlint/execute-rule@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-8.2.0.tgz#aefb3744e22613660adefb7ebcccaa60bd24e78d" - integrity sha512-9MBRthHaulbWTa8ReG2Oii2qc117NuvzhZdnkuKuYLhker7sUXGFcVhLanuWUKGyfyI2o9zVr/NHsNbCCsTzAA== +"@commitlint/execute-rule@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz#1b63f0713b197889d90b76f9eea1abc010d256b1" + integrity sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ== -"@commitlint/format@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-8.2.0.tgz#0a2447fadac7c0421ce8a8d7e27dfa2172c737d4" - integrity sha512-sA77agkDEMsEMrlGhrLtAg8vRexkOofEEv/CZX+4xlANyAz2kNwJvMg33lcL65CBhqKEnRRJRxfZ1ZqcujdKcQ== +"@commitlint/format@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-8.3.4.tgz#7cd1f0ba5a3289c8d14d7dac29ee1fc1597fe1d9" + integrity sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw== dependencies: chalk "^2.0.1" -"@commitlint/is-ignored@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-8.2.0.tgz#b6409ab28bf5a80f25e14da17da3916adb230a89" - integrity sha512-ADaGnKfbfV6KD1pETp0Qf7XAyc75xTy3WJlbvPbwZ4oPdBMsXF0oXEEGMis6qABfU2IXan5/KAJgAFX3vdd0jA== +"@commitlint/is-ignored@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz#e6f59496e1b1ce58020d519cd578ad0f43169199" + integrity sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA== dependencies: - "@types/semver" "^6.0.1" - semver "6.2.0" + semver "6.3.0" -"@commitlint/lint@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-8.2.0.tgz#aadc606379f3550eb877f16d4f5b103639cbf92a" - integrity sha512-ch9JN8aR37ufdjoWv50jLfvFz9rWMgLW5HEkMGLsM/51gjekmQYS5NJg8S2+6F5+jmralAO7VkUMI6FukXKX0A== +"@commitlint/lint@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-8.3.5.tgz#627e75adb1cc803cc723e33cc2ba4aa27cbb9f0c" + integrity sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ== dependencies: - "@commitlint/is-ignored" "^8.2.0" - "@commitlint/parse" "^8.2.0" - "@commitlint/rules" "^8.2.0" + "@commitlint/is-ignored" "^8.3.5" + "@commitlint/parse" "^8.3.4" + "@commitlint/rules" "^8.3.4" babel-runtime "^6.23.0" - lodash "4.17.14" + lodash "4.17.15" -"@commitlint/load@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-8.2.0.tgz#9ca53a0c795e4f63d796b4d42279e856549add1a" - integrity sha512-EV6PfAY/p83QynNd1llHxJiNxKmp43g8+7dZbyfHFbsGOdokrCnoelAVZ+WGgktXwLN/uXyfkcIAxwac015UYw== +"@commitlint/load@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-8.3.5.tgz#3f059225ede92166ba94cf4c48e3d67c8b08b18a" + integrity sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw== dependencies: - "@commitlint/execute-rule" "^8.2.0" - "@commitlint/resolve-extends" "^8.2.0" + "@commitlint/execute-rule" "^8.3.4" + "@commitlint/resolve-extends" "^8.3.5" babel-runtime "^6.23.0" chalk "2.4.2" cosmiconfig "^5.2.0" - lodash "4.17.14" + lodash "4.17.15" resolve-from "^5.0.0" -"@commitlint/message@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-8.2.0.tgz#bdc0388183f6bc6006c7e7e197a721683011907a" - integrity sha512-LNsSwDLIFgE3nb/Sb1PIluYNy4Q8igdf4tpJCdv5JJDf7CZCZt3ZTglj0YutZZorpRRuHJsVIB2+dI4bVH3bFw== +"@commitlint/message@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-8.3.4.tgz#b4e50d14aa6e15a5ad0767b952a7953f3681d768" + integrity sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA== -"@commitlint/parse@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-8.2.0.tgz#de80137e89ee5a2d3029656c9b33e90c88c6f56c" - integrity sha512-vzouqroTXG6QXApkrps0gbeSYW6w5drpUk7QAeZIcaCSPsQXDM8eqqt98ZzlzLJHo5oPNXPX1AAVSTrssvHemA== +"@commitlint/parse@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-8.3.4.tgz#d741f8b9104b35d0f4c10938165b20cbf167f81e" + integrity sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw== dependencies: conventional-changelog-angular "^1.3.3" - conventional-commits-parser "^2.1.0" + conventional-commits-parser "^3.0.0" lodash "^4.17.11" -"@commitlint/read@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-8.2.0.tgz#54c6549723d532c74434ee0d74e0459032dc9159" - integrity sha512-1tBai1VuSQmsOTsvJr3Fi/GZqX3zdxRqYe/yN4i3cLA5S2Y4QGJ5I3l6nGZlKgm/sSelTCVKHltrfWU8s5H7SA== +"@commitlint/read@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-8.3.4.tgz#81a34283d8cd7b2acdf57829a91761e9c7791455" + integrity sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw== dependencies: - "@commitlint/top-level" "^8.2.0" + "@commitlint/top-level" "^8.3.4" "@marionebl/sander" "^0.6.0" babel-runtime "^6.23.0" - git-raw-commits "^1.3.0" + git-raw-commits "^2.0.0" -"@commitlint/resolve-extends@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-8.2.0.tgz#b7f2f0c71c10f24b98a199ed11d2c14cfd7a318f" - integrity sha512-cwi0HUsDcD502HBP8huXfTkVuWmeo1Fiz3GKxNwMBBsJV4+bKa7QrtxbNpXhVuarX7QjWfNTvmW6KmFS7YK9uw== +"@commitlint/resolve-extends@^8.3.5": + version "8.3.5" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz#8fff800f292ac217ae30b1862f5f9a84b278310a" + integrity sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ== dependencies: - "@types/node" "^12.0.2" import-fresh "^3.0.0" - lodash "4.17.14" + lodash "4.17.15" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-8.2.0.tgz#4cd6a323ca1a3f3d33ae6dc723f8c88f3dcde347" - integrity sha512-FlqSBBP2Gxt5Ibw+bxdYpzqYR6HI8NIBpaTBhAjSEAduQtdWFMOhF0zsgkwH7lHN7opaLcnY2fXxAhbzTmJQQA== +"@commitlint/rules@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-8.3.4.tgz#41da7e16c6b89af268fe81c87a158c1fd2ac82b1" + integrity sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg== dependencies: - "@commitlint/ensure" "^8.2.0" - "@commitlint/message" "^8.2.0" - "@commitlint/to-lines" "^8.2.0" + "@commitlint/ensure" "^8.3.4" + "@commitlint/message" "^8.3.4" + "@commitlint/to-lines" "^8.3.4" babel-runtime "^6.23.0" -"@commitlint/to-lines@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-8.2.0.tgz#dddb5916a457e1a79e437115a9b8eac7bf9ad52a" - integrity sha512-LXTYG3sMenlN5qwyTZ6czOULVcx46uMy+MEVqpvCgptqr/MZcV/C2J+S2o1DGwj1gOEFMpqrZaE3/1R2Q+N8ng== +"@commitlint/to-lines@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-8.3.4.tgz#ce24963b6d86dbe51d88d5e3028ab28f38562e2e" + integrity sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA== -"@commitlint/top-level@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-8.2.0.tgz#206e7cbc54dbe9494190677f887dd60943fed5b0" - integrity sha512-Yaw4KmYNy31/HhRUuZ+fupFcDalnfpdu4JGBgGAqS9aBHdMSSWdWqtAaDaxdtWjTZeN3O0sA2gOhXwvKwiDwvw== +"@commitlint/top-level@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-8.3.4.tgz#803fc6e8f5be5efa5f3551761acfca961f1d8685" + integrity sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg== dependencies: find-up "^4.0.0" @@ -1300,7 +1474,22 @@ "@hapi/bourne" "2.x.x" "@hapi/hoek" "9.x.x" -"@jest/console@^24.7.1", "@jest/console@^24.9.0": +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" + integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== @@ -1309,87 +1498,102 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" - -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== +"@jest/console@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.2.3.tgz#38ac19b916ff61457173799239472659e1a67c39" + integrity sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ== dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" + "@jest/source-map" "^25.2.1" + chalk "^3.0.0" + jest-util "^25.2.3" + slash "^3.0.0" -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== +"@jest/core@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.2.3.tgz#2fd37ce0e6ad845e058dcd8245f2745490df1bc0" + integrity sha512-Ifz3aEkGvZhwijLMmWa7sloZVEMdxpzjFv3CKHv3eRYRShTN8no6DmyvvxaZBjLalOlRalJ7HDgc733J48tSuw== dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" + "@jest/console" "^25.2.3" + "@jest/reporters" "^25.2.3" + "@jest/test-result" "^25.2.3" + "@jest/transform" "^25.2.3" + "@jest/types" "^25.2.3" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-changed-files "^25.2.3" + jest-config "^25.2.3" + jest-haste-map "^25.2.3" + jest-message-util "^25.2.3" + jest-regex-util "^25.2.1" + jest-resolve "^25.2.3" + jest-resolve-dependencies "^25.2.3" + jest-runner "^25.2.3" + jest-runtime "^25.2.3" + jest-snapshot "^25.2.3" + jest-util "^25.2.3" + jest-validate "^25.2.3" + jest-watcher "^25.2.3" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" +"@jest/environment@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.2.3.tgz#32b3f216355b03e9449b93b62584c18934a2cc4a" + integrity sha512-zRypAMQnNo8rD0rCbI9+5xf+Lu+uvunKZNBcIWjb3lTATSomKbgYO+GYewGDYn7pf+30XCNBc6SH1rnBUN1ioA== + dependencies: + "@jest/fake-timers" "^25.2.3" + "@jest/types" "^25.2.3" + jest-mock "^25.2.3" + +"@jest/fake-timers@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.2.3.tgz#808a8a761be3baac719311f8bde1362bd1861e65" + integrity sha512-B6Qxm86fl613MV8egfvh1mRTMu23hMNdOUjzPhKl/4Nm5cceHz6nwLn0nP0sJXI/ue1vu71aLbtkgVBCgc2hYA== + dependencies: + "@jest/types" "^25.2.3" + jest-message-util "^25.2.3" + jest-mock "^25.2.3" + jest-util "^25.2.3" + lolex "^5.0.0" + +"@jest/reporters@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.2.3.tgz#824e922ea56686d0243c910559c36adacdd2081c" + integrity sha512-S0Zca5e7tTfGgxGRvBh6hktNdOBzqc6HthPzYHPRFYVW81SyzCqHTaNZydtDIVehb9s6NlyYZpcF/I2vco+lNw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.2.3" + "@jest/test-result" "^25.2.3" + "@jest/transform" "^25.2.3" + "@jest/types" "^25.2.3" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.0" + jest-haste-map "^25.2.3" + jest-resolve "^25.2.3" + jest-util "^25.2.3" + jest-worker "^25.2.1" + slash "^3.0.0" source-map "^0.6.0" - string-length "^2.0.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.0.1" + optionalDependencies: + node-notifier "^6.0.0" -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": +"@jest/source-map@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== @@ -1398,6 +1602,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^25.2.1": + version "25.2.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.2.1.tgz#b62ecf8ae76170b08eff8859b56eb7576df34ab8" + integrity sha512-PgScGJm1U27+9Te/cxP4oUFqJ2PX6NhBL2a6unQ7yafCgs8k02c0LSyjSIx/ao0AwcAdCczfAPDf5lJ7zoB/7A== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.3" + source-map "^0.6.0" + "@jest/test-result@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" @@ -1407,37 +1620,48 @@ "@jest/types" "^24.9.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== +"@jest/test-result@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.2.3.tgz#db6028427514702c739dda66528dfbcc7fb8cdf4" + integrity sha512-cNYidqERTcT+xqZZ5FPSvji7Bd2YYq9M/VJCEUmgTVRFZRPOPSu65crEzQJ4czcDChEJ9ovzZ65r3UBlajnh3w== dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" + "@jest/console" "^25.2.3" + "@jest/transform" "^25.2.3" + "@jest/types" "^25.2.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== +"@jest/test-sequencer@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.2.3.tgz#1400e0e994904844567e6e33c87062cbdf1f3e99" + integrity sha512-trHwV/wCrxWyZyNyNBUQExsaHyBVQxJwH3butpEcR+KBJPfaTUxtpXaxfs38IXXAhH68J4kPZgAaRRfkFTLunA== + dependencies: + "@jest/test-result" "^25.2.3" + jest-haste-map "^25.2.3" + jest-runner "^25.2.3" + jest-runtime "^25.2.3" + +"@jest/transform@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.2.3.tgz#f090bdd91f54b867631a76959f2b2fc566534ffe" + integrity sha512-w1nfAuYP4OAiEDprFkE/2iwU86jL/hK3j1ylMcYOA3my5VOHqX0oeBcBxS2fUKWse2V4izuO2jqes0yNTDMlzw== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" + "@jest/types" "^25.2.3" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.3" + jest-haste-map "^25.2.3" + jest-regex-util "^25.2.1" + jest-util "^25.2.3" + micromatch "^4.0.2" pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" + realpath-native "^2.0.0" + slash "^3.0.0" source-map "^0.6.1" - write-file-atomic "2.4.1" + write-file-atomic "^3.0.0" "@jest/types@^24.9.0": version "24.9.0" @@ -1448,15 +1672,25 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^13.0.0" -"@lerna/add@3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.19.0.tgz#33b6251c669895f842c14f05961432d464166249" - integrity sha512-qzhxPyoczvvT1W0wwCK9I0iJ4B9WR+HzYsusmRuzM3mEhWjowhbuvKEl5BjGYuXc9AvEErM/S0Fm5K0RcuS39Q== +"@jest/types@^25.2.3": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.2.3.tgz#035c4fb94e2da472f359ff9a211915d59987f6b6" + integrity sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@lerna/add@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.20.0.tgz#bea7edf36fc93fb72ec34cb9ba854c48d4abf309" + integrity sha512-AnH1oRIEEg/VDa3SjYq4x1/UglEAvrZuV0WssHUMN81RTZgQk3we+Mv3qZNddrZ/fBcZu2IAdN/EQ3+ie2JxKQ== dependencies: "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.18.5" + "@lerna/bootstrap" "3.20.0" "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" "@lerna/npm-conf" "3.16.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" @@ -1464,13 +1698,13 @@ p-map "^2.1.0" semver "^6.2.0" -"@lerna/bootstrap@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.18.5.tgz#cc22a750d6b0402e136926e8b214148dfc2e1390" - integrity sha512-9vD/BfCz8YSF2Dx7sHaMVo6Cy33WjLEmoN1yrHgNkHjm7ykWbLHG5wru0f4Y4pvwa0s5Hf76rvT8aJWzGHk9IQ== +"@lerna/bootstrap@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.20.0.tgz#635d71046830f208e851ab429a63da1747589e37" + integrity sha512-Wylullx3uthKE7r4izo09qeRGL20Y5yONlQEjPCfnbxCC2Elu+QcPu4RC6kqKQ7b+g7pdC3OOgcHZjngrwr5XQ== dependencies: "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" "@lerna/has-npm-version" "3.16.5" "@lerna/npm-install" "3.16.5" "@lerna/package-graph" "3.18.5" @@ -1493,12 +1727,12 @@ read-package-tree "^5.1.6" semver "^6.2.0" -"@lerna/changed@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.18.5.tgz#ef2c460f5497b8b4cfac7e5165fe46d7181fcdf5" - integrity sha512-IXS7VZ5VDQUfCsgK56WYxd42luMBxL456cNUf1yBgQ1cy1U2FPVMitIdLN4AcP7bJizdPWeG8yDptf47jN/xVw== +"@lerna/changed@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.20.0.tgz#66b97ebd6c8f8d207152ee524a0791846a9097ae" + integrity sha512-+hzMFSldbRPulZ0vbKk6RD9f36gaH3Osjx34wrrZ62VB4pKmjyuS/rxVYkCA3viPLHoiIw2F8zHM5BdYoDSbjw== dependencies: - "@lerna/collect-updates" "3.18.0" + "@lerna/collect-updates" "3.20.0" "@lerna/command" "3.18.5" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1521,13 +1755,13 @@ execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.18.5.tgz#44b4a6db68ae369778f2921c85ec6961bdd86072" - integrity sha512-tHxOj9frTIhB/H2gtgMU3xpIc4IJEhXcUlReko6RJt8TTiDZGPDudCcgjg6i7n15v9jXMOc1y4F+y5/1089bfA== +"@lerna/clean@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.20.0.tgz#ba777e373ddeae63e57860df75d47a9e5264c5b2" + integrity sha512-9ZdYrrjQvR5wNXmHfDsfjWjp0foOkCwKe3hrckTzkAeQA1ibyz5llGwz5e1AeFrV12e2/OLajVqYfe+qdkZUgg== dependencies: "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" "@lerna/prompt" "3.18.5" "@lerna/pulse-till-done" "3.13.0" "@lerna/rimraf-dir" "3.16.5" @@ -1555,10 +1789,10 @@ figgy-pudding "^3.5.1" npmlog "^4.1.2" -"@lerna/collect-updates@3.18.0": - version "3.18.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.18.0.tgz#6086c64df3244993cc0a7f8fc0ddd6a0103008a6" - integrity sha512-LJMKgWsE/var1RSvpKDIxS8eJ7POADEc0HM3FQiTpEczhP6aZfv9x3wlDjaHpZm9MxJyQilqxZcasRANmRcNgw== +"@lerna/collect-updates@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" + integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== dependencies: "@lerna/child-process" "3.16.5" "@lerna/describe-ref" "3.16.5" @@ -1650,24 +1884,25 @@ "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.18.5.tgz#50f1bd6b8f88f2ec02c0768b8b1d9024feb1a96a" - integrity sha512-Q1nz95MeAxctS9bF+aG8FkjixzqEjRpg6ujtnDW84J42GgxedkPtNcJ2o/MBqLd/mxAlr+fW3UZ6CPC/zgoyCg== +"@lerna/exec@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.20.0.tgz#29f0c01aee2340eb46f90706731fef2062a49639" + integrity sha512-pS1mmC7kzV668rHLWuv31ClngqeXjeHC8kJuM+W2D6IpUVMGQHLcCTYLudFgQsuKGVpl0DGNYG+sjLhAPiiu6A== dependencies: "@lerna/child-process" "3.16.5" "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" + "@lerna/profiler" "3.20.0" "@lerna/run-topologically" "3.18.5" "@lerna/validation-error" "3.13.0" p-map "^2.1.0" -"@lerna/filter-options@3.18.4": - version "3.18.4" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.18.4.tgz#f5476a7ee2169abed27ad433222e92103f56f9f1" - integrity sha512-4giVQD6tauRwweO/322LP2gfVDOVrt/xN4khkXyfkJDfcsZziFXq+668otD9KSLL8Ps+To4Fah3XbK0MoNuEvA== +"@lerna/filter-options@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" + integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== dependencies: - "@lerna/collect-updates" "3.18.0" + "@lerna/collect-updates" "3.20.0" "@lerna/filter-packages" "3.18.0" dedent "^0.7.0" figgy-pudding "^3.5.1" @@ -1745,6 +1980,15 @@ fs-extra "^8.1.0" p-map-series "^1.0.0" +"@lerna/info@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.20.0.tgz#3a5212f3029f2bc6255f9533bdf4bcb120ef329a" + integrity sha512-Rsz+KQF9mczbGUbPTrtOed1N0C+cA08Qz0eX/oI+NNjvsryZIju/o7uedG4I3P55MBiAioNrJI88fHH3eTgYug== + dependencies: + "@lerna/command" "3.18.5" + "@lerna/output" "3.13.0" + envinfo "^7.3.1" + "@lerna/init@3.18.5": version "3.18.5" resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.18.5.tgz#86dd0b2b3290755a96975069b5cb007f775df9f5" @@ -1767,13 +2011,13 @@ p-map "^2.1.0" slash "^2.0.0" -"@lerna/list@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.18.5.tgz#58863f17c81e24e2c38018eb8619fc99d7cc5c82" - integrity sha512-qIeomm28C2OCM8TMjEe/chTnQf6XLN54wPVQ6kZy+axMYxANFNt/uhs6GZEmhem7GEVawzkyHSz5ZJPsfH3IFg== +"@lerna/list@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.20.0.tgz#7e67cc29c5cf661cfd097e8a7c2d3dcce7a81029" + integrity sha512-fXTicPrfioVnRzknyPawmYIVkzDRBaQqk9spejS1S3O1DOidkihK0xxNkr8HCVC0L22w6f92g83qWDp2BYRUbg== dependencies: "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" "@lerna/listable" "3.18.5" "@lerna/output" "3.13.0" @@ -1908,6 +2152,16 @@ dependencies: semver "^6.2.0" +"@lerna/profiler@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" + integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== + dependencies: + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npmlog "^4.1.2" + upath "^1.2.0" + "@lerna/project@3.18.0": version "3.18.0" resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.18.0.tgz#56feee01daeb42c03cbdf0ed8a2a10cbce32f670" @@ -1934,17 +2188,17 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.18.5.tgz#8cc708d83a4cb7ab1c4cc020a02e7ebc4b6b0b0e" - integrity sha512-ifYqLX6mvw95T8vYRlhT68UC7Al0flQvnf5uF9lDgdrgR5Bs+BTwzk3D+0ctdqMtfooekrV6pqfW0R3gtwRffQ== +"@lerna/publish@3.20.2": + version "3.20.2" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.20.2.tgz#a45d29813099b3249657ea913d0dc3f8ebc5cc2e" + integrity sha512-N7Y6PdhJ+tYQPdI1tZum8W25cDlTp4D6brvRacKZusweWexxaopbV8RprBaKexkEX/KIbncuADq7qjDBdQHzaA== dependencies: "@evocateur/libnpmaccess" "^3.1.2" "@evocateur/npm-registry-fetch" "^4.0.0" "@evocateur/pacote" "^9.6.3" "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" - "@lerna/collect-updates" "3.18.0" + "@lerna/collect-updates" "3.20.0" "@lerna/command" "3.18.5" "@lerna/describe-ref" "3.16.5" "@lerna/log-packed" "3.16.0" @@ -1960,7 +2214,7 @@ "@lerna/run-lifecycle" "3.16.2" "@lerna/run-topologically" "3.18.5" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.18.5" + "@lerna/version" "3.20.2" figgy-pudding "^3.5.1" fs-extra "^8.1.0" npm-package-arg "^6.1.0" @@ -2023,15 +2277,16 @@ figgy-pudding "^3.5.1" p-queue "^4.0.0" -"@lerna/run@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.18.5.tgz#09ae809b16445d3621249c24596cf4ae8e250d5d" - integrity sha512-1S0dZccNJO8+gT5ztYE4rHTEnbXVwThHOfDnlVt2KDxl9cbnBALk3xprGLW7lSzJsxegS849hxrAPUh0UorMgw== +"@lerna/run@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.20.0.tgz#a479f7c42bdf9ebabb3a1e5a2bdebb7a8d201151" + integrity sha512-9U3AqeaCeB7KsGS9oyKNp62s9vYoULg/B4cqXTKZkc+OKL6QOEjYHYVSBcMK9lUXrMjCjDIuDSX3PnTCPxQ2Dw== dependencies: "@lerna/command" "3.18.5" - "@lerna/filter-options" "3.18.4" + "@lerna/filter-options" "3.20.0" "@lerna/npm-run-script" "3.16.5" "@lerna/output" "3.13.0" + "@lerna/profiler" "3.20.0" "@lerna/run-topologically" "3.18.5" "@lerna/timer" "3.13.0" "@lerna/validation-error" "3.13.0" @@ -2072,14 +2327,14 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.18.5.tgz#0c4f0c2f8d23e9c95c2aa77ad9ce5c7ef025fac0" - integrity sha512-eSMxLIDuVxZIq0JZKNih50x1IZuMmViwF59uwOGMx0hHB84N3waE8HXOF9CJXDSjeP6sHB8tS+Y+X5fFpBop2Q== +"@lerna/version@3.20.2": + version "3.20.2" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.20.2.tgz#3709141c0f537741d9bc10cb24f56897bcb30428" + integrity sha512-ckBJMaBWc+xJen0cMyCE7W67QXLLrc0ELvigPIn8p609qkfNM0L0CF803MKxjVOldJAjw84b8ucNWZLvJagP/Q== dependencies: "@lerna/check-working-tree" "3.16.5" "@lerna/child-process" "3.16.5" - "@lerna/collect-updates" "3.18.0" + "@lerna/collect-updates" "3.20.0" "@lerna/command" "3.18.5" "@lerna/conventional-commits" "3.18.5" "@lerna/github-client" "3.16.5" @@ -2155,6 +2410,41 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@npmcli/ci-detect@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz#0df142a1ac3bba6cbf2e9da1a6994cd898e32c95" + integrity sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA== + +"@npmcli/git@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.0.1.tgz#d7ecaa9c945de6bb1af5a7e6ea634771193c168b" + integrity sha512-hVatexiBtx71F01Ars38Hr5AFUGmJgHAfQtRlO5fJlnAawRGSXwEFgjB5i3XdUUmElZU/RXy7fefN02dZKxgPw== + dependencies: + "@npmcli/promise-spawn" "^1.1.0" + mkdirp "^1.0.3" + npm-pick-manifest "^6.0.0" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + unique-filename "^1.1.1" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz#cc78565e55d9f14d46acf46a96f70934e516fa3d" + integrity sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + read-package-json-fast "^1.1.1" + readdir-scoped-modules "^1.1.0" + +"@npmcli/promise-spawn@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.1.0.tgz#660009a5c54209142ec7c469c190d212834b6087" + integrity sha512-FwbuYN9KXBkloLeIR3xRgI8dyOdfK/KzaJlChszNuwmUXD1lHXfLlSeo4n4KrKt2udIK9K9/TzlnyCA3ubM2fA== + dependencies: + infer-owner "^1.0.4" + "@oclif/command@^1.5.1", "@oclif/command@^1.5.13": version "1.5.19" resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.5.19.tgz#13f472450eb83bd6c6871a164c03eadb5e1a07ed" @@ -2374,7 +2664,7 @@ "@sinonjs/commons" "^1" "@sinonjs/samsam" "^5.0.2" -"@sinonjs/samsam@^5.0.1", "@sinonjs/samsam@^5.0.2": +"@sinonjs/samsam@^5.0.2": version "5.0.2" resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.0.2.tgz#2c4772ec4a3a9b00971be32e843dc1be27a02c89" integrity sha512-p3yrEVB5F/1wI+835n+X8llOGRgV8+jw5BHQ/cJoLBUXXZ5U8Tr5ApwPc4L4av/vjla48kVPoN0t6dykQm+Rvg== @@ -2384,6 +2674,15 @@ lodash.get "^4.4.2" type-detect "^4.0.8" +"@sinonjs/samsam@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.0.3.tgz#86f21bdb3d52480faf0892a480c9906aa5a52938" + integrity sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + "@sinonjs/text-encoding@^0.7.1": version "0.7.1" resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" @@ -2403,12 +2702,17 @@ dependencies: defer-to-connect "^1.1.1" +"@tootallnate/once@1": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.0.0.tgz#9c13c2574c92d4503b005feca8f2e16cc1611506" + integrity sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA== + "@types/async@*", "@types/async@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/async/-/async-3.0.3.tgz#ea3694128c757580e4f9328cd941b81d9c3e9bf6" integrity sha512-FrIcC67Zpko1jO8K4d30C41/KVhAABbMbaSxccvXacxPcKbDBav+8WoFzv72BA2zJvyX4T9PFz0we1hcNymgGA== -"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.3": +"@types/babel__core@^7.1.0": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30" integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA== @@ -2419,6 +2723,17 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" +"@types/babel__core@^7.1.6": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" + integrity sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__generator@*": version "7.6.0" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.0.tgz#f1ec1c104d1bb463556ecb724018ab788d0c172a" @@ -2601,7 +2916,7 @@ dependencies: "@types/ci-info" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== @@ -2621,17 +2936,18 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest@^24.0.24": - version "24.0.24" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.24.tgz#0f2f523dc77cc1bc6bef34eaf287ede887a73f05" - integrity sha512-vgaG968EDPSJPMunEDdZvZgvxYSmeH8wKqBlHSkBt1pV2XlLEVDzsj1ZhLuI4iG4Pv841tES61txSBF0obh4CQ== +"@types/jest@^25.1.4": + version "25.1.4" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.1.4.tgz#9e9f1e59dda86d3fd56afce71d1ea1b331f6f760" + integrity sha512-QDDY2uNAhCV7TMCITrxz+MRk1EizcsevzfeS6LykIlq2V1E5oO4wXG8V2ZEd9w7Snxeeagk46YbMgZ8ESHx3sw== dependencies: - jest-diff "^24.3.0" + jest-diff "^25.1.0" + pretty-format "^25.1.0" -"@types/js-yaml@^3.12.1": - version "3.12.1" - resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.1.tgz#5c6f4a1eabca84792fbd916f0cb40847f123c656" - integrity sha512-SGGAhXLHDx+PK4YLNcNGa6goPf9XRWQNAUUbffkwVGGXIxmDKWyGGL4inzq2sPmExu431Ekb9aEMn9BkPqEYFA== +"@types/js-yaml@^3.12.3": + version "3.12.3" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz#abf383c5b639d0aa8b8c4a420d6a85f703357d6c" + integrity sha512-otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA== "@types/json-schema@^7.0.3": version "7.0.3" @@ -2696,7 +3012,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^12.0.2": +"@types/node@*": version "12.11.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.1.tgz#1fd7b821f798b7fa29f667a1be8f3442bb8922a3" integrity sha512-TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A== @@ -2711,20 +3027,20 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/node@^12.12.21": - version "12.12.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.21.tgz#aa44a6363291c7037111c47e4661ad210aded23f" - integrity sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA== +"@types/node@^13.9.5": + version "13.9.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.5.tgz#59738bf30b31aea1faa2df7f4a5f55613750cf00" + integrity sha512-hkzMMD3xu6BrJpGVLeQ3htQQNAcOrJjX7WFmtK8zWQpz2UJf13LCFF2ALA7c9OVdvc2vQJeDdjfR35M0sBCxvw== "@types/node@^8.10.50": version "8.10.59" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.59.tgz#9e34261f30183f9777017a13d185dfac6b899e04" integrity sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ== -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/pino@^5.20.0": version "5.20.0" @@ -2739,6 +3055,11 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.0.tgz#a2502fb7ce9b6626fdbfc2e2a496f472de1bdd05" integrity sha512-gDE8JJEygpay7IjA/u3JiIURvwZW08f0cZSZLAzFoX/ZmeqvS0Sqv+97aKuHpNsalAMMhwPe+iAS6fQbfmbt7A== +"@types/prettier@^1.19.1": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + "@types/pump@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@types/pump/-/pump-1.1.0.tgz#ed5214af511da32b6ee85c8d33ad3d59bb79ad8f" @@ -2838,11 +3159,6 @@ "@types/sc-broker" "*" "@types/socketcluster-client" "*" -"@types/semver@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.0.2.tgz#5e8b09f0e4af53034b1d0fb9977a277847836205" - integrity sha512-G1Ggy7/9Nsa1Jt2yiBR2riEuyK2DFNnqow6R7cromXPMNynackRY1vqFTLz/gwnef1LHokbXThcPhqMRjUbkpQ== - "@types/semver@^6.2.0": version "6.2.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-6.2.0.tgz#d688d574400d96c5b0114968705366f431831e1a" @@ -2904,6 +3220,11 @@ dependencies: "@types/node" "*" +"@types/uuid@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-7.0.2.tgz#d680a9c596ef84abf5c4c07a32ffd66d582526f8" + integrity sha512-8Ly3zIPTnT0/8RCU6Kg/G3uTICf9sRwYOpUzSIM3503tLIKcnJPRuinHhXngJUy2MntrEf6dlpOHXJju90Qh5w== + "@types/wif@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/wif/-/wif-2.0.1.tgz#bcab48b201403cb759cd7659aff4610cfd4888f4" @@ -2935,25 +3256,32 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz#218ce6d4aa0244c6a40baba39ca1e021b26bb017" - integrity sha512-BvxRLaTDVQ3N+Qq8BivLiE9akQLAOUfxNHIEhedOcg8B2+jY8Rc4/D+iVprvuMX1AdezFYautuGDwr9QxqSxBQ== +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== dependencies: - "@typescript-eslint/experimental-utils" "2.22.0" - eslint-utils "^1.4.3" + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz#0b60917332f20dcff54d0eb9be2a9e9f4c9fbd02" + integrity sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw== + dependencies: + "@typescript-eslint/experimental-utils" "2.25.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz#4d00c91fbaaa68e56e7869be284999a265707f85" - integrity sha512-sJt1GYBe6yC0dWOQzXlp+tiuGglNhJC9eXZeC8GBVH98Zv9jtatccuhz0OF5kC/DwChqsNfghHx7OlIDQjNYAQ== +"@typescript-eslint/experimental-utils@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz#13691c4fe368bd377b1e5b1e4ad660b220bf7714" + integrity sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.22.0" + "@typescript-eslint/typescript-estree" "2.25.0" eslint-scope "^5.0.0" + eslint-utils "^2.0.0" "@typescript-eslint/experimental-utils@^2.5.0": version "2.6.0" @@ -2964,20 +3292,20 @@ "@typescript-eslint/typescript-estree" "2.6.0" eslint-scope "^5.0.0" -"@typescript-eslint/parser@^2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.22.0.tgz#8eeb6cb6de873f655e64153397d4790898e149d0" - integrity sha512-FaZKC1X+nvD7qMPqKFUYHz3H0TAioSVFGvG29f796Nc5tBluoqfHgLbSFKsh7mKjRoeTm8J9WX2Wo9EyZWjG7w== +"@typescript-eslint/parser@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.25.0.tgz#abfb3d999084824d9a756d9b9c0f36fba03adb76" + integrity sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.22.0" - "@typescript-eslint/typescript-estree" "2.22.0" + "@typescript-eslint/experimental-utils" "2.25.0" + "@typescript-eslint/typescript-estree" "2.25.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.22.0": - version "2.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz#a16ed45876abf743e1f5857e2f4a1c3199fd219e" - integrity sha512-2HFZW2FQc4MhIBB8WhDm9lVFaBDy6h9jGrJ4V2Uzxe/ON29HCHBTj3GkgcsgMWfsl2U5as+pTOr30Nibaw7qRQ== +"@typescript-eslint/typescript-estree@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz#b790497556734b7476fa7dd3fa539955a5c79e2c" + integrity sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -3038,7 +3366,7 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -acorn-globals@^4.1.0: +acorn-globals@^4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== @@ -3056,11 +3384,6 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== -acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - acorn@^6.0.1: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" @@ -3078,6 +3401,18 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + +agent-base@6: + version "6.0.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" + integrity sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw== + dependencies: + debug "4" + agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -3092,6 +3427,15 @@ agentkeepalive@^3.4.1: dependencies: humanize-ms "^1.2.1" +agentkeepalive@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.0.tgz#a48e040ed16745dd29ce923675f60c9c90f39ee0" + integrity sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" @@ -3110,7 +3454,17 @@ ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: - fast-deep-equal "^2.0.1" + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" @@ -3173,6 +3527,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + ansi-styles@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172" @@ -3204,6 +3566,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + app-module-path@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" @@ -3257,7 +3627,7 @@ args@^5.0.1: leven "2.1.0" mri "1.1.4" -argv@^0.0.2: +argv@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" integrity sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas= @@ -3351,11 +3721,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3376,7 +3741,7 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@^1.0.0, async-limiter@~1.0.0: +async-limiter@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -3453,28 +3818,29 @@ axios@^0.19.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== +babel-jest@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.3.tgz#8f1c088b1954963e8a5384be2e219dae00d053f4" + integrity sha512-03JjvEwuDrEz/A45K8oggAv+Vqay0xcOdNTJxYFxiuZvB5vlHKo1iZg9Pi5vQTHhNCKpGLb7L/jvUUafyh9j7g== dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/transform" "^25.2.3" + "@jest/types" "^25.2.3" "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.2.1" + chalk "^3.0.0" + slash "^3.0.0" -babel-loader@^8.0.6: - version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" pify "^4.0.1" + schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" @@ -3483,20 +3849,21 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== +babel-plugin-jest-hoist@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz#d0003a1f3d5caa281e1107fe03bbf16b799f9955" + integrity sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ== dependencies: "@types/babel__traverse" "^7.0.6" @@ -3509,13 +3876,14 @@ babel-polyfill@6.26.0: core-js "^2.5.0" regenerator-runtime "^0.10.5" -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== +babel-preset-jest@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz#4ccd0e577f69aa11b71806edfe8b25a5c3ac93a2" + integrity sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A== dependencies: + "@babel/plugin-syntax-bigint" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" + babel-plugin-jest-hoist "^25.2.1" babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" @@ -3525,13 +3893,6 @@ babel-runtime@^6.23.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -backbone@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.4.0.tgz#54db4de9df7c3811c3f032f34749a4cd27f3bd12" - integrity sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ== - dependencies: - underscore ">=1.8.3" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -3670,20 +4031,6 @@ bn.js@^4.11.8, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -boxen@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - boxen@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -3758,23 +4105,15 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -browserslist@^4.6.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - -browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.8.3, browserslist@^4.9.1: + version "4.11.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.0.tgz#aef4357b10a8abda00f97aac7cd587b2082ba1ad" + integrity sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001035" + electron-to-chromium "^1.3.380" + node-releases "^1.1.52" + pkg-up "^3.1.0" bs-logger@0.x: version "0.2.6" @@ -3918,28 +4257,27 @@ cacache@^12.0.0, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== +cacache@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.0.tgz#133b59edbd2a37ea8ef2d54964c6f247e47e5059" + integrity sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g== dependencies: chownr "^1.1.2" - figgy-pudding "^3.5.1" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" lru-cache "^5.1.1" - minipass "^3.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" + mkdirp "^1.0.3" move-concurrently "^1.0.1" p-map "^3.0.0" promise-inflight "^1.0.1" rimraf "^2.7.1" - ssri "^7.0.0" + ssri "^8.0.0" + tar "^6.0.1" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -4064,15 +4402,10 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000989: - version "1.0.30000999" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43" - integrity sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg== - -caniuse-lite@^1.0.30001015: - version "1.0.30001016" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" - integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== +caniuse-lite@^1.0.30001035: + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" + integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== capture-console@^1.0.1: version "1.0.1" @@ -4103,18 +4436,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai@^4.1.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -4165,11 +4486,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - chokidar@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.2.tgz#9c23ea40b01638439e0513864d362aeacc5ad058" @@ -4194,6 +4510,11 @@ chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.3: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -4336,6 +4657,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -4377,16 +4707,21 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codecov@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.6.1.tgz#f39fc49413445555f81f8e3ca5730992843b4517" - integrity sha512-IUJB6WG47nWK7o50etF8jBadxdMw7DmoQg05yIljstXFBGB6clOZsIj6iD4P82T2YaIU3qq+FFu8K9pxgkCJDQ== +codecov@^3.6.5: + version "3.6.5" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.6.5.tgz#d73ce62e8a021f5249f54b073e6f2d6a513f172a" + integrity sha512-v48WuDMUug6JXwmmfsMzhCHRnhUf8O3duqXvltaYJKrO1OekZWpB/eH6iIoaxMl8Qli0+u3OxptdsBOYiD7VAQ== dependencies: - argv "^0.0.2" - ignore-walk "^3.0.1" - js-yaml "^3.13.1" - teeny-request "^3.11.3" - urlgrey "^0.4.4" + argv "0.0.2" + ignore-walk "3.0.3" + js-yaml "3.13.1" + teeny-request "6.0.1" + urlgrey "0.4.4" + +collect-v8-coverage@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" + integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== collection-visit@^1.0.0: version "1.0.0" @@ -4460,6 +4795,11 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c" integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA== +commander@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.0.0.tgz#dbf1909b49e5044f8fdaf0adc809f0c0722bdfd0" + integrity sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -4473,6 +4813,11 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" +compare-versions@^3.5.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -4516,17 +4861,17 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: - dot-prop "^4.1.0" + dot-prop "^5.2.0" graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" @@ -4554,6 +4899,15 @@ conventional-changelog-angular@^5.0.3: compare-func "^1.3.1" q "^1.5.1" +conventional-changelog-conventionalcommits@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz#d6cb2e2c5d7bfca044a08b9dba84b4082e1a1bd9" + integrity sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q== + dependencies: + compare-func "^1.3.1" + lodash "^4.2.1" + q "^1.5.1" + conventional-changelog-core@^3.1.6: version "3.2.3" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" @@ -4602,17 +4956,17 @@ conventional-commits-filter@^2.0.2: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^2.1.0: - version "2.1.7" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" - integrity sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ== +conventional-commits-parser@^3.0.0: + version "3.0.8" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz#23310a9bda6c93c874224375e72b09fb275fe710" + integrity sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ== dependencies: JSONStream "^1.0.4" - is-text-path "^1.0.0" - lodash "^4.2.1" - meow "^4.0.0" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^5.0.0" split2 "^2.0.0" - through2 "^2.0.0" + through2 "^3.0.0" trim-off-newlines "^1.0.0" conventional-commits-parser@^3.0.3: @@ -4649,7 +5003,7 @@ convert-source-map@^1.1.0, convert-source-map@^1.4.0: dependencies: safe-buffer "~5.1.1" -convert-source-map@^1.7.0: +convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -4673,12 +5027,12 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" - integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== dependencies: - browserslist "^4.8.2" + browserslist "^4.8.3" semver "7.0.0" core-js@^2.4.0, core-js@^2.5.0: @@ -4706,6 +5060,17 @@ cosmiconfig@^5.1.0, cosmiconfig@^5.2.0, cosmiconfig@^5.2.1: js-yaml "^3.13.1" parse-json "^4.0.0" +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + cp-file@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-7.0.0.tgz#b9454cfd07fe3b974ab9ea0e5f29655791a9b8cd" @@ -4716,10 +5081,10 @@ cp-file@^7.0.0: nested-error-stacks "^2.0.0" p-event "^4.1.0" -cpy-cli@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-3.0.0.tgz#429eb6a5ee2d4805bfe454d9d86a3eb72df20e26" - integrity sha512-fxNNpGrnuVMbaDBpHdgwReMy48BelhAoS6OUUX6Zv5nMwSPZOMxL/kB5VxM9xQoB1vvw38zG9drLRS8gvavxeg== +cpy-cli@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cpy-cli/-/cpy-cli-3.1.0.tgz#da33fb65f663c45812f0e9a68523b4a73144e741" + integrity sha512-LJhHvFragWvIsJH1kjhzZwGSagukewJZ5nV5yjMc5TILs+Z/CbZSvX0W9t9XC26Mw32j56UHjR3co5kAXaeTwg== dependencies: cpy "^8.0.0" meow "^5.0.0" @@ -4767,22 +5132,13 @@ cron@^1.7.2: dependencies: moment-timezone "^0.5.x" -cross-env@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.0.tgz#5a3b2ddce51ec713ea58f2fb79ce22e65b4f5479" - integrity sha512-rV6M9ldNgmwP7bx5u6rZsTbYidzwvrwIYZnT08hSGLcQCcggofgFW+sNe7IhA1SRauPS0QuLbbX+wdNtpqE5CQ== +cross-env@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9" + integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw== dependencies: cross-spawn "^7.0.1" -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -4803,22 +5159,27 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1: shebang-command "^2.0.0" which "^2.0.1" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== +cssstyle@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" + integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== dependencies: - cssom "0.3.x" + cssom "~0.3.6" currently-unhandled@^0.4.1: version "0.4.1" @@ -4846,7 +5207,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0: +data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== @@ -4882,6 +5243,13 @@ debug@3.1.0, debug@=3.1.0: dependencies: ms "2.0.0" +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -4896,13 +5264,6 @@ debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -4965,13 +5326,6 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -5041,7 +5395,7 @@ del-cli@^3.0.0: del "^5.1.0" meow "^5.0.0" -del@^5.0.0, del@^5.1.0: +del@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== @@ -5070,7 +5424,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depcheck@*, depcheck@^0.9.1: +depcheck@*: version "0.9.1" resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.9.1.tgz#11a9d22f6fef309ce44545453df0909bf9e26649" integrity sha512-tuz7Hdbtz9Bfnrqs6hMSTWamlZfS4BE3qzy44IvMTYTilupjYh+dnYzEJrUZVZD98ZDlsA3HA4ZMcT/8Ga13Zw== @@ -5091,6 +5445,34 @@ depcheck@*, depcheck@^0.9.1: walkdir "^0.4.1" yargs "^14.2.0" +depcheck@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.9.2.tgz#9e3198b44a527836914c61ba5395479c62ecbaf4" + integrity sha512-w5f+lSZqLJJkk58s44eOd0Vor7hLZot4PlFL0y2JsIX5LuHQ2eAjHlDVeGBD4Mj6ZQSKakvKWRRCcPlvrdU2Sg== + dependencies: + "@babel/parser" "^7.7.7" + "@babel/traverse" "^7.7.4" + builtin-modules "^3.0.0" + camelcase "^5.3.1" + cosmiconfig "^5.2.1" + debug "^4.1.1" + deps-regex "^0.1.4" + js-yaml "^3.4.2" + lodash "^4.17.15" + minimatch "^3.0.2" + node-sass-tilde-importer "^1.0.2" + please-upgrade-node "^3.2.0" + require-package-name "^2.0.1" + resolve "^1.14.1" + vue-template-compiler "^2.6.11" + walkdir "^0.4.1" + yargs "^15.0.2" + +depd@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + dependency-tree@^7.0.2: version "7.2.0" resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-7.2.0.tgz#1dc8ea13c5623f5eab99b28a4fd4f4eca0809168" @@ -5126,10 +5508,10 @@ detect-libc@^1.0.2: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== detective-amd@^3.0.0: version "3.0.0" @@ -5221,6 +5603,11 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.1.tgz#fcfe8aa07dd9b0c648396a478dabca8e76c6ab27" + integrity sha512-foe7dXnGlSh3jR1ovJmdv+77VQj98eKCHHwJPbZ2eEf0fHwKbkZicpPxEch9smZ+n2dnF6QFwkOQdLq9hpeJUg== + diff@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -5261,13 +5648,20 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" -dot-prop@^4.1.0, dot-prop@^4.2.0: +dot-prop@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: 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== + dependencies: + is-obj "^2.0.0" + dotenv@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" @@ -5315,15 +5709,10 @@ ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer "^5.0.1" -electron-to-chromium@^1.3.247: - version "1.3.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.284.tgz#b24359fa4f49b3a7c52afc005d59ec3aa9f6796e" - integrity sha512-duOA4IWKH4R8ttiE8q/7xfg6eheRvMKlGqOOcGlDukdHEDJ26Wf7cMrCiK9Am11mswR6E/a23jXVA4UPDthTIw== - -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== +electron-to-chromium@^1.3.380: + version "1.3.390" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz#a49e67dea22e52ea8027c475dd5447b1c00b1d4e" + integrity sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag== elegant-spinner@^1.0.1: version "1.0.1" @@ -5363,10 +5752,10 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encoding@^0.1.11, encoding@^0.1.12: version "0.1.12" @@ -5410,6 +5799,11 @@ envfile@^5.0.0: eachr "^4.5.0" typechecker "^6.3.0" +envinfo@^7.3.1: + version "7.5.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" + integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" @@ -5466,12 +5860,29 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.8.0, escodegen@^1.9.1: +escodegen@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +escodegen@^1.8.0: version "1.12.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== @@ -5483,17 +5894,17 @@ escodegen@^1.8.0, escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.7.0.tgz#9a876952e12df2b284adbd3440994bf1f39dfbb9" - integrity sha512-FamQVKM3jjUVwhG4hEMnbtsq7xOIDm+SY5iBPfR8gKsJoAB2IQnNF+bk1+8Fy44Nq7PPJaLvkRxILYdJWoguKQ== +eslint-config-prettier@^6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz#129ef9ec575d5ddc0e269667bf09defcd898642a" + integrity sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ== dependencies: get-stdin "^6.0.0" -eslint-plugin-jest@^23.1.1: - version "23.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.1.1.tgz#1220ab53d5a4bf5c3c4cd07c0dabc6199d4064dd" - integrity sha512-2oPxHKNh4j1zmJ6GaCBuGcb8FVZU7YjFUOJzGOPnl9ic7VA/MGAskArLJiRIlnFUmi1EUxY+UiATAy8dv8s5JA== +eslint-plugin-jest@^23.8.2: + version "23.8.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.8.2.tgz#6f28b41c67ef635f803ebd9e168f6b73858eb8d4" + integrity sha512-xwbnvOsotSV27MtAe7s8uGWOori0nUsrXh2f1EnpmXua8sDfY6VZhHAhHg2sqK7HBNycRQExF074XSZ7DvfoFg== dependencies: "@typescript-eslint/experimental-utils" "^2.5.0" @@ -5504,10 +5915,10 @@ eslint-plugin-prettier@^3.1.2: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-simple-import-sort@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.0.tgz#fd2abac52c0ae6050baf340c004b0b5d9aa76e8e" - integrity sha512-Zn6OppySnbwl/UonkzmMBbiFXZwe/tI9ZlSXwQek5h1FfPv3hcDTE3kG0SC70pBsKuVE8IMwZCMl0tKwcY89rw== +eslint-plugin-simple-import-sort@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.2.tgz#43b5c4ab5affa2dd8481ef40216c71723becd2e2" + integrity sha512-YPEGo7DbMANQ01d2OXlREcaHRszsW8LoUQ9mIjI7gXSdwpnWKfogtzL6FiBfDf1teCBx+AdcjcfDXSKpmhTWeA== eslint-scope@^5.0.0: version "5.0.0" @@ -5524,15 +5935,22 @@ eslint-utils@^1.4.3: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.7.2.tgz#c17707ca4ad7b2d8af986a33feba71e18a9fecd1" - integrity sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng== +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" @@ -5581,7 +5999,7 @@ espree@^6.1.2: acorn-jsx "^5.1.0" eslint-visitor-keys "^1.1.0" -esprima@4.0.1, esprima@^4.0.0, esprima@~4.0.0: +esprima@4.0.1, esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -5651,19 +6069,6 @@ execa@^0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -5677,22 +6082,7 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^3.4.0: +execa@^3.2.0, execa@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== @@ -5726,7 +6116,7 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^24.1.0, expect@^24.9.0: +expect@^24.1.0: version "24.9.0" resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== @@ -5738,6 +6128,18 @@ expect@^24.1.0, expect@^24.9.0: jest-message-util "^24.9.0" jest-regex-util "^24.9.0" +expect@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.2.3.tgz#ee714f82bf33c43466fcef139ace0a57b3d0aa48" + integrity sha512-kil4jFRFAK2ySyCyXPqYrphc3EiiKKFd9BthrkKAyHcqr1B84xFTuj5kO8zL+eHRRjT2jQsOPExO0+1Q/fuUXg== + dependencies: + "@jest/types" "^25.2.3" + ansi-styles "^4.0.0" + jest-get-type "^25.2.1" + jest-matcher-utils "^25.2.3" + jest-message-util "^25.2.3" + jest-regex-util "^25.2.1" + expirymanager@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/expirymanager/-/expirymanager-0.9.3.tgz#e5f6b3ba00d8d76cf63311c2b71d7dfc9bde3e4f" @@ -5820,6 +6222,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + fast-diff@^1.1.2, fast-diff@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" @@ -5992,7 +6399,7 @@ filter-obj@^2.0.1: resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-2.0.1.tgz#34d9f0536786f072df7aeac3a8bda1c6e767aec6" integrity sha512-yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug== -find-cache-dir@^2.0.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -6006,7 +6413,7 @@ find-parent-dir@^0.3.0: resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ= -find-up@4.1.0, find-up@^4.0.0: +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -6036,6 +6443,13 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-versions@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + find@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" @@ -6176,6 +6590,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -6199,6 +6620,11 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +fsevents@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -6228,6 +6654,11 @@ genfun@^5.0.0: resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + get-amd-module-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-3.0.0.tgz#bb334662fa04427018c937774570de495845c288" @@ -6241,11 +6672,6 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-own-enumerable-property-symbols@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.1.tgz#6f7764f88ea11e0b514bd9bd860a132259992ca4" @@ -6267,10 +6693,10 @@ get-port@^4.2.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== -get-port@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.0.tgz#a8f6510d0000f07d5c65653a4b0ae648fe832683" - integrity sha512-bjioH1E9bTQUvgaB6VycVy1QVbTZI41yTnF9qkZz6ixgy/uhCH6D63bKeZ6Code/07JYA61MeI94jSdHss8PNA== +get-port@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== get-stdin@7.0.0, get-stdin@^7.0.0: version "7.0.0" @@ -6329,16 +6755,16 @@ git-raw-commits@2.0.0: split2 "^2.0.0" through2 "^2.0.0" -git-raw-commits@^1.3.0: - version "1.3.6" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" - integrity sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg== +git-raw-commits@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.3.tgz#f040e67b8445962d4d168903a9e84c4240c17655" + integrity sha512-SoSsFL5lnixVzctGEi2uykjA7B5I0AhO9x6kdzvGRHbxsa6JSEgrgy1esRKsfOKE1cgyOJ/KDR2Trxu157sb8w== dependencies: dargs "^4.0.1" lodash.template "^4.0.2" - meow "^4.0.0" + meow "^5.0.0" split2 "^2.0.0" - through2 "^2.0.0" + through2 "^3.0.0" git-remote-origin-url@^2.0.0: version "2.0.0" @@ -6429,13 +6855,20 @@ glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0, global-dirs@^0.1.1: +global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= dependencies: ini "^1.3.4" +global-dirs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + dependencies: + ini "^1.3.5" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -6525,6 +6958,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +graceful-fs@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + graphviz@0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/graphviz/-/graphviz-0.0.9.tgz#0bbf1df588c6a92259282da35323622528c4bbc4" @@ -6548,18 +6986,7 @@ handlebars@^4.4.0: optionalDependencies: uglify-js "^3.1.4" -handlebars@^4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" - integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -handlebars@^4.7.2: +handlebars@^4.7.3: version "4.7.3" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== @@ -6679,12 +7106,10 @@ he@^1.1.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -highlight.js@^9.17.1: - version "9.17.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.17.1.tgz#14a4eded23fd314b05886758bb906e39dd627f9a" - integrity sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw== - dependencies: - handlebars "^4.5.3" +highlight.js@^9.18.1: + version "9.18.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c" + integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg== highlight.js@^9.6.0: version "9.16.2" @@ -6734,6 +7159,11 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== +http-cache-semantics@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-call@^5.1.2: version "5.2.5" resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.2.5.tgz#cccb144230dd2f379cf61800fd4461e24571c1be" @@ -6754,6 +7184,15 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -6771,13 +7210,21 @@ https-proxy-agent@^2.2.1: agent-base "^4.3.0" debug "^3.1.0" -https-proxy-agent@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" - integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg== +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== dependencies: - agent-base "^4.3.0" - debug "^3.1.0" + agent-base "5" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" human-signals@^1.1.1: version "1.1.1" @@ -6791,22 +7238,21 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" - integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ== +husky@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.3.tgz#3b18d2ee5febe99e27f2983500202daffbc3151e" + integrity sha512-VxTsSTRwYveKXN4SaH1/FefRJYCtx+wx04sSVcOpD7N2zjoHxa+cEJ07Qg5NmV3HAK+IRKOyNVpi2YBIVccIfQ== dependencies: - chalk "^2.4.2" + chalk "^3.0.0" ci-info "^2.0.0" - cosmiconfig "^5.2.1" - execa "^1.0.0" - get-stdin "^7.0.0" + compare-versions "^3.5.1" + cosmiconfig "^6.0.0" + find-versions "^3.2.0" opencollective-postinstall "^2.0.2" pkg-dir "^4.2.0" please-upgrade-node "^3.2.0" - read-pkg "^5.2.0" - run-node "^1.0.0" slash "^3.0.0" + which-pm-runs "^1.0.0" hyperlinker@^1.0.0: version "1.0.0" @@ -6830,7 +7276,7 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: +ignore-walk@3.0.3, ignore-walk@^3.0.1, ignore-walk@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== @@ -6868,7 +7314,7 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-fresh@^3.2.1: +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== @@ -6889,6 +7335,14 @@ import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -7032,7 +7486,12 @@ inversify@^5.0.1: resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.1.tgz#500d709b1434896ce5a0d58915c4a4210e34fb6e" integrity sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ== -ip@^1.1.5: +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@1.1.5, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -7192,28 +7651,33 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= +is-installed-globally@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz#679afef819347a72584617fd19497f010b8ed35f" + integrity sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg== dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" + global-dirs "^2.0.1" + is-path-inside "^3.0.1" is-interactive@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-npm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" - integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== is-number@^3.0.0: version "3.0.0" @@ -7232,6 +7696,11 @@ is-obj@^1.0.0, is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -7244,13 +7713,6 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - is-path-inside@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" @@ -7338,7 +7800,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-text-path@^1.0.0: +is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= @@ -7377,6 +7839,11 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + is-yarn-global@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" @@ -7419,103 +7886,103 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" +istanbul-lib-instrument@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" + integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/parser" "^7.7.5" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" + istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.7.tgz#5d939f6237d7b48393cc0959eab40cd4fd056931" - integrity sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg== +istanbul-reports@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.1.tgz#1343217244ad637e0c3b18e7f6b746941a9b5e9a" + integrity sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q== dependencies: html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== +jest-changed-files@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.2.3.tgz#ad19deef9e47ba37efb432d2c9a67dfd97cc78af" + integrity sha512-EFxy94dvvbqRB36ezIPLKJ4fDIC+jAdNs8i8uTwFpaXd6H3LVc3ova1lNS4ZPWk09OCR2vq5kSdSQgar7zMORg== dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" + "@jest/types" "^25.2.3" + execa "^3.2.0" + throat "^5.0.0" -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== +jest-cli@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.2.3.tgz#47e17240ce6d8ce824ca1a01468ea8824ec6b139" + integrity sha512-T7G0TOkFj0wr33ki5xoq3bxkKC+liwJfjV9SmYIKBozwh91W4YjL1o1dgVCUTB1+sKJa/DiAY0p+eXYE6v2RGw== dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" + "@jest/core" "^25.2.3" + "@jest/test-result" "^25.2.3" + "@jest/types" "^25.2.3" + chalk "^3.0.0" exit "^0.1.2" - import-local "^2.0.0" + import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-config "^25.2.3" + jest-util "^25.2.3" + jest-validate "^25.2.3" prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" + realpath-native "^2.0.0" + yargs "^15.3.1" -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== +jest-config@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.2.3.tgz#c304e91e2ba3763c04b38eafc26d30e5c41b48e8" + integrity sha512-UpTNxN8DgmLLCXFizGuvwIw+ZAPB0T3jbKaFEkzJdGqhSsQrVrk1lxhZNamaVIpWirM2ptYmqwUzvoobGCEkiQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" + "@jest/test-sequencer" "^25.2.3" + "@jest/types" "^25.2.3" + babel-jest "^25.2.3" + chalk "^3.0.0" + deepmerge "^4.2.2" glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" + jest-environment-jsdom "^25.2.3" + jest-environment-node "^25.2.3" + jest-get-type "^25.2.1" + jest-jasmine2 "^25.2.3" + jest-regex-util "^25.2.1" + jest-resolve "^25.2.3" + jest-util "^25.2.3" + jest-validate "^25.2.3" + micromatch "^4.0.2" + pretty-format "^25.2.3" + realpath-native "^2.0.0" -jest-diff@^24.3.0, jest-diff@^24.9.0: +jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== @@ -7525,46 +7992,57 @@ jest-diff@^24.3.0, jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== +jest-diff@^25.1.0, jest-diff@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.2.3.tgz#54d601a0a754ef26e808a8c8dbadd278c215aa3f" + integrity sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg== dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" + chalk "^3.0.0" + diff-sequences "^25.2.1" + jest-get-type "^25.2.1" + pretty-format "^25.2.3" -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== +jest-docblock@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.2.3.tgz#ac45280c43d59e7139f9fbe5896c6e0320c01ebb" + integrity sha512-d3/tmjLLrH5fpRGmIm3oFa3vOaD/IjPxtXVOrfujpfJ9y1tCDB1x/tvunmdOVAyF03/xeMwburl6ITbiQT1mVA== dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" + detect-newline "^3.0.0" -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== +jest-each@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.2.3.tgz#64067ba1508ebbd07e9b126c173ab371e8e6309d" + integrity sha512-RTlmCjsBDK2c9T5oO4MqccA3/5Y8BUtiEy7OOQik1iyCgdnNdHbI0pNEpyapZPBG0nlvZ4mIu7aY6zNUvLraAQ== dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + "@jest/types" "^25.2.3" + chalk "^3.0.0" + jest-get-type "^25.2.1" + jest-util "^25.2.3" + pretty-format "^25.2.3" + +jest-environment-jsdom@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.2.3.tgz#f790f87c24878b219d1745f68343380c2d79ab01" + integrity sha512-TLg7nizxIYJafz6tOBAVSmO5Ekswf6Cf3Soseov+mgonXfdYi1I0OZlHlZMJb2fGyXem2ndYFCLrMkwcWPKAnQ== + dependencies: + "@jest/environment" "^25.2.3" + "@jest/fake-timers" "^25.2.3" + "@jest/types" "^25.2.3" + jest-mock "^25.2.3" + jest-util "^25.2.3" + jsdom "^15.2.1" + +jest-environment-node@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.2.3.tgz#e50a7e84bf7c7555216aa41aea1e48f53773318f" + integrity sha512-Tu/wlGXfoLtBR4Ym+isz58z3TJkMYX4VnFTkrsxaTGYAxNLN7ArCwL51Ki0WrMd89v+pbCLDj/hDjrb4a2sOrw== + dependencies: + "@jest/environment" "^25.2.3" + "@jest/fake-timers" "^25.2.3" + "@jest/types" "^25.2.3" + jest-mock "^25.2.3" + jest-util "^25.2.3" + semver "^6.3.0" jest-extended@^0.11.2: version "0.11.2" @@ -7575,6 +8053,15 @@ jest-extended@^0.11.2: jest-get-type "^22.4.3" jest-matcher-utils "^22.0.0" +jest-extended@^0.11.5: + version "0.11.5" + resolved "https://registry.yarnpkg.com/jest-extended/-/jest-extended-0.11.5.tgz#f063b3f1eaadad8d7c13a01f0dfe0f538d498ccf" + integrity sha512-3RsdFpLWKScpsLD6hJuyr/tV5iFOrw7v6YjA3tPdda9sJwoHwcMROws5gwiIZfcwhHlJRwFJB2OUvGmF3evV/Q== + dependencies: + expect "^24.1.0" + jest-get-type "^22.4.3" + jest-matcher-utils "^22.0.0" + jest-get-type@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" @@ -7585,54 +8072,60 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-get-type@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.1.tgz#6c83de603c41b1627e6964da2f5454e6aa3c13a6" + integrity sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w== + +jest-haste-map@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.2.3.tgz#2649392b5af191f0167a27bfb62e5d96d7eaaade" + integrity sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A== dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" + "@jest/types" "^25.2.3" + anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.3" + jest-serializer "^25.2.1" + jest-util "^25.2.3" + jest-worker "^25.2.1" + micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" + which "^2.0.2" optionalDependencies: - fsevents "^1.2.7" + fsevents "^2.1.2" -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== +jest-jasmine2@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.2.3.tgz#a824c5dbe383c63d243aab5e64cc85ab65f87598" + integrity sha512-x9PEGPFdnkSwJj1UG4QxG9JxFdyP8fuJ/UfKXd/eSpK8w9x7MP3VaQDuPQF0UQhCT0YeOITEPkQyqS+ptt0suA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" + "@jest/environment" "^25.2.3" + "@jest/source-map" "^25.2.1" + "@jest/test-result" "^25.2.3" + "@jest/types" "^25.2.3" + chalk "^3.0.0" co "^4.6.0" - expect "^24.9.0" + expect "^25.2.3" is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + jest-each "^25.2.3" + jest-matcher-utils "^25.2.3" + jest-message-util "^25.2.3" + jest-runtime "^25.2.3" + jest-snapshot "^25.2.3" + jest-util "^25.2.3" + pretty-format "^25.2.3" + throat "^5.0.0" + +jest-leak-detector@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.2.3.tgz#4cf39f137925e0061c04c24ca65cae36465f0238" + integrity sha512-yblCMPE7NJKl7778Cf/73yyFWAas5St0iiEBwq7RDyaz6Xd4WPFnPz2j7yDb/Qce71A1IbDoLADlcwD8zT74Aw== + dependencies: + jest-get-type "^25.2.1" + pretty-format "^25.2.3" jest-matcher-utils@^22.0.0: version "22.4.3" @@ -7653,6 +8146,16 @@ jest-matcher-utils@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-matcher-utils@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz#59285bd6d6c810debc9caa585ed985e46a3f28fd" + integrity sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw== + dependencies: + chalk "^3.0.0" + jest-diff "^25.2.3" + jest-get-type "^25.2.1" + pretty-format "^25.2.3" + jest-message-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" @@ -7667,138 +8170,153 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== +jest-message-util@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.2.3.tgz#a911c4e3af06df851cc6065d9a3119fd2a3aa240" + integrity sha512-DcyDmdO5LVIeS0ngRvd7rk701XL60dAakUeQJ1tQRby27fyLYXD+V0nqVaC194W7fIlohjVQOZPHmKXIjn+Byw== dependencies: - "@jest/types" "^24.9.0" + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^25.2.3" + "@jest/types" "^25.2.3" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.2.3.tgz#b37a581f59d61bd91db27a99bf7eb8b3e5e993d5" + integrity sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg== + dependencies: + "@jest/types" "^25.2.3" jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: +jest-regex-util@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== +jest-regex-util@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.1.tgz#db64b0d15cd3642c93b7b9627801d7c518600584" + integrity sha512-wroFVJw62LdqTdkL508ZLV82FrJJWVJMIuYG7q4Uunl1WAPTf4ftPKrqqfec4SvOIlvRZUdEX2TFpWR356YG/w== + +jest-resolve-dependencies@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.3.tgz#cd4d9d068d5238dfbdfa45690f6e902b6413c2da" + integrity sha512-mcWlvjXLlNzgdE9EQxHuaeWICNxozanim87EfyvPwTY0ryWusFZbgF6F8u3E0syJ4FFSooEm0lQ6fgYcnPGAFw== dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" + "@jest/types" "^25.2.3" + jest-regex-util "^25.2.1" + jest-snapshot "^25.2.3" -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== +jest-resolve@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.2.3.tgz#ababeaf2bb948cb6d2dea8453759116da0fb7842" + integrity sha512-1vZMsvM/DBH258PnpUNSXIgtzpYz+vCVCj9+fcy4akZl4oKbD+9hZSlfe9RIDpU0Fc28ozHQrmwX3EqFRRIHGg== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^25.2.3" browser-resolve "^1.11.3" - chalk "^2.0.1" + chalk "^3.0.0" jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" + realpath-native "^2.0.0" + resolve "^1.15.1" + +jest-runner@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.2.3.tgz#88fb448a46cf4ee9194a3e3cf0adbc122e195adb" + integrity sha512-E+u2Zm2TmtTOFEbKs5jllLiV2fwiX77cYc08RdyYZNe/s06wQT3P47aV6a8Rv61L7E2Is7OmozLd0KI/DITRpg== + dependencies: + "@jest/console" "^25.2.3" + "@jest/environment" "^25.2.3" + "@jest/test-result" "^25.2.3" + "@jest/types" "^25.2.3" + chalk "^3.0.0" exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" + graceful-fs "^4.2.3" + jest-config "^25.2.3" + jest-docblock "^25.2.3" + jest-haste-map "^25.2.3" + jest-jasmine2 "^25.2.3" + jest-leak-detector "^25.2.3" + jest-message-util "^25.2.3" + jest-resolve "^25.2.3" + jest-runtime "^25.2.3" + jest-util "^25.2.3" + jest-worker "^25.2.1" source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" + throat "^5.0.0" + +jest-runtime@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.2.3.tgz#1f0e9ba878a66538c3e9d58be97a6a12c877ed13" + integrity sha512-PZRFeUVF08N24v2G73SDF0b0VpLG7cRNOJ3ggj5TnArBVHkkrWzM3z7txB9OupWu7OO8bH/jFogk6sSjnHLFXQ== + dependencies: + "@jest/console" "^25.2.3" + "@jest/environment" "^25.2.3" + "@jest/source-map" "^25.2.1" + "@jest/test-result" "^25.2.3" + "@jest/transform" "^25.2.3" + "@jest/types" "^25.2.3" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" + graceful-fs "^4.2.3" + jest-config "^25.2.3" + jest-haste-map "^25.2.3" + jest-message-util "^25.2.3" + jest-mock "^25.2.3" + jest-regex-util "^25.2.1" + jest-resolve "^25.2.3" + jest-snapshot "^25.2.3" + jest-util "^25.2.3" + jest-validate "^25.2.3" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.1.tgz#51727a5fc04256f461abe0fa024a022ba165877a" + integrity sha512-fibDi7M5ffx6c/P66IkvR4FKkjG5ldePAK1WlbNoaU4GZmIAkS9Le/frAwRUFEX0KdnisSPWf+b1RC5jU7EYJQ== -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +jest-snapshot@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.2.3.tgz#2d432fcf9e7f1f7eb3e5012ffcce8035794b76ae" + integrity sha512-HlFVbE6vOZ541mtkwjuAe0rfx9EWhB+QXXneLNOP/s3LlHxGQtX7WFXY5OiH4CkAnCc6BpzLNYS9nfINNRb4Zg== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" + "@jest/types" "^25.2.3" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.2.3" + jest-diff "^25.2.3" + jest-get-type "^25.2.1" + jest-matcher-utils "^25.2.3" + jest-message-util "^25.2.3" + jest-resolve "^25.2.3" + make-dir "^3.0.0" natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" + pretty-format "^25.2.3" + semver "^6.3.0" -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== +jest-util@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.2.3.tgz#0abf95a1d6b96f2de5a3ecd61b36c40a182dc256" + integrity sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw== dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" + "@jest/types" "^25.2.3" + chalk "^3.0.0" is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" + make-dir "^3.0.0" jest-validate@^24.9.0: version "24.9.0" @@ -7812,20 +8330,31 @@ jest-validate@^24.9.0: leven "^3.1.0" pretty-format "^24.9.0" -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== +jest-validate@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.2.3.tgz#ecb0f093cf8ae71d15075fb48439b6f78f1fcb5a" + integrity sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg== dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" + "@jest/types" "^25.2.3" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.1" + leven "^3.1.0" + pretty-format "^25.2.3" + +jest-watcher@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.2.3.tgz#a494fe3ddb62da62b0e697abfea457de8f388f1f" + integrity sha512-F6ERbdvJk8nbaRon9lLQVl4kp+vToCCHmy+uWW5QQ8/8/g2jkrZKJQnlQINrYQp0ewg31Bztkhs4nxsZMx6wDg== + dependencies: + "@jest/test-result" "^25.2.3" + "@jest/types" "^25.2.3" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.2.3" + string-length "^3.1.0" -jest-worker@^24.6.0, jest-worker@^24.9.0: +jest-worker@^24.6.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== @@ -7833,13 +8362,22 @@ jest-worker@^24.6.0, jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== +jest-worker@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a" + integrity sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ== dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.2.3.tgz#0cc9b35192f236fe1d5e76ed8eb3a54e7e0ee2e0" + integrity sha512-UbUmyGeZt0/sCIj/zsWOY0qFfQsx2qEFIZp0iEj8yVH6qASfR22fJOf12gFuSPsdSufam+llZBB0MdXWCg6EEQ== + dependencies: + "@jest/core" "^25.2.3" + import-local "^3.0.2" + jest-cli "^25.2.3" jju@^1.1.0: version "1.4.0" @@ -7856,22 +8394,12 @@ joycon@^2.2.5: resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615" integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ== -jquery@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" - integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.2: +js-yaml@3.13.1, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.2: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -7884,36 +8412,36 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== +jsdom@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== dependencies: abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" domexception "^1.0.1" - escodegen "^1.9.1" + escodegen "^1.11.1" html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" + nwsapi "^2.2.0" + parse5 "5.1.0" pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" symbol-tree "^3.2.2" - tough-cookie "^2.3.4" + tough-cookie "^3.0.1" w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -7982,6 +8510,13 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +json5@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== + dependencies: + minimist "^1.2.5" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -8090,31 +8625,27 @@ latest-version@^5.0.0, latest-version@^5.1.0: dependencies: package-json "^6.3.0" -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -lerna@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.19.0.tgz#6d53b613eca7da426ab1e97c01ce6fb39754da6c" - integrity sha512-YtMmwEqzWHQCh7Ynk7BvjrZri3EkSeVqTAcwZIqWlv9V/dCfvFPyRqp+2NIjPB5nj1FWXLRH6F05VT/qvzuuOA== - dependencies: - "@lerna/add" "3.19.0" - "@lerna/bootstrap" "3.18.5" - "@lerna/changed" "3.18.5" - "@lerna/clean" "3.18.5" +lerna@^3.20.2: + version "3.20.2" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.20.2.tgz#abf84e73055fe84ee21b46e64baf37b496c24864" + integrity sha512-bjdL7hPLpU3Y8CBnw/1ys3ynQMUjiK6l9iDWnEGwFtDy48Xh5JboR9ZJwmKGCz9A/sarVVIGwf1tlRNKUG9etA== + dependencies: + "@lerna/add" "3.20.0" + "@lerna/bootstrap" "3.20.0" + "@lerna/changed" "3.20.0" + "@lerna/clean" "3.20.0" "@lerna/cli" "3.18.5" "@lerna/create" "3.18.5" "@lerna/diff" "3.18.5" - "@lerna/exec" "3.18.5" + "@lerna/exec" "3.20.0" "@lerna/import" "3.18.5" + "@lerna/info" "3.20.0" "@lerna/init" "3.18.5" "@lerna/link" "3.18.5" - "@lerna/list" "3.18.5" - "@lerna/publish" "3.18.5" - "@lerna/run" "3.18.5" - "@lerna/version" "3.18.5" + "@lerna/list" "3.20.0" + "@lerna/publish" "3.20.2" + "@lerna/run" "3.20.0" + "@lerna/version" "3.20.2" import-local "^2.0.0" npmlog "^4.1.2" @@ -8128,6 +8659,13 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -8155,24 +8693,23 @@ linked-list@0.1.0: resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf" integrity sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78= -lint-staged@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.5.0.tgz#290ec605252af646d9b74d73a0fa118362b05a33" - integrity sha512-nawMob9cb/G1J98nb8v3VC/E8rcX1rryUYXVZ69aT9kde6YWX+uvNOEHY5yf2gcWcTJGiD0kqXmCnS3oD75GIA== +lint-staged@^10.0.9: + version "10.0.9" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.0.9.tgz#185aabb2432e9467c84add306c990f1c20da3cdb" + integrity sha512-NKJHYgRa8oI9c4Ic42ZtF2XA6Ps7lFbXwg3q0ZEP0r55Tw3YWykCW1RzW6vu+QIGqbsy7DxndvKu93Wtr5vPQw== dependencies: - chalk "^2.4.2" - commander "^2.20.0" - cosmiconfig "^5.2.1" + chalk "^3.0.0" + commander "^4.0.1" + cosmiconfig "^6.0.0" debug "^4.1.1" dedent "^0.7.0" - del "^5.0.0" - execa "^2.0.3" + execa "^3.4.0" listr "^0.14.3" log-symbols "^3.0.0" micromatch "^4.0.2" normalize-path "^3.0.0" - please-upgrade-node "^3.1.1" - string-argv "^0.3.0" + please-upgrade-node "^3.2.0" + string-argv "0.3.1" stringify-object "^3.3.0" listr-silent-renderer@^1.1.1: @@ -8261,13 +8798,13 @@ load-json-file@^6.2.0: strip-bom "^4.0.0" type-fest "^0.6.0" -loader-utils@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" - emojis-list "^2.0.0" + emojis-list "^3.0.0" json5 "^1.0.1" loady@~0.0.1: @@ -8408,16 +8945,11 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0: +lodash@4, lodash@4.17.15, lodash@^4.14.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@4.17.14: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== - log-process-errors@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/log-process-errors/-/log-process-errors-5.0.3.tgz#103909d75be20d7642f44fc270c00752baea08f5" @@ -8461,6 +8993,13 @@ log-update@^2.3.0: cli-cursor "^2.0.0" wrap-ansi "^3.0.1" +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + long@~3: version "3.2.0" resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" @@ -8507,14 +9046,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -8532,10 +9063,10 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== -madge@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/madge/-/madge-3.6.0.tgz#f69e7c3e15a18a195e6bcd7942cc36efabcd9b9a" - integrity sha512-r4pCwKmihtzemQq8Y7edfkAKVKFqWU/AXTnDckwf1D4HOnX/uLAyWHQ+NgEo+FqBappi8wBzWJV5sFyQO2m6FQ== +madge@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/madge/-/madge-3.8.0.tgz#c76538c1a8accda297009a25ceb8b29b20c99b86" + integrity sha512-bcX2QxiTwWvZrNM+XkmZY1SPl18C2HGaQGhroj3YzqSRxQ1ns7WXCYDyGCfZwp/uLibnNd6IOWrRLOkCS+lpAg== dependencies: chalk "^3.0.0" commander "^4.0.1" @@ -8610,16 +9141,17 @@ make-fetch-happen@^5.0.0: socks-proxy-agent "^4.0.0" ssri "^6.0.0" -make-fetch-happen@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-6.1.0.tgz#7d3c647913136efd73e94bde899f85fcd3eda09e" - integrity sha512-Q/RHcHofC+BnleSGDiO3SQQX2mCvXz639s+kJ7+loR4RPT487itVJ8RWIyBEfnqpnkaUFaWgNyV6CxT7eyDdEA== - dependencies: - agentkeepalive "^3.4.1" - cacache "^13.0.1" - http-cache-semantics "^3.8.1" - http-proxy-agent "^2.1.0" - https-proxy-agent "^3.0.1" +make-fetch-happen@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.4.tgz#d3451baf5b43d6230c4eea7009c5aa6b6bccf9d4" + integrity sha512-hIFoqGq1db0QMiy/Atr/pI1Rs4rDV+ZdGSey2SQyF3KK3u1z4aj9mS5UdNnZkdQpA+H3pGn0J3KlEwsi2x4EqA== + dependencies: + agentkeepalive "^4.1.0" + cacache "^15.0.0" + http-cache-semantics "^4.0.4" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" lru-cache "^5.1.1" minipass "^3.0.0" minipass-collect "^1.0.2" @@ -8627,8 +9159,8 @@ make-fetch-happen@^6.0.0: minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" promise-retry "^1.1.1" - socks-proxy-agent "^4.0.0" - ssri "^7.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" makeerror@1.0.x: version "1.0.11" @@ -8659,7 +9191,7 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -marked@^0.8.0: +marked@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99" integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ== @@ -8846,6 +9378,11 @@ minimist@1.2.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -8967,6 +9504,13 @@ mkdirp@*, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" +mkdirp@^0.5.3: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" + mkdirp@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" @@ -9011,7 +9555,14 @@ moize@^5.4.4: fast-stringify "^1.1.0" micro-memoize "^2.1.1" -moment-timezone@^0.5.27, moment-timezone@^0.5.x: +moment-timezone@^0.5.28: + version "0.5.28" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" + integrity sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw== + dependencies: + moment ">= 2.9.0" + +moment-timezone@^0.5.x: version "0.5.27" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw== @@ -9178,16 +9729,14 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -nock@^11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/nock/-/nock-11.7.0.tgz#5eaae8b8a55c0dfc014d05692c8cf3d31d61a342" - integrity sha512-7c1jhHew74C33OBeRYyQENT+YXQiejpwIrEjinh6dRurBae+Ei4QjeUaPlkptIF0ZacEiVCnw8dWaxqepkiihg== +nock@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/nock/-/nock-12.0.3.tgz#83f25076dbc4c9aa82b5cdf54c9604c7a778d1c9" + integrity sha512-QNb/j8kbFnKCiyqi9C5DD0jH/FubFGj5rt9NQFONXwQm3IPB0CULECg/eS3AU1KgZb/6SwUa4/DTRKhVxkGABw== dependencies: - chai "^4.1.2" debug "^4.1.0" json-stringify-safe "^5.0.1" lodash "^4.17.13" - mkdirp "^0.5.0" propagate "^2.0.0" node-alias@^1.0.4: @@ -9251,16 +9800,16 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== dependencies: growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" + is-wsl "^2.1.1" + semver "^6.3.0" shellwords "^0.1.1" - which "^1.3.0" + which "^1.3.1" node-pre-gyp@^0.12.0: version "0.12.0" @@ -9278,17 +9827,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.29: - version "1.1.36" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.36.tgz#44b7cb8254138e87bdbfa47761d0f825e20900b4" - integrity sha512-ggXhX6QGyJSjj3r+6ml2LqqC28XOWmKtpb+a15/Zpr9V3yoNazxJNlcQDS9bYaid5FReEWHEgToH1mwoUceWwg== - dependencies: - semver "^6.3.0" - -node-releases@^1.1.42: - version "1.1.43" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.43.tgz#2c6ca237f88ce11d49631f11190bb01f8d0549f2" - integrity sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w== +node-releases@^1.1.52: + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: semver "^6.3.0" @@ -9372,15 +9914,22 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== -npm-check-updates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-4.0.1.tgz#9a4cb95bba95b59380a0175c1f4713dad6e439ab" - integrity sha512-rDrKAqhQuTYq2EkndroPMZGA9N6tpTotOVOIJoxRa3ZKnb/mOcq2TZv4A4LLSM8+9kZlP+sBwE+XAGh8wWZw/w== +npm-bundled@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-check-updates@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-4.1.0.tgz#e3490c162af4d57b56252d04bfe6bf5507b246f2" + integrity sha512-33WkkvIK9dcv3guKx6T/wEW670G/fSiOZ/+arOroAneYh3C8jUX5lDWg6+f8Tc7QZugxkeBtHPD6yK487dtI5w== dependencies: chalk "^3.0.0" cint "^8.2.1" cli-table "^0.3.1" - commander "^4.0.1" + commander "^5.0.0" fast-diff "^1.2.0" find-up "4.1.0" get-stdin "^7.0.0" @@ -9388,15 +9937,23 @@ npm-check-updates@^4.0.1: libnpmconfig "^1.2.1" lodash "^4.17.15" node-alias "^1.0.4" - pacote "^10.2.0" + p-map "^4.0.0" + pacote "^11.1.4" progress "^2.0.3" - prompts "^2.3.0" + prompts "^2.3.2" rc-config-loader "^3.0.0" requireg "^0.2.2" - semver "^6.3.0" + semver "^7.1.3" semver-utils "^1.1.4" spawn-please "^0.3.0" - update-notifier "^3.0.1" + update-notifier "^4.1.0" + +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" npm-lifecycle@^3.1.2: version "3.1.4" @@ -9427,14 +9984,13 @@ npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-package-arg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5" - integrity sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g== +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" + integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== dependencies: hosted-git-info "^3.0.2" - osenv "^0.1.5" - semver "^5.6.0" + semver "^7.0.0" validate-npm-package-name "^3.0.0" npm-packlist@^1.1.6, npm-packlist@^1.4.4: @@ -9445,13 +10001,15 @@ npm-packlist@^1.1.6, npm-packlist@^1.4.4: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-packlist@^1.4.6: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== +npm-packlist@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.1.tgz#08806a1df79acdc43d02d20c83a3d5472d96c90c" + integrity sha512-95TSDvGwujIhqfSpIiRRLodEF+y6mJMopuZdahoGzqtRDFZXGav46S0p6ngeWaiAkb5R72w6eVARhzej0HvZeQ== dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" npm-pick-manifest@^3.0.0: version "3.0.2" @@ -9462,30 +10020,28 @@ npm-pick-manifest@^3.0.0: npm-package-arg "^6.0.0" semver "^5.4.1" -npm-pick-manifest@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-4.0.0.tgz#5e1b392a2a6310378b9bab32332597030ca073ce" - integrity sha512-SsYReLe/16UgSL6GKX6GO4o3RVBthVy1uuHq6kZ9mkPeQXpOHbrLZoV13i8fr3LQtET+pLPSfD13e4RIYfkX5Q== +npm-pick-manifest@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz#bfde7abe95f2670aed1629a3c18245ccb3cc2eb8" + integrity sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg== dependencies: - figgy-pudding "^3.5.1" - npm-package-arg "^7.0.0" - semver "^5.4.1" + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" -npm-registry-fetch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-5.0.1.tgz#98f59f2ac83440baf7a4fbe800972cfe37c9334d" - integrity sha512-GK7SUx188KSkPvbceOGO59L3FGHLBYoP0YEhUAKYjAypL15v5xmoempZ9rIJS2R/1eOS0KS1Y9AQe79YfgNxaw== +npm-registry-fetch@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz#65bb51dd2b9634b8363019aac9c76c003e5c5eaf" + integrity sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ== dependencies: - bluebird "^3.5.1" - figgy-pudding "^3.4.1" + "@npmcli/ci-detect" "^1.0.0" lru-cache "^5.1.1" - make-fetch-happen "^6.0.0" + make-fetch-happen "^8.0.2" minipass "^3.0.0" minipass-fetch "^1.1.2" minipass-json-stream "^1.0.1" minizlib "^2.0.0" - npm-package-arg "^7.0.0" - safe-buffer "^5.2.0" + npm-package-arg "^8.0.0" npm-run-path@^2.0.0: version "2.0.2" @@ -9494,13 +10050,6 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - npm-run-path@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" @@ -9533,7 +10082,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7: +nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== @@ -9740,12 +10289,10 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: - p-reduce "^1.0.0" +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== p-event@^4.1.0: version "4.1.0" @@ -9818,6 +10365,13 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-pipe@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" @@ -9874,30 +10428,34 @@ packet-reader@1.0.0: resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== -pacote@^10.2.0: - version "10.2.1" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-10.2.1.tgz#4107f72eeaaacb47eb68952ed31c050bab9d3f94" - integrity sha512-sPHVOF7uKY8yDivKYimb5l3D8BvNNjR+9FmzkThOTtftkddGY/C6uENVkgc3HQtOpCX8R2qztkSAOI369bgLEA== - dependencies: - cacache "^13.0.1" - chownr "^1.1.3" - fs-minipass "^2.0.0" +pacote@^11.1.4: + version "11.1.4" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.1.4.tgz#5529a453c59881b7f059da8af6903b0f79c124b2" + integrity sha512-eUGJvSSpWFZKn3z8gig/HgnBmUl6gIWByIIaHzSyEr3tOWX0w8tFEADXtpu8HGv5E0ShCeTP6enRq8iHKCHSvw== + dependencies: + "@npmcli/git" "^2.0.1" + "@npmcli/installed-package-contents" "^1.0.5" + "@npmcli/promise-spawn" "^1.1.0" + cacache "^15.0.0" + chownr "^1.1.4" + fs-minipass "^2.1.0" infer-owner "^1.0.4" lru-cache "^5.1.1" minipass "^3.0.1" minipass-fetch "^1.2.1" - npm-package-arg "^7.0.0" - npm-packlist "^1.4.6" - npm-pick-manifest "^4.0.0" - npm-registry-fetch "^5.0.1" - osenv "^0.1.5" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.0" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^8.0.0" promise-inflight "^1.0.1" promise-retry "^1.1.1" - read-package-json-fast "^1.0.3" - semver "^6.3.0" - ssri "^7.1.0" - tar "^5.0.5" - which "^2.0.1" + read-package-json-fast "^1.1.3" + rimraf "^2.7.1" + semver "^7.1.3" + ssri "^8.0.0" + tar "^6.0.1" + which "^2.0.2" parallel-transform@^1.1.0: version "1.2.0" @@ -9973,7 +10531,12 @@ parse-url@^5.0.0: parse-path "^4.0.0" protocols "^1.4.0" -parse5@4.0.0, parse5@^4.0.0: +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +parse5@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== @@ -10018,11 +10581,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -10066,11 +10624,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= - pbkdf2@^3.0.9: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -10133,6 +10686,11 @@ pgpass@1.x: dependencies: split "^1.0.0" +picomatch@^2.0.4: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + picomatch@^2.0.5: version "2.0.7" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" @@ -10220,12 +10778,19 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-up@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + platform@^1.3.3: version "1.3.5" resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== -please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0: +please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== @@ -10323,10 +10888,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.0.tgz#9c8fdba0aeae3faf0d9d9391623ac4f9321a4455" - integrity sha512-vI55PC+GFLOVtpwr2di1mYhJF36v+kztJov8sx3AmqbfdA+2Dhozxb+3e1hTgoV9lyhnVJFF3Z8GCVeMBOS1bA== +prettier@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.2.tgz#1ba8f3eb92231e769b7fcd7cb73ae1b6b74ade08" + integrity sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg== pretty-bytes@^5.2.0: version "5.3.0" @@ -10351,6 +10916,16 @@ pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" +pretty-format@^25.1.0, pretty-format@^25.2.3: + version "25.2.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.2.3.tgz#ba6e9603a0d80fa2e470b1fed55de1f9bfd81421" + integrity sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w== + dependencies: + "@jest/types" "^25.2.3" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + pretty-ms@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384" @@ -10365,7 +10940,7 @@ pretty-ms@^6.0.0: dependencies: parse-ms "^2.1.0" -private@^0.1.6: +private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -10409,13 +10984,13 @@ prompts@^2.1.0: kleur "^3.0.3" sisteransi "^1.0.4" -prompts@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" - integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== +prompts@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== dependencies: kleur "^3.0.3" - sisteransi "^1.0.3" + sisteransi "^1.0.4" promzard@^0.3.0: version "0.3.0" @@ -10451,11 +11026,6 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - psl@^1.1.24, psl@^1.1.28: version "1.4.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" @@ -10496,6 +11066,13 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pupa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + dependencies: + escape-goat "^2.0.0" + q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -10579,6 +11156,11 @@ rc@^1.2.7, rc@^1.2.8, rc@~1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-is@^16.12.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + react-is@^16.8.4: version "16.10.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.10.2.tgz#984120fd4d16800e9a738208ab1fba422d23b5ab" @@ -10598,10 +11180,10 @@ read-last-lines@^1.7.1: dependencies: mz "^2.7.0" -read-package-json-fast@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.1.1.tgz#fd19b660cadc608d7a8a441191d8e971b590ebda" - integrity sha512-vDw3wiWLwUXhYBCVvjAQJGCI5+DcgwGSYlFETCV9m/b107/yNBnYfCkoVrwHj7338j1z24/dxUXvtrXVjVjL1Q== +read-package-json-fast@^1.1.1, read-package-json-fast@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz#3b78464ea8f3c4447f3358635390b6946dc0737e" + integrity sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg== dependencies: json-parse-even-better-errors "^2.0.1" npm-normalize-package-bin "^1.0.1" @@ -10643,14 +11225,6 @@ read-pkg-up@^3.0.0: find-up "^2.0.0" read-pkg "^3.0.0" -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -10669,16 +11243,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - read@1, read@~1.0.1: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -10718,7 +11282,7 @@ readable-stream@^1.1.8: isarray "0.0.1" string_decoder "~0.10.x" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0, readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -10737,12 +11301,10 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== rechoir@^0.6.2: version "0.6.2" @@ -10779,10 +11341,10 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -10801,12 +11363,18 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -10826,17 +11394,17 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" + unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^4.0.0: version "4.0.0" @@ -10853,15 +11421,15 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -10887,13 +11455,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== - dependencies: - lodash "^4.17.11" - request-promise-core@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" @@ -10901,15 +11462,6 @@ request-promise-core@1.1.3: dependencies: lodash "^4.17.15" -request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== - dependencies: - request-promise-core "1.1.2" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - request-promise-native@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" @@ -10995,6 +11547,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-dependency-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz#11700e340717b865d216c66cabeb4a2a3c696736" @@ -11039,6 +11598,13 @@ resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, dependencies: path-parse "^1.0.6" +resolve@^1.14.1, resolve@^1.15.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + resolve@~1.7.1: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" @@ -11112,6 +11678,13 @@ rimraf@^3.0.0: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -11193,11 +11766,6 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" -run-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" - integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== - run-parallel@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" @@ -11273,6 +11841,13 @@ sax@>=0.6.0, sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + sc-auth@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/sc-auth/-/sc-auth-5.0.2.tgz#a9ac421fb30f127089dbf8b0f26b2601e009b0dc" @@ -11346,24 +11921,37 @@ scc-broker-client@^6.1.0: skeleton-rendezvous "^1.1.1" socketcluster-client "^14.2.1" +schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: - semver "^5.0.3" + semver "^6.3.0" + +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== semver-utils@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11373,20 +11961,20 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= -semver@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" - integrity sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A== +semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== semver@~5.3.0: version "5.3.0" @@ -11478,15 +12066,15 @@ simple-git@^1.126.0: dependencies: debug "^4.0.1" -sinon@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.0.0.tgz#9f1ed502fa2e287e65220de08f6a44f33e314006" - integrity sha512-c4bREcvuK5VuEGyMW/Oim9I3Rq49Vzb0aMdxouFaA44QCFpilc5LJOugrX+mkrvikbqCimxuK+4cnHVNnLR41g== +sinon@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.0.1.tgz#dbb18f7d8f5835bcf91578089c0a97b2fffdd73b" + integrity sha512-iTTyiQo5T94jrOx7X7QLBZyucUJ2WvL9J13+96HMfm2CGoJYbIPqRfl6wgNcqmzk0DI28jeGx5bUTXizkrqBmg== dependencies: "@sinonjs/commons" "^1.7.0" "@sinonjs/fake-timers" "^6.0.0" - "@sinonjs/formatio" "^5.0.0" - "@sinonjs/samsam" "^5.0.1" + "@sinonjs/formatio" "^5.0.1" + "@sinonjs/samsam" "^5.0.3" diff "^4.0.2" nise "^4.0.1" supports-color "^7.1.0" @@ -11545,6 +12133,11 @@ smart-buffer@4.0.2: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" integrity sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw== +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -11631,6 +12224,23 @@ socks-proxy-agent@^4.0.0: agent-base "~4.2.1" socks "~2.3.2" +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + dependencies: + agent-base "6" + debug "4" + socks "^2.3.3" + +socks@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + socks@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" @@ -11695,6 +12305,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sourcemap-codec@^1.4.4: version "1.4.6" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" @@ -11786,12 +12401,11 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0, ssri@^7.0.1, ssri@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" stack-utils@^1.0.1: @@ -11827,6 +12441,13 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" +stream-events@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" + integrity sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg== + dependencies: + stubs "^3.0.0" + stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -11839,18 +12460,18 @@ stream@^0.0.2: dependencies: emitter-component "^1.1.1" -string-argv@^0.3.0: +string-argv@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== dependencies: astral-regex "^1.0.0" - strip-ansi "^4.0.0" + strip-ansi "^5.2.0" string-width@^1.0.1: version "1.0.2" @@ -11878,7 +12499,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0: +string-width@^4.0.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -12026,6 +12647,11 @@ strong-log-transformer@^2.0.0: minimist "^1.2.0" through "^2.3.4" +stubs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stubs/-/stubs-3.0.0.tgz#e8d2ba1fa9c90570303c030b6900f7d5f89abe5b" + integrity sha1-6NK6H6nJBXAwPAMLaQD31fiavls= + stylus-lookup@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-3.0.2.tgz#c9eca3ff799691020f30b382260a67355fefdddd" @@ -12053,7 +12679,7 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== @@ -12068,6 +12694,14 @@ supports-hyperlinks@^1.0.1: has-flag "^2.0.0" supports-color "^5.0.0" +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" @@ -12132,19 +12766,7 @@ tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-5.0.5.tgz#03fcdb7105bc8ea3ce6c86642b9c942495b04f93" - integrity sha512-MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ== - dependencies: - chownr "^1.1.3" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.0" - mkdirp "^0.5.0" - yallist "^4.0.0" - -tar@^6.0.0: +tar@^6.0.0, tar@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.1.tgz#7b3bd6c313cb6e0153770108f8d70ac298607efa" integrity sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q== @@ -12156,13 +12778,15 @@ tar@^6.0.0: mkdirp "^1.0.3" yallist "^4.0.0" -teeny-request@^3.11.3: - version "3.11.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" - integrity sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw== +teeny-request@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-6.0.1.tgz#9b1f512cef152945827ba7e34f62523a4ce2c5b0" + integrity sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g== dependencies: - https-proxy-agent "^2.2.1" + http-proxy-agent "^4.0.0" + https-proxy-agent "^4.0.0" node-fetch "^2.2.0" + stream-events "^1.0.5" uuid "^3.3.2" temp-dir@^1.0.0: @@ -12187,18 +12811,19 @@ temp@~0.4.0: resolved "https://registry.yarnpkg.com/temp/-/temp-0.4.0.tgz#671ad63d57be0fe9d7294664b3fc400636678a60" integrity sha1-ZxrWPVe+D+nXKUZks/xABjZnimA= -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - term-size@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.1.0.tgz#3aec444c07a7cf936e157c1dc224b590c3c7eef2" integrity sha512-I42EWhJ+2aeNQawGx1VtpO0DFI9YcfuvAMNIdKyf/6sRbHJ4P+ZQ/zIT87tE+ln1ymAGcCJds4dolfSAS0AcNg== +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser@^4.1.0: version "4.3.9" resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" @@ -12208,15 +12833,14 @@ terser@^4.1.0: source-map "~0.6.1" source-map-support "~0.5.12" -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: - glob "^7.1.3" + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" text-extensions@^1.0.0: version "1.9.0" @@ -12252,10 +12876,10 @@ thirty-two@^1.0.2: resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a" integrity sha1-TKL//AKlEpDSdEueP1V2k8prYno= -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== through2@^2.0.0, through2@^2.0.2: version "2.0.5" @@ -12361,7 +12985,7 @@ touch@0.0.3: dependencies: nopt "~1.0.10" -tough-cookie@^2.3.3, tough-cookie@^2.3.4: +tough-cookie@^2.3.3: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== @@ -12369,6 +12993,15 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -12414,10 +13047,10 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= -ts-jest@^24.2.0: - version "24.2.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.2.0.tgz#7abca28c2b4b0a1fdd715cd667d65d047ea4e768" - integrity sha512-Yc+HLyldlIC9iIK8xEN7tV960Or56N49MDP7hubCZUeI7EbIOTsas6rXCMB4kQjLACJ7eDOF4xWEO5qumpKsag== +ts-jest@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d" + integrity sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A== dependencies: bs-logger "0.x" buffer-from "1.x" @@ -12428,7 +13061,7 @@ ts-jest@^24.2.0: mkdirp "0.x" resolve "1.x" semver "^5.5" - yargs-parser "10.x" + yargs-parser "^16.1.0" tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.10.0" @@ -12461,7 +13094,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@4.0.8, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -12508,30 +13141,27 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typedoc-default-themes@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.8.0.tgz#991d6121d492e662eb371f30edc982440fe04a63" - integrity sha512-0bzAjVEX6ClhE3jLRdU7vR8Fsfbt4ZcPa+gkqyAVgTlQ1fLo/7AkCbTP+hC5XAiByDfRfsAGqj9y6FNjJh0p4A== +typedoc-default-themes@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.9.0.tgz#170132ddcdfb10823a0b006b0e084ebd4acb540c" + integrity sha512-ExfIAg3EjZvWnnDsv2wQcZ9I8Lnln643LsfV05BrRGcIMSYPuavils96j4yGXiBYUzldIYw3xmZ7rsdqWfDunQ== dependencies: - backbone "^1.4.0" - jquery "^3.4.1" lunr "^2.3.8" - underscore "^1.9.2" -typedoc@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.17.0.tgz#25dcd68d51e7bdb04af3cd1a3fd591d23d9886df" - integrity sha512-HviZ/SLDPAgJdYqaCor+7rmJnM80Ra2oI0Nj+L/sOIBvh9pY1aCzDtSg3p3n4cgqCmvGu6O90fvMQyjEvlqM+g== +typedoc@^0.17.3: + version "0.17.3" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.17.3.tgz#cd5b598f851a41a90d82b7651da35e62cf4fa0e4" + integrity sha512-sCKyLeXMUYHyul0kd/jSGSGY+o7lfLvbNlnp8kAamQSLPp/f4EOOR50JGjwfYEQkEeETWMXILdU4UUXS42MmSQ== dependencies: fs-extra "^8.1.0" - handlebars "^4.7.2" - highlight.js "^9.17.1" + handlebars "^4.7.3" + highlight.js "^9.18.1" lodash "^4.17.15" - marked "^0.8.0" + marked "0.8.0" minimatch "^3.0.0" progress "^2.0.3" shelljs "^0.8.3" - typedoc-default-themes "^0.8.0" + typedoc-default-themes "^0.9.0" typeforce@^1.11.5: version "1.18.0" @@ -12599,16 +13229,6 @@ umask@^1.1.0: resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= -underscore@>=1.8.3: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -underscore@^1.9.2: - version "1.9.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.2.tgz#0c8d6f536d6f378a5af264a72f7bec50feb7cf2f" - integrity sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ== - unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -12622,10 +13242,10 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: version "1.0.5" @@ -12661,12 +13281,12 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: - crypto-random-string "^1.0.0" + crypto-random-string "^2.0.0" universal-user-agent@^4.0.0: version "4.0.0" @@ -12688,28 +13308,29 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.0: +upath@^1.1.0, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-notifier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" - integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== +update-notifier@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" + integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== dependencies: - boxen "^3.0.0" - chalk "^2.0.1" - configstore "^4.0.0" + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" has-yarn "^2.1.0" import-lazy "^2.1.0" is-ci "^2.0.0" - is-installed-globally "^0.1.0" - is-npm "^3.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" is-yarn-global "^0.3.0" latest-version "^5.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" upper-case@^1.1.1: version "1.1.3" @@ -12735,7 +13356,7 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -urlgrey@^0.4.4: +urlgrey@0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" integrity sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8= @@ -12757,7 +13378,7 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0, util.promisify@~1.0.0: +util.promisify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== @@ -12780,11 +13401,25 @@ uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== +uuid@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.2.tgz#7ff5c203467e91f5e0d85cfcbaaf7d2ebbca9be6" + integrity sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw== + v8-compile-cache@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +v8-to-istanbul@^4.0.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20" + integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -12817,6 +13452,14 @@ vue-template-compiler@^2.6.10: de-indent "^1.0.2" he "^1.1.0" +vue-template-compiler@^2.6.11: + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" @@ -12824,6 +13467,15 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + walkdir@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" @@ -12848,27 +13500,18 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-url@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" @@ -12883,7 +13526,12 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.9, which@^1.3.0, which@^1.3.1: +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@1, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12897,6 +13545,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -12904,7 +13559,7 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0, widest-line@^2.0.1: +widest-line@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== @@ -12973,20 +13628,20 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" @@ -13064,17 +13719,15 @@ ws@7.1.0: dependencies: async-limiter "^1.0.0" -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" +ws@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xml-name-validator@^3.0.0: version "3.0.0" @@ -13095,6 +13748,11 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xstate@^4.6.7: version "4.7.8" resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.7.8.tgz#a12ae521b105711b06cf95ab2652c1640d75d62d" @@ -13115,11 +13773,6 @@ y18n@^4.0.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -13130,6 +13783,13 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.7.2: + version "1.8.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a" + integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw== + dependencies: + "@babel/runtime" "^7.8.7" + yargonaut@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" @@ -13139,7 +13799,7 @@ yargonaut@^1.1.2: figlet "^1.1.1" parent-require "^1.0.0" -yargs-parser@10.x, yargs-parser@^10.0.0: +yargs-parser@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== @@ -13162,6 +13822,14 @@ yargs-parser@^15.0.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.0.0.tgz#cb32a77e173f7ab758fe32b8a498b16433fc977e" @@ -13170,7 +13838,15 @@ yargs-parser@^18.0.0: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^13.0.0, yargs@^13.2.1, yargs@^13.3.0: +yargs-parser@^18.1.1: + version "18.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" + integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.0.0, yargs@^13.2.1: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== @@ -13219,3 +13895,20 @@ yargs@^14.2.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^15.0.0" + +yargs@^15.0.2, yargs@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" + integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.1"