From 672807cebdda7fc336637ec64ad99a1e8f72999e Mon Sep 17 00:00:00 2001 From: Maksim Daunarovich Date: Sat, 22 May 2021 00:23:27 +0300 Subject: [PATCH] Promisify emulator process (#26) * Promisify emulator * Remove console.log * Allow to specify emulator ports * Directly set access api port * Add Prettier config * Add jest refactor package.json * Add docstrings to emulator methods * Add Jest assertion methods * Export new modules. Prettify. * Set es6 flag to true * Update files with missing headers * Fix eslint config * Add prettify script. Update lock file * Specify config for Prettier * Update documentation * Update prettier config * Update documentation * Bump version --- .eslintrc.js | 3 +- .prettierrc.json | 9 + docs/api.md | 124 +++-- docs/examples/basic.md | 4 +- docs/examples/metadata.md | 2 + package-lock.json | 1036 ++----------------------------------- package.json | 6 +- src/index.js | 18 +- src/utils/emulator.js | 110 ++++ src/utils/init-manager.js | 4 +- src/utils/init.js | 12 +- src/utils/jest-asserts.js | 73 +++ 12 files changed, 342 insertions(+), 1059 deletions(-) create mode 100644 .prettierrc.json create mode 100644 src/utils/emulator.js create mode 100644 src/utils/jest-asserts.js diff --git a/.eslintrc.js b/.eslintrc.js index fd3c73e8..90174cee 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,8 +1,9 @@ module.exports = { + extends: ["eslint:recommended", "plugin:jest/recommended"], env: { node: true, + es6: true }, - extends: ["eslint:recommended", "plugin:jest/recommended"], parserOptions: { ecmaVersion: 12, sourceType: "module", diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..c61bb0f0 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "printWidth": 100, + "endOfLine": "lf", + "semi": true, + "useTabs": false, + "singleQuote": false, + "trailingComma": "es5", + "tabWidth": 2 +} diff --git a/docs/api.md b/docs/api.md index f4eb898b..dafed608 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,24 +1,89 @@ # Table of Contents + +- [Init](#init) +- [Emulator](#emulator) + - [start](#emulator.start) + - [stop](#emulator.stop) - [Accounts](#accounts) - - [getAccountAddress](#getaccountaddressname) + - [getAccountAddress](#getaccountaddressname) - [Contracts](#contracts) - - [deployContractByName](#deploycontractbynameprops) - - [deployContract](#deploycontractbynameprops) - - [getContractAddress](#getcontractaddressname-usedefaults--false) + - [deployContractByName](#deploycontractbynameprops) + - [deployContract](#deploycontractbynameprops) + - [getContractAddress](#getcontractaddressname-usedefaults--false) - [Cadence Code Templates](#cadence-code-templates) - - [getTemplate](#gettemplatefile-addressmap---byaddress--false) - - [getContractCode](#getcontractcodename-addressmap---service--false) - - [getTransactionCode](#gettransactioncodename-addressmap---service--false) - - [getScriptCode](#getscriptcodename-addressmap---service--false) + - [getTemplate](#gettemplatefile-addressmap---byaddress--false) + - [getContractCode](#getcontractcodename-addressmap---service--false) + - [getTransactionCode](#gettransactioncodename-addressmap---service--false) + - [getScriptCode](#getscriptcodename-addressmap---service--false) - [Send and Execute](#send-and-execute) - - [sendTransaction](#sendtransactionprops) - - [executeScript](#executescriptprops) + - [sendTransaction](#sendtransactionprops) + - [executeScript](#executescriptprops) - [FlowToken](#flowtoken) - - [getFlowBalance](#getflowbalanceaddress) - - [mintFlow](#mintflowrecipient-amount) - + - [getFlowBalance](#getflowbalanceaddress) + - [mintFlow](#mintflowrecipient-amount) + --- +## Init + +### init(basePath, port) + +Initializes framework variables and specifies port to use for HTTP and grpc access. +`port` is set to 8080 by default. grpc port is calculated to `3569 + (port - 8080)` to allow multiple instances +of emulator to be run in parallel + +- `basePath` - path to the folder, with Cadence template files +- `port` - http port to use for access node + +```javascript +import path from "path"; +import { init } from "js-testing-framework"; + +describe("test setup", () => { + beforeEach(async (done) => { + const basePath = path.resolve(__dirname, "../cadence"); + init(basePath); + + // alternatively you can pass specific port + // init(basePath, 8085) + + done(); + }); +}); +``` + +## Emulator + +### emulator.start + +Starts emulator on specified port. + +- `port` - number representing a port to use for access API +- `logging` - whether log messages from emulator shall be added to the output + +### emulator.stop + +Stops emulator instance. + +```javascript +describe("test setup", () => { + // Instantiate emulator and path to Cadence files + beforeEach(async (done) => { + const basePath = path.resolve(__dirname, "../cadence"); + const port = 8080; + init(basePath, port); + await emulator.start(port, false); + done(); + }); + + // Stop emulator, so it could be restarted + afterEach(async (done) => { + await emulator.stop(); + done(); + }); +}); +``` + ## Accounts ### getAccountAddress(name) @@ -29,7 +94,7 @@ Next time when you call this method, it will grab exactly the same account. This and then use them throughout your code, without worrying that accounts match or trying to store/handle specific addresses. ```javascript -import { getAccountAddress } from "flow-js-testing/dist"; +import { getAccountAddress } from "flow-js-testing"; const main = async () => { const Alice = await getAccountAddress("Alice"); @@ -58,7 +123,7 @@ Usage: ```javascript import path from "path"; -import { init, deployContractByName } from "flow-js-testing/dist"; +import { init, deployContractByName } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -93,7 +158,7 @@ Usage: ```javascript import path from "path"; -import { deployContract } from "flow-js-testing/dist"; +import { deployContract } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -133,7 +198,7 @@ Returns address of the account, where contract is currently deployed. > Though if you don't pass second argument, you can override contracts deployed by default. ```javascript -import { getContractAddress } from "flow-js-testing/dist"; +import { getContractAddress } from "flow-js-testing"; const main = async () => { const contract = await getContractAddress("HelloWorld"); @@ -157,7 +222,7 @@ Returns Cadence template as string with addresses replaced using addressMap ```javascript import path from "path"; -import { init, getTemplate } from "flow-js-testing/dist"; +import { init, getTemplate } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -178,7 +243,7 @@ Returns Cadence template from file with `name` in `_basepath/contracts` folder ```javascript import path from "path"; -import { init, getContractCode } from "flow-js-testing/dist"; +import { init, getContractCode } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -206,7 +271,7 @@ Returns Cadence template from file with `name` in `_basepath/transactions` folde ```javascript import path from "path"; -import { init, getTransactionCode } from "flow-js-testing/dist"; +import { init, getTransactionCode } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -235,7 +300,7 @@ Returns Cadence template from file with `name` in `_basepath/scripts` folder ```javascript import path from "path"; -import { init, getScriptCode } from "flow-js-testing/dist"; +import { init, getScriptCode } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -259,12 +324,7 @@ If you don't have any contract dependencies, you can use those methods without s ```javascript import path from "path"; -import { - init, - getContractCode, - getTransactionCode, - getScriptCode, -} from "flow-js-testing/dist"; +import { init, getContractCode, getTransactionCode, getScriptCode } from "flow-js-testing"; const main = async () => { init(path.resolve(__dirname, "../cadence")); @@ -296,7 +356,7 @@ Usage: ```javascript import { Int, UFix64 } from "@onflow/types"; -import { deployContract } from "flow-js-testing/dist"; +import { deployContract } from "flow-js-testing"; const main = async () => { // Get signers adresses @@ -349,7 +409,7 @@ Props object accepts following fields: ```javascript import { Int, UFix64 } from "@onflow/types"; -import { deployContract } from "flow-js-testing/dist"; +import { deployContract } from "flow-js-testing"; const main = async () => { // Read or create script code @@ -396,7 +456,7 @@ Returns current FlowToken balance of account specified by address Usage: ```javascript -import { getFlowBalance } from "flow-js-testing/dist"; +import { getFlowBalance } from "flow-js-testing"; const main = async () => { const Alice = await getAccountAddress("Alice"); @@ -420,7 +480,7 @@ Sends transaction to mint specified amount of FlowToken and send it to recipient - `amount` - amount to mint and send ```javascript -import { mintFlow } from "flow-js-testing/dist"; +import { mintFlow } from "flow-js-testing"; const main = async () => { const Alice = await getAccountAddress("Alice"); @@ -434,4 +494,4 @@ const main = async () => { }; main(); -``` \ No newline at end of file +``` diff --git a/docs/examples/basic.md b/docs/examples/basic.md index 83cb742b..4e4d21ac 100644 --- a/docs/examples/basic.md +++ b/docs/examples/basic.md @@ -1,4 +1,5 @@ # Basic usage + Before using any of the methods you need to `init` the framework, basically telling where you Cadence code will live. In example below, we put all the Cadence code in the folder named `cadence` one level above the place where your test script is located. @@ -11,6 +12,7 @@ Let's create `deploy.test.js` file and write some basic test, which would create ```javascript import path from "path"; +import { getAccountAddress } from "flow-js-testing"; const basePath = path.resolve(__dirname, "../cadence"); @@ -35,4 +37,4 @@ describe("Accounts", () => { }); ``` -Run emulator with `flow emulator -v` and then in another terminal run `jest` \ No newline at end of file +Run emulator with `flow emulator -v` and then in another terminal run `jest` diff --git a/docs/examples/metadata.md b/docs/examples/metadata.md index 8d721ce1..14281b32 100644 --- a/docs/examples/metadata.md +++ b/docs/examples/metadata.md @@ -3,6 +3,8 @@ In this example we will pass `{String:String}` dictionary and log it out. ```javascript import path from "path"; +import * as t from "@onflow/types" +import { init, executeScript } from "flow-js-testing" const basePath = path.resolve(__dirname, "../cadence"); diff --git a/package-lock.json b/package-lock.json index cfc4914d..42f0bb80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "flow-js-testing", - "version": "0.1.8-beta.0", + "version": "0.1.8-beta.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.1.8-beta.0", + "version": "0.1.8-beta.1", "license": "Apache-2.0", "dependencies": { "@onflow/config": "0.0.2", @@ -68,10 +68,6 @@ }, "engines": { "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" } }, "node_modules/@babel/core/node_modules/semver": { @@ -123,9 +119,6 @@ "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { @@ -149,9 +142,6 @@ "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-replace-supers": "^7.14.3", "@babel/helper-split-export-declaration": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { @@ -162,9 +152,6 @@ "dependencies": { "@babel/helper-annotate-as-pure": "^7.12.13", "regexpu-core": "^4.7.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { @@ -181,9 +168,6 @@ "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" } }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { @@ -400,9 +384,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-proposal-optional-chaining": "^7.13.12" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { @@ -414,9 +395,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-remap-async-to-generator": "^7.13.0", "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-properties": { @@ -427,9 +405,6 @@ "dependencies": { "@babel/helper-create-class-features-plugin": "^7.13.0", "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-static-block": { @@ -441,9 +416,6 @@ "@babel/helper-create-class-features-plugin": "^7.14.3", "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-class-static-block": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" } }, "node_modules/@babel/plugin-proposal-dynamic-import": { @@ -454,9 +426,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { @@ -467,9 +436,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-json-strings": { @@ -480,9 +446,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { @@ -493,9 +456,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { @@ -506,9 +466,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-numeric-separator": { @@ -519,9 +476,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { @@ -535,9 +489,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { @@ -548,9 +499,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-chaining": { @@ -562,9 +510,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-methods": { @@ -575,9 +520,6 @@ "dependencies": { "@babel/helper-create-class-features-plugin": "^7.13.0", "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { @@ -590,9 +532,6 @@ "@babel/helper-create-class-features-plugin": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-private-property-in-object": "^7.14.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { @@ -606,9 +545,6 @@ }, "engines": { "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { @@ -618,9 +554,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-bigint": { @@ -630,9 +563,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-properties": { @@ -642,9 +572,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-static-block": { @@ -654,9 +581,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-dynamic-import": { @@ -666,9 +590,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-export-namespace-from": { @@ -678,9 +599,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-flow": { @@ -690,9 +608,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-meta": { @@ -702,9 +617,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { @@ -714,9 +626,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-jsx": { @@ -726,9 +635,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { @@ -738,9 +644,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { @@ -750,9 +653,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { @@ -762,9 +662,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-object-rest-spread": { @@ -774,9 +671,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { @@ -786,9 +680,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { @@ -798,9 +689,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { @@ -810,9 +698,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-top-level-await": { @@ -822,9 +707,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { @@ -834,9 +716,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { @@ -848,9 +727,6 @@ "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-remap-async-to-generator": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { @@ -860,9 +736,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { @@ -872,9 +745,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-classes": { @@ -890,9 +760,6 @@ "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-computed-properties": { @@ -902,9 +769,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { @@ -914,9 +778,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { @@ -927,9 +788,6 @@ "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { @@ -939,9 +797,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { @@ -952,9 +807,6 @@ "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-flow-strip-types": { @@ -965,9 +817,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-flow": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { @@ -977,9 +826,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { @@ -990,9 +836,6 @@ "dependencies": { "@babel/helper-function-name": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { @@ -1002,9 +845,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { @@ -1014,9 +854,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { @@ -1028,9 +865,6 @@ "@babel/helper-module-transforms": "^7.14.2", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { @@ -1043,9 +877,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { @@ -1059,9 +890,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-identifier": "^7.12.11", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { @@ -1072,9 +900,6 @@ "dependencies": { "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { @@ -1084,9 +909,6 @@ "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { @@ -1096,9 +918,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-super": { @@ -1109,9 +928,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.12.13", "@babel/helper-replace-supers": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-parameters": { @@ -1121,9 +937,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-property-literals": { @@ -1133,9 +946,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-display-name": { @@ -1145,9 +955,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx": { @@ -1161,9 +968,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-jsx": "^7.12.13", "@babel/types": "^7.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-jsx-development": { @@ -1173,9 +977,6 @@ "dev": true, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.12.17" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { @@ -1186,9 +987,6 @@ "dependencies": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-regenerator": { @@ -1198,9 +996,6 @@ "dev": true, "dependencies": { "regenerator-transform": "^0.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-reserved-words": { @@ -1210,9 +1005,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { @@ -1222,9 +1014,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-spread": { @@ -1235,9 +1024,6 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { @@ -1247,9 +1033,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-template-literals": { @@ -1259,9 +1042,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { @@ -1271,9 +1051,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { @@ -1283,9 +1060,6 @@ "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { @@ -1296,9 +1070,6 @@ "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.12.13", "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-env": { @@ -1380,9 +1151,6 @@ "babel-plugin-polyfill-regenerator": "^0.2.0", "core-js-compat": "^3.9.0", "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-env/node_modules/semver": { @@ -1403,9 +1171,6 @@ "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-transform-flow-strip-types": "^7.13.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-modules": { @@ -1433,9 +1198,6 @@ "@babel/plugin-transform-react-jsx": "^7.13.12", "@babel/plugin-transform-react-jsx-development": "^7.12.17", "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/runtime": { @@ -1536,9 +1298,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { @@ -1556,18 +1315,12 @@ "integrity": "sha512-uJjgMPngreRTYPBuo6gswMj1gK39Wbqre/RgE0XnSDXJRg6ST7ZhuS53dFE6Vc2CX4jxgl+cO+0B3op8LA4Q0Q==", "dependencies": { "browser-headers": "^0.4.0" - }, - "peerDependencies": { - "google-protobuf": "^3.2.0" } }, "node_modules/@improbable-eng/grpc-web-node-http-transport": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.12.0.tgz", - "integrity": "sha512-+Kjz+Dktfz5LKTZA9ZW/Vlww6HF9KaKz4x2mVe1O8CJdOP2WfzC+KY8L6EWMqVLrV4MvdBuQdSgDmvSJz+OGuA==", - "peerDependencies": { - "@improbable-eng/grpc-web": ">=0.7.0" - } + "integrity": "sha512-+Kjz+Dktfz5LKTZA9ZW/Vlww6HF9KaKz4x2mVe1O8CJdOP2WfzC+KY8L6EWMqVLrV4MvdBuQdSgDmvSJz+OGuA==" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -1621,9 +1374,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/console/node_modules/chalk": { @@ -1637,9 +1387,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/console/node_modules/color-convert": { @@ -1739,9 +1486,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/core/node_modules/braces": { @@ -1767,9 +1511,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/core/node_modules/color-convert": { @@ -1960,9 +1701,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/reporters/node_modules/chalk": { @@ -1976,9 +1714,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/reporters/node_modules/color-convert": { @@ -2128,9 +1863,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/transform/node_modules/braces": { @@ -2156,9 +1888,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/transform/node_modules/color-convert": { @@ -2290,9 +2019,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/types/node_modules/chalk": { @@ -2306,9 +2032,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@jest/types/node_modules/color-convert": { @@ -3024,9 +2747,6 @@ }, "engines": { "node": ">=8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, "node_modules/@rollup/plugin-alias/node_modules/slash": { @@ -3049,16 +2769,6 @@ }, "engines": { "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } } }, "node_modules/@rollup/plugin-commonjs": { @@ -3077,9 +2787,6 @@ }, "engines": { "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^2.30.0" } }, "node_modules/@rollup/plugin-json": { @@ -3089,9 +2796,6 @@ "dev": true, "dependencies": { "@rollup/pluginutils": "^3.0.8" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" } }, "node_modules/@rollup/plugin-node-resolve": { @@ -3109,9 +2813,6 @@ }, "engines": { "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, "node_modules/@rollup/pluginutils": { @@ -3126,9 +2827,6 @@ }, "engines": { "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, "node_modules/@rollup/pluginutils/node_modules/@types/estree": { @@ -3322,13 +3020,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" } }, "node_modules/@typescript-eslint/scope-manager": { @@ -3342,10 +3033,6 @@ }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/types": { @@ -3355,10 +3042,6 @@ "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/typescript-estree": { @@ -3377,15 +3060,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { @@ -3414,10 +3088,6 @@ }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/abab": { @@ -3452,10 +3122,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "dev": true }, "node_modules/acorn-walk": { "version": "7.2.0", @@ -3503,9 +3170,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { @@ -3683,13 +3347,6 @@ }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/aws-sign2": { @@ -3724,9 +3381,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/babel-jest/node_modules/ansi-styles": { @@ -3739,9 +3393,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/babel-jest/node_modules/chalk": { @@ -3755,9 +3406,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/babel-jest/node_modules/color-convert": { @@ -3872,9 +3520,6 @@ "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.2.0", "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { @@ -3894,9 +3539,6 @@ "dependencies": { "@babel/helper-define-polyfill-provider": "^0.2.0", "core-js-compat": "^3.9.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { @@ -3906,9 +3548,6 @@ "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.2.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-transform-async-to-promises": { @@ -3924,9 +3563,6 @@ "dev": true, "dependencies": { "@babel/parser": "^7.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -3947,9 +3583,6 @@ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/babel-preset-jest": { @@ -3963,9 +3596,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/balanced-match": { @@ -4006,21 +3636,7 @@ "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", @@ -4126,10 +3742,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bser": { @@ -4145,20 +3757,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -4177,9 +3775,6 @@ "dev": true, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cache-base": { @@ -4210,9 +3805,6 @@ "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/caller-callsite": { @@ -4282,11 +3874,7 @@ "version": "1.0.30001228", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "dev": true }, "node_modules/capture-exit": { "version": "2.0.0", @@ -4607,10 +4195,6 @@ "dependencies": { "browserslist": "^4.16.6", "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat/node_modules/semver": { @@ -4657,9 +4241,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cosmiconfig/node_modules/path-type": { @@ -4721,10 +4302,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/css-declaration-sorter/node_modules/source-map": { @@ -4795,9 +4372,6 @@ "dev": true, "engines": { "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { @@ -4880,10 +4454,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/cssnano-preset-default/node_modules/source-map": { @@ -4949,10 +4519,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/cssnano-util-raw-cache/node_modules/source-map": { @@ -5025,10 +4591,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/cssnano/node_modules/resolve-from": { @@ -5161,11 +4723,6 @@ }, "engines": { "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } } }, "node_modules/decamelize": { @@ -5306,13 +4863,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] + "dev": true }, "node_modules/domelementtype": { "version": "1.3.1", @@ -5406,9 +4957,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, "node_modules/emoji-regex": { @@ -5451,10 +4999,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } + "dev": true }, "node_modules/error-ex": { "version": "1.3.2", @@ -5490,9 +5035,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { @@ -5668,9 +5210,6 @@ }, "engines": { "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-plugin-jest": { @@ -5683,15 +5222,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">= 4", - "eslint": ">=5" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } } }, "node_modules/eslint-scope": { @@ -5825,9 +5355,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/has-flag": { @@ -5900,9 +5427,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/which": { @@ -6194,9 +5718,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/expect/node_modules/color-convert": { @@ -6459,9 +5980,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-cache-dir/node_modules/make-dir": { @@ -6474,9 +5992,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-cache-dir/node_modules/semver": { @@ -6597,7 +6112,6 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -6654,9 +6168,6 @@ "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-package-type": { @@ -6732,9 +6243,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby/node_modules/ignore": { @@ -6789,9 +6297,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gzip-size/node_modules/duplexer": { @@ -6813,7 +6318,6 @@ "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", "dev": true, "dependencies": { "ajv": "^6.12.3", @@ -6860,10 +6364,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/has-flag": { "version": "3.0.0", @@ -6881,9 +6382,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-value": { @@ -6951,9 +6449,9 @@ } }, "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/hsl-regex": { @@ -7026,29 +6524,12 @@ "dev": true, "engines": { "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "node_modules/ignore": { "version": "4.0.6", @@ -7082,9 +6563,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-fresh/node_modules/resolve-from": { @@ -7184,10 +6662,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/is-boolean-object": { "version": "1.1.1", @@ -7199,9 +6674,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { @@ -7217,9 +6689,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ci": { @@ -7255,9 +6724,6 @@ "dev": true, "dependencies": { "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { @@ -7315,9 +6781,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { @@ -7381,9 +6844,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { @@ -7405,9 +6865,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number/node_modules/kind-of": { @@ -7469,9 +6926,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-resolvable": { @@ -7496,9 +6950,6 @@ "dev": true, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { @@ -7634,9 +7085,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/istanbul-lib-report/node_modules/semver": { @@ -7759,9 +7207,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/jest-changed-files/node_modules/get-stream": { @@ -7774,9 +7219,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-changed-files/node_modules/human-signals": { @@ -7870,9 +7312,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-cli/node_modules/chalk": { @@ -7886,9 +7325,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-cli/node_modules/color-convert": { @@ -7957,14 +7393,6 @@ }, "engines": { "node": ">= 10.14.2" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } } }, "node_modules/jest-config/node_modules/ansi-styles": { @@ -7977,9 +7405,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-config/node_modules/braces": { @@ -8005,9 +7430,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-config/node_modules/color-convert": { @@ -8120,9 +7542,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-diff/node_modules/chalk": { @@ -8136,9 +7555,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-diff/node_modules/color-convert": { @@ -8218,9 +7634,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-each/node_modules/chalk": { @@ -8234,9 +7647,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-each/node_modules/color-convert": { @@ -8469,9 +7879,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-jasmine2/node_modules/chalk": { @@ -8485,9 +7892,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-jasmine2/node_modules/color-convert": { @@ -8567,9 +7971,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-matcher-utils/node_modules/chalk": { @@ -8583,9 +7984,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-matcher-utils/node_modules/color-convert": { @@ -8657,9 +8055,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-message-util/node_modules/braces": { @@ -8685,9 +8080,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-message-util/node_modules/color-convert": { @@ -8804,14 +8196,6 @@ "dev": true, "engines": { "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } } }, "node_modules/jest-regex-util": { @@ -8866,9 +8250,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-resolve/node_modules/chalk": { @@ -8882,9 +8263,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-resolve/node_modules/color-convert": { @@ -8976,9 +8354,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-runner/node_modules/chalk": { @@ -8992,9 +8367,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-runner/node_modules/color-convert": { @@ -9087,9 +8459,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-runtime/node_modules/chalk": { @@ -9103,9 +8472,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-runtime/node_modules/color-convert": { @@ -9215,9 +8581,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-snapshot/node_modules/chalk": { @@ -9231,9 +8594,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-snapshot/node_modules/color-convert": { @@ -9317,9 +8677,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-util/node_modules/braces": { @@ -9345,9 +8702,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-util/node_modules/color-convert": { @@ -9462,9 +8816,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-validate/node_modules/camelcase": { @@ -9474,9 +8825,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-validate/node_modules/chalk": { @@ -9490,9 +8838,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-validate/node_modules/color-convert": { @@ -9562,9 +8907,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-watcher/node_modules/chalk": { @@ -9578,9 +8920,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/jest-watcher/node_modules/color-convert": { @@ -9717,14 +9056,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } } }, "node_modules/jsdom/node_modules/acorn": { @@ -9807,7 +9138,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "optionalDependencies": { + "dependencies": { "graceful-fs": "^4.1.6" } }, @@ -10215,9 +9546,6 @@ "dependencies": { "@babel/helper-create-class-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/microbundle/node_modules/camelcase": { @@ -10227,9 +9555,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/microbundle/node_modules/escape-string-regexp": { @@ -10239,9 +9564,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/microbundle/node_modules/kleur": { @@ -10772,10 +10094,7 @@ "version": "1.10.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "dev": true }, "node_modules/object-keys": { "version": "1.1.1", @@ -10811,9 +10130,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.getownpropertydescriptors": { @@ -10828,9 +10144,6 @@ }, "engines": { "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.pick": { @@ -10858,9 +10171,6 @@ }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/once": { @@ -10881,9 +10191,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { @@ -10910,9 +10217,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-finally": { @@ -10946,9 +10250,6 @@ }, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue": { @@ -10962,9 +10263,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-timeout": { @@ -11094,9 +10392,6 @@ "dev": true, "engines": { "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pidtree": { @@ -11156,10 +10451,6 @@ }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-calc": { @@ -11185,10 +10476,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-calc/node_modules/source-map": { @@ -11240,10 +10527,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-colormin/node_modules/postcss-value-parser": { @@ -11298,10 +10581,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { @@ -11355,10 +10634,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-discard-comments/node_modules/source-map": { @@ -11406,10 +10681,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-discard-duplicates/node_modules/source-map": { @@ -11457,10 +10728,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-discard-empty/node_modules/source-map": { @@ -11508,10 +10775,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-discard-overridden/node_modules/source-map": { @@ -11546,10 +10809,6 @@ }, "engines": { "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-merge-longhand": { @@ -11579,10 +10838,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { @@ -11641,10 +10896,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { @@ -11707,10 +10958,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { @@ -11767,10 +11014,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { @@ -11829,10 +11072,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { @@ -11889,10 +11128,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { @@ -11944,9 +11179,6 @@ "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "string-hash": "^1.1.1" - }, - "peerDependencies": { - "postcss": "^8.0.0" } }, "node_modules/postcss-modules-extract-imports": { @@ -11956,9 +11188,6 @@ "dev": true, "engines": { "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/postcss-modules-local-by-default": { @@ -11973,9 +11202,6 @@ }, "engines": { "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/postcss-modules-scope": { @@ -11988,9 +11214,6 @@ }, "engines": { "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/postcss-modules-values": { @@ -12003,9 +11226,6 @@ }, "engines": { "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" } }, "node_modules/postcss-normalize-charset": { @@ -12032,10 +11252,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-charset/node_modules/source-map": { @@ -12085,10 +11301,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { @@ -12145,10 +11357,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { @@ -12205,10 +11413,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { @@ -12264,10 +11468,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { @@ -12323,10 +11523,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { @@ -12382,10 +11578,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { @@ -12442,10 +11634,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { @@ -12500,10 +11688,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { @@ -12559,10 +11743,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { @@ -12619,10 +11799,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-reduce-initial/node_modules/source-map": { @@ -12673,10 +11849,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { @@ -12745,10 +11917,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-svgo/node_modules/postcss-value-parser": { @@ -12804,10 +11972,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-unique-selectors/node_modules/source-map": { @@ -12865,9 +12029,6 @@ "dev": true, "engines": { "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pretty-format": { @@ -12895,9 +12056,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/pretty-format/node_modules/color-convert": { @@ -13039,9 +12197,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/parse-json": { @@ -13057,9 +12212,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/read-pkg-up/node_modules/read-pkg": { @@ -13247,7 +12399,6 @@ "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -13285,16 +12436,12 @@ }, "engines": { "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" } }, "node_modules/request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { "request-promise-core": "1.1.4", @@ -13303,9 +12450,6 @@ }, "engines": { "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" } }, "node_modules/request-promise-native/node_modules/tough-cookie": { @@ -13375,9 +12519,6 @@ "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-cwd": { @@ -13405,7 +12546,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/ret": { @@ -13563,9 +12703,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "postcss": "8.x" } }, "node_modules/rollup-plugin-postcss/node_modules/ansi-styles": { @@ -13578,9 +12715,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/rollup-plugin-postcss/node_modules/chalk": { @@ -13594,9 +12728,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/rollup-plugin-postcss/node_modules/color-convert": { @@ -13633,9 +12764,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/rollup-plugin-postcss/node_modules/supports-color": { @@ -13660,9 +12788,6 @@ "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" } }, "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { @@ -13685,10 +12810,6 @@ "fs-extra": "8.1.0", "resolve": "1.17.0", "tslib": "2.0.1" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" } }, "node_modules/rollup-plugin-typescript2/node_modules/resolve": { @@ -13698,9 +12819,6 @@ "dev": true, "dependencies": { "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/rollup-plugin-typescript2/node_modules/tslib": { @@ -13738,20 +12856,6 @@ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { "queue-microtask": "^1.2.2" } @@ -13760,21 +12864,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true }, "node_modules/sade": { "version": "1.7.4", @@ -14018,9 +13108,6 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/slice-ansi/node_modules/ansi-styles": { @@ -14033,9 +13120,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/slice-ansi/node_modules/color-convert": { @@ -14376,6 +13460,11 @@ "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, "engines": { "node": ">=0.10.0" } @@ -14566,9 +13655,6 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { @@ -14579,9 +13665,6 @@ "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/strip-ansi": { @@ -14630,9 +13713,6 @@ "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/style-inject": { @@ -14667,10 +13747,6 @@ }, "engines": { "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/stylehacks/node_modules/postcss-selector-parser": { @@ -14814,10 +13890,6 @@ "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/table/node_modules/json-schema-traverse": { @@ -14837,9 +13909,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/terser": { @@ -15050,9 +14119,6 @@ }, "engines": { "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tunnel-agent": { @@ -15101,9 +14167,6 @@ "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray-to-buffer": { @@ -15138,9 +14201,6 @@ "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -15286,7 +14346,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/use": { @@ -15314,9 +14373,6 @@ "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/uuid": { @@ -15372,11 +14428,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "dev": true }, "node_modules/verror": { "version": "1.10.0", @@ -15483,9 +14535,6 @@ "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { @@ -15527,9 +14576,6 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/color-convert": { @@ -15574,18 +14620,6 @@ "dev": true, "engines": { "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } } }, "node_modules/xml-name-validator": { @@ -16920,8 +15954,7 @@ "@improbable-eng/grpc-web-node-http-transport": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.12.0.tgz", - "integrity": "sha512-+Kjz+Dktfz5LKTZA9ZW/Vlww6HF9KaKz4x2mVe1O8CJdOP2WfzC+KY8L6EWMqVLrV4MvdBuQdSgDmvSJz+OGuA==", - "requires": {} + "integrity": "sha512-+Kjz+Dktfz5LKTZA9ZW/Vlww6HF9KaKz4x2mVe1O8CJdOP2WfzC+KY8L6EWMqVLrV4MvdBuQdSgDmvSJz+OGuA==" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -18530,8 +17563,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "7.2.0", @@ -21253,9 +20285,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "hsl-regex": { @@ -21315,8 +20347,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "ieee754": { "version": "1.2.1", @@ -22630,8 +21661,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} + "dev": true }, "jest-regex-util": { "version": "26.0.0", @@ -25037,8 +24067,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -27880,8 +26909,7 @@ "version": "7.4.5", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", - "dev": true, - "requires": {} + "dev": true }, "xml-name-validator": { "version": "3.0.0", diff --git a/package.json b/package.json index 34a29509..9b7d3766 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flow-js-testing", - "version": "0.1.8-beta.0", + "version": "0.1.9", "description": "This package will expose a set of utility methods, to allow Cadence code testing with libraries like Jest", "scripts": { "prepublishOnly": "npm test && npm run build", @@ -8,8 +8,8 @@ "copy-cadence-source": "sh ./copy.sh", "publish": "npm publish", "start": "microbundle watch", - "lint": "eslint -c .eslintrc.js src" - + "lint": "eslint -c .eslintrc.js src", + "prettify": "prettier --config ./.prettierrc.json --write ./src" }, "keywords": [ "flow", diff --git a/src/index.js b/src/index.js index 0364b957..ee74aa0c 100644 --- a/src/index.js +++ b/src/index.js @@ -16,12 +16,14 @@ * limitations under the License. */ -export { init } from "./utils/init"; -export { set, getConfigValue } from "./utils/config"; -export { getTemplate, getScriptCode, getContractCode, getTransactionCode } from "./utils/file"; -export { sendTransaction, executeScript } from "./utils/interaction"; -export { getFlowBalance, mintFlow } from "./utils/flow-token"; -export { deployContract, deployContractByName } from "./utils/deploy-code"; -export { getAccountAddress } from "./utils/account"; -export { getContractAddress } from "./utils/contract"; +export { init } from "./utils/init" +export { set, getConfigValue } from "./utils/config" +export { getTemplate, getScriptCode, getContractCode, getTransactionCode } from "./utils/file" +export { sendTransaction, executeScript } from "./utils/interaction" +export { getFlowBalance, mintFlow } from "./utils/flow-token" +export { deployContract, deployContractByName } from "./utils/deploy-code" +export { getAccountAddress } from "./utils/account" +export { getContractAddress } from "./utils/contract" export { extractImports, replaceImportAddresses } from "./utils/imports" +export { promise, shallPass, shallResolve, shallRevert } from "./utils/jest-asserts" +export { default as emulator } from "./utils/emulator" diff --git a/src/utils/emulator.js b/src/utils/emulator.js new file mode 100644 index 00000000..2a46541c --- /dev/null +++ b/src/utils/emulator.js @@ -0,0 +1,110 @@ +/* + * Flow JS Testing + * + * Copyright 2020 Dapper Labs, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { spawn } = require("child_process"); + +const DEFAULT_HTTP_PORT = 8080; +const DEFAULT_GRPC_PORT = 3569; + +/** Class representing emulator */ +class Emulator { + /** + * Create an emulator. + */ + constructor() { + this.initialized = false; + this.logging = true; + } + + /** + * Set logging flag. + * @param {boolean} logging - whether logs shall be printed + */ + setLogging(logging) { + this.logging = logging; + } + + /** + * Log message with a specific type. + * @param {*} message - message to put into log output + * @param {"log"|"error"} type - type of the message to output + */ + log(message, type = "log") { + this.logging && console[type](message); + } + + /** + * Start emulator. + * @param {number} port - port to use for accessApi + * @param {boolean} logging - whether logs shall be printed + * @returns Promise<*> + */ + async start(port = DEFAULT_HTTP_PORT, logging = false) { + const offset = port - DEFAULT_HTTP_PORT; + let grpc = DEFAULT_GRPC_PORT + offset; + + this.logging = logging; + this.process = spawn("flow", [ + "emulator", + "-v", + "--http-port", + port, + "--port", + grpc, + ]); + + return new Promise((resolve) => { + this.process.stdout.on("data", (data) => { + this.log(`LOG: ${data}`); + if (data.includes("Starting HTTP server")) { + this.log("EMULATOR IS UP! Listening for events!"); + this.initialized = true; + resolve(true); + } + }); + + this.process.stderr.on("data", (data) => { + this.log(`stderr: ${data}`, "error"); + this.initialized = false; + }); + + this.process.on("close", (code) => { + this.log(`emulator exited with code ${code}`); + this.initialized = false; + }); + }); + } + + /** + * Stop emulator. + * @returns Promise<*> + */ + async stop() { + // eslint-disable-next-line no-undef + return new Promise((resolve) => { + this.process.kill(); + setTimeout(() => { + this.initialized = false; + resolve(true); + }, 0); + }); + } +} + +/** Singleton instance */ +export default new Emulator(); diff --git a/src/utils/init-manager.js b/src/utils/init-manager.js index 5a8f4fcf..f13ddde0 100644 --- a/src/utils/init-manager.js +++ b/src/utils/init-manager.js @@ -37,12 +37,10 @@ export const initManager = async () => { const hexedContract = hexContract(contractCode); const args = [[hexedContract, t.String]]; - const txResult = await sendTransaction({ + await sendTransaction({ code, args, }); - - console.log({ txResult }); }; export const getServiceAddress = async () => { diff --git a/src/utils/init.js b/src/utils/init.js index 6081ebb1..d9e756db 100644 --- a/src/utils/init.js +++ b/src/utils/init.js @@ -17,13 +17,15 @@ */ import { set } from "./config"; +import { config } from "@onflow/config"; /** * Inits framework variables, storing private key of service account and base path * where Cadence files are stored. * @param {string} basePath - path to the folder with Cadence files to be tested. + * @param {number} port - port to use for accessAPI */ -export const init = async (basePath) => { +export const init = async (basePath, port = 8080) => { set("PRIVATE_KEY", process.env.PK, "accounts/emulator-account/keys"); set( "SERVICE_ADDRESS", @@ -31,12 +33,8 @@ export const init = async (basePath) => { "accounts/emulator-account/address", "f8d6e0586b0a20c7" ); - set( - "accessNode.api", - process.env.ACCESS_NODE, - "wallet/accessNode", - "http://localhost:8080" - ); + + config().put("accessNode.api", `http://localhost:${port}`); set("BASE_PATH", process.env.BASE_PATH, "resolve/basePath", basePath); }; diff --git a/src/utils/jest-asserts.js b/src/utils/jest-asserts.js new file mode 100644 index 00000000..05c4abdd --- /dev/null +++ b/src/utils/jest-asserts.js @@ -0,0 +1,73 @@ +/* + * Flow JS Testing + * + * Copyright 2020 Dapper Labs, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const { expect } = global + +/** +* Return Promise from passed interaction +* @param {function | Promise} ix - Promise or function to wrap +* @returns Promise<*> +* */ +export const promise = async (ix) => { + if (typeof ix === "function") { + return await ix() + } + return await ix +} + +/** + * Ensure transaction did not throw and sealed. + * @param {function | Promise} ix - Promise or function to wrap + * @returns Promise<*> - transaction result + * */ +export const shallPass = async (ix) => { + const tx = promise(ix) + await expect( + (async () => { + const { status, errorMessage } = await tx + expect(status).toBe(4) + expect(errorMessage).toBe("") + })() + ).resolves.not.toThrow() + + return tx +} + +/** + * Ensure interaction did not throw and return result of it + * @param {function | Promise} ix - Promise or function to wrap + * @returns Promise<*> - result of interaction + * */ +export const shallResolve = async (ix) => { + const wrappedInteraction = promise(ix) + await expect(promise(wrappedInteraction)).resolves.not.toThrow() + + return wrappedInteraction +} + +/** + * Ensure interaction throws an error. + * @param {function | Promise} ix - Promise or function to wrap + * @returns Promise<*> - result of interaction + * */ +export const shallRevert = async (ix) => { + const wrappedInteraction = promise(ix) + await expect(wrappedInteraction).rejects.not.toBe(null) + + return wrappedInteraction +}