diff --git a/CHANGELOG.md b/CHANGELOG.md index 08a26ed8f..6dde27ec9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file. The changelog format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [1.0.0] - Mar-16-2021 + +**Milestone**: Mainnet(1.0.0.0) + +| Package | Version | Link | +| ---------------- | ------- | ------------------------------------------------------------------ | +| Symbol Bootstrap | v1.0.0 | [symbol-bootstrap](https://www.npmjs.com/package/symbol-bootstrap) | + +- **New `mainnet` preset!!!** +- Removed node from its own `peers-p2p.json` and `peers-api.json` files. +- Voting keys are ephemeral. They cannot be provided, bootstrap will always generate a new one when resetting the configuration. Bootstrap will never store the voting private key in addresses.yml. +- Dropped `PROMPT_MAIN_VOTING` from `privateKeySecurityMode`. +- Added `PROMPT_MAIN_TRANSPORT` to `privateKeySecurityMode`: The transport/node key will be asked when regenerating the certificates or when upgrading a supernode. +- Changed server file permission to 0o600 + ## [0.4.5] - Mar-5-2021 **Milestone**: Hippopotamus(0.10.0.8) diff --git a/README.md b/README.md index 1f63be67c..74e26f168 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ $ npm install -g symbol-bootstrap $ symbol-bootstrap COMMAND running command... $ symbol-bootstrap (-v|--version|version) -symbol-bootstrap/0.4.5 linux-x64 node-v10.24.0 +symbol-bootstrap/1.0.0 linux-x64 node-v12.18.4 $ symbol-bootstrap --help [COMMAND] USAGE $ symbol-bootstrap COMMAND diff --git a/alpha.sh b/alpha.sh new file mode 100644 index 000000000..ee46f6d65 --- /dev/null +++ b/alpha.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e +. ./travis/node-functions.sh +VERSION="$(node_load_version)" +echo $VERSION +npm pack && /bin/bash travis/node-functions.sh node_publish_alpha +npm version "$VERSION" --commit-hooks false --git-tag-version false +npm run style:fix diff --git a/cmds/start-mainnet-dual.sh b/cmds/start-mainnet-dual.sh new file mode 100755 index 000000000..29423a976 --- /dev/null +++ b/cmds/start-mainnet-dual.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -e +symbol-bootstrap start -p mainnet -a dual -t target/mainnet-dual -c test/mainnet_preset.yml $1 $2 $3 diff --git a/config/docker/server/start.sh b/config/docker/server/start.sh index 2952d3f90..d01b95abb 100644 --- a/config/docker/server/start.sh +++ b/config/docker/server/start.sh @@ -32,6 +32,7 @@ echo "RUNNING $application $name $mode" export LD_LIBRARY_PATH=$catapultAppFolder/lib:$catapultAppFolder/deps ulimit -c unlimited +umask 077 rm -f "$dataDirectory/$application.started" rm -f "$dataDirectory/$application-recovery.started" diff --git a/config/node/resources/config-extensions-server.properties.mustache b/config/node/resources/config-extensions-server.properties.mustache index fea74efa7..0ea746d05 100644 --- a/config/node/resources/config-extensions-server.properties.mustache +++ b/config/node/resources/config-extensions-server.properties.mustache @@ -10,7 +10,6 @@ extension.mongo = false extension.zeromq = false # p2p extensions -extension.eventsource = false extension.harvesting = {{harvesting}} extension.syncsource = {{syncsource}} diff --git a/config/rest-gateway/rest.json.mustache b/config/rest-gateway/rest.json.mustache index a90886852..5054b8210 100644 --- a/config/rest-gateway/rest.json.mustache +++ b/config/rest-gateway/rest.json.mustache @@ -49,7 +49,8 @@ "port": {{{apiNodeBrokerPort}}}, "monitorInterval": {{{apiNodeBrokerPortMonitorInterval}}}, "connectTimeout": {{{apiNodeBrokerConnectTimeout}}}, - "monitorLoggingThrottle": {{{apiNodeBrokerMonitorLoggingThrottle}}} + "monitorLoggingThrottle": {{{apiNodeBrokerMonitorLoggingThrottle}}}, + "maxSubscriptions": {{{maxSubscriptions}}} }, "allowOptionalAddress": true }, diff --git a/docs/clean.md b/docs/clean.md index 03fedf992..2e918788d 100644 --- a/docs/clean.md +++ b/docs/clean.md @@ -21,4 +21,4 @@ EXAMPLE $ symbol-bootstrap clean ``` -_See code: [src/commands/clean.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/clean.ts)_ +_See code: [src/commands/clean.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/clean.ts)_ diff --git a/docs/compose.md b/docs/compose.md index 468d7575f..4cb4a02bc 100644 --- a/docs/compose.md +++ b/docs/compose.md @@ -33,4 +33,4 @@ EXAMPLE $ symbol-bootstrap compose ``` -_See code: [src/commands/compose.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/compose.ts)_ +_See code: [src/commands/compose.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/compose.ts)_ diff --git a/docs/config.md b/docs/config.md index c7a7dfc20..8170b61c2 100644 --- a/docs/config.md +++ b/docs/config.md @@ -14,40 +14,42 @@ USAGE $ symbol-bootstrap config OPTIONS - -a, --assembly=assembly An optional assembly type, example "dual" for testnet + -a, --assembly=assembly An optional assembly type, example "dual" for testnet - -c, --customPreset=customPreset External preset file. Values in this file will override the provided presets - (optional) + -c, --customPreset=customPreset External preset file. Values in this file will override the provided presets + (optional) - -h, --help It shows the help of this command. + -h, --help It shows the help of this command. - -p, --preset=(bootstrap|testnet) [default: bootstrap] the network preset + -p, --preset=(bootstrap|testnet|mainnet) [default: bootstrap] the network preset - -r, --reset It resets the configuration generating a new one + -r, --reset It resets the configuration generating a new one - -t, --target=target [default: target] The target folder where the symbol-bootstrap network is generated + -t, --target=target [default: target] The target folder where the symbol-bootstrap network is + generated - -u, --user=user [default: current] User used to run docker images when creating configuration files - like certificates or nemesis block. "current" means the current user. + -u, --user=user [default: current] User used to run docker images when creating + configuration files like certificates or nemesis block. "current" means the + current user. - --noPassword When provided, Bootstrap will not use a password, so private keys will be stored in - plain text. Use with caution. + --noPassword When provided, Bootstrap will not use a password, so private keys will be + stored in plain text. Use with caution. - --password=password A password used to encrypt and decrypt private keys in preset files like - addresses.yml and preset.yml. Bootstrap prompts for a password by default, can be - provided in the command line (--password=XXXX) or disabled in the command line - (--noPassword). + --password=password A password used to encrypt and decrypt private keys in preset files like + addresses.yml and preset.yml. Bootstrap prompts for a password by default, + can be provided in the command line (--password=XXXX) or disabled in the + command line (--noPassword). - --pullImages It pulls the utility images from DockerHub when running the configuration. It only - affects alpha/dev docker images. + --pullImages It pulls the utility images from DockerHub when running the configuration. + It only affects alpha/dev docker images. - --report It generates reStructuredText (.rst) reports describing the configuration of each - node. + --report It generates reStructuredText (.rst) reports describing the configuration of + each node. - --upgrade It regenerates the configuration reusing the previous keys. Use this flag when - upgrading the version of bootstrap to keep your node up to date without dropping the - local data. The original preset (-t), assembly (-a), and custom preset (-a) must be - used. Backup the target folder before upgrading. + --upgrade It regenerates the configuration reusing the previous keys. Use this flag + when upgrading the version of bootstrap to keep your node up to date without + dropping the local data. The original preset (-t), assembly (-a), and custom + preset (-a) must be used. Backup the target folder before upgrading. EXAMPLES $ symbol-bootstrap config -p bootstrap @@ -55,4 +57,4 @@ EXAMPLES $ echo "$MY_ENV_VAR_PASSWORD" | symbol-bootstrap config -p testnet -a dual ``` -_See code: [src/commands/config.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/config.ts)_ +_See code: [src/commands/config.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/config.ts)_ diff --git a/docs/decrypt.md b/docs/decrypt.md index ce228c107..55935b7cb 100644 --- a/docs/decrypt.md +++ b/docs/decrypt.md @@ -56,4 +56,4 @@ EXAMPLES plain-addresses.yml ``` -_See code: [src/commands/decrypt.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/decrypt.ts)_ +_See code: [src/commands/decrypt.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/decrypt.ts)_ diff --git a/docs/encrypt.md b/docs/encrypt.md index 8a93e7f31..452444c05 100644 --- a/docs/encrypt.md +++ b/docs/encrypt.md @@ -46,4 +46,4 @@ EXAMPLES encrypted-custom-preset.yml ``` -_See code: [src/commands/encrypt.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/encrypt.ts)_ +_See code: [src/commands/encrypt.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/encrypt.ts)_ diff --git a/docs/enrolRewardProgram.md b/docs/enrolRewardProgram.md index 44da2ccec..8bb6c4af4 100644 --- a/docs/enrolRewardProgram.md +++ b/docs/enrolRewardProgram.md @@ -47,4 +47,4 @@ EXAMPLES $ echo "$MY_ENV_VAR_PASSWORD" | symbol-bootstrap enrolRewardProgram --url http://external-rest:3000 ``` -_See code: [src/commands/enrolRewardProgram.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/enrolRewardProgram.ts)_ +_See code: [src/commands/enrolRewardProgram.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/enrolRewardProgram.ts)_ diff --git a/docs/healthCheck.md b/docs/healthCheck.md index 78ef0e582..da46be05c 100644 --- a/docs/healthCheck.md +++ b/docs/healthCheck.md @@ -36,4 +36,4 @@ EXAMPLE $ symbol-bootstrap healthCheck ``` -_See code: [src/commands/healthCheck.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/healthCheck.ts)_ +_See code: [src/commands/healthCheck.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/healthCheck.ts)_ diff --git a/docs/link.md b/docs/link.md index 83b2b5544..0cad751ea 100644 --- a/docs/link.md +++ b/docs/link.md @@ -41,4 +41,4 @@ EXAMPLES $ echo "$MY_ENV_VAR_PASSWORD" | symbol-bootstrap link --unlink --useKnownRestGateways ``` -_See code: [src/commands/link.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/link.ts)_ +_See code: [src/commands/link.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/link.ts)_ diff --git a/docs/presetGuides.md b/docs/presetGuides.md index 5ef189b85..d774b87da 100644 --- a/docs/presetGuides.md +++ b/docs/presetGuides.md @@ -263,6 +263,7 @@ The following sections describe the different ways you can protect your nodes' k If you know the private keys of your node, you can provide them in a custom preset: #### **`plain-custom-preset.yml`** + ```yaml nodes: - voting: true @@ -270,7 +271,6 @@ nodes: transportPrivateKey: 6154154096354BC3DB522174ACD8BFE553893A0991BD5D105599846F17A3383B remotePrivateKey: E27AD508907524E2143EF2A3A272DDBEE7558B92550ABA5B82AD65D66B57BD00 vrfPrivateKey: F3C24C153783B683E40FB2671493B54480370BF4E3AB8027D4BF1293E14EB9B8 - votingPrivateKey: EFE3F0EF0AB368B8D7AC194D52A8CCFA2D5050B80B9C76E4D2F4D4BF2CD461C1 ``` Usage examples: @@ -280,6 +280,9 @@ Usage examples: If your custom preset contains private keys, it's highly recommended to `encrypt` it and provide `--password` when starting or configuring the node with Bootstrap. +Note: Voting keys are ephemeral. They cannot be provided, bootstrap will always generate a new one when resetting the configuration. Bootstrap will only store the public key of the voting key for reference and linking. +If the voting key file in the target folder is lost, bootstrap will generate a new voting key file from a new random key, and you will need to relink it to your main account (`link` command). + ``` symbol-bootstrap encrypt --password 1234 --source plain-custom-preset.yml --destination encrypted-custom-preset.yml rm plain-custom-preset.yml @@ -297,6 +300,7 @@ Bootstrap will request them when performing the different operations requiring u Example: #### **`plain-custom-preset.yml`** + ```yaml nodes: - voting: true @@ -304,7 +308,6 @@ nodes: transportPublicKey: C9767496987222790518114049299DD52114BF2A8F7E5F4B70BB2B6365FAFD34 remotePublicKey: 2350F44F043DB9290390C59F1E1C2F06FCC1675E8B5F4CBDC00DD9DF4428E8FE vrfPublicKey: 7834C8AAEFB09402DA32B22768D7CF9DCAC78A7774392E4452F07DDF776E088D - votingPublicKey: 4558724BE79FD0FD08A279878AF92F999B28D5622D3531CE9EFBC06466CDDF9C ``` In this case, this custom preset does not need to be encrypted as it doesn't contain any private information. Bootstrap will prompt for all private keys. @@ -328,7 +331,7 @@ If this is you case, you can tell Bootstrap to not store these keys with the `pr The `privateKeySecurityMode` defines which Private Keys can be encrypted and stored in the `target/addresses.yml`: - `ENCRYPT`: All private Keys are encrypted and stored in the target's `addresses.yml` file. Bootstrap will have them to be used when required. This is Bootstrap's default behaviour. - `PROMPT_MAIN`: Main Private Keys are not stored in the target's `addresses.yml` file. Bootstrap will prompt for the Main Private Key when generating certificates, or transactions need to be signed in the `link` and `enrolProgram` commands. -- `PROMPT_MAIN_VOTING`: Main and voting private keys are not stored in the target's `addresses.yml` file. Bootstrap will request the main private key when certificates are generated, or transactions need to be signed by the `link` and `enrolProgram` commands. The voting private key will be requested when generating the voting key file. +- `PROMPT_MAIN_TRANSPORT`: Main and transport private keys are not stored in the target's `addresses.yml` file. Bootstrap will request the main private key when certificates are generated, or transactions need to be signed by the `link` and `enrolProgram` commands. The transport private key will be asked when upgrading supernode agents. - `PROMPT_ALL`: No Private Key is stored in the target's `addresses.yml` file. Bootstrap will prompt for the Private Keys when they are required in the different commands. When using the `PROMPT` security modes Bootstrap may ask for private keys when running the different commands. This may not be suitable for automatic scripting. @@ -342,6 +345,7 @@ Bootstrap will reject `PROMPT` security modes when an account is being randomly A useful combination is enabling `PROMPT_MAIN`, which stores the main account public key in the preset, but encrypts the rest of the private keys. #### **`plain-custom-preset.yml`** + ```yaml privateKeySecurityMode: PROMPT_MAIN nodes: @@ -350,7 +354,6 @@ nodes: transportPrivateKey: 6154154096354BC3DB522174ACD8BFE553893A0991BD5D105599846F17A3383B remotePrivateKey: E27AD508907524E2143EF2A3A272DDBEE7558B92550ABA5B82AD65D66B57BD00 vrfPrivateKey: F3C24C153783B683E40FB2671493B54480370BF4E3AB8027D4BF1293E14EB9B8 - votingPrivateKey: EFE3F0EF0AB368B8D7AC194D52A8CCFA2D5050B80B9C76E4D2F4D4BF2CD461C1 ``` ``` diff --git a/docs/report.md b/docs/report.md index f7a931a9d..b82a756a2 100644 --- a/docs/report.md +++ b/docs/report.md @@ -21,4 +21,4 @@ EXAMPLE $ symbol-bootstrap report ``` -_See code: [src/commands/report.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/report.ts)_ +_See code: [src/commands/report.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/report.ts)_ diff --git a/docs/resetData.md b/docs/resetData.md index 235ac5939..bb899fa3f 100644 --- a/docs/resetData.md +++ b/docs/resetData.md @@ -21,4 +21,4 @@ EXAMPLE $ symbol-bootstrap resetData ``` -_See code: [src/commands/resetData.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/resetData.ts)_ +_See code: [src/commands/resetData.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/resetData.ts)_ diff --git a/docs/run.md b/docs/run.md index 81728af3b..da30a6005 100644 --- a/docs/run.md +++ b/docs/run.md @@ -53,4 +53,4 @@ EXAMPLE $ symbol-bootstrap run ``` -_See code: [src/commands/run.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/run.ts)_ +_See code: [src/commands/run.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/run.ts)_ diff --git a/docs/start.md b/docs/start.md index 3ed8075cc..b9202eaa0 100644 --- a/docs/start.md +++ b/docs/start.md @@ -30,7 +30,7 @@ OPTIONS -h, --help It shows the help of this command. - -p, --preset=(bootstrap|testnet) + -p, --preset=(bootstrap|testnet|mainnet) [default: bootstrap] the network preset -r, --reset @@ -89,4 +89,4 @@ EXAMPLES $ echo "$MY_ENV_VAR_PASSWORD" | symbol-bootstrap start -p testnet -a dual ``` -_See code: [src/commands/start.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/start.ts)_ +_See code: [src/commands/start.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/start.ts)_ diff --git a/docs/stop.md b/docs/stop.md index 6a1042202..a00a96a58 100644 --- a/docs/stop.md +++ b/docs/stop.md @@ -21,4 +21,4 @@ EXAMPLE $ symbol-bootstrap stop ``` -_See code: [src/commands/stop.ts](https://github.com/nemtech/symbol-bootstrap/blob/v0.4.5/src/commands/stop.ts)_ +_See code: [src/commands/stop.ts](https://github.com/nemtech/symbol-bootstrap/blob/v1.0.0/src/commands/stop.ts)_ diff --git a/package-lock.json b/package-lock.json index de4520f2a..846fcfebc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6193 +1,8 @@ { "name": "symbol-bootstrap", "version": "0.4.6", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "symbol-bootstrap", - "version": "0.4.5", - "license": "Apache-2.0", - "dependencies": { - "@oclif/command": "^1.7.0", - "@oclif/config": "^1.16.0", - "@oclif/plugin-autocomplete": "^0.3.0", - "@oclif/plugin-help": "^3.1.0", - "figlet": "^1.2.4", - "handlebars": "^4.7.6", - "inquirer": "^7.3.3", - "js-yaml": "^3.14.0", - "lodash": "^4.17.20", - "memorystream": "^0.3.1", - "node-forge": "^0.10.0", - "rxjs": "^6.6.3", - "shx": "^0.3.2", - "sshpk": "^1.16.1", - "symbol-sdk": "^0.23.2", - "tslib": "^1.13.0", - "utf8": "^2.1.2", - "winston": "^3.3.3" - }, - "bin": { - "symbol-bootstrap": "bin/run" - }, - "devDependencies": { - "@oclif/dev-cli": "^1.22.2", - "@oclif/test": "^1.2.6", - "@types/chai": "^4.2.12", - "@types/figlet": "^1.2.0", - "@types/handlebars": "^4.1.0", - "@types/inquirer": "^7.3.1", - "@types/js-yaml": "^3.12.5", - "@types/lodash": "^4.14.165", - "@types/memorystream": "^0.3.0", - "@types/mocha": "^5.2.7", - "@types/node": "^10.17.28", - "@types/node-forge": "^0.9.4", - "@types/sshpk": "^1.10.5", - "@types/winston": "^2.4.4", - "@typescript-eslint/eslint-plugin": "^3.7.1", - "@typescript-eslint/parser": "^3.7.1", - "chai": "^4.2.0", - "coveralls": "^3.1.0", - "create-ts-index": "^1.13.6", - "eslint": "^6.8.0", - "eslint-config-prettier": "^6.10.1", - "eslint-plugin-prettier": "^3.1.3", - "globby": "^10.0.2", - "marked": ">=2.0.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.3.0", - "nyc": "^14.1.1", - "prettier": "^2.0.5", - "prettier-plugin-organize-imports": "^1.1.1", - "ts-node": "^8.10.2", - "typedoc": "^0.18.0", - "typescript": "^3.9.7" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", - "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@js-joda/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-3.2.0.tgz", - "integrity": "sha512-PMqgJ0sw5B7FKb2d5bWYIoxjri+QlW/Pys7+Rw82jSH0QN3rB05jZ/VrrsUdh1w4+i2kw9JOejXGq/KhDOX7Kg==" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dependencies": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@oclif/command": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.7.0.tgz", - "integrity": "sha512-TkknFtWcZI8te0E8sW+ohiblExrLx73rIcV4KdIzDX01u+oTZWZaap51F6TSGFnR/Gey0WctaDvJhZlt4xgKdA==", - "dependencies": { - "@oclif/config": "^1.15.1", - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.3", - "@oclif/plugin-help": "^3", - "debug": "^4.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/config": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.16.0.tgz", - "integrity": "sha512-vOnMPQcHokC03WBCuLipTxksTwgZcmDOnH2H0UHqndfKKN9GVDzpZTH6zaFVQBdjTME5VtRzg9A2UaNmq6OXWw==", - "dependencies": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/config/node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@oclif/dev-cli": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/@oclif/dev-cli/-/dev-cli-1.22.2.tgz", - "integrity": "sha512-c7633R37RxrQIpwqPKxjNRm6/jb1yuG8fd16hmNz9Nw+/MUhEtQtKHSCe9ScH8n5M06l6LEo4ldk9LEGtpaWwA==", - "dev": true, - "dependencies": { - "@oclif/command": "^1.5.13", - "@oclif/config": "^1.12.12", - "@oclif/errors": "^1.2.2", - "@oclif/plugin-help": "^2.1.6", - "cli-ux": "^5.2.1", - "debug": "^4.1.1", - "fs-extra": "^7.0.1", - "github-slugger": "^1.2.1", - "lodash": "^4.17.11", - "normalize-package-data": "^2.5.0", - "qqjs": "^0.3.10", - "tslib": "^1.9.3" - }, - "bin": { - "oclif-dev": "bin/run" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@oclif/dev-cli/node_modules/@oclif/plugin-help": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-2.2.3.tgz", - "integrity": "sha512-bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==", - "dev": true, - "dependencies": { - "@oclif/command": "^1.5.13", - "chalk": "^2.4.1", - "indent-string": "^4.0.0", - "lodash.template": "^4.4.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0", - "widest-line": "^2.0.1", - "wrap-ansi": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/dev-cli/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/dev-cli/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/dev-cli/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@oclif/dev-cli/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@oclif/dev-cli/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/@oclif/dev-cli/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/dev-cli/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/dev-cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/dev-cli/node_modules/wrap-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", - "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/dev-cli/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/dev-cli/node_modules/wrap-ansi/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/dev-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/errors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.3.tgz", - "integrity": "sha512-EJR6AIOEkt/NnARNIVAskPDVtdhtO5TTNXmhDrGqMoWVsr0R6DkkLrMyq95BmHvlVWM1nduoq4fQPuCyuF2jaA==", - "dependencies": { - "clean-stack": "^3.0.0", - "fs-extra": "^9.0.1", - "indent-string": "^4.0.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/errors/node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@oclif/linewrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", - "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" - }, - "node_modules/@oclif/parser": { - "version": "3.8.5", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz", - "integrity": "sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==", - "dependencies": { - "@oclif/errors": "^1.2.2", - "@oclif/linewrap": "^1.0.0", - "chalk": "^2.4.2", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-autocomplete": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.3.0.tgz", - "integrity": "sha512-gCuIUCswvoU1BxDDvHSUGxW8rFagiacle8jHqE49+WnuniXD/N8NmJvnzmlNyc8qLE192CnKK+qYyAF+vaFQBg==", - "dependencies": { - "@oclif/command": "^1.5.13", - "@oclif/config": "^1.13.0", - "chalk": "^4.1.0", - "cli-ux": "^5.2.1", - "debug": "^4.0.0", - "fs-extra": "^9.0.1", - "moment": "^2.22.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@oclif/plugin-autocomplete/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@oclif/plugin-help": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.1.0.tgz", - "integrity": "sha512-orSWpXGlJaX16eSjAtI8scA8QhrjQOaCSHodEx52t18JKbIVzG8jcngugyWAOB/V4jhPl0rdiVk9XFsaIIiG2g==", - "dependencies": { - "@oclif/command": "^1.5.20", - "@oclif/config": "^1.15.1", - "chalk": "^2.4.1", - "indent-string": "^4.0.0", - "lodash.template": "^4.4.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0", - "widest-line": "^2.0.1", - "wrap-ansi": "^4.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-help/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/plugin-help/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/plugin-help/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@oclif/plugin-help/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@oclif/plugin-help/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "node_modules/@oclif/plugin-help/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/plugin-help/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/plugin-help/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/plugin-help/node_modules/wrap-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz", - "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@oclif/screen": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz", - "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/test": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@oclif/test/-/test-1.2.6.tgz", - "integrity": "sha512-8BQm0VFwTf/JpDnI3x6Lbp3S4RRUvQcv8WalKm82+7FNEylWMAXFNgBuzG65cNPj11J2jhlVo0gOWGF6hbiaJQ==", - "dev": true, - "dependencies": { - "fancy-test": "^1.4.3" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@types/chai": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.12.tgz", - "integrity": "sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==", - "dev": true - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "node_modules/@types/figlet": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.2.0.tgz", - "integrity": "sha512-TDZkNpYfkc3X8yv7w1QBziZmmxzNfGKX+YjeNkMpmSiNV0QOdNf9G5cEZB3FH1/oaqpSQEdxuDzURdju2L3lng==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==", - "dev": true, - "dependencies": { - "handlebars": "*" - } - }, - "node_modules/@types/inquirer": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.1.tgz", - "integrity": "sha512-osD38QVIfcdgsPCT0V3lD7eH0OFurX71Jft18bZrsVQWVRt6TuxRzlr0GJLrxoHZR2V5ph7/qP8se/dcnI7o0g==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "node_modules/@types/js-yaml": { - "version": "3.12.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.5.tgz", - "integrity": "sha512-JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", - "dev": true - }, - "node_modules/@types/memorystream": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@types/memorystream/-/memorystream-0.3.0.tgz", - "integrity": "sha512-gzh6mqZcLryYHn4g2MuMWjo9J1+Py/XYwITyZmUxV7ZoBIi7bTbBgSiuC5tcm3UL3gmaiYssQFDlXr/3fK94cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", - "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "10.17.28", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz", - "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==", - "dev": true - }, - "node_modules/@types/node-forge": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-0.9.4.tgz", - "integrity": "sha512-uFhaKXdhhrLNzfNhXbXJqDwF3jXMzN9qfkdW+IAMnAfwqNZhBcE/cciMITLT0Sg6ls6JYHo3xVWNXAG1g9tm8A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/sinon": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.4.tgz", - "integrity": "sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, - "node_modules/@types/sshpk": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@types/sshpk/-/sshpk-1.10.5.tgz", - "integrity": "sha512-5EKeKE0YmM2F5xjhk5k6mgL9tx5XpHPqKVaN5c1zCBGSFv4VPRqp1fhGKjo1lkyb7kmvchjgWB8TPAT14+JiRg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/winston": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.4.4.tgz", - "integrity": "sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==", - "dev": true, - "dependencies": { - "winston": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.8.0.tgz", - "integrity": "sha512-lFb4VCDleFSR+eo4Ew+HvrJ37ZH1Y9ZyE+qyP7EiwBpcCVxwmUc5PAqhShCQ8N8U5vqYydm74nss+a0wrrCErw==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "3.8.0", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.8.0.tgz", - "integrity": "sha512-o8T1blo1lAJE0QDsW7nSyvZHbiDzQDjINJKyB44Z3sSL39qBy5L10ScI/XwDtaiunoyKGLiY9bzRk4YjsUZl8w==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.8.0", - "@typescript-eslint/typescript-estree": "3.8.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.8.0.tgz", - "integrity": "sha512-u5vjOBaCsnMVQOvkKCXAmmOhyyMmFFf5dbkM3TIbg3MZ2pyv5peE4gj81UAbTHwTOXEwf7eCQTUMKrDl/+qGnA==", - "dev": true, - "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.8.0", - "@typescript-eslint/types": "3.8.0", - "@typescript-eslint/typescript-estree": "3.8.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.8.0.tgz", - "integrity": "sha512-8kROmEQkv6ss9kdQ44vCN1dTrgu4Qxrd2kXr10kz2NP5T8/7JnEfYNxCpPkArbLIhhkGLZV3aVMplH1RXQRF7Q==", - "dev": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.8.0.tgz", - "integrity": "sha512-MTv9nPDhlKfclwnplRNDL44mP2SY96YmPGxmMbMy6x12I+pERcxpIUht7DXZaj4mOKKtet53wYYXU0ABaiXrLw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "3.8.0", - "@typescript-eslint/visitor-keys": "3.8.0", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.8.0.tgz", - "integrity": "sha512-gfqQWyVPpT9NpLREXNR820AYwgz+Kr1GuF3nf1wxpHD6hdxI62tq03ToomFnDxY0m3pUB39IF7sil7D5TQexLA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "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" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "node_modules/append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "dependencies": { - "default-require-extensions": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-reverse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", - "integrity": "sha1-SSg8jvpvkBvAH6MwTQYCeXGuL2A=" - }, - "node_modules/caching-transform": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz", - "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==", - "dev": true, - "dependencies": { - "hasha": "^3.0.0", - "make-dir": "^2.0.0", - "package-hash": "^3.0.0", - "write-file-atomic": "^2.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/caching-transform/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/catbuffer-typescript": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/catbuffer-typescript/-/catbuffer-typescript-0.1.1.tgz", - "integrity": "sha512-r/z3UKG3YCCdsTEHRXGe3IQxA8OaBRBE31e9du2LOaLStGxYCmxUjfRtJ/DyKfgpS55fJPl3w/VFMnsfwIHmkA==" - }, - "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/chalk/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.0.tgz", - "integrity": "sha512-RHxtgFvXsRQ+1AM7dlozLDY7ssmvUUh0XEnfnyhYgJTO6beNZHBogiaCwGM9Q3rFrUkYxOtsZRC0zAturg5bjg==", - "dependencies": { - "escape-string-regexp": "4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-progress": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.8.2.tgz", - "integrity": "sha512-qRwBxLldMSfxB+YGFgNRaj5vyyHe1yMpVeDL79c+7puGujdKJHQHydgqXDcrkvQgJ5U/d3lpf6vffSoVVUftVQ==", - "dependencies": { - "colors": "^1.1.2", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-ux": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.9.tgz", - "integrity": "sha512-4yCKJbFQqNQxf1v0E5T5aBJLt3SbW6dXc/R7zHp4ycdPMg9fAy5f2vhPsWgXEGCMQg+fgN0Sp7EYcZ1XGkFyUA==", - "dependencies": { - "@oclif/command": "^1.6.0", - "@oclif/errors": "^1.2.1", - "@oclif/linewrap": "^1.0.0", - "@oclif/screen": "^1.0.3", - "ansi-escapes": "^4.3.0", - "ansi-styles": "^4.2.0", - "cardinal": "^2.1.1", - "chalk": "^3.0.0", - "clean-stack": "^3.0.0", - "cli-progress": "^3.4.0", - "extract-stack": "^2.0.0", - "fs-extra": "^9.0.1", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.13.1", - "lodash": "^4.17.11", - "natural-orderby": "^2.0.1", - "object-treeify": "^1.1.4", - "password-prompt": "^1.1.2", - "semver": "^5.6.0", - "string-width": "^4.2.0", - "strip-ansi": "^5.1.0", - "supports-color": "^7.1.0", - "supports-hyperlinks": "^1.0.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cli-ux/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-ux/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-ux/node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-ux/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-ux/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-ux/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-ux/node_modules/tslib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", - "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/cliui/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "dependencies": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "dev": true, - "dependencies": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - }, - "bin": { - "coveralls": "bin/coveralls.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cp-file/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/create-ts-index": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/create-ts-index/-/create-ts-index-1.13.6.tgz", - "integrity": "sha512-vBcuficF62laj/wZv01D4YBz1TXTtEM8hsUq7J1k1uyPUHYq3YTWTVQlmlp+Y311KdM6HhPQeC2aHktvQR8u3w==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "commander": "^2.19.0", - "dayjs": "^1.8.14", - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "fast-glob": "^3.2.2", - "glob": "^7.1.3", - "json5": "^2.1.3", - "merge": "^1.2.1", - "minimatch": "^3.0.4", - "my-easy-fp": "^0.5.1", - "tslib": "^1.10.0", - "yargs": "^15.3.1" - }, - "bin": { - "cti": "dist/cti.js" - } - }, - "node_modules/create-ts-index/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/create-ts-index/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/create-ts-index/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-ts-index/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "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.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/create-ts-index/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", - "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dayjs": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.9.4.tgz", - "integrity": "sha512-ABSF3alrldf7nM9sQ2U+Ln67NRwmzlLOqG7kK03kck0mw3wlSSEKv/XhKGGxUjQcS57QeiCyNdrFgtj9nWlrng==", - "dev": true - }, - "node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "dependencies": { - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", - "dev": true, - "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", - "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "dependencies": { - "estraverse": "^4.1.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "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" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extract-stack": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz", - "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fancy-test": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/fancy-test/-/fancy-test-1.4.9.tgz", - "integrity": "sha512-Tro3lkXPX438G3t2N9BDgD3ac5iUhNnxIE8tg/KL6z7eZ5GOCexs7fDEMacduqvJWPvsRlmyQ69V1jiTVcqkXQ==", - "dev": true, - "dependencies": { - "@types/chai": "*", - "@types/lodash": "*", - "@types/node": "*", - "@types/sinon": "*", - "lodash": "^4.17.13", - "mock-stdin": "^1.0.0", - "stdout-stderr": "^0.1.9" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "node_modules/fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==" - }, - "node_modules/figlet": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz", - "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "node_modules/foreground-child": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", - "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", - "dev": true, - "dependencies": { - "cross-spawn": "^4", - "signal-exit": "^3.0.0" - } - }, - "node_modules/foreground-child/node_modules/cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-extra/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/futoin-hkdf": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.3.3.tgz", - "integrity": "sha512-oR75fYk3B3X9/B02Y6vusrBKucrpC6VjxhRL+C6B7FwUpuSRHbhBNG3AZbcE/xPyJmEQWsyqUFp3VeNNbA3S7A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "dev": true, - "dependencies": { - "emoji-regex": ">=6.0.0 <=6.1.1" - } - }, - "node_modules/github-slugger/node_modules/emoji-regex": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", - "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=", - "dev": true - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hasha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz", - "integrity": "sha1-UqMvq4Vp1BymmmH/GiFPjrfIvTk=", - "dev": true, - "dependencies": { - "is-stream": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz", - "integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "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==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-call": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", - "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", - "dev": true, - "dependencies": { - "content-type": "^1.0.4", - "debug": "^4.1.1", - "is-retry-allowed": "^1.1.0", - "is-stream": "^2.0.0", - "parse-json": "^4.0.0", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-call/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/hyperlinker": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", - "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-docker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", - "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", - "dev": true, - "dependencies": { - "append-transform": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "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" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", - "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true, - "bin": { - "lcov-parse": "bin/cli.js" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz", - "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true, - "engines": { - "node": ">=0.8.6" - } - }, - "node_modules/logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", - "dependencies": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/lunr": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", - "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", - "dev": true - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/marked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.0.tgz", - "integrity": "sha512-NqRSh2+LlN2NInpqTQnS614Y/3NkVMFFU6sJlRFEpxJ/LHuK/qJECH7/fXZjk4VZstPW/Pevjil/VtSONsLc7Q==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 8.16.2" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/merkletreejs": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.2.13.tgz", - "integrity": "sha512-hnM1XX0C+3yfAytRiX7FKC+bYg+GC83aQq7EytAp6nbcUBRdXU6/AVkmNdsAaJJ9IaKZt0w76r0QeWY/Fq+uFw==", - "dependencies": { - "buffer-reverse": "^1.0.1", - "crypto-js": "^3.1.9-1", - "treeify": "^1.1.0" - }, - "engines": { - "node": ">= 7.6.0" - } - }, - "node_modules/merkletreejs/node_modules/crypto-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", - "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" - }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/mocha-lcov-reporter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", - "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/mocha/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mock-stdin": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mock-stdin/-/mock-stdin-1.0.0.tgz", - "integrity": "sha512-tukRdb9Beu27t6dN+XztSRHq9J0B/CoAOySGzHfn8UTfmqipA5yNT/sDUEyYdAV3Hpka6Wx6kOMxuObdOex60Q==", - "dev": true - }, - "node_modules/moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "node_modules/my-easy-fp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/my-easy-fp/-/my-easy-fp-0.5.1.tgz", - "integrity": "sha512-musRCJYBnEDDzod5ugUykOqHoZYudhtC90J536tFrMqXfjpBzb0PRzLkadM2chgNFsCebzm9GtC+qjQ7xKgpGg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "tslib": "1.11.1" - } - }, - "node_modules/my-easy-fp/node_modules/tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/natural-orderby": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", - "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", - "engines": { - "node": "*" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nyc": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz", - "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "caching-transform": "^3.0.2", - "convert-source-map": "^1.6.0", - "cp-file": "^6.2.0", - "find-cache-dir": "^2.1.0", - "find-up": "^3.0.0", - "foreground-child": "^1.5.6", - "glob": "^7.1.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.4", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "merge-source-map": "^1.1.0", - "resolve-from": "^4.0.0", - "rimraf": "^2.6.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^1.4.2", - "test-exclude": "^5.2.3", - "uuid": "^3.3.2", - "yargs": "^13.2.2", - "yargs-parser": "^13.0.0" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-treeify": { - "version": "1.1.26", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.26.tgz", - "integrity": "sha512-0WTfU7SGM8umY4YPpOg+oHXL66E6dPVCr+sMR6KitPmvg8CkVrHUUZYEFtx0+5Wb0HjFEsBwBYXyGRNeX7c/oQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz", - "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^3.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/password-prompt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", - "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", - "dependencies": { - "ansi-escapes": "^3.1.0", - "cross-spawn": "^6.0.5" - } - }, - "node_modules/password-prompt/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/prettier-plugin-organize-imports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-1.1.1.tgz", - "integrity": "sha512-rFA1lnek1FYkMGthm4xBKME41qUKItTovuo24bCGZu/Vu1n3gW71UPLAkIdwewwkZCe29gRVweSOPXvAdckFuw==", - "dev": true - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qqjs": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/qqjs/-/qqjs-0.3.11.tgz", - "integrity": "sha512-pB2X5AduTl78J+xRSxQiEmga1jQV0j43jOPs/MTgTLApGFEOn6NgdE2dEjp7nvDtjkIOZbvFIojAiYUx6ep3zg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "debug": "^4.1.1", - "execa": "^0.10.0", - "fs-extra": "^6.0.1", - "get-stream": "^5.1.0", - "glob": "^7.1.2", - "globby": "^10.0.1", - "http-call": "^5.1.2", - "load-json-file": "^6.2.0", - "pkg-dir": "^4.2.0", - "tar-fs": "^2.0.0", - "tmp": "^0.1.0", - "write-json-file": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/qqjs/node_modules/fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/qqjs/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/qqjs/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs-compat": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.3.tgz", - "integrity": "sha512-y+wUqq7bS2dG+7rH2fNMoxsDiJ32RQzFxZQE/JdtpnmEZmwLQrb1tCiItyHxdXJHXjmHnnzFscn3b6PEmORGKw==" - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz", - "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==", - "dependencies": { - "es6-object-assign": "^1.0.3", - "minimist": "^1.2.0", - "shelljs": "^0.8.1" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sort-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.0.0.tgz", - "integrity": "sha512-hlJLzrn/VN49uyNkZ8+9b+0q9DjmmYcYOnbMQtpkLrYpPwRApDPZfmqbUfJnAA3sb/nRib+nDot7Zi/1ER1fuA==", - "dev": true, - "dependencies": { - "is-plain-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spawn-wrap": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", - "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==", - "dev": true, - "dependencies": { - "foreground-child": "^1.5.6", - "mkdirp": "^0.5.0", - "os-homedir": "^1.0.1", - "rimraf": "^2.6.2", - "signal-exit": "^3.0.2", - "which": "^1.3.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "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" - } - }, - "node_modules/sshpk/node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "engines": { - "node": "*" - } - }, - "node_modules/stdout-stderr": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/stdout-stderr/-/stdout-stderr-0.1.13.tgz", - "integrity": "sha512-Xnt9/HHHYfjZ7NeQLvuQDyL1LnbsbddgMFKCuaQKwGCdJm8LnstZIXop+uOY36UR1UXXoHXfMbC1KlVdVd2JLA==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", - "dependencies": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-openapi-typescript-fetch-client": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/symbol-openapi-typescript-fetch-client/-/symbol-openapi-typescript-fetch-client-0.11.2.tgz", - "integrity": "sha512-A1MAN8/UWlaCEibBf6zxkduZwDNSvWwLPp6JB0GeYI/FAOrw/9nLyuS/NJQ3siGAUclnuejH1wG7KdUg0/4RSw==" - }, - "node_modules/symbol-sdk": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/symbol-sdk/-/symbol-sdk-0.23.2.tgz", - "integrity": "sha512-Yq9PBoA2jgicmvJYh8vjjZUyu+bjbwTtgQGkR6A+k5L4fdTacNKmx9WTbE0dDXv7OOg+qPBrA/6ms9mXEupZ8g==", - "dependencies": { - "@js-joda/core": "^3.2.0", - "bluebird": "^3.7.2", - "catbuffer-typescript": "0.1.1", - "crypto-js": "^4.0.0", - "diff": "^4.0.2", - "futoin-hkdf": "^1.3.2", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "long": "^4.0.0", - "merkletreejs": "^0.2.9", - "minimist": "^1.2.5", - "node-fetch": "^2.6.0", - "ripemd160": "^2.0.2", - "rxjs": "^6.6.3", - "rxjs-compat": "^6.6.3", - "symbol-openapi-typescript-fetch-client": "0.11.2", - "tweetnacl": "^1.0.3", - "ws": "^7.3.1" - } - }, - "node_modules/symbol-sdk/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", - "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", - "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", - "dev": true, - "dependencies": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", - "dev": true, - "dependencies": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/ts-node": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", - "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, - "node_modules/tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typedoc": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.18.0.tgz", - "integrity": "sha512-UgDQwapCGQCCdYhEQzQ+kGutmcedklilgUGf62Vw6RdI29u6FcfAXFQfRTiJEbf16aK3YnkB20ctQK1JusCRbA==", - "dev": true, - "dependencies": { - "fs-extra": "^9.0.1", - "handlebars": "^4.7.6", - "highlight.js": "^10.0.0", - "lodash": "^4.17.15", - "lunr": "^2.3.8", - "marked": "^1.1.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "typedoc-default-themes": "^0.10.2" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/typedoc-default-themes": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.10.2.tgz", - "integrity": "sha512-zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg==", - "dev": true, - "dependencies": { - "lunr": "^2.3.8" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/typedoc/node_modules/fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typedoc/node_modules/marked": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz", - "integrity": "sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 8.16.2" - } - }, - "node_modules/typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", - "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utf8": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", - "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "dependencies": { - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "dependencies": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/winston-transport/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/winston-transport/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/winston/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", - "dev": true, - "dependencies": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8.3" - } - }, - "node_modules/ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, "dependencies": { "@babel/code-frame": { "version": "7.10.4", @@ -10461,14 +4276,6 @@ "strip-ansi": "^6.0.0" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -10479,6 +4286,14 @@ "strip-ansi": "^6.0.0" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", diff --git a/package.json b/package.json index fd0cf0690..93bd39052 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "symbol-bootstrap", "description": "Symbol tool that allows you creating, configuring and running Symbol's networks", - "version": "0.4.6", + "version": "1.0.0", "author": "Fernando Boucquez ", "bin": { "symbol-bootstrap": "bin/run" diff --git a/presets/descriptions.yml b/presets/descriptions.yml index 3b3c51c58..fafb45a4e 100644 --- a/presets/descriptions.yml +++ b/presets/descriptions.yml @@ -425,9 +425,6 @@ extension.filespooling: extension.partialtransaction: type: '' description: '' -extension.eventsource: - type: '' - description: '' extension.harvesting: type: '' description: '' diff --git a/presets/mainnet/assembly-api.yml b/presets/mainnet/assembly-api.yml new file mode 100644 index 000000000..c8caf9b72 --- /dev/null +++ b/presets/mainnet/assembly-api.yml @@ -0,0 +1,24 @@ +databases: + - name: 'db' + openPort: false +nodes: + - harvesting: false + voting: false + api: true + name: 'node' + host: '' + databaseHost: 'db' + brokerName: 'broker' + openPort: true + brokerOpenPort: true + trustedHosts: 127.0.0.1, 172.20.0.25 + localNetworks: 127.0.0.1, 172.20.0.25 +gateways: + - name: 'rest-gateway' + apiNodeName: 'node' + apiNodeHost: 'node' + apiNodeBrokerHost: 'broker' + description: 'catapult public main network' + databaseHost: 'db' + openPort: true + ipv4_address: 172.20.0.25 diff --git a/presets/mainnet/assembly-dual.yml b/presets/mainnet/assembly-dual.yml new file mode 100644 index 000000000..d9e49e89f --- /dev/null +++ b/presets/mainnet/assembly-dual.yml @@ -0,0 +1,24 @@ +databases: + - name: 'db' + openPort: false +nodes: + - harvesting: true + voting: false + api: true + name: 'node' + host: '' + databaseHost: 'db' + brokerName: 'broker' + openPort: true + brokerOpenPort: true + trustedHosts: 127.0.0.1, 172.20.0.25 + localNetworks: 127.0.0.1, 172.20.0.25 +gateways: + - name: 'rest-gateway' + apiNodeName: 'node' + apiNodeHost: 'node' + apiNodeBrokerHost: 'broker' + description: 'catapult public main network' + databaseHost: 'db' + openPort: true + ipv4_address: 172.20.0.25 diff --git a/presets/mainnet/assembly-peer.yml b/presets/mainnet/assembly-peer.yml new file mode 100644 index 000000000..ed7ba80bd --- /dev/null +++ b/presets/mainnet/assembly-peer.yml @@ -0,0 +1,8 @@ +localNetworks: 127.0.0.1 +nodes: + - harvesting: true + voting: false + api: false + name: 'node' + openPort: true + host: '' diff --git a/presets/mainnet/network.yml b/presets/mainnet/network.yml new file mode 100644 index 000000000..e6b81d5d8 --- /dev/null +++ b/presets/mainnet/network.yml @@ -0,0 +1,1229 @@ +assemblies: api, dual, peer +baseNamespace: symbol +batchVerificationRandomSource: /dev/urandom +currencyMosaicId: 6BED913FA20223F8 +currencyName: xym +harvestBeneficiaryPercentage: 25 +harvestingName: xym +harvestingMosaicId: 6BED913FA20223F8 +epochAdjustment: 1615853185s +enableRevoteOnBoot: false +maxHarvesterBalance: 50000000000000 +maxMosaicAtomicUnits: 8999999999000000 +minHarvesterBalance: 10000000000 +minVoterBalance: 3000000000000 +nemesisGenerationHashSeed: 57F7DA205008026C776CB6AED843393F04CD458E0AA2D9F1D5F31A402072B2D6 +harvestNetworkFeeSinkAddress: NBUTOBVT5JQDCV6UEPCPFHWWOAOPOCLA5AY5FLI +namespaceRentalFeeSinkAddress: NBDTBUD6R32ZYJWDEWLJM4YMOX3OOILHGDUMTSA +mosaicRentalFeeSinkAddress: NC733XE7DF46Q7QYLIIZBBSCJN2BEEP5FQ6PAYA +nemesisSignerPublicKey: BE0B4CF546B7B4F4BBFCFF9F574FDA527C07A53D3FC76F8BB7DB746F8E8E0A9F +networkType: 104 +rewardProgramCaFile: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZpekNDQTNNQ0ZFUXNMd1ZsdkkyYTB0Z1dOVGN6cjJURnZHK0NNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1JR0IKTVFzd0NRWURWUVFHRXdKVlV6RUxNQWtHQTFVRUNBd0NUVUV4RHpBTkJnTlZCQWNNQmtKdmMzUnZiakVUTUJFRwpBMVVFQ2d3S1JYaGhiWEJzWlNCRGJ6RVFNQTRHQTFVRUN3d0hkR1ZqYUc5d2N6RUxNQWtHQTFVRUF3d0NZMkV4CklEQWVCZ2txaGtpRzl3MEJDUUVXRVdObGNuUnpRR1Y0WVcxd2JHVXVZMjl0TUI0WERUSXhNRE14TXpJeU1UZzEKT0ZvWERUUTRNRGN5T0RJeU1UZzFPRm93Z1lFeEN6QUpCZ05WQkFZVEFsVlRNUXN3Q1FZRFZRUUlEQUpOUVRFUApNQTBHQTFVRUJ3d0dRbTl6ZEc5dU1STXdFUVlEVlFRS0RBcEZlR0Z0Y0d4bElFTnZNUkF3RGdZRFZRUUxEQWQwClpXTm9iM0J6TVFzd0NRWURWUVFEREFKallURWdNQjRHQ1NxR1NJYjNEUUVKQVJZUlkyVnlkSE5BWlhoaGJYQnMKWlM1amIyMHdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUtBb0lDQVFDdHZVaXYxWDM2SlluQwpNSm5DTkdXN2ZNNVdCUWxuT2xub2tub01NcmVZZVgxUGZrU3pLOUUxRTJiWDJubm9LbkJlMTBiMTBsdURxU0hTCnZmNEFNbTVvZFZodnVFNkVTaGNkMUxXZVZBdCtrZzR6Yk5ISjhUSkFpbndQVTlzY3pBc01vaFM4TTU5N3ZKN0IKL2Z6SDFSUFE4cVpQQzl3aW9PQ2RPYmE3cFBzbGFJK2JvdWd2WXVlV1VOOGdHdVNtLy85cDhDbGM3Q1Fiay8wagpRSm9uQllyQnE3emtnYVdLU1cxcDYvdGNab3I2cmVwbzFubjJNK1Q3TzZabUEwWVZhZmRLa0xnV01uaisxcHVKCjRUcGc0TTJQMktobHRTMUhMT0l1N1VHSDM4UlJEQm00TEVJc2pSdjdpdHlBS1pzdnovaTlmK0k2OU1nTFNqc3YKbHlnSUE5N2ZQTkUrNDU4Y1h1cFYxMG9qUGhkdmNHMlkvbU1naUxZU3lBQ3BoUko5UVljNEJKVHZxTjlKdklNYwpqSXlsYWlMUzJoZTdnUEZvTENmNW5CTmxTNHh5Y3pYQUFYSzFqQnNPb1lWZ1M5dnV1bDNwZlJGWlVUdHlSY3BSCmNPRVFkdDEraWlIbkxaQktaUGo2Zk9UWUphS3hrczJmTTZ3Uk9iY0FMNmRnNVkrY2g1MXQ2bitxc1VUWGJnNVIKSHIwZTBOcEhwNHVxY3ZlMnEzRTBXYXVuZzR2YTNnc2NLRzlBSzZubEhGZnFpS0hPZUlYWVJKUEorbDdkaVdGTgpvaEhOZ29CYXVNYS8wc1dpakZRVkpqUnlta1UrNE5Cd1FKRDZqR3ZPMlJ6MmhmeGNFUW4xeXgzUlFuRVgyZDlKCjVFZjVFUjV3aDBqcjVLR3RHcGJzN2dHSERqd3Fad0lEQVFBQk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQloKdHpSVlIzN2JteE9kVnlnVzFCSzNhWWhic3VhcG40dm9oOEZGdVVvYnRCK3pRL0lWT1VQUHlEOWc0cE8vNUFzVgpBYklXWFdXdSt1NzgzZm5ud0JWYWhkM3dtdVlKTWh4RmM1TGRrcE9mdUh2ZTNyNFlQN3hmQ0liQVZhUzhwZkRTCnV3QUVrTjFDdDZUZkhzSUw1dFRGc0NjVDhBMGE0blg5d3RhZHc2L3Nrd0k1MVBXREVkUkJBbW5qRFJKcEpMakMKSXIyMVVYd3ZyZkhGU3Z1QmFvdGdJM1lZWUJ1ZXpkcWx1emFSaFJlb0s3dW4yek9pUUhDekZFb2NZYUZGSyt5YQpvUkM5TUJUUE8zNTRZbWZ6cWFrdnU3dVVqc0p1TU1ZSUtueXhjYVlzWlhUSTdPRFdlcXdCYWpMUk1OVlpoSkNZClNSR3M5SnVWdmYwczI0N3FXZkdtUzk0N2V1UGVnTHk2RncrcEUrMy9xakNKVG91Z2dUVU5GeWsrYkZQR1gyRVoKQlc5em5KdjMxb0xMMTZCZm1OZ2RSUXprTFRrVktCMG15ZmJlamJJWjdlcFBKYVVVTlJDaXd5SWlvTTlySTBqZQpKbWRiTkE3ZVFGYWpmaHJtRTJzSGxobWVCd3AyQStLUFMxRm8wWDJWMURIZXBsbkU1TkNabGpkcTlNdzA3dkRnCitQMGVPOEp6RUZPQTJROHhiR1l0UlkyenVRdUNlbEQ4YlErTnlZT014bytOK1RqOUdEYzZXRE1PLzR3QU85aDgKdXMyK2NxSXVNQXJ3dUtRV3JaMGlYQWhMMm1vUVAvM3IySDYzcHQ1S2ptMngrbjVYbXFBQk1JcHdKa09oVHQ0NApVT1RPbUJpcytISVU2c3k0YVRFS0hiUjdHRXV3THlubXdzLzZ3YkhRb1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== +rewardProgramControllerPublicKey: 645FE86EAED04747DE066D838FE6E77BA2B146DC8BBC505617323D5DF01106A5 +totalChainImportance: 7842928625000000 +initialCurrencyAtomicUnits: 7842928625000000 +importanceGrouping: 720 +votingSetGrouping: 1440 +minVotingKeyLifetime: 112 +maxVotingKeyLifetime: 360 +stepDuration: 5m +maxBlockFutureTime: 300ms +maxAccountRestrictionValues: 100 +maxSecretLockDuration: 365d +maxNamespaceDuration: 1825d +minNamespaceDuration: 30d +namespaceGracePeriodDuration: 30d +blockGenerationTargetTime: 30s +defaultDynamicFeeMultiplier: 100 +rootNamespaceRentalFeePerBlock: 2 +childNamespaceRentalFee: 100000 +mosaicRentalFee: 500000 +throttlingBurst: 80 +throttlingRate: 60 +symbolServerToolsImage: symbolplatform/symbol-server:tools-gcc-1.0.0.0 +symbolServerImage: symbolplatform/symbol-server:gcc-1.0.0.0 +symbolRestImage: symbolplatform/symbol-rest:2.3.5 +minPartnerNodeVersion: 1.0.0.0 +maxPartnerNodeVersion: 1.0.255.255 +serverVersion: 1.0.0.0 +fileDatabaseBatchSize: 100 +minProofSize: 0 +syncTimeout: 5m +maxChildNamespaces: 100 +timeSynchronizationMinImportance: 10000000000 +#nemesisSeedUrl: 'https://symbol-bootstrap.s3-eu-west-1.amazonaws.com/mainnet/seed.zip' +knownRestGateways: + - 'http://ngl-dual-001.symbolblockchain.io:3000' + - 'http://ngl-dual-002.symbolblockchain.io:3000' + - 'http://ngl-dual-003.symbolblockchain.io:3000' + - 'http://ngl-dual-004.symbolblockchain.io:3000' + - 'http://ngl-dual-101.symbolblockchain.io:3000' + - 'http://ngl-dual-102.symbolblockchain.io:3000' + - 'http://ngl-dual-103.symbolblockchain.io:3000' + - 'http://ngl-dual-104.symbolblockchain.io:3000' + - 'http://ngl-dual-201.symbolblockchain.io:3000' + - 'http://ngl-dual-202.symbolblockchain.io:3000' + - 'http://ngl-dual-203.symbolblockchain.io:3000' + - 'http://ngl-dual-204.symbolblockchain.io:3000' + - 'http://ngl-dual-301.symbolblockchain.io:3000' + - 'http://ngl-dual-302.symbolblockchain.io:3000' + - 'http://ngl-dual-303.symbolblockchain.io:3000' + - 'http://ngl-dual-304.symbolblockchain.io:3000' + - 'http://ngl-dual-401.symbolblockchain.io:3000' + - 'http://ngl-dual-402.symbolblockchain.io:3000' + - 'http://ngl-dual-403.symbolblockchain.io:3000' + - 'http://ngl-dual-404.symbolblockchain.io:3000' + - 'http://ngl-dual-501.symbolblockchain.io:3000' + - 'http://ngl-dual-502.symbolblockchain.io:3000' + - 'http://ngl-dual-503.symbolblockchain.io:3000' + - 'http://ngl-dual-504.symbolblockchain.io:3000' + - 'http://ngl-dual-601.symbolblockchain.io:3000' + - 'http://ngl-dual-602.symbolblockchain.io:3000' + - 'http://ngl-dual-603.symbolblockchain.io:3000' + - 'http://ngl-dual-604.symbolblockchain.io:3000' + - 'http://ngl-dual-005.symbolblockchain.io:3000' + - 'http://ngl-dual-006.symbolblockchain.io:3000' + - 'http://ngl-dual-105.symbolblockchain.io:3000' + - 'http://ngl-dual-106.symbolblockchain.io:3000' + - 'http://ngl-dual-205.symbolblockchain.io:3000' + - 'http://ngl-dual-206.symbolblockchain.io:3000' + - 'http://ngl-dual-305.symbolblockchain.io:3000' + - 'http://ngl-dual-306.symbolblockchain.io:3000' + - 'http://ngl-dual-405.symbolblockchain.io:3000' + - 'http://ngl-dual-406.symbolblockchain.io:3000' + - 'http://ngl-dual-505.symbolblockchain.io:3000' + - 'http://ngl-dual-506.symbolblockchain.io:3000' + - 'http://ngl-dual-605.symbolblockchain.io:3000' + - 'http://ngl-dual-606.symbolblockchain.io:3000' + - 'http://ngl-api-001.symbolblockchain.io:3000' + - 'http://ngl-api-301.symbolblockchain.io:3000' + - 'http://ngl-api-401.symbolblockchain.io:3000' + - 'http://ngl-api-501.symbolblockchain.io:3000' + - 'http://ngl-api-601.symbolblockchain.io:3000' +knownPeers: + api-node: + - publicKey: C7BEA9036ECFA79CB081184CFA0E524E7D567A5127C55360D9FF1D2FC1AC4FDD + endpoint: + host: ngl-dual-001.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-001 + roles: 'Api,Peer,Voting' + - publicKey: CE0AC3FC879B190220A95A67CAC855251EA599F11FA05A77CC02BC32F8228610 + endpoint: + host: ngl-dual-002.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-002 + roles: 'Api,Peer,Voting' + - publicKey: B36DE7C3B39B225FEF7FC37D40863A2C9AD90EAFDFD79C630BBFF3883CABD929 + endpoint: + host: ngl-dual-003.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-003 + roles: 'Api,Peer,Voting' + - publicKey: 86C31F2136FB5EB07147E883ACECB891D2D4734E363B26033B1230D8ACF8BBBE + endpoint: + host: ngl-dual-004.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-004 + roles: 'Api,Peer,Voting' + - publicKey: 6E81088A2E2504C4F91E3DC9C2517FAB99574D71EF5D9F74031FB394CCA7AF3B + endpoint: + host: ngl-dual-101.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-101 + roles: 'Api,Peer,Voting' + - publicKey: D1BD3577079DD8CFA5073615B7053712C7B4D4B12899C31D1FB34219145298A2 + endpoint: + host: ngl-dual-102.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-102 + roles: 'Api,Peer,Voting' + - publicKey: DCC6C941EE95967B47433EA3241D53594364A34DB33A9BDC0D668C457002E0F1 + endpoint: + host: ngl-dual-103.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-103 + roles: 'Api,Peer,Voting' + - publicKey: 3A98603E293DCE7CBF5EE860A00670E3025D3E880D3CC339C926217C36FE6436 + endpoint: + host: ngl-dual-104.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-104 + roles: 'Api,Peer,Voting' + - publicKey: 7E1101CFD5E64D6CA4A55B70E24412365BD1658E767F23AF9E9777410C116D89 + endpoint: + host: ngl-dual-201.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-201 + roles: 'Api,Peer,Voting' + - publicKey: 3820C4CFB4BA94F62A982991CB2618EC5E1CFF2C11AD34EFA2254F4305013C1D + endpoint: + host: ngl-dual-202.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-202 + roles: 'Api,Peer,Voting' + - publicKey: 256AA91283F23168C538F3155DEE946A2B0E7207FBDC369E5C5415F7EE1DE592 + endpoint: + host: ngl-dual-203.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-203 + roles: 'Api,Peer,Voting' + - publicKey: 6830127294F7C50FE91625076A0D1CCE910A084B032252CDD005C4148ED11A3D + endpoint: + host: ngl-dual-204.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-204 + roles: 'Api,Peer,Voting' + - publicKey: 92D05B749D6300C4CDCD13A58BF37B7C82B471AB2DFD1A7A6E8C1584620594CA + endpoint: + host: ngl-dual-301.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-301 + roles: 'Api,Peer,Voting' + - publicKey: 5446DA4D21D5809A3C8492C9083743F4349690A21CB5FF0D6621CC78A6FEE979 + endpoint: + host: ngl-dual-302.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-302 + roles: 'Api,Peer,Voting' + - publicKey: 4C48C2A708CC1857405C9C48C4D7A69AA5F0FBB7FB8323C967E1BC644A4417E9 + endpoint: + host: ngl-dual-303.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-303 + roles: 'Api,Peer,Voting' + - publicKey: DEC3292B6ABFAC6687C37FA8963B84715C6E736F6CA27DD50249638D9DF967B1 + endpoint: + host: ngl-dual-304.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-304 + roles: 'Api,Peer,Voting' + - publicKey: 9D50238B795818044CB330DC5FBA485C7B20EBD38E1A7DBE248555AD70AB4F19 + endpoint: + host: ngl-dual-401.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-401 + roles: 'Api,Peer,Voting' + - publicKey: 474C5CD5F0B24BCD769DBE99B37C80F4D60B89E28946E126BE23E1EFD5AAA369 + endpoint: + host: ngl-dual-402.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-402 + roles: 'Api,Peer,Voting' + - publicKey: EF1209DC3C42B6450BEF658D404252DF2E26784CECD35FAEB19D929AE030A198 + endpoint: + host: ngl-dual-403.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-403 + roles: 'Api,Peer,Voting' + - publicKey: E335B45C9FA2666121D81ACDC8007DF0C958D48A0E1ADD34D22894D85B3EA3BC + endpoint: + host: ngl-dual-404.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-404 + roles: 'Api,Peer,Voting' + - publicKey: 606BF668BBD9EA1AFCD9E37A2C18C05BE39CC00752AAD99A0E22A79071CCAA7D + endpoint: + host: ngl-dual-501.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-501 + roles: 'Api,Peer,Voting' + - publicKey: 428F68595322EADDCC0722F024FB0FAD7D35F40C50F1E99AE8FBC8B7EC68E7F2 + endpoint: + host: ngl-dual-502.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-502 + roles: 'Api,Peer,Voting' + - publicKey: C5B4653E6EE56B7E9C1F87D4F0C712B00378D2828CF7AC73F6BE19F8B1B04B4B + endpoint: + host: ngl-dual-503.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-503 + roles: 'Api,Peer,Voting' + - publicKey: E74C655E5A4E72E13EE86B8AE7051EEAAF9AD871D5750A04AB360A3FEFD03440 + endpoint: + host: ngl-dual-504.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-504 + roles: 'Api,Peer,Voting' + - publicKey: 90009F2C2D396A6B788D6DBAB8F075CB20549A50BBA5259D382618FD86F1419A + endpoint: + host: ngl-dual-601.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-601 + roles: 'Api,Peer,Voting' + - publicKey: E0AB078AC2F363DE0D6823D2A9B5229C092FFB8CB2735D72BE63B8AF94367CB6 + endpoint: + host: ngl-dual-602.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-602 + roles: 'Api,Peer,Voting' + - publicKey: F8C70778B37A989480969CB44F509509D1372049E821CA6F0A759FC50E03ADBF + endpoint: + host: ngl-dual-603.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-603 + roles: 'Api,Peer,Voting' + - publicKey: 9F62586518D1707CA57004EF38135509EAE9E9D2933A73041B6171EC0B3F50DF + endpoint: + host: ngl-dual-604.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-604 + roles: 'Api,Peer,Voting' + - publicKey: BA3E425DA3D32458F8A36C8FCBD6DEDBF5E7A9D8E56A7962EA55AD5125C425B1 + endpoint: + host: ngl-dual-005.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-005 + roles: 'Api,Peer' + - publicKey: 3FDFCB4F510E81A4A44B044298974DAA34F3B6FC9D24B6D5CE90FFA933C11F51 + endpoint: + host: ngl-dual-006.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-006 + roles: 'Api,Peer' + - publicKey: 9266C64CDEE62F2AF54806F0CBF2A53D9144CB02AA10B7F7DDEAEAF483E87591 + endpoint: + host: ngl-dual-105.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-105 + roles: 'Api,Peer' + - publicKey: AC63FD2AAA53B73B4E515F73077522925C8502BFC13B073A520B4BA2F3026BC8 + endpoint: + host: ngl-dual-106.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-106 + roles: 'Api,Peer' + - publicKey: 7811A94C2BF3CE9E7E1933DF9E9D0C3A7C09DAEF5A3CAC23960B252BDB8D52D3 + endpoint: + host: ngl-dual-205.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-205 + roles: 'Api,Peer' + - publicKey: 02A55829A1A10542C460A87C4D2C39D03DCCA3F53692B5095C424CCDC21E64A6 + endpoint: + host: ngl-dual-206.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-206 + roles: 'Api,Peer' + - publicKey: 36CAF133D574DB99B4392D76959488D5B91BD71545039DC80249CFD1FC536795 + endpoint: + host: ngl-dual-305.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-305 + roles: 'Api,Peer' + - publicKey: 9B302ABCE3CD5783D79AD522B1769DA9AAA10A69E1930B998C2675AA105356FA + endpoint: + host: ngl-dual-306.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-306 + roles: 'Api,Peer' + - publicKey: 4C85111B10EFB6A25FB77C8A2675C5A92DA5FF36686C4CCE24F887B16342CC95 + endpoint: + host: ngl-dual-405.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-405 + roles: 'Api,Peer' + - publicKey: 0AF73C5CAC76624DB9B51560820F8DFC88120994143C6DB344A035EBFF707A2F + endpoint: + host: ngl-dual-406.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-406 + roles: 'Api,Peer' + - publicKey: E060CA383C533273DB4B3CE7AD964E0E3A2B17018B19ABF830590D5FB9338B29 + endpoint: + host: ngl-dual-505.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-505 + roles: 'Api,Peer' + - publicKey: B1D2AA01E51A81E84CBB2919C0E6AFBBC1383A2760370E60A93C335245A6CB9C + endpoint: + host: ngl-dual-506.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-506 + roles: 'Api,Peer' + - publicKey: 4F014A430E69EFC422AD8B440FA4D312CBDE9803BB857A0736F38E62CE4CF571 + endpoint: + host: ngl-dual-605.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-605 + roles: 'Api,Peer' + - publicKey: E32504B5590B9927CA5509FAA0C0CA63DB3479095C2DB73D0150FB862AA0E1FC + endpoint: + host: ngl-dual-606.symbolblockchain.io + port: 7900 + metadata: + name: ngl-dual-606 + roles: 'Api,Peer' + - publicKey: 47AC3041A5CA98EEA123C64CB7420ADA7F45355CF1993ECA8639891536958011 + endpoint: + host: ngl-api-001.symbolblockchain.io + port: 7900 + metadata: + name: ngl-api-001 + roles: Api + - publicKey: FE0186777D17DD57CAE5E3D9531EC8E70F1F452ED777910E96A9F44D889D9684 + endpoint: + host: ngl-api-301.symbolblockchain.io + port: 7900 + metadata: + name: ngl-api-301 + roles: Api + - publicKey: 642197D9D5B283252BFCBC2FEF8B2EE1A7B3383DCD964D159CBF135CA31DC22B + endpoint: + host: ngl-api-401.symbolblockchain.io + port: 7900 + metadata: + name: ngl-api-401 + roles: Api + - publicKey: E1640F016401E1A8644614B1707D878992DB01B480B55AEDE0EA1A986067ED79 + endpoint: + host: ngl-api-501.symbolblockchain.io + port: 7900 + metadata: + name: ngl-api-501 + roles: Api + - publicKey: 0282991F51E91F8994F1B3FD4A7D1CDE39F6B828A5D419150D6E07925CFFD27C + endpoint: + host: ngl-api-601.symbolblockchain.io + port: 7900 + metadata: + name: ngl-api-601 + roles: Api + peer-node: + - publicKey: FA9F3974FE3B15585E6B72672C7D8BEAE27D1EDF6C4752BAFDB8B2FEA601C0CF + endpoint: + host: ngl-beacon-001.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-001 + roles: 'Peer,Voting' + - publicKey: AFF16052217A847A6A71B326FEA9073CFF70D07FC5BA9026B3E05FB453C950DF + endpoint: + host: ngl-beacon-101.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-101 + roles: 'Peer,Voting' + - publicKey: D237B4C5964183141868F90ABEF557F751FFB973E7CFF59CCC1B00C504E048F0 + endpoint: + host: ngl-beacon-201.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-201 + roles: 'Peer,Voting' + - publicKey: 78480D48CC2AA6988E2FD05C884EE0525ACF6DC78766492034EA08CC1ADF788C + endpoint: + host: ngl-beacon-301.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-301 + roles: 'Peer,Voting' + - publicKey: 9261DB223A28A3DB05315235DF2186260951B66515B17A6B890BBCE3EE9E3FE7 + endpoint: + host: ngl-beacon-401.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-401 + roles: 'Peer,Voting' + - publicKey: B1B60E982CF0DE72584BED82EDCFAF5F187D24B21DECFA814F69605B5DE4A7C1 + endpoint: + host: ngl-beacon-501.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-501 + roles: 'Peer,Voting' + - publicKey: 9785B471C23994341159DB2E66853F6B0EAEA1E6E2A838A020965F4B8E29D03A + endpoint: + host: ngl-beacon-601.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-601 + roles: 'Peer,Voting' + - publicKey: EA77478068E3266CFA478E39AF1FDCD67EA512381889717AA8B66BFC4D01701F + endpoint: + host: ngl-beacon-002.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-002 + roles: 'Peer,Voting' + - publicKey: D5A40927DDCCD657F52F4C53FE682B07FC2E375040E0CAC50D8FE060024BB775 + endpoint: + host: ngl-beacon-102.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-102 + roles: 'Peer,Voting' + - publicKey: AF42867433DCAAA560A8A83A923822D55751F360BA385EDF21A932C33F3AEDD0 + endpoint: + host: ngl-beacon-202.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-202 + roles: 'Peer,Voting' + - publicKey: EF14DAE981FBD1E697CCD551DB9146B379CA4FD153C84016E7DA7A1930AD2395 + endpoint: + host: ngl-beacon-302.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-302 + roles: 'Peer,Voting' + - publicKey: 3F880DE47D4EB16D1871B1DED95F081151C9BF910EF682EDF202E8CA904B0CB9 + endpoint: + host: ngl-beacon-402.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-402 + roles: 'Peer,Voting' + - publicKey: 47704C18AC5F0C50A92B3763049EA91D84B17FAC0D86D9A9340AF98E3F610058 + endpoint: + host: ngl-beacon-502.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-502 + roles: 'Peer,Voting' + - publicKey: DE26F36D5426EC7B91200CB8C0DB70F4D82CD15F7FAFCE48A2174781D72CE6AD + endpoint: + host: ngl-beacon-602.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-602 + roles: 'Peer,Voting' + - publicKey: 533F75316C28E09B652232D1F48468D19EC88AB5125E947873AA3E150E2DD217 + endpoint: + host: ngl-beacon-003.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-003 + roles: Peer + - publicKey: DEE480BD3CA0B2E928543F087A28234E565FF6EDBBBC5B961F8302C16ACEB202 + endpoint: + host: ngl-beacon-004.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-004 + roles: Peer + - publicKey: F925F965D66E2928DDF2C27BB3AB69781C92D0E414C84AE963A505686C66445A + endpoint: + host: ngl-beacon-103.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-103 + roles: Peer + - publicKey: 4D0AAE4583FDA3BA3CFFA00F9C684A701C360E59DDD14EF3992233D20C59585A + endpoint: + host: ngl-beacon-104.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-104 + roles: Peer + - publicKey: EEA3B0D28CAEF4A6354F65D7D7F4947145D6FD9FF9F36CA87856CB44A7B1531E + endpoint: + host: ngl-beacon-203.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-203 + roles: Peer + - publicKey: 2D310E377C0CC84A945E8C9CFDB799F7FDE5F88EE07BBF90D5CED2BFCE27445B + endpoint: + host: ngl-beacon-204.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-204 + roles: Peer + - publicKey: C1BD10D1320BB22F66692AE002129028BEE7D78E3AA991B12525AD5D3E1BE7DA + endpoint: + host: ngl-beacon-303.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-303 + roles: Peer + - publicKey: 082F46AEAD35E6C3E443542616F41AAA992389035CAC2DD8807B8321C585E6BB + endpoint: + host: ngl-beacon-304.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-304 + roles: Peer + - publicKey: 11D6421BC726D684614038B5A0E48D6723CA7C53CDF3A7F9305582227988B3A1 + endpoint: + host: ngl-beacon-403.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-403 + roles: Peer + - publicKey: 66C2A930320B7A00D0A2653588F65967C73222A8356781DD5AB98F9E759AEF27 + endpoint: + host: ngl-beacon-404.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-404 + roles: Peer + - publicKey: C08E5DD1539AA29F1408B288550BCBC27BEA447E97E31C5976E58067CD69F655 + endpoint: + host: ngl-beacon-503.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-503 + roles: Peer + - publicKey: BADFA53EDBFC6B57511A836057DABAE9FF1669027EC37A5A188CCFB81A033C07 + endpoint: + host: ngl-beacon-504.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-504 + roles: Peer + - publicKey: 5A85331AB54F8B296EC69F7ABF05E133907D6B87F658E43D09E5E9F6E7FDFB6A + endpoint: + host: ngl-beacon-603.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-603 + roles: Peer + - publicKey: 00FB938646A8A458C55036682AEFAD6733DAEB86DDF19404DEED680FE79B1C39 + endpoint: + host: ngl-beacon-604.symbolblockchain.io + port: 7900 + metadata: + name: ngl-beacon-604 + roles: Peer + - publicKey: AA91F88DF6D80A9FA097E2FD2A6FCC9CC937177FE0D8933D64B16C5C442B2691 + endpoint: + host: ngl-peer-001.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-001 + roles: Peer + - publicKey: 990B2E1DD730964E62250A7DB1EC2EFCAEE8EE0FA9B2B5368CB4102964C4A822 + endpoint: + host: ngl-peer-301.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-301 + roles: Peer + - publicKey: 1F39352BDBFDBDE4FAE4C58A51140C0843A1B8EE1D62B4297BCC7F6ECE47F489 + endpoint: + host: ngl-peer-401.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-401 + roles: Peer + - publicKey: D12440291B4BD458FE6BAFAA67C502A638777462654C59C7070BE0B5215FF510 + endpoint: + host: ngl-peer-601.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-601 + roles: Peer + - publicKey: 92AD7B4E370A7499F1449C1BA2863C5E484B584B59B148724F5970C6EFD6F806 + endpoint: + host: ngl-peer-501.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-501 + roles: Peer + - publicKey: DEE184EB07DD52A171AA3381F5E7047AE3B830D2A99B7A9027461EA5CB6B878D + endpoint: + host: ngl-peer-002.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-002 + roles: 'Peer,Voting' + - publicKey: 7080531438D8E76B732D76ECB936E74AEAAF3F9491A85691791BB41462EC2DD0 + endpoint: + host: ngl-peer-003.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-003 + roles: 'Peer,Voting' + - publicKey: E4797E4362B7DE5E4EE834DE4EAAA1036B8F035F6A5352FD5BB85664B41633AE + endpoint: + host: ngl-peer-004.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-004 + roles: 'Peer,Voting' + - publicKey: FEC90947D0AF30CB32BC6018928AA6CEC96ED9861DD0608DAFC69131BFDD971A + endpoint: + host: ngl-peer-101.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-101 + roles: 'Peer,Voting' + - publicKey: E6C6D041D77590295432EDC5DC8D1019D4F1F0C002C37909EB4837FF03B139CD + endpoint: + host: ngl-peer-102.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-102 + roles: 'Peer,Voting' + - publicKey: FC8C66547D7C20CD6CBF7F31DC5657247351AF8C12188E56F885FF012431B8C1 + endpoint: + host: ngl-peer-103.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-103 + roles: 'Peer,Voting' + - publicKey: 0E8D31F20B4119D8AE8176970727A37247764CCCE966C72A5809685717FDEA0F + endpoint: + host: ngl-peer-201.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-201 + roles: 'Peer,Voting' + - publicKey: ABCB18959666D248D8B3677D6E673F3EB7A217DEFC5C31B4EDAEB5D111321DDF + endpoint: + host: ngl-peer-202.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-202 + roles: 'Peer,Voting' + - publicKey: 5F32F1AAE8934112A9627EFF43414D9E5DA93CFDB5B5149864FBF76BC2EAA09C + endpoint: + host: ngl-peer-302.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-302 + roles: 'Peer,Voting' + - publicKey: 504699E3C142DD465C5B46BCD7F43ABE232741F4AD82DFB66808E2A338B77EEB + endpoint: + host: ngl-peer-303.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-303 + roles: 'Peer,Voting' + - publicKey: D2C9A5ECDF0FFBDAC5F9D54EDE06848450798086206C3B5E8D9C7737AC5BF4E7 + endpoint: + host: ngl-peer-304.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-304 + roles: 'Peer,Voting' + - publicKey: 729073C51675055556F67BC1C4FD065A12ABDEEBB9455B835382BEA701B6B644 + endpoint: + host: ngl-peer-402.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-402 + roles: 'Peer,Voting' + - publicKey: 8C63F371ECBEC388A14117662F3CB7456D5EA7449779D20DDC259F084203B9DD + endpoint: + host: ngl-peer-403.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-403 + roles: 'Peer,Voting' + - publicKey: 22719E8A14770A076A81A3BD9A02847E0E198AA0D8E8D8E7CC0B359CA80CD73D + endpoint: + host: ngl-peer-404.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-404 + roles: 'Peer,Voting' + - publicKey: 00794D10A9BDEC3E431A8165782D59D54A3EDA682FC50EA31B03BE46E3508D86 + endpoint: + host: ngl-peer-502.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-502 + roles: 'Peer,Voting' + - publicKey: E6051F40218A770C56B170F27E2C031B61C19EB7EAF6D17CEE7854D3A3F264BF + endpoint: + host: ngl-peer-503.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-503 + roles: 'Peer,Voting' + - publicKey: 4EF71A6C97ADD6A2C07568C38130A7CD7768F3E0F4E5E651A72119DDFF1F74A2 + endpoint: + host: ngl-peer-504.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-504 + roles: 'Peer,Voting' + - publicKey: 98ECC6FFF03B4AB7C687A27C0DB120E3B0ECDFEAFECC54E10D8AA59409890170 + endpoint: + host: ngl-peer-602.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-602 + roles: 'Peer,Voting' + - publicKey: 8EA3F1718C0C8DF68FB3B53702C8B3C44FEB88FA7018CAF0C52D163974CAECD2 + endpoint: + host: ngl-peer-603.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-603 + roles: 'Peer,Voting' + - publicKey: 9C59D2235888E6FE638A9F4E3F6977C230836A9902929F1884220CF2F1A40B85 + endpoint: + host: ngl-peer-604.symbolblockchain.io + port: 7900 + metadata: + name: ngl-peer-604 + roles: 'Peer,Voting' +inflation: + starting-at-height-2: 0 + starting-at-height-5760: 191997042 + starting-at-height-172799: 183764522 + starting-at-height-435299: 175884998 + starting-at-height-697799: 168343336 + starting-at-height-960299: 161125048 + starting-at-height-1222799: 154216270 + starting-at-height-1485299: 147603728 + starting-at-height-1747799: 141274720 + starting-at-height-2010299: 135217090 + starting-at-height-2272799: 129419202 + starting-at-height-2535299: 123869918 + starting-at-height-2797799: 118558578 + starting-at-height-3060299: 113474978 + starting-at-height-3322799: 108609356 + starting-at-height-3585299: 103952364 + starting-at-height-3847799: 99495056 + starting-at-height-4110299: 95228870 + starting-at-height-4372799: 91145612 + starting-at-height-4635299: 87237436 + starting-at-height-4897799: 83496838 + starting-at-height-5160299: 79916630 + starting-at-height-5422799: 76489934 + starting-at-height-5685299: 73210170 + starting-at-height-5947799: 70071038 + starting-at-height-6210299: 67066506 + starting-at-height-6472799: 64190804 + starting-at-height-6735299: 61438406 + starting-at-height-6997799: 58804028 + starting-at-height-7260299: 56282608 + starting-at-height-7522799: 53869300 + starting-at-height-7785299: 51559472 + starting-at-height-8047799: 49348686 + starting-at-height-8310299: 47232696 + starting-at-height-8572799: 45207434 + starting-at-height-8835299: 43269014 + starting-at-height-9097799: 41413708 + starting-at-height-9360299: 39637956 + starting-at-height-9622799: 37938346 + starting-at-height-9885299: 36311610 + starting-at-height-10147799: 34754628 + starting-at-height-10410299: 33264406 + starting-at-height-10672799: 31838082 + starting-at-height-10935299: 30472918 + starting-at-height-11197799: 29166288 + starting-at-height-11460299: 27915686 + starting-at-height-11722799: 26718706 + starting-at-height-11985299: 25573052 + starting-at-height-12247799: 24476520 + starting-at-height-12510299: 23427008 + starting-at-height-12772799: 22422496 + starting-at-height-13035299: 21461056 + starting-at-height-13297799: 20540840 + starting-at-height-13560299: 19660082 + starting-at-height-13822799: 18817090 + starting-at-height-14085299: 18010244 + starting-at-height-14347799: 17237994 + starting-at-height-14610299: 16498858 + starting-at-height-14872799: 15791412 + starting-at-height-15135299: 15114302 + starting-at-height-15397799: 14466226 + starting-at-height-15660299: 13845938 + starting-at-height-15922799: 13252246 + starting-at-height-16185299: 12684012 + starting-at-height-16447799: 12140142 + starting-at-height-16710299: 11619592 + starting-at-height-16972799: 11121364 + starting-at-height-17235299: 10644498 + starting-at-height-17497799: 10188078 + starting-at-height-17760299: 9751230 + starting-at-height-18022799: 9333114 + starting-at-height-18285299: 8932924 + starting-at-height-18547799: 8549896 + starting-at-height-18810299: 8183290 + starting-at-height-19072799: 7832404 + starting-at-height-19335299: 7496562 + starting-at-height-19597799: 7175122 + starting-at-height-19860299: 6867464 + starting-at-height-20122799: 6573000 + starting-at-height-20385299: 6291160 + starting-at-height-20647799: 6021404 + starting-at-height-20910299: 5763216 + starting-at-height-21172799: 5516100 + starting-at-height-21435299: 5279578 + starting-at-height-21697799: 5053198 + starting-at-height-21960299: 4836526 + starting-at-height-22222799: 4629144 + starting-at-height-22485299: 4430652 + starting-at-height-22747799: 4240674 + starting-at-height-23010299: 4058840 + starting-at-height-23272799: 3884804 + starting-at-height-23535299: 3718230 + starting-at-height-23797799: 3558798 + starting-at-height-24060299: 3406202 + starting-at-height-24322799: 3260150 + starting-at-height-24585299: 3120360 + starting-at-height-24847799: 2986564 + starting-at-height-25110299: 2858506 + starting-at-height-25372799: 2735938 + starting-at-height-25635299: 2618624 + starting-at-height-25897799: 2506342 + starting-at-height-26160299: 2398874 + starting-at-height-26422799: 2296014 + starting-at-height-26685299: 2197564 + starting-at-height-26947799: 2103336 + starting-at-height-27210299: 2013150 + starting-at-height-27472799: 1926828 + starting-at-height-27735299: 1844210 + starting-at-height-27997799: 1765132 + starting-at-height-28260299: 1689446 + starting-at-height-28522799: 1617006 + starting-at-height-28785299: 1547672 + starting-at-height-29047799: 1481310 + starting-at-height-29310299: 1417794 + starting-at-height-29572799: 1357000 + starting-at-height-29835299: 1298814 + starting-at-height-30097799: 1243124 + starting-at-height-30360299: 1189820 + starting-at-height-30622799: 1138802 + starting-at-height-30885299: 1089972 + starting-at-height-31147799: 1043236 + starting-at-height-31410299: 998504 + starting-at-height-31672799: 955690 + starting-at-height-31935299: 914712 + starting-at-height-32197799: 875490 + starting-at-height-32460299: 837950 + starting-at-height-32722799: 802020 + starting-at-height-32985299: 767630 + starting-at-height-33247799: 734716 + starting-at-height-33510299: 703212 + starting-at-height-33772799: 673060 + starting-at-height-34035299: 644200 + starting-at-height-34297799: 616578 + starting-at-height-34560299: 590140 + starting-at-height-34822799: 564836 + starting-at-height-35085299: 540616 + starting-at-height-35347799: 517436 + starting-at-height-35610299: 495248 + starting-at-height-35872799: 474014 + starting-at-height-36135299: 453688 + starting-at-height-36397799: 434234 + starting-at-height-36660299: 415616 + starting-at-height-36922799: 397794 + starting-at-height-37185299: 380738 + starting-at-height-37447799: 364412 + starting-at-height-37710299: 348786 + starting-at-height-37972799: 333832 + starting-at-height-38235299: 319518 + starting-at-height-38497799: 305816 + starting-at-height-38760299: 292704 + starting-at-height-39022799: 280154 + starting-at-height-39285299: 268140 + starting-at-height-39547799: 256644 + starting-at-height-39810299: 245638 + starting-at-height-40072799: 235106 + starting-at-height-40335299: 225026 + starting-at-height-40597799: 215376 + starting-at-height-40860299: 206142 + starting-at-height-41122799: 197302 + starting-at-height-41385299: 188842 + starting-at-height-41647799: 180744 + starting-at-height-41910299: 172994 + starting-at-height-42172799: 165578 + starting-at-height-42435299: 158478 + starting-at-height-42697799: 151682 + starting-at-height-42960299: 145178 + starting-at-height-43222799: 138954 + starting-at-height-43485299: 132994 + starting-at-height-43747799: 127292 + starting-at-height-44010299: 121834 + starting-at-height-44272799: 116610 + starting-at-height-44535299: 111610 + starting-at-height-44797799: 106824 + starting-at-height-45060299: 102244 + starting-at-height-45322799: 97860 + starting-at-height-45585299: 93664 + starting-at-height-45847799: 89648 + starting-at-height-46110299: 85804 + starting-at-height-46372799: 82124 + starting-at-height-46635299: 78602 + starting-at-height-46897799: 75232 + starting-at-height-47160299: 72006 + starting-at-height-47422799: 68920 + starting-at-height-47685299: 65964 + starting-at-height-47947799: 63136 + starting-at-height-48210299: 60428 + starting-at-height-48472799: 57838 + starting-at-height-48735299: 55358 + starting-at-height-48997799: 52984 + starting-at-height-49260299: 50712 + starting-at-height-49522799: 48538 + starting-at-height-49785299: 46456 + starting-at-height-50047799: 44464 + starting-at-height-50310299: 42558 + starting-at-height-50572799: 40732 + starting-at-height-50835299: 38986 + starting-at-height-51097799: 37314 + starting-at-height-51360299: 35714 + starting-at-height-51622799: 34182 + starting-at-height-51885299: 32716 + starting-at-height-52147799: 31314 + starting-at-height-52410299: 29972 + starting-at-height-52672799: 28686 + starting-at-height-52935299: 27456 + starting-at-height-53197799: 26278 + starting-at-height-53460299: 25152 + starting-at-height-53722799: 24074 + starting-at-height-53985299: 23042 + starting-at-height-54247799: 22054 + starting-at-height-54510299: 21108 + starting-at-height-54772799: 20202 + starting-at-height-55035299: 19336 + starting-at-height-55297799: 18506 + starting-at-height-55560299: 17714 + starting-at-height-55822799: 16954 + starting-at-height-56085299: 16226 + starting-at-height-56347799: 15532 + starting-at-height-56610299: 14866 + starting-at-height-56872799: 14228 + starting-at-height-57135299: 13618 + starting-at-height-57397799: 13034 + starting-at-height-57660299: 12474 + starting-at-height-57922799: 11940 + starting-at-height-58185299: 11428 + starting-at-height-58447799: 10938 + starting-at-height-58710299: 10468 + starting-at-height-58972799: 10020 + starting-at-height-59235299: 9590 + starting-at-height-59497799: 9178 + starting-at-height-59760299: 8786 + starting-at-height-60022799: 8408 + starting-at-height-60285299: 8048 + starting-at-height-60547799: 7702 + starting-at-height-60810299: 7372 + starting-at-height-61072799: 7056 + starting-at-height-61335299: 6754 + starting-at-height-61597799: 6464 + starting-at-height-61860299: 6186 + starting-at-height-62122799: 5922 + starting-at-height-62385299: 5668 + starting-at-height-62647799: 5424 + starting-at-height-62910299: 5192 + starting-at-height-63172799: 4970 + starting-at-height-63435299: 4756 + starting-at-height-63697799: 4552 + starting-at-height-63960299: 4356 + starting-at-height-64222799: 4170 + starting-at-height-64485299: 3992 + starting-at-height-64747799: 3820 + starting-at-height-65010299: 3656 + starting-at-height-65272799: 3500 + starting-at-height-65535299: 3350 + starting-at-height-65797799: 3206 + starting-at-height-66060299: 3068 + starting-at-height-66322799: 2936 + starting-at-height-66585299: 2810 + starting-at-height-66847799: 2690 + starting-at-height-67110299: 2574 + starting-at-height-67372799: 2464 + starting-at-height-67635299: 2358 + starting-at-height-67897799: 2258 + starting-at-height-68160299: 2160 + starting-at-height-68422799: 2068 + starting-at-height-68685299: 1980 + starting-at-height-68947799: 1894 + starting-at-height-69210299: 1812 + starting-at-height-69472799: 1736 + starting-at-height-69735299: 1660 + starting-at-height-69997799: 1590 + starting-at-height-70260299: 1522 + starting-at-height-70522799: 1456 + starting-at-height-70785299: 1394 + starting-at-height-71047799: 1334 + starting-at-height-71310299: 1276 + starting-at-height-71572799: 1222 + starting-at-height-71835299: 1170 + starting-at-height-72097799: 1120 + starting-at-height-72360299: 1072 + starting-at-height-72622799: 1026 + starting-at-height-72885299: 982 + starting-at-height-73147799: 938 + starting-at-height-73410299: 898 + starting-at-height-73672799: 860 + starting-at-height-73935299: 824 + starting-at-height-74197799: 788 + starting-at-height-74460299: 754 + starting-at-height-74722799: 722 + starting-at-height-74985299: 690 + starting-at-height-75247799: 662 + starting-at-height-75510299: 632 + starting-at-height-75772799: 606 + starting-at-height-76035299: 580 + starting-at-height-76297799: 554 + starting-at-height-76560299: 530 + starting-at-height-76822799: 508 + starting-at-height-77085299: 486 + starting-at-height-77347799: 466 + starting-at-height-77610299: 446 + starting-at-height-77872799: 426 + starting-at-height-78135299: 408 + starting-at-height-78397799: 390 + starting-at-height-78660299: 374 + starting-at-height-78922799: 358 + starting-at-height-79185299: 342 + starting-at-height-79447799: 328 + starting-at-height-79710299: 314 + starting-at-height-79972799: 300 + starting-at-height-80235299: 286 + starting-at-height-80497799: 274 + starting-at-height-80760299: 262 + starting-at-height-81022799: 252 + starting-at-height-81285299: 240 + starting-at-height-81547799: 230 + starting-at-height-81810299: 220 + starting-at-height-82072799: 210 + starting-at-height-82335299: 202 + starting-at-height-82597799: 194 + starting-at-height-82860299: 184 + starting-at-height-83122799: 176 + starting-at-height-83385299: 170 + starting-at-height-83647799: 162 + starting-at-height-83910299: 154 + starting-at-height-84172799: 148 + starting-at-height-84435299: 142 + starting-at-height-84697799: 136 + starting-at-height-84960299: 130 + starting-at-height-85222799: 124 + starting-at-height-85485299: 118 + starting-at-height-85747799: 114 + starting-at-height-86010299: 108 + starting-at-height-86272799: 104 + starting-at-height-86535299: 100 + starting-at-height-86797799: 96 + starting-at-height-87060299: 92 + starting-at-height-87322799: 88 + starting-at-height-87585299: 84 + starting-at-height-87847799: 80 + starting-at-height-88110299: 76 + starting-at-height-88372799: 72 + starting-at-height-88635299: 70 + starting-at-height-88897799: 66 + starting-at-height-89160299: 64 + starting-at-height-89422799: 62 + starting-at-height-89685299: 58 + starting-at-height-89947799: 56 + starting-at-height-90210299: 54 + starting-at-height-90472799: 52 + starting-at-height-90735299: 48 + starting-at-height-90997799: 46 + starting-at-height-91260299: 44 + starting-at-height-91522799: 42 + starting-at-height-91785299: 40 + starting-at-height-92047799: 40 + starting-at-height-92310299: 38 + starting-at-height-92572799: 36 + starting-at-height-92835299: 34 + starting-at-height-93097799: 32 + starting-at-height-93360299: 32 + starting-at-height-93622799: 30 + starting-at-height-93885299: 28 + starting-at-height-94147799: 28 + starting-at-height-94410299: 26 + starting-at-height-94672799: 24 + starting-at-height-94935299: 24 + starting-at-height-95197799: 22 + starting-at-height-95460299: 22 + starting-at-height-95722799: 20 + starting-at-height-95985299: 20 + starting-at-height-96247799: 18 + starting-at-height-96510299: 18 + starting-at-height-96772799: 18 + starting-at-height-97035299: 16 + starting-at-height-97297799: 16 + starting-at-height-97560299: 14 + starting-at-height-97822799: 14 + starting-at-height-98085299: 14 + starting-at-height-98347799: 12 + starting-at-height-98610299: 12 + starting-at-height-98872799: 12 + starting-at-height-99135299: 12 + starting-at-height-99397799: 10 + starting-at-height-99660299: 10 + starting-at-height-99922799: 10 + starting-at-height-100185299: 10 + starting-at-height-100447799: 8 + starting-at-height-100710299: 8 + starting-at-height-100972799: 8 + starting-at-height-101235299: 8 + starting-at-height-101497799: 8 + starting-at-height-101760299: 6 + starting-at-height-102022799: 6 + starting-at-height-102285299: 6 + starting-at-height-102547799: 6 + starting-at-height-102810299: 6 + starting-at-height-103072799: 6 + starting-at-height-103335299: 6 + starting-at-height-103597799: 4 + starting-at-height-103860299: 4 + starting-at-height-104122799: 4 + starting-at-height-104385299: 4 + starting-at-height-104647799: 4 + starting-at-height-104910299: 4 + starting-at-height-105172799: 4 + starting-at-height-105435299: 4 + starting-at-height-105697799: 4 + starting-at-height-105960299: 2 + starting-at-height-106222799: 2 + starting-at-height-106485299: 2 + starting-at-height-106747799: 2 + starting-at-height-107010299: 2 + starting-at-height-107272799: 2 + starting-at-height-107535299: 2 + starting-at-height-107797799: 2 + starting-at-height-108060299: 2 + starting-at-height-108322799: 2 + starting-at-height-108585299: 2 + starting-at-height-108847799: 2 + starting-at-height-109110299: 2 + starting-at-height-109372799: 2 + starting-at-height-109635299: 2 + starting-at-height-109897799: 2 + starting-at-height-110160299: 1 + starting-at-height-110422799: 0 diff --git a/presets/mainnet/seed/00000/00001.dat b/presets/mainnet/seed/00000/00001.dat new file mode 100644 index 000000000..5301f739e Binary files /dev/null and b/presets/mainnet/seed/00000/00001.dat differ diff --git a/presets/mainnet/seed/00000/00001.proof b/presets/mainnet/seed/00000/00001.proof new file mode 100644 index 000000000..6bb65803d Binary files /dev/null and b/presets/mainnet/seed/00000/00001.proof differ diff --git a/presets/mainnet/seed/00000/00001.stmt b/presets/mainnet/seed/00000/00001.stmt new file mode 100644 index 000000000..8ef9324a5 Binary files /dev/null and b/presets/mainnet/seed/00000/00001.stmt differ diff --git a/presets/mainnet/seed/00000/hashes.dat b/presets/mainnet/seed/00000/hashes.dat new file mode 100644 index 000000000..645a1b893 Binary files /dev/null and b/presets/mainnet/seed/00000/hashes.dat differ diff --git a/presets/mainnet/seed/00000/proof.heights.dat b/presets/mainnet/seed/00000/proof.heights.dat new file mode 100644 index 000000000..01d633b27 Binary files /dev/null and b/presets/mainnet/seed/00000/proof.heights.dat differ diff --git a/presets/mainnet/seed/index.dat b/presets/mainnet/seed/index.dat new file mode 100644 index 000000000..20d5cb86e Binary files /dev/null and b/presets/mainnet/seed/index.dat differ diff --git a/presets/mainnet/seed/proof.index.dat b/presets/mainnet/seed/proof.index.dat new file mode 100644 index 000000000..7b6255440 Binary files /dev/null and b/presets/mainnet/seed/proof.index.dat differ diff --git a/presets/shared.yml b/presets/shared.yml index 4b45e8d5f..8644cb999 100644 --- a/presets/shared.yml +++ b/presets/shared.yml @@ -66,11 +66,11 @@ maxNamespaceDepth: 3 batchVerificationRandomSource: symbolServerToolsImage: symbolplatform/symbol-server:tools-gcc-0.10.0.8 symbolServerImage: symbolplatform/symbol-server:gcc-0.10.0.8 -symbolRestImage: symbolplatform/symbol-rest:2.3.4 +symbolRestImage: symbolplatform/symbol-rest:2.3.5 symbolExplorerImage: symbolplatform/symbol-explorer:0.6.3-alpha symbolWalletImage: symbolplatform/symbol-desktop-wallet:0.13.6 -symbolFaucetImage: symbolplatform/symbol-faucet:0.4.0 -symbolAgentImage: symbolplatform/symbol-node-rewards-agent:0.1.0 +symbolFaucetImage: symbolplatform/symbol-faucet:0.5.0-alpha +symbolAgentImage: symbolplatform/symbol-node-rewards-agent:1.0.1 mongoImage: mongo:4.4.3-bionic mongoComposeRunParam: --wiredTigerCacheSizeGB 2 logLevel: 'Info' @@ -151,7 +151,7 @@ maxTrackedNodes: 5'000 beneficiaryAddress: '' enableAutoHarvesting: true fileDatabaseBatchSize: 1 -maxUnlockedAccounts: 5 +maxUnlockedAccounts: 10 delegatePrioritizationPolicy: Importance dockerComposeVersion: '2.4' dockerComposeServiceRestart: 'on-failure:2' @@ -205,8 +205,9 @@ apiNodeBrokerMonitorLoggingThrottle: 60000 maxConnectionAttempts: 15 baseRetryDelay: 750 connectionPoolSize: 10 +maxSubscriptions: 300 #voting votingKeyStartEpoch: 1 -votingKeyEndEpoch: 1460 +votingKeyEndEpoch: 360 enableRevoteOnBoot: true diff --git a/src/model/ConfigPreset.ts b/src/model/ConfigPreset.ts index a7083c005..fef95576f 100644 --- a/src/model/ConfigPreset.ts +++ b/src/model/ConfigPreset.ts @@ -21,7 +21,7 @@ import { NodeType } from './NodeType'; export enum PrivateKeySecurityMode { ENCRYPT = 'ENCRYPT', PROMPT_MAIN = 'PROMPT_MAIN', - PROMPT_MAIN_VOTING = 'PROMPT_MAIN_VOTING', + PROMPT_MAIN_TRANSPORT = 'PROMPT_MAIN_TRANSPORT', PROMPT_ALL = 'PROMPT_ALL', } @@ -66,18 +66,19 @@ export interface NemesisPreset { } export interface NodePreset extends DockerServicePreset { + name: string; + harvesting: boolean; + api: boolean; + voting: boolean; + // At least these properties. // If true, harvesterSigningPrivateKey != mainPrivateKey and harvesterSigningPrivateKey will be linked to mainPrivateKey serverVersion?: string; nodeUseRemoteAccount?: boolean; repeat?: number; - harvesting: boolean; - api: boolean; - voting: boolean; - databaseHost: string; + databaseHost?: string; host?: string; - name: string; - roles: string; + roles?: string; friendlyName?: string; // Optional private keys. If not provided, bootstrap will generate random ones. @@ -93,9 +94,6 @@ export interface NodePreset extends DockerServicePreset { vrfPrivateKey?: string; vrfPublicKey?: string; - votingPrivateKey?: string; - votingPublicKey?: string; - //Broker specific brokerName?: string; brokerHost?: string; diff --git a/src/service/AnnounceService.ts b/src/service/AnnounceService.ts index 850baa06c..8b88238bf 100644 --- a/src/service/AnnounceService.ts +++ b/src/service/AnnounceService.ts @@ -298,7 +298,13 @@ export class AnnounceService { } } else { const signerAccount = Account.createFromPrivateKey( - await CommandUtils.resolvePrivateKey(networkType, nodeAccount.main, KeyName.Main, nodeAccount.name), + await CommandUtils.resolvePrivateKey( + networkType, + nodeAccount.main, + KeyName.Main, + nodeAccount.name, + 'signing a transaction', + ), networkType, ); if (transactions.length == 1) { diff --git a/src/service/BootstrapUtils.ts b/src/service/BootstrapUtils.ts index 44688ae8a..64f90d576 100644 --- a/src/service/BootstrapUtils.ts +++ b/src/service/BootstrapUtils.ts @@ -32,7 +32,7 @@ import * as Handlebars from 'handlebars'; import { get } from 'https'; import * as _ from 'lodash'; import { platform, totalmem } from 'os'; -import { basename, join } from 'path'; +import { basename, join, resolve } from 'path'; import { Convert, Deadline, DtoMapping, LinkAction, NetworkType, Transaction, UInt64, VotingKeyLinkTransaction } from 'symbol-sdk'; import * as util from 'util'; import { LogType } from '../logger'; @@ -255,6 +255,14 @@ export class BootstrapUtils { } } + public static resolveRootFolder(): string { + const rootFolder = resolve(__dirname, '../..'); + if (!existsSync(join(rootFolder, 'presets', 'shared.yml'))) { + throw new Error(`Root Folder ${rootFolder} does not look right!`); + } + return rootFolder; + } + public static async runImageUsingExec({ catapultAppFolder, image, @@ -373,6 +381,7 @@ export class BootstrapUtils { } else { await fsPromises.copyFile(fromPath, destinationFile); } + await fsPromises.chmod(destinationFile, 0o600); } } else if (stat.isDirectory()) { await fsPromises.mkdir(toPath, { recursive: true }); diff --git a/src/service/CertificateService.ts b/src/service/CertificateService.ts index e8af19ec0..ee2b0d8c9 100644 --- a/src/service/CertificateService.ts +++ b/src/service/CertificateService.ts @@ -103,12 +103,19 @@ export class CertificateService { const generatedContext = { name }; await BootstrapUtils.generateConfiguration(generatedContext, copyFrom, certFolder, []); - const mainAccountPrivateKey = await CommandUtils.resolvePrivateKey(networkType, providedCertificates.main, KeyName.Main, name); + const mainAccountPrivateKey = await CommandUtils.resolvePrivateKey( + networkType, + providedCertificates.main, + KeyName.Main, + name, + 'generating the server CA certificates', + ); const transportPrivateKey = await CommandUtils.resolvePrivateKey( networkType, providedCertificates.transport, KeyName.Transport, name, + 'generating the server Node certificates', ); BootstrapUtils.createDerFile(mainAccountPrivateKey, join(certFolder, 'ca.der')); BootstrapUtils.createDerFile(transportPrivateKey, join(certFolder, 'node.der')); diff --git a/src/service/CommandUtils.ts b/src/service/CommandUtils.ts index c9d7e9304..35ed5d203 100644 --- a/src/service/CommandUtils.ts +++ b/src/service/CommandUtils.ts @@ -26,7 +26,7 @@ import { KeyName } from './ConfigService'; const logger: Logger = LoggerFactory.getLogger(LogType.System); export class CommandUtils { - public static passwordPromptDefaultMessage = `Enter the password used to encrypt and decrypted custom presets, addresses.yml, and preset.yml files. When providing a password, private keys would be encrypted. Keep this password in a secure place!`; + public static passwordPromptDefaultMessage = `Enter password to use to encrypt and decrypt custom presets, addresses.yml, and preset.yml files. When providing a password, private keys will be encrypted. Keep this password in a secure place!`; public static helpFlag = flags.help({ char: 'h', description: 'It shows the help of this command.' }); public static targetFlag = flags.string({ @@ -72,12 +72,15 @@ export class CommandUtils { account: CertificatePair | undefined, keyName: KeyName, nodeName: string, + operationDescription: string, ): Promise { if (!account) { return ''; } if (!account.privateKey) { while (true) { + console.log(); + console.log(`${keyName} private key is required when ${operationDescription}.`); const address = PublicAccount.createFromPublicKey(account.publicKey, networkType).address.plain(); const nodeDescription = nodeName === '' ? `of` : `of the Node's '${nodeName}'`; const responses = await prompt([ diff --git a/src/service/ConfigLoader.ts b/src/service/ConfigLoader.ts index 7fbad919a..45d4e37e9 100644 --- a/src/service/ConfigLoader.ts +++ b/src/service/ConfigLoader.ts @@ -78,6 +78,7 @@ export class ConfigLoader { addresses.nemesisSigner, KeyName.NemesisSigner, '', + 'creating the network nemesis seed and configuration', ); } @@ -210,7 +211,7 @@ export class ConfigLoader { if ( keyName === KeyName.Main && (privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_ALL || - privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_MAIN_VOTING || + privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT || privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_MAIN) ) { throw new KnownError( @@ -218,9 +219,9 @@ export class ConfigLoader { ); } if ( - keyName === KeyName.Voting && + keyName === KeyName.Transport && (privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_ALL || - privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_MAIN_VOTING) + privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT) ) { throw new KnownError( `Account ${keyName} cannot be generated when Private Key Security Mode is ${privateKeySecurityMode}. Account won't be stored anywhere!. Please use ${PrivateKeySecurityMode.ENCRYPT}, ${PrivateKeySecurityMode.PROMPT_MAIN}, or provider your ${keyName} account with custom presets!`, @@ -228,7 +229,7 @@ export class ConfigLoader { } else { if (privateKeySecurityMode === PrivateKeySecurityMode.PROMPT_ALL) { throw new KnownError( - `Account ${keyName} cannot be generated when Private Key Security Mode is ${privateKeySecurityMode}. Account won't be stored anywhere! Please use ${PrivateKeySecurityMode.ENCRYPT}, ${PrivateKeySecurityMode.PROMPT_MAIN}, ${PrivateKeySecurityMode.PROMPT_MAIN_VOTING}, or provider your ${keyName} account with custom presets!`, + `Account ${keyName} cannot be generated when Private Key Security Mode is ${privateKeySecurityMode}. Account won't be stored anywhere! Please use ${PrivateKeySecurityMode.ENCRYPT}, ${PrivateKeySecurityMode.PROMPT_MAIN}, ${PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT}, or provider your ${keyName} account with custom presets!`, ); } } @@ -267,7 +268,7 @@ export class ConfigLoader { const nodeAccount: NodeAccount = { name, friendlyName, - roles: nodePreset.roles, + roles: nodePreset.roles || '', main: main, transport: transport, }; @@ -284,13 +285,10 @@ export class ConfigLoader { nodePreset.remotePublicKey, ); if (nodePreset.voting) - nodeAccount.voting = this.generateAccount( - networkType, - privateKeySecurityMode, - KeyName.Voting, - oldNodeAccount?.voting, - nodePreset.votingPrivateKey, - nodePreset.votingPublicKey, + nodeAccount.voting = this.toConfig( + oldNodeAccount?.voting + ? PublicAccount.createFromPublicKey(oldNodeAccount.voting.publicKey, networkType) + : Account.generateNewAccount(networkType), ); if (nodePreset.harvesting) nodeAccount.vrf = this.generateAccount( @@ -340,7 +338,15 @@ export class ConfigLoader { const assemblyPreset = assembly ? BootstrapUtils.loadYaml(`${root}/presets/${preset}/assembly-${assembly}.yml`, false) : {}; const customPresetFileObject = customPreset ? BootstrapUtils.loadYaml(customPreset, password) : {}; //Deep merge + const inflation = + customPresetObject?.inflation || + customPresetFileObject?.inflation || + assemblyPreset?.inflation || + networkPreset?.inflation || + sharedPreset?.inflation || + []; const presetData = _.merge(sharedPreset, networkPreset, assemblyPreset, customPresetFileObject, customPresetObject, { preset }); + presetData.inflation = inflation; if (!ConfigLoader.presetInfoLogged) { logger.info(`Generating config from preset ${preset}`); if (assembly) { @@ -383,21 +389,6 @@ export class ConfigLoader { roles, }; } - if (node.harvesting) { - return { - sinkType: 'Sync', - enableSingleThreadPool: true, - addressextraction: false, - mongo: false, - zeromq: false, - syncsource: true, - filespooling: false, - enableAutoSyncCleanup: true, - partialtransaction: false, - ...node, - roles, - }; - } if (node.api) { return { sinkType: 'Async', @@ -413,7 +404,21 @@ export class ConfigLoader { roles, }; } - throw new Error('A node must have at least one harvesting: true or api: true'); + + //peer only (harvesting or not). + return { + sinkType: 'Sync', + enableSingleThreadPool: true, + addressextraction: false, + mongo: false, + zeromq: false, + syncsource: true, + filespooling: false, + enableAutoSyncCleanup: true, + partialtransaction: false, + ...node, + roles, + }; }); } diff --git a/src/service/ConfigService.ts b/src/service/ConfigService.ts index 03e0d1eed..f6b012415 100644 --- a/src/service/ConfigService.ts +++ b/src/service/ConfigService.ts @@ -50,6 +50,7 @@ import { VotingService } from './VotingService'; export enum Preset { bootstrap = 'bootstrap', testnet = 'testnet', + mainnet = 'mainnet', } export enum KeyName { @@ -149,11 +150,8 @@ export class ConfigService { await this.generateGateways(presetData); await this.generateExplorers(presetData); await this.generateWallets(presetData); - if (!oldPresetData && !oldAddresses) { - await this.resolveNemesis(presetData, addresses); - } else { - logger.info('Nemesis data cannot be generated or copied when upgrading...'); - } + const isUpgrade = !!oldPresetData || !!oldAddresses; + await this.resolveNemesis(presetData, addresses, isUpgrade); await this.copyNemesis(addresses); if (this.params.report) { await new ReportService(this.root, this.params).run(presetData); @@ -179,7 +177,10 @@ export class ConfigService { } private resolveCurrentPresetData(oldPresetData: ConfigPreset | undefined, password: string | undefined) { - return _.merge(oldPresetData || {}, this.configLoader.createPresetData({ ...this.params, root: this.root, password: password })); + return _.merge( + _.omit(oldPresetData || {}, 'inflation'), + this.configLoader.createPresetData({ ...this.params, root: this.root, password: password }), + ); } private async copyNemesis(addresses: Addresses) { @@ -209,27 +210,42 @@ export class ConfigService { } } - private async resolveNemesis(presetData: ConfigPreset, addresses: Addresses) { + private async resolveNemesis(presetData: ConfigPreset, addresses: Addresses, isUpgrade: boolean) { const target = this.params.target; const nemesisSeedFolder = BootstrapUtils.getTargetNemesisFolder(target, false, 'seed'); await BootstrapUtils.mkdir(nemesisSeedFolder); - + if (presetData.nemesis) { + if (isUpgrade) { + logger.info('Nemesis data cannot be generated when upgrading...'); + } else { + await this.generateNemesisConfig(presetData, addresses); + await this.validateSeedFolder(nemesisSeedFolder, `Is the generated nemesis seed a valid seed folder?`); + } + return; + } + if (isUpgrade) { + logger.info('Upgrading genesis on upgrade!'); + } + await BootstrapUtils.deleteFolder(nemesisSeedFolder); + await BootstrapUtils.mkdir(nemesisSeedFolder); if (presetData.nemesisSeedFolder) { await this.validateSeedFolder( presetData.nemesisSeedFolder, `Is the provided preset nemesisSeedFolder: ${presetData.nemesisSeedFolder} a valid seed folder?`, ); + logger.info(`Using custom nemesis seed folder in ${presetData.nemesisSeedFolder}`); await BootstrapUtils.generateConfiguration({}, presetData.nemesisSeedFolder, nemesisSeedFolder); return; } - - if (presetData.nemesis) { - await this.generateNemesisConfig(presetData, addresses); - await this.validateSeedFolder(nemesisSeedFolder, `Is the generated nemesis seed a valid seed folder?`); + const finalNemesisSeed = join(this.root, 'presets', this.params.preset, 'seed'); + if (existsSync(finalNemesisSeed)) { + await BootstrapUtils.generateConfiguration({}, finalNemesisSeed, nemesisSeedFolder); + await this.validateSeedFolder(nemesisSeedFolder, `Is the ${this.params.preset} preset default seed a valid seed folder?`); return; } - await BootstrapUtils.generateConfiguration({}, join(this.root, 'presets', this.params.preset, 'seed'), nemesisSeedFolder); - await this.validateSeedFolder(nemesisSeedFolder, `Is the ${this.params.preset} preset default seed a valid seed folder?`); + logger.warn(`Seed for preset ${this.params.preset} could not be found in ${finalNemesisSeed}`); + + throw new Error('Seed could not be found!!!!'); } private async generateNodes(presetData: ConfigPreset, addresses: Addresses): Promise { @@ -273,24 +289,26 @@ export class ConfigService { const brokerConfig = BootstrapUtils.getTargetNodesFolder(this.params.target, false, name, 'broker-config'); const nodePreset = (presetData.nodes || [])[index]; - const nodePrivateKey = await CommandUtils.resolvePrivateKey( - presetData.networkType, - account.transport, - KeyName.Transport, - account.name, - ); - const harvesterSigningPrivateKey = await CommandUtils.resolvePrivateKey( + const harvesterSigningPrivateKey = nodePreset.harvesting + ? await CommandUtils.resolvePrivateKey( + presetData.networkType, + account.remote || account.main, + account.remote ? KeyName.Remote : KeyName.Main, + account.name, + 'storing the harvesterSigningPrivateKey in the server properties', + ) + : ''; + const harvesterVrfPrivateKey = await CommandUtils.resolvePrivateKey( presetData.networkType, - account.remote || account.main, - account.remote ? KeyName.Remote : KeyName.Main, + account.vrf, + KeyName.VRF, account.name, + 'storing the harvesterVrfPrivateKey in the server properties', ); - const harvesterVrfPrivateKey = await CommandUtils.resolvePrivateKey(presetData.networkType, account.vrf, KeyName.VRF, account.name); const generatedContext = { name: name, friendlyName: nodePreset?.friendlyName || account.friendlyName, - nodePrivateKey: nodePrivateKey, harvesterSigningPrivateKey: harvesterSigningPrivateKey, harvesterVrfPrivateKey: harvesterVrfPrivateKey, }; @@ -317,10 +335,19 @@ export class ConfigService { `Cannot create reward program configuration. There is not rest gateway for the api node: ${nodePreset.name}`, ); } + const nodePrivateKey = await CommandUtils.resolvePrivateKey( + presetData.networkType, + account.transport, + KeyName.Transport, + account.name, + 'creating the agent properties', + ); + const rewardProgram = RewardProgramService.getRewardProgram(nodePreset.rewardProgram); templateContext.restGatewayUrl = nodePreset.restGatewayUrl || `http://${restService.host || nodePreset.host}:3000`; templateContext.rewardProgram = rewardProgram; templateContext.serverVersion = nodePreset.serverVersion || presetData.serverVersion; + templateContext.nodePrivateKey = nodePrivateKey; const copyFrom = join(this.root, 'config', 'agent'); const agentConfig = BootstrapUtils.getTargetNodesFolder(this.params.target, false, name, 'agent'); await BootstrapUtils.generateConfiguration(templateContext, copyFrom, agentConfig, []); @@ -349,7 +376,7 @@ export class ConfigService { addresses, serverConfig, NodeType.PEER_NODE, - (nodePresetData) => nodePresetData.harvesting, + (nodePresetData) => nodePresetData.harvesting && nodePresetData != nodePreset, 'peers-p2p.json', ); await this.generateP2PFile( @@ -357,7 +384,7 @@ export class ConfigService { addresses, serverConfig, NodeType.API_NODE, - (nodePresetData) => nodePresetData.api, + (nodePresetData) => nodePresetData.api && nodePresetData != nodePreset, 'peers-api.json', ); @@ -374,7 +401,7 @@ export class ConfigService { addresses, brokerConfig, NodeType.PEER_NODE, - (nodePresetData) => nodePresetData.harvesting, + (nodePresetData) => nodePresetData.harvesting && nodePresetData != nodePreset, 'peers-p2p.json', ); await this.generateP2PFile( @@ -382,7 +409,7 @@ export class ConfigService { addresses, brokerConfig, NodeType.API_NODE, - (nodePresetData) => nodePresetData.api, + (nodePresetData) => nodePresetData.api && nodePresetData != nodePreset, 'peers-api.json', ); } @@ -422,7 +449,9 @@ export class ConfigService { _info: `this file contains a list of ${type} peers`, knownPeers: [...thisNetworkKnownPeers, ...globalKnownPeers], }; - await fs.promises.writeFile(join(outputFolder, `resources`, jsonFileName), JSON.stringify(data, null, 2)); + const peerFile = join(outputFolder, `resources`, jsonFileName); + await fs.promises.writeFile(peerFile, JSON.stringify(data, null, 2)); + await fs.promises.chmod(peerFile, 0o600); } private async generateNemesisConfig(presetData: ConfigPreset, addresses: Addresses) { @@ -529,7 +558,13 @@ export class ConfigService { } const deadline = Deadline.createFromDTO('1'); const vrf = VrfKeyLinkTransaction.create(deadline, node.vrf.publicKey, LinkAction.Link, presetData.networkType, UInt64.fromUint(0)); - const mainPrivateKey = await CommandUtils.resolvePrivateKey(presetData.networkType, node.main, KeyName.Main, node.name); + const mainPrivateKey = await CommandUtils.resolvePrivateKey( + presetData.networkType, + node.main, + KeyName.Main, + node.name, + 'creating the vrf key link transactions', + ); const account = Account.createFromPrivateKey(mainPrivateKey, presetData.networkType); const signedTransaction = account.sign(vrf, presetData.nemesisGenerationHashSeed); return await this.storeTransaction(transactionsDirectory, `vrf_${node.name}`, signedTransaction.payload); @@ -554,7 +589,13 @@ export class ConfigService { presetData.networkType, UInt64.fromUint(0), ); - const mainPrivateKey = await CommandUtils.resolvePrivateKey(presetData.networkType, node.main, KeyName.Main, node.name); + const mainPrivateKey = await CommandUtils.resolvePrivateKey( + presetData.networkType, + node.main, + KeyName.Main, + node.name, + 'creating the account link transactions', + ); const account = Account.createFromPrivateKey(mainPrivateKey, presetData.networkType); const signedTransaction = account.sign(akl, presetData.nemesisGenerationHashSeed); return await this.storeTransaction(transactionsDirectory, `remote_${node.name}`, signedTransaction.payload); @@ -579,7 +620,13 @@ export class ConfigService { Deadline.createFromDTO('1'), UInt64.fromUint(0), ); - const mainPrivateKey = await CommandUtils.resolvePrivateKey(presetData.networkType, node.main, KeyName.Main, node.name); + const mainPrivateKey = await CommandUtils.resolvePrivateKey( + presetData.networkType, + node.main, + KeyName.Main, + node.name, + 'creating the voting key link transactions', + ); const account = Account.createFromPrivateKey(mainPrivateKey, presetData.networkType); const signedTransaction = account.sign(voting, presetData.nemesisGenerationHashSeed); return await this.storeTransaction(transactionsDirectory, `voting_${node.name}`, signedTransaction.payload); diff --git a/src/service/CryptoUtils.ts b/src/service/CryptoUtils.ts index 6378e8d95..87f2ee66c 100644 --- a/src/service/CryptoUtils.ts +++ b/src/service/CryptoUtils.ts @@ -52,15 +52,15 @@ export class CryptoUtils { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types public static removePrivateKeysAccordingToSecurityMode(value: any, securityMode: PrivateKeySecurityMode): any { if (securityMode === PrivateKeySecurityMode.PROMPT_MAIN) { - return this.removePrivateKeys(value, ['main']); - } - if (securityMode === PrivateKeySecurityMode.PROMPT_MAIN_VOTING) { return this.removePrivateKeys(value, ['main', 'voting']); } + if (securityMode === PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT) { + return this.removePrivateKeys(value, ['main', 'transport', 'voting']); + } if (securityMode === PrivateKeySecurityMode.PROMPT_ALL) { return this.removePrivateKeys(value); } - return value; + return this.removePrivateKeys(value, ['voting']); } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types diff --git a/src/service/VotingService.ts b/src/service/VotingService.ts index 48f9e5123..d7bb08fe3 100644 --- a/src/service/VotingService.ts +++ b/src/service/VotingService.ts @@ -20,8 +20,7 @@ import Logger from '../logger/Logger'; import LoggerFactory from '../logger/LoggerFactory'; import { ConfigAccount, ConfigPreset, NodeAccount, NodePreset } from '../model'; import { BootstrapUtils } from './BootstrapUtils'; -import { CommandUtils } from './CommandUtils'; -import { ConfigParams, KeyName } from './ConfigService'; +import { ConfigParams } from './ConfigService'; type VotingParams = ConfigParams; @@ -54,13 +53,14 @@ export class VotingService { logger.info(`Voting File for node ${nodePreset.name} has been previously generated. Reusing...`); return; } + const votingPrivateKey = nodeAccount?.voting.privateKey; + + if (!votingPrivateKey) { + throw new Error( + 'Voting key should have been previously generated!!! You need to reset your target folder. Please run --reset using your original custom preset.', + ); + } - const votingPrivateKey = await CommandUtils.resolvePrivateKey( - presetData.networkType, - nodeAccount.voting, - KeyName.Voting, - nodeAccount.name, - ); const cmd = [ `${presetData.catapultAppFolder}/bin/catapult.tools.votingkey`, `--secret=${votingPrivateKey}`, @@ -86,7 +86,12 @@ export class VotingService { logger.error(stderr); throw new Error('Voting key failed. Check the logs!'); } - logger.info(`Voting key executed for node ${nodeAccount.name}!`); + logger.warn(`A new Voting File for the node ${nodeAccount.name} has been regenerated! `); + logger.warn( + `Remember to send a Voting Key Link transaction from main ${nodeAccount.main.address} using the Voting Public Key ${nodeAccount.voting.publicKey}`, + ); + logger.warn('For linking, you can use symbol-bootstrap link command, the symbol cli, or the symbol desktop wallet. '); + logger.warn('The voting public key is stored in the target`s addresses.yml for reference'); const metadata: VotingMetadata = { votingKeyStartEpoch: presetData.votingKeyStartEpoch, diff --git a/test/composes/expected-docker-compose-bootstrap-custom-compose.yml b/test/composes/expected-docker-compose-bootstrap-custom-compose.yml index 29ae692f5..13992327a 100644 --- a/test/composes/expected-docker-compose-bootstrap-custom-compose.yml +++ b/test/composes/expected-docker-compose-bootstrap-custom-compose.yml @@ -105,7 +105,7 @@ services: rest-gateway-0: container_name: rest-gateway-0 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/composes/expected-docker-compose-bootstrap-custom.yml b/test/composes/expected-docker-compose-bootstrap-custom.yml index 54b697443..4b6decb34 100644 --- a/test/composes/expected-docker-compose-bootstrap-custom.yml +++ b/test/composes/expected-docker-compose-bootstrap-custom.yml @@ -103,7 +103,7 @@ services: rest-gateway-0: container_name: rest-gateway-0 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/composes/expected-docker-compose-bootstrap-full.yml b/test/composes/expected-docker-compose-bootstrap-full.yml index c57c45456..e362b449a 100644 --- a/test/composes/expected-docker-compose-bootstrap-full.yml +++ b/test/composes/expected-docker-compose-bootstrap-full.yml @@ -108,7 +108,7 @@ services: rest-gateway-0: container_name: rest-gateway-0 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir @@ -161,7 +161,7 @@ services: privileged: true faucet-0: container_name: faucet-0 - image: 'symbolplatform/symbol-faucet:0.4.0' + image: 'symbolplatform/symbol-faucet:0.5.0-alpha' stop_signal: SIGINT environment: DEFAULT_NODE: 'http://rest-gateway-0:3000' diff --git a/test/composes/expected-docker-compose-bootstrap-repeat.yml b/test/composes/expected-docker-compose-bootstrap-repeat.yml index f8338b776..797539160 100644 --- a/test/composes/expected-docker-compose-bootstrap-repeat.yml +++ b/test/composes/expected-docker-compose-bootstrap-repeat.yml @@ -249,7 +249,7 @@ services: rest-gateway-0: container_name: rest-gateway-0 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir @@ -266,7 +266,7 @@ services: rest-gateway-1: container_name: rest-gateway-1 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir @@ -283,7 +283,7 @@ services: rest-gateway-2: container_name: rest-gateway-2 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir @@ -300,7 +300,7 @@ services: rest-gateway-3: container_name: rest-gateway-3 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir @@ -372,7 +372,7 @@ services: - './explorer:/symbol-commands:ro' faucet-0: container_name: faucet-0 - image: 'symbolplatform/symbol-faucet:0.4.0' + image: 'symbolplatform/symbol-faucet:0.5.0-alpha' stop_signal: SIGINT environment: DEFAULT_NODE: 'http://rest-gateway-0:3000' @@ -394,7 +394,7 @@ services: - rest-gateway-0 faucet-1: container_name: faucet-1 - image: 'symbolplatform/symbol-faucet:0.4.0' + image: 'symbolplatform/symbol-faucet:0.5.0-alpha' stop_signal: SIGINT environment: DEFAULT_NODE: 'http://rest-gateway-1:3001' @@ -416,7 +416,7 @@ services: - rest-gateway-1 faucet-2: container_name: faucet-2 - image: 'symbolplatform/symbol-faucet:0.4.0' + image: 'symbolplatform/symbol-faucet:0.5.0-alpha' stop_signal: SIGINT environment: DEFAULT_NODE: 'http://rest-gateway-2:3002' @@ -438,7 +438,7 @@ services: - rest-gateway-2 faucet-3: container_name: faucet-3 - image: 'symbolplatform/symbol-faucet:0.4.0' + image: 'symbolplatform/symbol-faucet:0.5.0-alpha' stop_signal: SIGINT environment: DEFAULT_NODE: 'http://rest-gateway-3:3003' diff --git a/test/composes/expected-docker-compose-bootstrap.yml b/test/composes/expected-docker-compose-bootstrap.yml index f94e17dc2..ef2c4d86e 100644 --- a/test/composes/expected-docker-compose-bootstrap.yml +++ b/test/composes/expected-docker-compose-bootstrap.yml @@ -87,7 +87,7 @@ services: rest-gateway-0: container_name: rest-gateway-0 user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/composes/expected-testnet-dual-compose.yml b/test/composes/expected-testnet-dual-compose.yml index 30b226a39..617229341 100644 --- a/test/composes/expected-testnet-dual-compose.yml +++ b/test/composes/expected-testnet-dual-compose.yml @@ -46,7 +46,7 @@ services: rest-gateway: container_name: rest-gateway user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/composes/expected-testnet-supernode-compose.yml b/test/composes/expected-testnet-supernode-compose.yml index 6255c681b..a1758baaa 100644 --- a/test/composes/expected-testnet-supernode-compose.yml +++ b/test/composes/expected-testnet-supernode-compose.yml @@ -51,7 +51,7 @@ services: api-node-agent: user: '1000:1000' container_name: api-node-agent - image: 'symbolplatform/symbol-node-rewards-agent:0.1.0' + image: 'symbolplatform/symbol-node-rewards-agent:1.0.1' working_dir: /symbol-workdir entrypoint: /app/agent-linux.bin --config agent.properties ports: @@ -63,7 +63,7 @@ services: rest-gateway: container_name: rest-gateway user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/composes/expected-testnet-voting-compose.yml b/test/composes/expected-testnet-voting-compose.yml index 30b226a39..617229341 100644 --- a/test/composes/expected-testnet-voting-compose.yml +++ b/test/composes/expected-testnet-voting-compose.yml @@ -46,7 +46,7 @@ services: rest-gateway: container_name: rest-gateway user: '1000:1000' - image: 'symbolplatform/symbol-rest:2.3.4' + image: 'symbolplatform/symbol-rest:2.3.5' command: npm start --prefix /app/catapult-rest/rest /symbol-workdir/rest.json stop_signal: SIGINT working_dir: /symbol-workdir diff --git a/test/mainnet_preset.yml b/test/mainnet_preset.yml new file mode 100644 index 000000000..48bde1ed4 --- /dev/null +++ b/test/mainnet_preset.yml @@ -0,0 +1,5 @@ +privateKeySecurityMode: ENCRYPT +nodes: + - voting: true + rewardProgram: 'supernode' + host: mySuperNodeHostName diff --git a/test/reports/bootstrap-voting/api-node-0-config.csv b/test/reports/bootstrap-voting/api-node-0-config.csv index c74c2010e..329a5497f 100644 --- a/test/reports/bootstrap-voting/api-node-0-config.csv +++ b/test/reports/bootstrap-voting/api-node-0-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; true extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; false extension.syncsource; false extension.diagnostics; true diff --git a/test/reports/bootstrap-voting/api-node-0-config.rst b/test/reports/bootstrap-voting/api-node-0-config.rst index 328f210b8..bbb1cc2a6 100644 --- a/test/reports/bootstrap-voting/api-node-0-config.rst +++ b/test/reports/bootstrap-voting/api-node-0-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; false extension.syncsource; false extension.diagnostics; true diff --git a/test/reports/bootstrap-voting/peer-node-0-config.csv b/test/reports/bootstrap-voting/peer-node-0-config.csv index 59a9fad1d..81d1a2b2d 100644 --- a/test/reports/bootstrap-voting/peer-node-0-config.csv +++ b/test/reports/bootstrap-voting/peer-node-0-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; false extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -81,7 +80,7 @@ harvesting harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. -maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/bootstrap-voting/peer-node-0-config.rst b/test/reports/bootstrap-voting/peer-node-0-config.rst index 9b6345d9d..2e62dfdc0 100644 --- a/test/reports/bootstrap-voting/peer-node-0-config.rst +++ b/test/reports/bootstrap-voting/peer-node-0-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -105,7 +104,7 @@ config-harvesting.properties harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. - maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/bootstrap-voting/peer-node-1-config.csv b/test/reports/bootstrap-voting/peer-node-1-config.csv index 29d9916fd..87f3f6268 100644 --- a/test/reports/bootstrap-voting/peer-node-1-config.csv +++ b/test/reports/bootstrap-voting/peer-node-1-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; false extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -81,7 +80,7 @@ harvesting harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. -maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/bootstrap-voting/peer-node-1-config.rst b/test/reports/bootstrap-voting/peer-node-1-config.rst index d97edbc41..6128bc3cf 100644 --- a/test/reports/bootstrap-voting/peer-node-1-config.rst +++ b/test/reports/bootstrap-voting/peer-node-1-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -105,7 +104,7 @@ config-harvesting.properties harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. - maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/mainnet-dual/api-node-config.csv b/test/reports/mainnet-dual/api-node-config.csv new file mode 100644 index 000000000..4c7860257 --- /dev/null +++ b/test/reports/mainnet-dual/api-node-config.csv @@ -0,0 +1,864 @@ +symbol-bootstrap-version; CURRENT_VERSION + +config-database.properties +database +databaseUri; mongodb://db:27017 +databaseName; catapult +maxWriterThreads; 8 +maxDropBatchSize; 10 +writeTimeout; 10m + +plugins +catapult.mongo.plugins.accountlink; true +catapult.mongo.plugins.aggregate; true +catapult.mongo.plugins.lockhash; true +catapult.mongo.plugins.locksecret; true +catapult.mongo.plugins.metadata; true +catapult.mongo.plugins.mosaic; true +catapult.mongo.plugins.multisig; true +catapult.mongo.plugins.namespace; true +catapult.mongo.plugins.restrictionaccount; true +catapult.mongo.plugins.restrictionmosaic; true +catapult.mongo.plugins.transfer; true + + +config-extensions-broker.properties +extensions +extension.addressextraction; true +extension.mongo; true +extension.zeromq; true +extension.hashcache; true + + +config-extensions-recovery.properties +extensions +extension.addressextraction; false +extension.mongo; false +extension.zeromq; false +extension.filespooling; true +extension.hashcache; true + + +config-extensions-server.properties +extensions +extension.filespooling; true +extension.partialtransaction; true +extension.addressextraction; false +extension.mongo; false +extension.zeromq; false +extension.harvesting; true +extension.syncsource; true +extension.diagnostics; true +extension.finalization; true +extension.hashcache; true +extension.networkheight; false +extension.nodediscovery; true +extension.packetserver; true +extension.pluginhandlers; true +extension.sync; true +extension.timesync; true +extension.transactionsink; true +extension.unbondedpruning; true + + +config-finalization.properties +finalization +enableVoting; false +enableRevoteOnBoot; true +size; 10'000 +threshold; 7'000 +stepDuration; 4m +shortLivedCacheMessageDuration; 10m +messageSynchronizationMaxResponseSize; 20MB +maxHashesPerPoint; 256 +prevoteBlocksMultiple; 4 +unfinalizedBlocksDuration; 0m + + +config-harvesting.properties +harvesting +harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. +harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. +enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. +delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. +beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. + + +config-inflation.properties +inflation +starting-at-height-2; 95998521 +starting-at-height-200; 91882261 +starting-at-height-400; 87942499 +starting-at-height-600; 84171668 +starting-at-height-800; 80562525 +starting-at-height-2537757; 77108135 +starting-at-height-3062757; 73801864 +starting-at-height-3587757; 70637360 +starting-at-height-4112757; 67608545 +starting-at-height-4637757; 64709601 +starting-at-height-5162757; 61934959 +starting-at-height-5687757; 59279289 +starting-at-height-6212757; 56737489 +starting-at-height-6737757; 54304678 +starting-at-height-7262757; 51976182 +starting-at-height-7787757; 49747528 +starting-at-height-8312757; 47614435 +starting-at-height-8837757; 45572806 +starting-at-height-9362757; 43618718 +starting-at-height-9887757; 41748419 +starting-at-height-10412757; 39958315 +starting-at-height-10937757; 38244967 +starting-at-height-11462757; 36605085 +starting-at-height-11987757; 35035519 +starting-at-height-12512757; 33533253 +starting-at-height-13037757; 32095402 +starting-at-height-13562757; 30719203 +starting-at-height-14087757; 29402014 +starting-at-height-14612757; 28141304 +starting-at-height-15137757; 26934650 +starting-at-height-15662757; 25779736 +starting-at-height-16187757; 24674343 +starting-at-height-16712757; 23616348 +starting-at-height-17237757; 22603717 +starting-at-height-17762757; 21634507 +starting-at-height-18287757; 20706854 +starting-at-height-18812757; 19818978 +starting-at-height-19337757; 18969173 +starting-at-height-19862757; 18155805 +starting-at-height-20387757; 17377314 +starting-at-height-20912757; 16632203 +starting-at-height-21437757; 15919041 +starting-at-height-21962757; 15236459 +starting-at-height-22487757; 14583144 +starting-at-height-23012757; 13957843 +starting-at-height-23537757; 13359353 +starting-at-height-24062757; 12786526 +starting-at-height-24587757; 12238261 +starting-at-height-25112757; 11713504 +starting-at-height-25637757; 11211248 +starting-at-height-26162757; 10730528 +starting-at-height-26687757; 10270420 +starting-at-height-27212757; 9830041 +starting-at-height-27737757; 9408545 +starting-at-height-28262757; 9005122 +starting-at-height-28787757; 8618997 +starting-at-height-29312757; 8249428 +starting-at-height-29837757; 7895707 +starting-at-height-30362757; 7557151 +starting-at-height-30887757; 7233113 +starting-at-height-31412757; 6922969 +starting-at-height-31937757; 6626123 +starting-at-height-32462757; 6342006 +starting-at-height-32987757; 6070071 +starting-at-height-33512757; 5809796 +starting-at-height-34037757; 5560682 +starting-at-height-34562757; 5322249 +starting-at-height-35087757; 5094039 +starting-at-height-35612757; 4875615 +starting-at-height-36137757; 4666557 +starting-at-height-36662757; 4466462 +starting-at-height-37187757; 4274948 +starting-at-height-37712757; 4091645 +starting-at-height-38237757; 3916202 +starting-at-height-38762757; 3748282 +starting-at-height-39287757; 3587561 +starting-at-height-39812757; 3433732 +starting-at-height-40337757; 3286500 +starting-at-height-40862757; 3145580 +starting-at-height-41387757; 3010703 +starting-at-height-41912757; 2881608 +starting-at-height-42437757; 2758050 +starting-at-height-42962757; 2639789 +starting-at-height-43487757; 2526599 +starting-at-height-44012757; 2418263 +starting-at-height-44537757; 2314572 +starting-at-height-45062757; 2215326 +starting-at-height-45587757; 2120337 +starting-at-height-46112757; 2029420 +starting-at-height-46637757; 1942402 +starting-at-height-47162757; 1859115 +starting-at-height-47687757; 1779399 +starting-at-height-48212757; 1703101 +starting-at-height-48737757; 1630075 +starting-at-height-49262757; 1560180 +starting-at-height-49787757; 1493282 +starting-at-height-50312757; 1429253 +starting-at-height-50837757; 1367969 +starting-at-height-51362757; 1309312 +starting-at-height-51887757; 1253171 +starting-at-height-52412757; 1199437 +starting-at-height-52937757; 1148007 +starting-at-height-53462757; 1098783 +starting-at-height-53987757; 1051669 +starting-at-height-54512757; 1006575 +starting-at-height-55037757; 963414 +starting-at-height-55562757; 922105 +starting-at-height-56087757; 882566 +starting-at-height-56612757; 844723 +starting-at-height-57137757; 808503 +starting-at-height-57662757; 773836 +starting-at-height-58187757; 740655 +starting-at-height-58712757; 708897 +starting-at-height-59237757; 678500 +starting-at-height-59762757; 649407 +starting-at-height-60287757; 621562 +starting-at-height-60812757; 594910 +starting-at-height-61337757; 569401 +starting-at-height-61862757; 544986 +starting-at-height-62387757; 521618 +starting-at-height-62912757; 499252 +starting-at-height-63437757; 477845 +starting-at-height-63962757; 457356 +starting-at-height-64487757; 437745 +starting-at-height-65012757; 418975 +starting-at-height-65537757; 401010 +starting-at-height-66062757; 383816 +starting-at-height-66587757; 367358 +starting-at-height-67112757; 351606 +starting-at-height-67637757; 336530 +starting-at-height-68162757; 322100 +starting-at-height-68687757; 308289 +starting-at-height-69212757; 295070 +starting-at-height-69737757; 282418 +starting-at-height-70262757; 270308 +starting-at-height-70787757; 258718 +starting-at-height-71312757; 247624 +starting-at-height-71837757; 237007 +starting-at-height-72362757; 226844 +starting-at-height-72887757; 217118 +starting-at-height-73412757; 207808 +starting-at-height-73937757; 198897 +starting-at-height-74462757; 190369 +starting-at-height-74987757; 182206 +starting-at-height-75512757; 174394 +starting-at-height-76037757; 166916 +starting-at-height-76562757; 159759 +starting-at-height-77087757; 152908 +starting-at-height-77612757; 146352 +starting-at-height-78137757; 140077 +starting-at-height-78662757; 134070 +starting-at-height-79187757; 128322 +starting-at-height-79712757; 122819 +starting-at-height-80237757; 117553 +starting-at-height-80762757; 112513 +starting-at-height-81287757; 107688 +starting-at-height-81812757; 103071 +starting-at-height-82337757; 98651 +starting-at-height-82862757; 94421 +starting-at-height-83387757; 90372 +starting-at-height-83912757; 86497 +starting-at-height-84437757; 82789 +starting-at-height-84962757; 79239 +starting-at-height-85487757; 75841 +starting-at-height-86012757; 72589 +starting-at-height-86537757; 69477 +starting-at-height-87062757; 66498 +starting-at-height-87587757; 63646 +starting-at-height-88112757; 60917 +starting-at-height-88637757; 58305 +starting-at-height-89162757; 55805 +starting-at-height-89687757; 53412 +starting-at-height-90212757; 51122 +starting-at-height-90737757; 48930 +starting-at-height-91262757; 46832 +starting-at-height-91787757; 44824 +starting-at-height-92312757; 42902 +starting-at-height-92837757; 41062 +starting-at-height-93362757; 39301 +starting-at-height-93887757; 37616 +starting-at-height-94412757; 36003 +starting-at-height-94937757; 34460 +starting-at-height-95462757; 32982 +starting-at-height-95987757; 31568 +starting-at-height-96512757; 30214 +starting-at-height-97037757; 28919 +starting-at-height-97562757; 27679 +starting-at-height-98087757; 26492 +starting-at-height-98612757; 25356 +starting-at-height-99137757; 24269 +starting-at-height-99662757; 23228 +starting-at-height-100187757; 22232 +starting-at-height-100712757; 21279 +starting-at-height-101237757; 20366 +starting-at-height-101762757; 19493 +starting-at-height-102287757; 18657 +starting-at-height-102812757; 17857 +starting-at-height-103337757; 17091 +starting-at-height-103862757; 16358 +starting-at-height-104387757; 15657 +starting-at-height-104912757; 14986 +starting-at-height-105437757; 14343 +starting-at-height-105962757; 13728 +starting-at-height-106487757; 13139 +starting-at-height-107012757; 12576 +starting-at-height-107537757; 12037 +starting-at-height-108062757; 11521 +starting-at-height-108587757; 11027 +starting-at-height-109112757; 10554 +starting-at-height-109637757; 10101 +starting-at-height-110162757; 9668 +starting-at-height-110687757; 9254 +starting-at-height-111212757; 8857 +starting-at-height-111737757; 8477 +starting-at-height-112262757; 8113 +starting-at-height-112787757; 7766 +starting-at-height-113312757; 7433 +starting-at-height-113837757; 7114 +starting-at-height-114362757; 6809 +starting-at-height-114887757; 6517 +starting-at-height-115412757; 6237 +starting-at-height-115937757; 5970 +starting-at-height-116462757; 5714 +starting-at-height-116987757; 5469 +starting-at-height-117512757; 5234 +starting-at-height-118037757; 5010 +starting-at-height-118562757; 4795 +starting-at-height-119087757; 4589 +starting-at-height-119612757; 4393 +starting-at-height-120137757; 4204 +starting-at-height-120662757; 4024 +starting-at-height-121187757; 3851 +starting-at-height-121712757; 3686 +starting-at-height-122237757; 3528 +starting-at-height-122762757; 3377 +starting-at-height-123287757; 3232 +starting-at-height-123812757; 3093 +starting-at-height-124337757; 2961 +starting-at-height-124862757; 2834 +starting-at-height-125387757; 2712 +starting-at-height-125912757; 2596 +starting-at-height-126437757; 2485 +starting-at-height-126962757; 2378 +starting-at-height-127487757; 2276 +starting-at-height-128012757; 2178 +starting-at-height-128537757; 2085 +starting-at-height-129062757; 1996 +starting-at-height-129587757; 1910 +starting-at-height-130112757; 1828 +starting-at-height-130637757; 1750 +starting-at-height-131162757; 1675 +starting-at-height-131687757; 1603 +starting-at-height-132212757; 1534 +starting-at-height-132737757; 1468 +starting-at-height-133262757; 1405 +starting-at-height-133787757; 1345 +starting-at-height-134312757; 1287 +starting-at-height-134837757; 1232 +starting-at-height-135362757; 1179 +starting-at-height-135887757; 1129 +starting-at-height-136412757; 1080 +starting-at-height-136937757; 1034 +starting-at-height-137462757; 990 +starting-at-height-137987757; 947 +starting-at-height-138512757; 907 +starting-at-height-139037757; 868 +starting-at-height-139562757; 830 +starting-at-height-140087757; 795 +starting-at-height-140612757; 761 +starting-at-height-141137757; 728 +starting-at-height-141662757; 697 +starting-at-height-142187757; 667 +starting-at-height-142712757; 638 +starting-at-height-143237757; 611 +starting-at-height-143762757; 585 +starting-at-height-144287757; 560 +starting-at-height-144812757; 536 +starting-at-height-145337757; 513 +starting-at-height-145862757; 491 +starting-at-height-146387757; 470 +starting-at-height-146912757; 449 +starting-at-height-147437757; 430 +starting-at-height-147962757; 412 +starting-at-height-148487757; 394 +starting-at-height-149012757; 377 +starting-at-height-149537757; 361 +starting-at-height-150062757; 345 +starting-at-height-150587757; 331 +starting-at-height-151112757; 316 +starting-at-height-151637757; 303 +starting-at-height-152162757; 290 +starting-at-height-152687757; 277 +starting-at-height-153212757; 265 +starting-at-height-153737757; 254 +starting-at-height-154262757; 243 +starting-at-height-154787757; 233 +starting-at-height-155312757; 223 +starting-at-height-155837757; 213 +starting-at-height-156362757; 204 +starting-at-height-156887757; 195 +starting-at-height-157412757; 187 +starting-at-height-157937757; 179 +starting-at-height-158462757; 171 +starting-at-height-158987757; 164 +starting-at-height-159512757; 157 +starting-at-height-160037757; 150 +starting-at-height-160562757; 143 +starting-at-height-161087757; 137 +starting-at-height-161612757; 131 +starting-at-height-162137757; 126 +starting-at-height-162662757; 120 +starting-at-height-163187757; 115 +starting-at-height-163712757; 110 +starting-at-height-164237757; 105 +starting-at-height-164762757; 101 +starting-at-height-165287757; 97 +starting-at-height-165812757; 92 +starting-at-height-166337757; 88 +starting-at-height-166862757; 85 +starting-at-height-167387757; 81 +starting-at-height-167912757; 77 +starting-at-height-168437757; 74 +starting-at-height-168962757; 71 +starting-at-height-169487757; 68 +starting-at-height-170012757; 65 +starting-at-height-170537757; 62 +starting-at-height-171062757; 59 +starting-at-height-171587757; 57 +starting-at-height-172112757; 54 +starting-at-height-172637757; 52 +starting-at-height-173162757; 50 +starting-at-height-173687757; 48 +starting-at-height-174212757; 46 +starting-at-height-174737757; 44 +starting-at-height-175262757; 42 +starting-at-height-175787757; 40 +starting-at-height-176312757; 38 +starting-at-height-176837757; 37 +starting-at-height-177362757; 35 +starting-at-height-177887757; 33 +starting-at-height-178412757; 32 +starting-at-height-178937757; 31 +starting-at-height-179462757; 29 +starting-at-height-179987757; 28 +starting-at-height-180512757; 27 +starting-at-height-181037757; 26 +starting-at-height-181562757; 24 +starting-at-height-182087757; 23 +starting-at-height-182612757; 22 +starting-at-height-183137757; 21 +starting-at-height-183662757; 20 +starting-at-height-184187757; 20 +starting-at-height-184712757; 19 +starting-at-height-185237757; 18 +starting-at-height-185762757; 17 +starting-at-height-186287757; 16 +starting-at-height-186812757; 16 +starting-at-height-187337757; 15 +starting-at-height-187862757; 14 +starting-at-height-188387757; 14 +starting-at-height-188912757; 13 +starting-at-height-189437757; 12 +starting-at-height-189962757; 12 +starting-at-height-190487757; 11 +starting-at-height-191012757; 11 +starting-at-height-191537757; 10 +starting-at-height-192062757; 10 +starting-at-height-192587757; 9 +starting-at-height-193112757; 9 +starting-at-height-193637757; 9 +starting-at-height-194162757; 8 +starting-at-height-194687757; 8 +starting-at-height-195212757; 8 +starting-at-height-195737757; 7 +starting-at-height-196262757; 7 +starting-at-height-196787757; 7 +starting-at-height-197312757; 6 +starting-at-height-197837757; 6 +starting-at-height-198362757; 6 +starting-at-height-198887757; 5 +starting-at-height-199412757; 5 +starting-at-height-199937757; 5 +starting-at-height-200462757; 5 +starting-at-height-200987757; 4 +starting-at-height-201512757; 4 +starting-at-height-202037757; 4 +starting-at-height-202562757; 4 +starting-at-height-203087757; 4 +starting-at-height-203612757; 4 +starting-at-height-204137757; 3 +starting-at-height-204662757; 3 +starting-at-height-205187757; 3 +starting-at-height-205712757; 3 +starting-at-height-206237757; 3 +starting-at-height-206762757; 3 +starting-at-height-207287757; 2 +starting-at-height-207812757; 2 +starting-at-height-208337757; 2 +starting-at-height-208862757; 2 +starting-at-height-209387757; 2 +starting-at-height-209912757; 2 +starting-at-height-210437757; 2 +starting-at-height-210962757; 2 +starting-at-height-211487757; 2 +starting-at-height-212012757; 2 +starting-at-height-212537757; 1 +starting-at-height-213062757; 1 +starting-at-height-213587757; 1 +starting-at-height-214112757; 1 +starting-at-height-214637757; 1 +starting-at-height-215162757; 1 +starting-at-height-215687757; 1 +starting-at-height-216212757; 1 +starting-at-height-216737757; 1 +starting-at-height-217262757; 1 +starting-at-height-217787757; 1 +starting-at-height-218312757; 1 +starting-at-height-218837757; 1 +starting-at-height-219362757; 1 +starting-at-height-219887757; 1 +starting-at-height-220412757; 1 +starting-at-height-220937757; 0 + + +config-logging-broker.properties +console +sinkType; Async +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Async +level; Info +directory; logs +filePattern; logs/catapult_broker%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-logging-recovery.properties +console +sinkType; Async +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Async +level; Info +directory; logs +filePattern; logs/catapult_recovery%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-logging-server.properties +console +sinkType; Async +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Async +level; Info +directory; logs +filePattern; logs/catapult_server%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-messaging.properties +messaging +subscriberPort; 7902 +listenInterface; 0.0.0.0 + + +config-network.properties +network +identifier; public-test; NetworkIdentifier; Network identifier. +nemesisSignerPublicKey; 071964D3C040D62DE905EAE978E2119BFC8E70489BFDF45A85B3D7ED5A517AA8; Key; Nemesis public key. +nodeEqualityStrategy; host; NodeIdentityEqualityStrategy; Node equality strategy. +generationHashSeed; 45FBCF2F0EA36EFA7923C9BC923D6503169651F7FA4EFC46A8EAF5AE09057EBD; ; +epochAdjustment; 1573430400s; utils::TimeSpan; Nemesis epoch time adjustment. + +chain +enableVerifiableState; true; bool; Set to true if block chain should calculate state hashes so that state is fully verifiable at each block. +enableVerifiableReceipts; true; bool; Set to true if block chain should calculate receipts so that state changes are fully verifiable at each block. +currencyMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used as primary chain currency. +harvestingMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used to provide harvesting ability. +blockGenerationTargetTime; 30s; utils::TimeSpan; Targeted time between blocks. +blockTimeSmoothingFactor; 3000; uint32_t; Note: A higher value makes the network more biased. Note: This can lower security because it will increase the influence of time relative to importance. +importanceGrouping; 180; uint64_t; Number of blocks that should be treated as a group for importance purposes. Note: Importances will only be calculated at blocks that are multiples of this grouping number. +importanceActivityPercentage; 5; uint8_t; Percentage of importance resulting from fee generation and beneficiary usage. +maxRollbackBlocks; 0; uint32_t; Maximum number of blocks that can be rolled back. +maxDifficultyBlocks; 60; uint32_t; Maximum number of blocks to use in a difficulty calculation. +defaultDynamicFeeMultiplier; 1'000; BlockFeeMultiplier; Default multiplier to use for dynamic fees. +maxTransactionLifetime; 6h; utils::TimeSpan; Maximum lifetime a transaction can have before it expires. +maxBlockFutureTime; 500ms; utils::TimeSpan; Maximum future time of a block that can be accepted. +initialCurrencyAtomicUnits; 7'831'975'436'000'000; Amount; Initial currency atomic units available in the network. +maxMosaicAtomicUnits; 9'000'000'000'000'000; Amount; Maximum atomic units (total-supply * 10 ^ divisibility) of a mosaic allowed in the network. +totalChainImportance; 7'831'975'436'000'000; Importance; Total whole importance units available in the network. +minHarvesterBalance; 10'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. +maxHarvesterBalance; 50'000'000'000'000; Amount; Maximum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. +minVoterBalance; 3'000'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for voting. +votingSetGrouping; 720; ; +maxVotingKeysPerAccount; 3; uint8_t; Maximum number of voting keys that can be registered at once per account. +minVotingKeyLifetime; 28; uint32_t; Minimum number of finalization rounds for which voting key can be registered. +maxVotingKeyLifetime; 26280; uint32_t; Maximum number of finalization rounds for which voting key can be registered. +harvestBeneficiaryPercentage; 25; uint8_t; Percentage of the harvested fee that is collected by the beneficiary account. +harvestNetworkPercentage; 5; uint8_t; Percentage of the harvested fee that is collected by the network. +harvestNetworkFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the harvest network fee sink account. +maxTransactionsPerBlock; 6'000; uint32_t; Maximum number of transactions per block. + +plugin:catapult.plugins.accountlink +dummy; to trigger plugin load + +plugin:catapult.plugins.aggregate +maxTransactionsPerAggregate; 100; uint32_t; Maximum number of transactions per aggregate. +maxCosignaturesPerAggregate; 25; uint8_t; Maximum number of cosignatures per aggregate. +enableStrictCosignatureCheck; false; bool; Set to true if cosignatures must exactly match component signers. Set to false if cosignatures should be validated externally. +enableBondedAggregateSupport; true; bool; Set to true if bonded aggregates should be allowed. Set to false if bonded aggregates should be rejected. +maxBondedTransactionLifetime; 48h; utils::TimeSpan; Maximum lifetime a bonded transaction can have before it expires. + +plugin:catapult.plugins.lockhash +lockedFundsPerAggregate; 10'000'000; Amount; Amount that has to be locked per aggregate in partial cache. +maxHashLockDuration; 2d; utils::BlockSpan; Maximum number of blocks for which a hash lock can exist. + +plugin:catapult.plugins.locksecret +maxSecretLockDuration; 365d; utils::BlockSpan; Maximum number of blocks for which a secret lock can exist. +minProofSize; 20; uint16_t; Minimum size of a proof in bytes. +maxProofSize; 1024; uint16_t; Maximum size of a proof in bytes. + +plugin:catapult.plugins.metadata +maxValueSize; 1024; uint16_t; Maximum metadata value size. + +plugin:catapult.plugins.mosaic +maxMosaicsPerAccount; 1'000; uint16_t; Maximum number of mosaics that an account can own. +maxMosaicDuration; 3650d; utils::BlockSpan; Maximum mosaic duration. +maxMosaicDivisibility; 6; uint8_t; Maximum mosaic divisibility. +mosaicRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the mosaic rental fee sink account. +mosaicRentalFee; 500; Amount; Mosaic rental fee. + +plugin:catapult.plugins.multisig +maxMultisigDepth; 3; uint8_t; Maximum number of multisig levels. +maxCosignatoriesPerAccount; 25; uint32_t; Maximum number of cosignatories per account. +maxCosignedAccountsPerAccount; 25; uint32_t; Maximum number of accounts a single account can cosign. + +plugin:catapult.plugins.namespace +maxNameSize; 64; uint8_t; Maximum namespace name size. +maxChildNamespaces; 256; uint16_t; Maximum number of children for a root namespace. +maxNamespaceDepth; 3; uint8_t; Maximum namespace depth. +minNamespaceDuration; 30d; utils::BlockSpan; Minimum namespace duration. +maxNamespaceDuration; 1825d; utils::BlockSpan; Maximum namespace duration. +namespaceGracePeriodDuration; 1d; utils::BlockSpan; Grace period during which time only the previous owner can renew an expired namespace. +reservedRootNamespaceNames; symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info; unordered_set; Reserved root namespaces that cannot be claimed. +namespaceRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the namespace rental fee sink account. +rootNamespaceRentalFeePerBlock; 1; Amount; Root namespace rental fee per block. +childNamespaceRentalFee; 100; Amount; Child namespace rental fee. + +plugin:catapult.plugins.restrictionaccount +maxAccountRestrictionValues; 512; uint16_t; Maximum number of account restriction values. + +plugin:catapult.plugins.restrictionmosaic +maxMosaicRestrictionValues; 20; uint8_t; Maximum number of mosaic restriction values. + +plugin:catapult.plugins.transfer +maxMessageSize; 1024; uint16_t; Maximum transaction message size. + + +config-node.properties +node +port; 7900; unsigned short; Server port. +maxIncomingConnectionsPerIdentity; 6; uint32_t; Maximum number of incoming connections per identity over primary port. +enableAddressReuse; false; bool; Set to true if the server should reuse ports already in use. +enableSingleThreadPool; false; bool; Set to true if a single thread pool should be used, Set to false if multiple thread pools should be used. +enableCacheDatabaseStorage; true; bool; Set to true if cache data should be saved in a database. +enableAutoSyncCleanup; false; bool; Set to true if temporary sync files should be automatically cleaned up. Note: This should be Set to false if broker process is running. +fileDatabaseBatchSize; 1; ; +enableTransactionSpamThrottling; true; bool; Set to true if transaction spam throttling should be enabled. +transactionSpamThrottlingMaxBoostFee; 10'000'000; Amount; Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled. +maxHashesPerSyncAttempt; 370; ; +maxBlocksPerSyncAttempt; 360; uint32_t; Maximum number of blocks per sync attempt. +maxChainBytesPerSyncAttempt; 100MB; utils::FileSize; Maximum chain bytes per sync attempt. +shortLivedCacheTransactionDuration; 10m; utils::TimeSpan; Duration of a transaction in the short lived cache. +shortLivedCacheBlockDuration; 100m; utils::TimeSpan; Duration of a block in the short lived cache. +shortLivedCachePruneInterval; 90s; utils::TimeSpan; Time between short lived cache pruning. +shortLivedCacheMaxSize; 10'000'000; uint32_t; Maximum size of a short lived cache. +minFeeMultiplier; 100; BlockFeeMultiplier; Minimum fee multiplier of transactions to propagate and include in blocks. +maxTimeBehindPullTransactionsStart; 5m; ; +transactionSelectionStrategy; maximize-fee; model::TransactionSelectionStrategy; Transaction selection strategy used for syncing and harvesting unconfirmed transactions. +unconfirmedTransactionsCacheMaxResponseSize; 5MB; utils::FileSize; Maximum size of an unconfirmed transactions response. +unconfirmedTransactionsCacheMaxSize; 20MB; uint32_t; Maximum size of the unconfirmed transactions cache. +connectTimeout; 15s; utils::TimeSpan; Timeout for connecting to a peer. +syncTimeout; 20m; utils::TimeSpan; Timeout for syncing with a peer. +socketWorkingBufferSize; 16KB; utils::FileSize; Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size). +socketWorkingBufferSensitivity; 1; uint32_t; Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed). Note: Set to 0 will disable memory reclamation. +maxPacketDataSize; 150MB; utils::FileSize; Maximum packet data size. +blockDisruptorSlotCount; 4096; uint32_t; Size of the block disruptor circular buffer. +blockElementTraceInterval; 1; uint32_t; Multiple of elements at which a block element should be traced through queue and completion. +blockDisruptorMaxMemorySize; 300MB; ; +transactionDisruptorSlotCount; 8192; uint32_t; Size of the transaction disruptor circular buffer. +transactionElementTraceInterval; 10; uint32_t; Multiple of elements at which a transaction element should be traced through queue and completion. +transactionDisruptorMaxMemorySize; 20MB; ; +enableDispatcherAbortWhenFull; false; bool; Set to true if the process should terminate when any dispatcher is full. +enableDispatcherInputAuditing; false; bool; Set to true if all dispatcher inputs should be audited. +maxTrackedNodes; 5'000; uint32_t; Maximum number of nodes to track in memory. +minPartnerNodeVersion; 0.10.0.7; ; +maxPartnerNodeVersion; 0.10.1.8; ; +trustedHosts; 127.0.0.1, 172.20.0.25; unordered_set; Trusted hosts that are allowed to execute protected API calls on this node. +localNetworks; 127.0.0.1, 172.20.0.25; unordered_set; Networks that should be treated as local. +listenInterface; 0.0.0.0; ; + +cache_database +enableStatistics; false +maxOpenFiles; 0 +maxBackgroundThreads; 0 +maxSubcompactionThreads; 0 +blockCacheSize; 0MB +memtableMemoryBudget; 0MB +maxWriteBatchSize; 5MB + +localnode +host; ; string; Node host (leave empty to auto-detect IP). +friendlyName; myFriendlyName; string; Node friendly name (leave empty to use address). +version; 0.10.1.8; uint32_t; Node version. +roles; Peer,Api; ionet::NodeRoles; Node roles. + +outgoing_connections +maxConnections; 10; uint16_t; Maximum number of active connections. +maxConnectionAge; 200; uint16_t; Maximum connection age. +maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. +numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + +incoming_connections +maxConnections; 512; uint16_t; Maximum number of active connections. +maxConnectionAge; 200; uint16_t; Maximum connection age. +maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. +numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. +backlogSize; 512; uint16_t; Maximum size of the pending connections queue. + +banning +defaultBanDuration; 12h; utils::TimeSpan; Default duration for banning. +maxBanDuration; 12h; utils::TimeSpan; Maximum duration for banning. +keepAliveDuration; 48h; utils::TimeSpan; Duration to keep account in container after the ban expired. +maxBannedNodes; 5'000; uint32_t; Maximum number of banned nodes. +numReadRateMonitoringBuckets; 4; uint16_t; Number of read rate monitoring buckets (Set to 0 to disable read rate monitoring). +readRateMonitoringBucketDuration; 15s; utils::TimeSpan; Duration of each read rate monitoring bucket. +maxReadRateMonitoringTotalSize; 100MB; utils::FileSize; Maximum size allowed during full read rate monitoring period. +minTransactionFailuresCountForBan; 8; ; +minTransactionFailuresPercentForBan; 10; ; + + +config-pt.properties +partialtransactions +cacheMaxResponseSize; 5MB +cacheMaxSize; 20MB + + +config-task.properties +logging task +startDelay; 1m +repeatDelay; 10m + +connect peers task for service Finalization +startDelay; 2s +repeatDelay; 1m + +finalization task +startDelay; 2m +repeatDelay; 15s + +pull finalization messages task +startDelay; 3s +repeatDelay; 1s + +pull finalization proof task +startDelay; 10s +repeatDelay; 50s + +harvesting task +startDelay; 30s +repeatDelay; 1s + +network chain height detection +startDelay; 1s +repeatDelay; 15s + +node discovery peers task +startDelay; 1m +minDelay; 1m +maxDelay; 10m +numPhaseOneRounds; 10 +numTransitionRounds; 20 + +node discovery ping task +startDelay; 2m +repeatDelay; 5m + +age peers task for service Readers +startDelay; 1m +repeatDelay; 1m + +batch partial transaction task +startDelay; 500ms +repeatDelay; 500ms + +connect peers task for service Pt +startDelay; 3s +repeatDelay; 1m + +pull partial transactions task +startDelay; 10s +repeatDelay; 3s + +batch transaction task +startDelay; 500ms +repeatDelay; 500ms + +connect peers task for service Sync +startDelay; 1s +repeatDelay; 1m + +pull unconfirmed transactions task +startDelay; 4s +repeatDelay; 3s + +synchronizer task +startDelay; 3s +repeatDelay; 3s + +time synchronization task +startDelay; 1m +minDelay; 3m +maxDelay; 180m +numPhaseOneRounds; 5 +numTransitionRounds; 10 + +static node refresh task +startDelay; 5ms +minDelay; 15s +maxDelay; 24h +numPhaseOneRounds; 20 +numTransitionRounds; 20 + + +config-timesync.properties +timesynchronization +maxNodes; 20 +minImportance; 3'750 + + +config-user.properties +account +enableDelegatedHarvestersAutoDetection; true + +storage +seedDirectory; ./seed +certificateDirectory; ./cert +dataDirectory; ./data +pluginsDirectory; /usr/catapult/lib +votingKeysDirectory; ./votingkeys \ No newline at end of file diff --git a/test/reports/mainnet-dual/api-node-config.rst b/test/reports/mainnet-dual/api-node-config.rst new file mode 100644 index 000000000..84d34580d --- /dev/null +++ b/test/reports/mainnet-dual/api-node-config.rst @@ -0,0 +1,887 @@ +Symbol Bootstrap Version: CURRENT_VERSION + +config-database.properties +========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **database**; + databaseUri; mongodb://db:27017 + databaseName; catapult + maxWriterThreads; 8 + maxDropBatchSize; 10 + writeTimeout; 10m + **plugins**; + catapult.mongo.plugins.accountlink; true + catapult.mongo.plugins.aggregate; true + catapult.mongo.plugins.lockhash; true + catapult.mongo.plugins.locksecret; true + catapult.mongo.plugins.metadata; true + catapult.mongo.plugins.mosaic; true + catapult.mongo.plugins.multisig; true + catapult.mongo.plugins.namespace; true + catapult.mongo.plugins.restrictionaccount; true + catapult.mongo.plugins.restrictionmosaic; true + catapult.mongo.plugins.transfer; true + +config-extensions-broker.properties +=================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.addressextraction; true + extension.mongo; true + extension.zeromq; true + extension.hashcache; true + +config-extensions-recovery.properties +===================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.addressextraction; false + extension.mongo; false + extension.zeromq; false + extension.filespooling; true + extension.hashcache; true + +config-extensions-server.properties +=================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.filespooling; true + extension.partialtransaction; true + extension.addressextraction; false + extension.mongo; false + extension.zeromq; false + extension.harvesting; true + extension.syncsource; true + extension.diagnostics; true + extension.finalization; true + extension.hashcache; true + extension.networkheight; false + extension.nodediscovery; true + extension.packetserver; true + extension.pluginhandlers; true + extension.sync; true + extension.timesync; true + extension.transactionsink; true + extension.unbondedpruning; true + +config-finalization.properties +============================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **finalization**; + enableVoting; false + enableRevoteOnBoot; true + size; 10'000 + threshold; 7'000 + stepDuration; 4m + shortLivedCacheMessageDuration; 10m + messageSynchronizationMaxResponseSize; 20MB + maxHashesPerPoint; 256 + prevoteBlocksMultiple; 4 + unfinalizedBlocksDuration; 0m + +config-harvesting.properties +============================ +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **harvesting**; ; ; + harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. + harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. + enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. + delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. + beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. + +config-inflation.properties +=========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **inflation**; + starting-at-height-2; 95998521 + starting-at-height-200; 91882261 + starting-at-height-400; 87942499 + starting-at-height-600; 84171668 + starting-at-height-800; 80562525 + starting-at-height-2537757; 77108135 + starting-at-height-3062757; 73801864 + starting-at-height-3587757; 70637360 + starting-at-height-4112757; 67608545 + starting-at-height-4637757; 64709601 + starting-at-height-5162757; 61934959 + starting-at-height-5687757; 59279289 + starting-at-height-6212757; 56737489 + starting-at-height-6737757; 54304678 + starting-at-height-7262757; 51976182 + starting-at-height-7787757; 49747528 + starting-at-height-8312757; 47614435 + starting-at-height-8837757; 45572806 + starting-at-height-9362757; 43618718 + starting-at-height-9887757; 41748419 + starting-at-height-10412757; 39958315 + starting-at-height-10937757; 38244967 + starting-at-height-11462757; 36605085 + starting-at-height-11987757; 35035519 + starting-at-height-12512757; 33533253 + starting-at-height-13037757; 32095402 + starting-at-height-13562757; 30719203 + starting-at-height-14087757; 29402014 + starting-at-height-14612757; 28141304 + starting-at-height-15137757; 26934650 + starting-at-height-15662757; 25779736 + starting-at-height-16187757; 24674343 + starting-at-height-16712757; 23616348 + starting-at-height-17237757; 22603717 + starting-at-height-17762757; 21634507 + starting-at-height-18287757; 20706854 + starting-at-height-18812757; 19818978 + starting-at-height-19337757; 18969173 + starting-at-height-19862757; 18155805 + starting-at-height-20387757; 17377314 + starting-at-height-20912757; 16632203 + starting-at-height-21437757; 15919041 + starting-at-height-21962757; 15236459 + starting-at-height-22487757; 14583144 + starting-at-height-23012757; 13957843 + starting-at-height-23537757; 13359353 + starting-at-height-24062757; 12786526 + starting-at-height-24587757; 12238261 + starting-at-height-25112757; 11713504 + starting-at-height-25637757; 11211248 + starting-at-height-26162757; 10730528 + starting-at-height-26687757; 10270420 + starting-at-height-27212757; 9830041 + starting-at-height-27737757; 9408545 + starting-at-height-28262757; 9005122 + starting-at-height-28787757; 8618997 + starting-at-height-29312757; 8249428 + starting-at-height-29837757; 7895707 + starting-at-height-30362757; 7557151 + starting-at-height-30887757; 7233113 + starting-at-height-31412757; 6922969 + starting-at-height-31937757; 6626123 + starting-at-height-32462757; 6342006 + starting-at-height-32987757; 6070071 + starting-at-height-33512757; 5809796 + starting-at-height-34037757; 5560682 + starting-at-height-34562757; 5322249 + starting-at-height-35087757; 5094039 + starting-at-height-35612757; 4875615 + starting-at-height-36137757; 4666557 + starting-at-height-36662757; 4466462 + starting-at-height-37187757; 4274948 + starting-at-height-37712757; 4091645 + starting-at-height-38237757; 3916202 + starting-at-height-38762757; 3748282 + starting-at-height-39287757; 3587561 + starting-at-height-39812757; 3433732 + starting-at-height-40337757; 3286500 + starting-at-height-40862757; 3145580 + starting-at-height-41387757; 3010703 + starting-at-height-41912757; 2881608 + starting-at-height-42437757; 2758050 + starting-at-height-42962757; 2639789 + starting-at-height-43487757; 2526599 + starting-at-height-44012757; 2418263 + starting-at-height-44537757; 2314572 + starting-at-height-45062757; 2215326 + starting-at-height-45587757; 2120337 + starting-at-height-46112757; 2029420 + starting-at-height-46637757; 1942402 + starting-at-height-47162757; 1859115 + starting-at-height-47687757; 1779399 + starting-at-height-48212757; 1703101 + starting-at-height-48737757; 1630075 + starting-at-height-49262757; 1560180 + starting-at-height-49787757; 1493282 + starting-at-height-50312757; 1429253 + starting-at-height-50837757; 1367969 + starting-at-height-51362757; 1309312 + starting-at-height-51887757; 1253171 + starting-at-height-52412757; 1199437 + starting-at-height-52937757; 1148007 + starting-at-height-53462757; 1098783 + starting-at-height-53987757; 1051669 + starting-at-height-54512757; 1006575 + starting-at-height-55037757; 963414 + starting-at-height-55562757; 922105 + starting-at-height-56087757; 882566 + starting-at-height-56612757; 844723 + starting-at-height-57137757; 808503 + starting-at-height-57662757; 773836 + starting-at-height-58187757; 740655 + starting-at-height-58712757; 708897 + starting-at-height-59237757; 678500 + starting-at-height-59762757; 649407 + starting-at-height-60287757; 621562 + starting-at-height-60812757; 594910 + starting-at-height-61337757; 569401 + starting-at-height-61862757; 544986 + starting-at-height-62387757; 521618 + starting-at-height-62912757; 499252 + starting-at-height-63437757; 477845 + starting-at-height-63962757; 457356 + starting-at-height-64487757; 437745 + starting-at-height-65012757; 418975 + starting-at-height-65537757; 401010 + starting-at-height-66062757; 383816 + starting-at-height-66587757; 367358 + starting-at-height-67112757; 351606 + starting-at-height-67637757; 336530 + starting-at-height-68162757; 322100 + starting-at-height-68687757; 308289 + starting-at-height-69212757; 295070 + starting-at-height-69737757; 282418 + starting-at-height-70262757; 270308 + starting-at-height-70787757; 258718 + starting-at-height-71312757; 247624 + starting-at-height-71837757; 237007 + starting-at-height-72362757; 226844 + starting-at-height-72887757; 217118 + starting-at-height-73412757; 207808 + starting-at-height-73937757; 198897 + starting-at-height-74462757; 190369 + starting-at-height-74987757; 182206 + starting-at-height-75512757; 174394 + starting-at-height-76037757; 166916 + starting-at-height-76562757; 159759 + starting-at-height-77087757; 152908 + starting-at-height-77612757; 146352 + starting-at-height-78137757; 140077 + starting-at-height-78662757; 134070 + starting-at-height-79187757; 128322 + starting-at-height-79712757; 122819 + starting-at-height-80237757; 117553 + starting-at-height-80762757; 112513 + starting-at-height-81287757; 107688 + starting-at-height-81812757; 103071 + starting-at-height-82337757; 98651 + starting-at-height-82862757; 94421 + starting-at-height-83387757; 90372 + starting-at-height-83912757; 86497 + starting-at-height-84437757; 82789 + starting-at-height-84962757; 79239 + starting-at-height-85487757; 75841 + starting-at-height-86012757; 72589 + starting-at-height-86537757; 69477 + starting-at-height-87062757; 66498 + starting-at-height-87587757; 63646 + starting-at-height-88112757; 60917 + starting-at-height-88637757; 58305 + starting-at-height-89162757; 55805 + starting-at-height-89687757; 53412 + starting-at-height-90212757; 51122 + starting-at-height-90737757; 48930 + starting-at-height-91262757; 46832 + starting-at-height-91787757; 44824 + starting-at-height-92312757; 42902 + starting-at-height-92837757; 41062 + starting-at-height-93362757; 39301 + starting-at-height-93887757; 37616 + starting-at-height-94412757; 36003 + starting-at-height-94937757; 34460 + starting-at-height-95462757; 32982 + starting-at-height-95987757; 31568 + starting-at-height-96512757; 30214 + starting-at-height-97037757; 28919 + starting-at-height-97562757; 27679 + starting-at-height-98087757; 26492 + starting-at-height-98612757; 25356 + starting-at-height-99137757; 24269 + starting-at-height-99662757; 23228 + starting-at-height-100187757; 22232 + starting-at-height-100712757; 21279 + starting-at-height-101237757; 20366 + starting-at-height-101762757; 19493 + starting-at-height-102287757; 18657 + starting-at-height-102812757; 17857 + starting-at-height-103337757; 17091 + starting-at-height-103862757; 16358 + starting-at-height-104387757; 15657 + starting-at-height-104912757; 14986 + starting-at-height-105437757; 14343 + starting-at-height-105962757; 13728 + starting-at-height-106487757; 13139 + starting-at-height-107012757; 12576 + starting-at-height-107537757; 12037 + starting-at-height-108062757; 11521 + starting-at-height-108587757; 11027 + starting-at-height-109112757; 10554 + starting-at-height-109637757; 10101 + starting-at-height-110162757; 9668 + starting-at-height-110687757; 9254 + starting-at-height-111212757; 8857 + starting-at-height-111737757; 8477 + starting-at-height-112262757; 8113 + starting-at-height-112787757; 7766 + starting-at-height-113312757; 7433 + starting-at-height-113837757; 7114 + starting-at-height-114362757; 6809 + starting-at-height-114887757; 6517 + starting-at-height-115412757; 6237 + starting-at-height-115937757; 5970 + starting-at-height-116462757; 5714 + starting-at-height-116987757; 5469 + starting-at-height-117512757; 5234 + starting-at-height-118037757; 5010 + starting-at-height-118562757; 4795 + starting-at-height-119087757; 4589 + starting-at-height-119612757; 4393 + starting-at-height-120137757; 4204 + starting-at-height-120662757; 4024 + starting-at-height-121187757; 3851 + starting-at-height-121712757; 3686 + starting-at-height-122237757; 3528 + starting-at-height-122762757; 3377 + starting-at-height-123287757; 3232 + starting-at-height-123812757; 3093 + starting-at-height-124337757; 2961 + starting-at-height-124862757; 2834 + starting-at-height-125387757; 2712 + starting-at-height-125912757; 2596 + starting-at-height-126437757; 2485 + starting-at-height-126962757; 2378 + starting-at-height-127487757; 2276 + starting-at-height-128012757; 2178 + starting-at-height-128537757; 2085 + starting-at-height-129062757; 1996 + starting-at-height-129587757; 1910 + starting-at-height-130112757; 1828 + starting-at-height-130637757; 1750 + starting-at-height-131162757; 1675 + starting-at-height-131687757; 1603 + starting-at-height-132212757; 1534 + starting-at-height-132737757; 1468 + starting-at-height-133262757; 1405 + starting-at-height-133787757; 1345 + starting-at-height-134312757; 1287 + starting-at-height-134837757; 1232 + starting-at-height-135362757; 1179 + starting-at-height-135887757; 1129 + starting-at-height-136412757; 1080 + starting-at-height-136937757; 1034 + starting-at-height-137462757; 990 + starting-at-height-137987757; 947 + starting-at-height-138512757; 907 + starting-at-height-139037757; 868 + starting-at-height-139562757; 830 + starting-at-height-140087757; 795 + starting-at-height-140612757; 761 + starting-at-height-141137757; 728 + starting-at-height-141662757; 697 + starting-at-height-142187757; 667 + starting-at-height-142712757; 638 + starting-at-height-143237757; 611 + starting-at-height-143762757; 585 + starting-at-height-144287757; 560 + starting-at-height-144812757; 536 + starting-at-height-145337757; 513 + starting-at-height-145862757; 491 + starting-at-height-146387757; 470 + starting-at-height-146912757; 449 + starting-at-height-147437757; 430 + starting-at-height-147962757; 412 + starting-at-height-148487757; 394 + starting-at-height-149012757; 377 + starting-at-height-149537757; 361 + starting-at-height-150062757; 345 + starting-at-height-150587757; 331 + starting-at-height-151112757; 316 + starting-at-height-151637757; 303 + starting-at-height-152162757; 290 + starting-at-height-152687757; 277 + starting-at-height-153212757; 265 + starting-at-height-153737757; 254 + starting-at-height-154262757; 243 + starting-at-height-154787757; 233 + starting-at-height-155312757; 223 + starting-at-height-155837757; 213 + starting-at-height-156362757; 204 + starting-at-height-156887757; 195 + starting-at-height-157412757; 187 + starting-at-height-157937757; 179 + starting-at-height-158462757; 171 + starting-at-height-158987757; 164 + starting-at-height-159512757; 157 + starting-at-height-160037757; 150 + starting-at-height-160562757; 143 + starting-at-height-161087757; 137 + starting-at-height-161612757; 131 + starting-at-height-162137757; 126 + starting-at-height-162662757; 120 + starting-at-height-163187757; 115 + starting-at-height-163712757; 110 + starting-at-height-164237757; 105 + starting-at-height-164762757; 101 + starting-at-height-165287757; 97 + starting-at-height-165812757; 92 + starting-at-height-166337757; 88 + starting-at-height-166862757; 85 + starting-at-height-167387757; 81 + starting-at-height-167912757; 77 + starting-at-height-168437757; 74 + starting-at-height-168962757; 71 + starting-at-height-169487757; 68 + starting-at-height-170012757; 65 + starting-at-height-170537757; 62 + starting-at-height-171062757; 59 + starting-at-height-171587757; 57 + starting-at-height-172112757; 54 + starting-at-height-172637757; 52 + starting-at-height-173162757; 50 + starting-at-height-173687757; 48 + starting-at-height-174212757; 46 + starting-at-height-174737757; 44 + starting-at-height-175262757; 42 + starting-at-height-175787757; 40 + starting-at-height-176312757; 38 + starting-at-height-176837757; 37 + starting-at-height-177362757; 35 + starting-at-height-177887757; 33 + starting-at-height-178412757; 32 + starting-at-height-178937757; 31 + starting-at-height-179462757; 29 + starting-at-height-179987757; 28 + starting-at-height-180512757; 27 + starting-at-height-181037757; 26 + starting-at-height-181562757; 24 + starting-at-height-182087757; 23 + starting-at-height-182612757; 22 + starting-at-height-183137757; 21 + starting-at-height-183662757; 20 + starting-at-height-184187757; 20 + starting-at-height-184712757; 19 + starting-at-height-185237757; 18 + starting-at-height-185762757; 17 + starting-at-height-186287757; 16 + starting-at-height-186812757; 16 + starting-at-height-187337757; 15 + starting-at-height-187862757; 14 + starting-at-height-188387757; 14 + starting-at-height-188912757; 13 + starting-at-height-189437757; 12 + starting-at-height-189962757; 12 + starting-at-height-190487757; 11 + starting-at-height-191012757; 11 + starting-at-height-191537757; 10 + starting-at-height-192062757; 10 + starting-at-height-192587757; 9 + starting-at-height-193112757; 9 + starting-at-height-193637757; 9 + starting-at-height-194162757; 8 + starting-at-height-194687757; 8 + starting-at-height-195212757; 8 + starting-at-height-195737757; 7 + starting-at-height-196262757; 7 + starting-at-height-196787757; 7 + starting-at-height-197312757; 6 + starting-at-height-197837757; 6 + starting-at-height-198362757; 6 + starting-at-height-198887757; 5 + starting-at-height-199412757; 5 + starting-at-height-199937757; 5 + starting-at-height-200462757; 5 + starting-at-height-200987757; 4 + starting-at-height-201512757; 4 + starting-at-height-202037757; 4 + starting-at-height-202562757; 4 + starting-at-height-203087757; 4 + starting-at-height-203612757; 4 + starting-at-height-204137757; 3 + starting-at-height-204662757; 3 + starting-at-height-205187757; 3 + starting-at-height-205712757; 3 + starting-at-height-206237757; 3 + starting-at-height-206762757; 3 + starting-at-height-207287757; 2 + starting-at-height-207812757; 2 + starting-at-height-208337757; 2 + starting-at-height-208862757; 2 + starting-at-height-209387757; 2 + starting-at-height-209912757; 2 + starting-at-height-210437757; 2 + starting-at-height-210962757; 2 + starting-at-height-211487757; 2 + starting-at-height-212012757; 2 + starting-at-height-212537757; 1 + starting-at-height-213062757; 1 + starting-at-height-213587757; 1 + starting-at-height-214112757; 1 + starting-at-height-214637757; 1 + starting-at-height-215162757; 1 + starting-at-height-215687757; 1 + starting-at-height-216212757; 1 + starting-at-height-216737757; 1 + starting-at-height-217262757; 1 + starting-at-height-217787757; 1 + starting-at-height-218312757; 1 + starting-at-height-218837757; 1 + starting-at-height-219362757; 1 + starting-at-height-219887757; 1 + starting-at-height-220412757; 1 + starting-at-height-220937757; 0 + +config-logging-broker.properties +================================ +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Async + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Async + level; Info + directory; logs + filePattern; logs/catapult_broker%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-logging-recovery.properties +================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Async + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Async + level; Info + directory; logs + filePattern; logs/catapult_recovery%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-logging-server.properties +================================ +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Async + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Async + level; Info + directory; logs + filePattern; logs/catapult_server%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-messaging.properties +=========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **messaging**; + subscriberPort; 7902 + listenInterface; 0.0.0.0 + +config-network.properties +========================= +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **network**; ; ; + identifier; public-test; NetworkIdentifier; Network identifier. + nemesisSignerPublicKey; 071964D3C040D62DE905EAE978E2119BFC8E70489BFDF45A85B3D7ED5A517AA8; Key; Nemesis public key. + nodeEqualityStrategy; host; NodeIdentityEqualityStrategy; Node equality strategy. + generationHashSeed; 45FBCF2F0EA36EFA7923C9BC923D6503169651F7FA4EFC46A8EAF5AE09057EBD; ; + epochAdjustment; 1573430400s; utils::TimeSpan; Nemesis epoch time adjustment. + **chain**; ; ; + enableVerifiableState; true; bool; Set to true if block chain should calculate state hashes so that state is fully verifiable at each block. + enableVerifiableReceipts; true; bool; Set to true if block chain should calculate receipts so that state changes are fully verifiable at each block. + currencyMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used as primary chain currency. + harvestingMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used to provide harvesting ability. + blockGenerationTargetTime; 30s; utils::TimeSpan; Targeted time between blocks. + blockTimeSmoothingFactor; 3000; uint32_t; Note: A higher value makes the network more biased. Note: This can lower security because it will increase the influence of time relative to importance. + importanceGrouping; 180; uint64_t; Number of blocks that should be treated as a group for importance purposes. Note: Importances will only be calculated at blocks that are multiples of this grouping number. + importanceActivityPercentage; 5; uint8_t; Percentage of importance resulting from fee generation and beneficiary usage. + maxRollbackBlocks; 0; uint32_t; Maximum number of blocks that can be rolled back. + maxDifficultyBlocks; 60; uint32_t; Maximum number of blocks to use in a difficulty calculation. + defaultDynamicFeeMultiplier; 1'000; BlockFeeMultiplier; Default multiplier to use for dynamic fees. + maxTransactionLifetime; 6h; utils::TimeSpan; Maximum lifetime a transaction can have before it expires. + maxBlockFutureTime; 500ms; utils::TimeSpan; Maximum future time of a block that can be accepted. + initialCurrencyAtomicUnits; 7'831'975'436'000'000; Amount; Initial currency atomic units available in the network. + maxMosaicAtomicUnits; 9'000'000'000'000'000; Amount; Maximum atomic units (total-supply * 10 ^ divisibility) of a mosaic allowed in the network. + totalChainImportance; 7'831'975'436'000'000; Importance; Total whole importance units available in the network. + minHarvesterBalance; 10'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. + maxHarvesterBalance; 50'000'000'000'000; Amount; Maximum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. + minVoterBalance; 3'000'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for voting. + votingSetGrouping; 720; ; + maxVotingKeysPerAccount; 3; uint8_t; Maximum number of voting keys that can be registered at once per account. + minVotingKeyLifetime; 28; uint32_t; Minimum number of finalization rounds for which voting key can be registered. + maxVotingKeyLifetime; 26280; uint32_t; Maximum number of finalization rounds for which voting key can be registered. + harvestBeneficiaryPercentage; 25; uint8_t; Percentage of the harvested fee that is collected by the beneficiary account. + harvestNetworkPercentage; 5; uint8_t; Percentage of the harvested fee that is collected by the network. + harvestNetworkFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the harvest network fee sink account. + maxTransactionsPerBlock; 6'000; uint32_t; Maximum number of transactions per block. + **plugin:catapult.plugins.accountlink**; + dummy; to trigger plugin load + **plugin:catapult.plugins.aggregate**; ; ; + maxTransactionsPerAggregate; 100; uint32_t; Maximum number of transactions per aggregate. + maxCosignaturesPerAggregate; 25; uint8_t; Maximum number of cosignatures per aggregate. + enableStrictCosignatureCheck; false; bool; Set to true if cosignatures must exactly match component signers. Set to false if cosignatures should be validated externally. + enableBondedAggregateSupport; true; bool; Set to true if bonded aggregates should be allowed. Set to false if bonded aggregates should be rejected. + maxBondedTransactionLifetime; 48h; utils::TimeSpan; Maximum lifetime a bonded transaction can have before it expires. + **plugin:catapult.plugins.lockhash**; ; ; + lockedFundsPerAggregate; 10'000'000; Amount; Amount that has to be locked per aggregate in partial cache. + maxHashLockDuration; 2d; utils::BlockSpan; Maximum number of blocks for which a hash lock can exist. + **plugin:catapult.plugins.locksecret**; ; ; + maxSecretLockDuration; 365d; utils::BlockSpan; Maximum number of blocks for which a secret lock can exist. + minProofSize; 20; uint16_t; Minimum size of a proof in bytes. + maxProofSize; 1024; uint16_t; Maximum size of a proof in bytes. + **plugin:catapult.plugins.metadata**; ; ; + maxValueSize; 1024; uint16_t; Maximum metadata value size. + **plugin:catapult.plugins.mosaic**; ; ; + maxMosaicsPerAccount; 1'000; uint16_t; Maximum number of mosaics that an account can own. + maxMosaicDuration; 3650d; utils::BlockSpan; Maximum mosaic duration. + maxMosaicDivisibility; 6; uint8_t; Maximum mosaic divisibility. + mosaicRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the mosaic rental fee sink account. + mosaicRentalFee; 500; Amount; Mosaic rental fee. + **plugin:catapult.plugins.multisig**; ; ; + maxMultisigDepth; 3; uint8_t; Maximum number of multisig levels. + maxCosignatoriesPerAccount; 25; uint32_t; Maximum number of cosignatories per account. + maxCosignedAccountsPerAccount; 25; uint32_t; Maximum number of accounts a single account can cosign. + **plugin:catapult.plugins.namespace**; ; ; + maxNameSize; 64; uint8_t; Maximum namespace name size. + maxChildNamespaces; 256; uint16_t; Maximum number of children for a root namespace. + maxNamespaceDepth; 3; uint8_t; Maximum namespace depth. + minNamespaceDuration; 30d; utils::BlockSpan; Minimum namespace duration. + maxNamespaceDuration; 1825d; utils::BlockSpan; Maximum namespace duration. + namespaceGracePeriodDuration; 1d; utils::BlockSpan; Grace period during which time only the previous owner can renew an expired namespace. + reservedRootNamespaceNames; symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info; unordered_set; Reserved root namespaces that cannot be claimed. + namespaceRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the namespace rental fee sink account. + rootNamespaceRentalFeePerBlock; 1; Amount; Root namespace rental fee per block. + childNamespaceRentalFee; 100; Amount; Child namespace rental fee. + **plugin:catapult.plugins.restrictionaccount**; ; ; + maxAccountRestrictionValues; 512; uint16_t; Maximum number of account restriction values. + **plugin:catapult.plugins.restrictionmosaic**; ; ; + maxMosaicRestrictionValues; 20; uint8_t; Maximum number of mosaic restriction values. + **plugin:catapult.plugins.transfer**; ; ; + maxMessageSize; 1024; uint16_t; Maximum transaction message size. + +config-node.properties +====================== +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **node**; ; ; + port; 7900; unsigned short; Server port. + maxIncomingConnectionsPerIdentity; 6; uint32_t; Maximum number of incoming connections per identity over primary port. + enableAddressReuse; false; bool; Set to true if the server should reuse ports already in use. + enableSingleThreadPool; false; bool; Set to true if a single thread pool should be used, Set to false if multiple thread pools should be used. + enableCacheDatabaseStorage; true; bool; Set to true if cache data should be saved in a database. + enableAutoSyncCleanup; false; bool; Set to true if temporary sync files should be automatically cleaned up. Note: This should be Set to false if broker process is running. + fileDatabaseBatchSize; 1; ; + enableTransactionSpamThrottling; true; bool; Set to true if transaction spam throttling should be enabled. + transactionSpamThrottlingMaxBoostFee; 10'000'000; Amount; Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled. + maxHashesPerSyncAttempt; 370; ; + maxBlocksPerSyncAttempt; 360; uint32_t; Maximum number of blocks per sync attempt. + maxChainBytesPerSyncAttempt; 100MB; utils::FileSize; Maximum chain bytes per sync attempt. + shortLivedCacheTransactionDuration; 10m; utils::TimeSpan; Duration of a transaction in the short lived cache. + shortLivedCacheBlockDuration; 100m; utils::TimeSpan; Duration of a block in the short lived cache. + shortLivedCachePruneInterval; 90s; utils::TimeSpan; Time between short lived cache pruning. + shortLivedCacheMaxSize; 10'000'000; uint32_t; Maximum size of a short lived cache. + minFeeMultiplier; 100; BlockFeeMultiplier; Minimum fee multiplier of transactions to propagate and include in blocks. + maxTimeBehindPullTransactionsStart; 5m; ; + transactionSelectionStrategy; maximize-fee; model::TransactionSelectionStrategy; Transaction selection strategy used for syncing and harvesting unconfirmed transactions. + unconfirmedTransactionsCacheMaxResponseSize; 5MB; utils::FileSize; Maximum size of an unconfirmed transactions response. + unconfirmedTransactionsCacheMaxSize; 20MB; uint32_t; Maximum size of the unconfirmed transactions cache. + connectTimeout; 15s; utils::TimeSpan; Timeout for connecting to a peer. + syncTimeout; 20m; utils::TimeSpan; Timeout for syncing with a peer. + socketWorkingBufferSize; 16KB; utils::FileSize; Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size). + socketWorkingBufferSensitivity; 1; uint32_t; Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed). Note: Set to 0 will disable memory reclamation. + maxPacketDataSize; 150MB; utils::FileSize; Maximum packet data size. + blockDisruptorSlotCount; 4096; uint32_t; Size of the block disruptor circular buffer. + blockElementTraceInterval; 1; uint32_t; Multiple of elements at which a block element should be traced through queue and completion. + blockDisruptorMaxMemorySize; 300MB; ; + transactionDisruptorSlotCount; 8192; uint32_t; Size of the transaction disruptor circular buffer. + transactionElementTraceInterval; 10; uint32_t; Multiple of elements at which a transaction element should be traced through queue and completion. + transactionDisruptorMaxMemorySize; 20MB; ; + enableDispatcherAbortWhenFull; false; bool; Set to true if the process should terminate when any dispatcher is full. + enableDispatcherInputAuditing; false; bool; Set to true if all dispatcher inputs should be audited. + maxTrackedNodes; 5'000; uint32_t; Maximum number of nodes to track in memory. + minPartnerNodeVersion; 0.10.0.7; ; + maxPartnerNodeVersion; 0.10.1.8; ; + trustedHosts; 127.0.0.1, 172.20.0.25; unordered_set; Trusted hosts that are allowed to execute protected API calls on this node. + localNetworks; 127.0.0.1, 172.20.0.25; unordered_set; Networks that should be treated as local. + listenInterface; 0.0.0.0; ; + **cache_database**; + enableStatistics; false + maxOpenFiles; 0 + maxBackgroundThreads; 0 + maxSubcompactionThreads; 0 + blockCacheSize; 0MB + memtableMemoryBudget; 0MB + maxWriteBatchSize; 5MB + **localnode**; ; ; + host; ; string; Node host (leave empty to auto-detect IP). + friendlyName; myFriendlyName; string; Node friendly name (leave empty to use address). + version; 0.10.1.8; uint32_t; Node version. + roles; Peer,Api; ionet::NodeRoles; Node roles. + **outgoing_connections**; ; ; + maxConnections; 10; uint16_t; Maximum number of active connections. + maxConnectionAge; 200; uint16_t; Maximum connection age. + maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. + numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + **incoming_connections**; ; ; + maxConnections; 512; uint16_t; Maximum number of active connections. + maxConnectionAge; 200; uint16_t; Maximum connection age. + maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. + numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + backlogSize; 512; uint16_t; Maximum size of the pending connections queue. + **banning**; ; ; + defaultBanDuration; 12h; utils::TimeSpan; Default duration for banning. + maxBanDuration; 12h; utils::TimeSpan; Maximum duration for banning. + keepAliveDuration; 48h; utils::TimeSpan; Duration to keep account in container after the ban expired. + maxBannedNodes; 5'000; uint32_t; Maximum number of banned nodes. + numReadRateMonitoringBuckets; 4; uint16_t; Number of read rate monitoring buckets (Set to 0 to disable read rate monitoring). + readRateMonitoringBucketDuration; 15s; utils::TimeSpan; Duration of each read rate monitoring bucket. + maxReadRateMonitoringTotalSize; 100MB; utils::FileSize; Maximum size allowed during full read rate monitoring period. + minTransactionFailuresCountForBan; 8; ; + minTransactionFailuresPercentForBan; 10; ; + +config-pt.properties +==================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **partialtransactions**; + cacheMaxResponseSize; 5MB + cacheMaxSize; 20MB + +config-task.properties +====================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **logging task**; + startDelay; 1m + repeatDelay; 10m + **connect peers task for service Finalization**; + startDelay; 2s + repeatDelay; 1m + **finalization task**; + startDelay; 2m + repeatDelay; 15s + **pull finalization messages task**; + startDelay; 3s + repeatDelay; 1s + **pull finalization proof task**; + startDelay; 10s + repeatDelay; 50s + **harvesting task**; + startDelay; 30s + repeatDelay; 1s + **network chain height detection**; + startDelay; 1s + repeatDelay; 15s + **node discovery peers task**; + startDelay; 1m + minDelay; 1m + maxDelay; 10m + numPhaseOneRounds; 10 + numTransitionRounds; 20 + **node discovery ping task**; + startDelay; 2m + repeatDelay; 5m + **age peers task for service Readers**; + startDelay; 1m + repeatDelay; 1m + **batch partial transaction task**; + startDelay; 500ms + repeatDelay; 500ms + **connect peers task for service Pt**; + startDelay; 3s + repeatDelay; 1m + **pull partial transactions task**; + startDelay; 10s + repeatDelay; 3s + **batch transaction task**; + startDelay; 500ms + repeatDelay; 500ms + **connect peers task for service Sync**; + startDelay; 1s + repeatDelay; 1m + **pull unconfirmed transactions task**; + startDelay; 4s + repeatDelay; 3s + **synchronizer task**; + startDelay; 3s + repeatDelay; 3s + **time synchronization task**; + startDelay; 1m + minDelay; 3m + maxDelay; 180m + numPhaseOneRounds; 5 + numTransitionRounds; 10 + **static node refresh task**; + startDelay; 5ms + minDelay; 15s + maxDelay; 24h + numPhaseOneRounds; 20 + numTransitionRounds; 20 + +config-timesync.properties +========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **timesynchronization**; + maxNodes; 20 + minImportance; 3'750 + +config-user.properties +====================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **account**; + enableDelegatedHarvestersAutoDetection; true + **storage**; + seedDirectory; ./seed + certificateDirectory; ./cert + dataDirectory; ./data + pluginsDirectory; /usr/catapult/lib + votingKeysDirectory; ./votingkeys \ No newline at end of file diff --git a/test/reports/mainnet-peer/peer-node-config.csv b/test/reports/mainnet-peer/peer-node-config.csv new file mode 100644 index 000000000..046620b5f --- /dev/null +++ b/test/reports/mainnet-peer/peer-node-config.csv @@ -0,0 +1,864 @@ +symbol-bootstrap-version; CURRENT_VERSION + +config-database.properties +database +databaseUri; mongodb://:27017 +databaseName; catapult +maxWriterThreads; 8 +maxDropBatchSize; 10 +writeTimeout; 10m + +plugins +catapult.mongo.plugins.accountlink; true +catapult.mongo.plugins.aggregate; true +catapult.mongo.plugins.lockhash; true +catapult.mongo.plugins.locksecret; true +catapult.mongo.plugins.metadata; true +catapult.mongo.plugins.mosaic; true +catapult.mongo.plugins.multisig; true +catapult.mongo.plugins.namespace; true +catapult.mongo.plugins.restrictionaccount; true +catapult.mongo.plugins.restrictionmosaic; true +catapult.mongo.plugins.transfer; true + + +config-extensions-broker.properties +extensions +extension.addressextraction; true +extension.mongo; true +extension.zeromq; true +extension.hashcache; true + + +config-extensions-recovery.properties +extensions +extension.addressextraction; false +extension.mongo; false +extension.zeromq; false +extension.filespooling; true +extension.hashcache; true + + +config-extensions-server.properties +extensions +extension.filespooling; false +extension.partialtransaction; false +extension.addressextraction; false +extension.mongo; false +extension.zeromq; false +extension.harvesting; true +extension.syncsource; true +extension.diagnostics; true +extension.finalization; true +extension.hashcache; true +extension.networkheight; false +extension.nodediscovery; true +extension.packetserver; true +extension.pluginhandlers; true +extension.sync; true +extension.timesync; true +extension.transactionsink; true +extension.unbondedpruning; true + + +config-finalization.properties +finalization +enableVoting; false +enableRevoteOnBoot; true +size; 10'000 +threshold; 7'000 +stepDuration; 4m +shortLivedCacheMessageDuration; 10m +messageSynchronizationMaxResponseSize; 20MB +maxHashesPerPoint; 256 +prevoteBlocksMultiple; 4 +unfinalizedBlocksDuration; 0m + + +config-harvesting.properties +harvesting +harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. +harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. +enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. +delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. +beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. + + +config-inflation.properties +inflation +starting-at-height-2; 95998521 +starting-at-height-200; 91882261 +starting-at-height-400; 87942499 +starting-at-height-600; 84171668 +starting-at-height-800; 80562525 +starting-at-height-2537757; 77108135 +starting-at-height-3062757; 73801864 +starting-at-height-3587757; 70637360 +starting-at-height-4112757; 67608545 +starting-at-height-4637757; 64709601 +starting-at-height-5162757; 61934959 +starting-at-height-5687757; 59279289 +starting-at-height-6212757; 56737489 +starting-at-height-6737757; 54304678 +starting-at-height-7262757; 51976182 +starting-at-height-7787757; 49747528 +starting-at-height-8312757; 47614435 +starting-at-height-8837757; 45572806 +starting-at-height-9362757; 43618718 +starting-at-height-9887757; 41748419 +starting-at-height-10412757; 39958315 +starting-at-height-10937757; 38244967 +starting-at-height-11462757; 36605085 +starting-at-height-11987757; 35035519 +starting-at-height-12512757; 33533253 +starting-at-height-13037757; 32095402 +starting-at-height-13562757; 30719203 +starting-at-height-14087757; 29402014 +starting-at-height-14612757; 28141304 +starting-at-height-15137757; 26934650 +starting-at-height-15662757; 25779736 +starting-at-height-16187757; 24674343 +starting-at-height-16712757; 23616348 +starting-at-height-17237757; 22603717 +starting-at-height-17762757; 21634507 +starting-at-height-18287757; 20706854 +starting-at-height-18812757; 19818978 +starting-at-height-19337757; 18969173 +starting-at-height-19862757; 18155805 +starting-at-height-20387757; 17377314 +starting-at-height-20912757; 16632203 +starting-at-height-21437757; 15919041 +starting-at-height-21962757; 15236459 +starting-at-height-22487757; 14583144 +starting-at-height-23012757; 13957843 +starting-at-height-23537757; 13359353 +starting-at-height-24062757; 12786526 +starting-at-height-24587757; 12238261 +starting-at-height-25112757; 11713504 +starting-at-height-25637757; 11211248 +starting-at-height-26162757; 10730528 +starting-at-height-26687757; 10270420 +starting-at-height-27212757; 9830041 +starting-at-height-27737757; 9408545 +starting-at-height-28262757; 9005122 +starting-at-height-28787757; 8618997 +starting-at-height-29312757; 8249428 +starting-at-height-29837757; 7895707 +starting-at-height-30362757; 7557151 +starting-at-height-30887757; 7233113 +starting-at-height-31412757; 6922969 +starting-at-height-31937757; 6626123 +starting-at-height-32462757; 6342006 +starting-at-height-32987757; 6070071 +starting-at-height-33512757; 5809796 +starting-at-height-34037757; 5560682 +starting-at-height-34562757; 5322249 +starting-at-height-35087757; 5094039 +starting-at-height-35612757; 4875615 +starting-at-height-36137757; 4666557 +starting-at-height-36662757; 4466462 +starting-at-height-37187757; 4274948 +starting-at-height-37712757; 4091645 +starting-at-height-38237757; 3916202 +starting-at-height-38762757; 3748282 +starting-at-height-39287757; 3587561 +starting-at-height-39812757; 3433732 +starting-at-height-40337757; 3286500 +starting-at-height-40862757; 3145580 +starting-at-height-41387757; 3010703 +starting-at-height-41912757; 2881608 +starting-at-height-42437757; 2758050 +starting-at-height-42962757; 2639789 +starting-at-height-43487757; 2526599 +starting-at-height-44012757; 2418263 +starting-at-height-44537757; 2314572 +starting-at-height-45062757; 2215326 +starting-at-height-45587757; 2120337 +starting-at-height-46112757; 2029420 +starting-at-height-46637757; 1942402 +starting-at-height-47162757; 1859115 +starting-at-height-47687757; 1779399 +starting-at-height-48212757; 1703101 +starting-at-height-48737757; 1630075 +starting-at-height-49262757; 1560180 +starting-at-height-49787757; 1493282 +starting-at-height-50312757; 1429253 +starting-at-height-50837757; 1367969 +starting-at-height-51362757; 1309312 +starting-at-height-51887757; 1253171 +starting-at-height-52412757; 1199437 +starting-at-height-52937757; 1148007 +starting-at-height-53462757; 1098783 +starting-at-height-53987757; 1051669 +starting-at-height-54512757; 1006575 +starting-at-height-55037757; 963414 +starting-at-height-55562757; 922105 +starting-at-height-56087757; 882566 +starting-at-height-56612757; 844723 +starting-at-height-57137757; 808503 +starting-at-height-57662757; 773836 +starting-at-height-58187757; 740655 +starting-at-height-58712757; 708897 +starting-at-height-59237757; 678500 +starting-at-height-59762757; 649407 +starting-at-height-60287757; 621562 +starting-at-height-60812757; 594910 +starting-at-height-61337757; 569401 +starting-at-height-61862757; 544986 +starting-at-height-62387757; 521618 +starting-at-height-62912757; 499252 +starting-at-height-63437757; 477845 +starting-at-height-63962757; 457356 +starting-at-height-64487757; 437745 +starting-at-height-65012757; 418975 +starting-at-height-65537757; 401010 +starting-at-height-66062757; 383816 +starting-at-height-66587757; 367358 +starting-at-height-67112757; 351606 +starting-at-height-67637757; 336530 +starting-at-height-68162757; 322100 +starting-at-height-68687757; 308289 +starting-at-height-69212757; 295070 +starting-at-height-69737757; 282418 +starting-at-height-70262757; 270308 +starting-at-height-70787757; 258718 +starting-at-height-71312757; 247624 +starting-at-height-71837757; 237007 +starting-at-height-72362757; 226844 +starting-at-height-72887757; 217118 +starting-at-height-73412757; 207808 +starting-at-height-73937757; 198897 +starting-at-height-74462757; 190369 +starting-at-height-74987757; 182206 +starting-at-height-75512757; 174394 +starting-at-height-76037757; 166916 +starting-at-height-76562757; 159759 +starting-at-height-77087757; 152908 +starting-at-height-77612757; 146352 +starting-at-height-78137757; 140077 +starting-at-height-78662757; 134070 +starting-at-height-79187757; 128322 +starting-at-height-79712757; 122819 +starting-at-height-80237757; 117553 +starting-at-height-80762757; 112513 +starting-at-height-81287757; 107688 +starting-at-height-81812757; 103071 +starting-at-height-82337757; 98651 +starting-at-height-82862757; 94421 +starting-at-height-83387757; 90372 +starting-at-height-83912757; 86497 +starting-at-height-84437757; 82789 +starting-at-height-84962757; 79239 +starting-at-height-85487757; 75841 +starting-at-height-86012757; 72589 +starting-at-height-86537757; 69477 +starting-at-height-87062757; 66498 +starting-at-height-87587757; 63646 +starting-at-height-88112757; 60917 +starting-at-height-88637757; 58305 +starting-at-height-89162757; 55805 +starting-at-height-89687757; 53412 +starting-at-height-90212757; 51122 +starting-at-height-90737757; 48930 +starting-at-height-91262757; 46832 +starting-at-height-91787757; 44824 +starting-at-height-92312757; 42902 +starting-at-height-92837757; 41062 +starting-at-height-93362757; 39301 +starting-at-height-93887757; 37616 +starting-at-height-94412757; 36003 +starting-at-height-94937757; 34460 +starting-at-height-95462757; 32982 +starting-at-height-95987757; 31568 +starting-at-height-96512757; 30214 +starting-at-height-97037757; 28919 +starting-at-height-97562757; 27679 +starting-at-height-98087757; 26492 +starting-at-height-98612757; 25356 +starting-at-height-99137757; 24269 +starting-at-height-99662757; 23228 +starting-at-height-100187757; 22232 +starting-at-height-100712757; 21279 +starting-at-height-101237757; 20366 +starting-at-height-101762757; 19493 +starting-at-height-102287757; 18657 +starting-at-height-102812757; 17857 +starting-at-height-103337757; 17091 +starting-at-height-103862757; 16358 +starting-at-height-104387757; 15657 +starting-at-height-104912757; 14986 +starting-at-height-105437757; 14343 +starting-at-height-105962757; 13728 +starting-at-height-106487757; 13139 +starting-at-height-107012757; 12576 +starting-at-height-107537757; 12037 +starting-at-height-108062757; 11521 +starting-at-height-108587757; 11027 +starting-at-height-109112757; 10554 +starting-at-height-109637757; 10101 +starting-at-height-110162757; 9668 +starting-at-height-110687757; 9254 +starting-at-height-111212757; 8857 +starting-at-height-111737757; 8477 +starting-at-height-112262757; 8113 +starting-at-height-112787757; 7766 +starting-at-height-113312757; 7433 +starting-at-height-113837757; 7114 +starting-at-height-114362757; 6809 +starting-at-height-114887757; 6517 +starting-at-height-115412757; 6237 +starting-at-height-115937757; 5970 +starting-at-height-116462757; 5714 +starting-at-height-116987757; 5469 +starting-at-height-117512757; 5234 +starting-at-height-118037757; 5010 +starting-at-height-118562757; 4795 +starting-at-height-119087757; 4589 +starting-at-height-119612757; 4393 +starting-at-height-120137757; 4204 +starting-at-height-120662757; 4024 +starting-at-height-121187757; 3851 +starting-at-height-121712757; 3686 +starting-at-height-122237757; 3528 +starting-at-height-122762757; 3377 +starting-at-height-123287757; 3232 +starting-at-height-123812757; 3093 +starting-at-height-124337757; 2961 +starting-at-height-124862757; 2834 +starting-at-height-125387757; 2712 +starting-at-height-125912757; 2596 +starting-at-height-126437757; 2485 +starting-at-height-126962757; 2378 +starting-at-height-127487757; 2276 +starting-at-height-128012757; 2178 +starting-at-height-128537757; 2085 +starting-at-height-129062757; 1996 +starting-at-height-129587757; 1910 +starting-at-height-130112757; 1828 +starting-at-height-130637757; 1750 +starting-at-height-131162757; 1675 +starting-at-height-131687757; 1603 +starting-at-height-132212757; 1534 +starting-at-height-132737757; 1468 +starting-at-height-133262757; 1405 +starting-at-height-133787757; 1345 +starting-at-height-134312757; 1287 +starting-at-height-134837757; 1232 +starting-at-height-135362757; 1179 +starting-at-height-135887757; 1129 +starting-at-height-136412757; 1080 +starting-at-height-136937757; 1034 +starting-at-height-137462757; 990 +starting-at-height-137987757; 947 +starting-at-height-138512757; 907 +starting-at-height-139037757; 868 +starting-at-height-139562757; 830 +starting-at-height-140087757; 795 +starting-at-height-140612757; 761 +starting-at-height-141137757; 728 +starting-at-height-141662757; 697 +starting-at-height-142187757; 667 +starting-at-height-142712757; 638 +starting-at-height-143237757; 611 +starting-at-height-143762757; 585 +starting-at-height-144287757; 560 +starting-at-height-144812757; 536 +starting-at-height-145337757; 513 +starting-at-height-145862757; 491 +starting-at-height-146387757; 470 +starting-at-height-146912757; 449 +starting-at-height-147437757; 430 +starting-at-height-147962757; 412 +starting-at-height-148487757; 394 +starting-at-height-149012757; 377 +starting-at-height-149537757; 361 +starting-at-height-150062757; 345 +starting-at-height-150587757; 331 +starting-at-height-151112757; 316 +starting-at-height-151637757; 303 +starting-at-height-152162757; 290 +starting-at-height-152687757; 277 +starting-at-height-153212757; 265 +starting-at-height-153737757; 254 +starting-at-height-154262757; 243 +starting-at-height-154787757; 233 +starting-at-height-155312757; 223 +starting-at-height-155837757; 213 +starting-at-height-156362757; 204 +starting-at-height-156887757; 195 +starting-at-height-157412757; 187 +starting-at-height-157937757; 179 +starting-at-height-158462757; 171 +starting-at-height-158987757; 164 +starting-at-height-159512757; 157 +starting-at-height-160037757; 150 +starting-at-height-160562757; 143 +starting-at-height-161087757; 137 +starting-at-height-161612757; 131 +starting-at-height-162137757; 126 +starting-at-height-162662757; 120 +starting-at-height-163187757; 115 +starting-at-height-163712757; 110 +starting-at-height-164237757; 105 +starting-at-height-164762757; 101 +starting-at-height-165287757; 97 +starting-at-height-165812757; 92 +starting-at-height-166337757; 88 +starting-at-height-166862757; 85 +starting-at-height-167387757; 81 +starting-at-height-167912757; 77 +starting-at-height-168437757; 74 +starting-at-height-168962757; 71 +starting-at-height-169487757; 68 +starting-at-height-170012757; 65 +starting-at-height-170537757; 62 +starting-at-height-171062757; 59 +starting-at-height-171587757; 57 +starting-at-height-172112757; 54 +starting-at-height-172637757; 52 +starting-at-height-173162757; 50 +starting-at-height-173687757; 48 +starting-at-height-174212757; 46 +starting-at-height-174737757; 44 +starting-at-height-175262757; 42 +starting-at-height-175787757; 40 +starting-at-height-176312757; 38 +starting-at-height-176837757; 37 +starting-at-height-177362757; 35 +starting-at-height-177887757; 33 +starting-at-height-178412757; 32 +starting-at-height-178937757; 31 +starting-at-height-179462757; 29 +starting-at-height-179987757; 28 +starting-at-height-180512757; 27 +starting-at-height-181037757; 26 +starting-at-height-181562757; 24 +starting-at-height-182087757; 23 +starting-at-height-182612757; 22 +starting-at-height-183137757; 21 +starting-at-height-183662757; 20 +starting-at-height-184187757; 20 +starting-at-height-184712757; 19 +starting-at-height-185237757; 18 +starting-at-height-185762757; 17 +starting-at-height-186287757; 16 +starting-at-height-186812757; 16 +starting-at-height-187337757; 15 +starting-at-height-187862757; 14 +starting-at-height-188387757; 14 +starting-at-height-188912757; 13 +starting-at-height-189437757; 12 +starting-at-height-189962757; 12 +starting-at-height-190487757; 11 +starting-at-height-191012757; 11 +starting-at-height-191537757; 10 +starting-at-height-192062757; 10 +starting-at-height-192587757; 9 +starting-at-height-193112757; 9 +starting-at-height-193637757; 9 +starting-at-height-194162757; 8 +starting-at-height-194687757; 8 +starting-at-height-195212757; 8 +starting-at-height-195737757; 7 +starting-at-height-196262757; 7 +starting-at-height-196787757; 7 +starting-at-height-197312757; 6 +starting-at-height-197837757; 6 +starting-at-height-198362757; 6 +starting-at-height-198887757; 5 +starting-at-height-199412757; 5 +starting-at-height-199937757; 5 +starting-at-height-200462757; 5 +starting-at-height-200987757; 4 +starting-at-height-201512757; 4 +starting-at-height-202037757; 4 +starting-at-height-202562757; 4 +starting-at-height-203087757; 4 +starting-at-height-203612757; 4 +starting-at-height-204137757; 3 +starting-at-height-204662757; 3 +starting-at-height-205187757; 3 +starting-at-height-205712757; 3 +starting-at-height-206237757; 3 +starting-at-height-206762757; 3 +starting-at-height-207287757; 2 +starting-at-height-207812757; 2 +starting-at-height-208337757; 2 +starting-at-height-208862757; 2 +starting-at-height-209387757; 2 +starting-at-height-209912757; 2 +starting-at-height-210437757; 2 +starting-at-height-210962757; 2 +starting-at-height-211487757; 2 +starting-at-height-212012757; 2 +starting-at-height-212537757; 1 +starting-at-height-213062757; 1 +starting-at-height-213587757; 1 +starting-at-height-214112757; 1 +starting-at-height-214637757; 1 +starting-at-height-215162757; 1 +starting-at-height-215687757; 1 +starting-at-height-216212757; 1 +starting-at-height-216737757; 1 +starting-at-height-217262757; 1 +starting-at-height-217787757; 1 +starting-at-height-218312757; 1 +starting-at-height-218837757; 1 +starting-at-height-219362757; 1 +starting-at-height-219887757; 1 +starting-at-height-220412757; 1 +starting-at-height-220937757; 0 + + +config-logging-broker.properties +console +sinkType; Async +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Async +level; Info +directory; logs +filePattern; logs/catapult_broker%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-logging-recovery.properties +console +sinkType; Sync +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Async +level; Info +directory; logs +filePattern; logs/catapult_recovery%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-logging-server.properties +console +sinkType; Sync +level; Info +colorMode; Ansi + +console.component.levels + +file +sinkType; Sync +level; Info +directory; logs +filePattern; logs/catapult_server%4N.log +rotationSize; 25MB +maxTotalSize; 1000MB +minFreeSpace; 100MB + +file.component.levels + + +config-messaging.properties +messaging +subscriberPort; 7902 +listenInterface; 0.0.0.0 + + +config-network.properties +network +identifier; public-test; NetworkIdentifier; Network identifier. +nemesisSignerPublicKey; 071964D3C040D62DE905EAE978E2119BFC8E70489BFDF45A85B3D7ED5A517AA8; Key; Nemesis public key. +nodeEqualityStrategy; host; NodeIdentityEqualityStrategy; Node equality strategy. +generationHashSeed; 45FBCF2F0EA36EFA7923C9BC923D6503169651F7FA4EFC46A8EAF5AE09057EBD; ; +epochAdjustment; 1573430400s; utils::TimeSpan; Nemesis epoch time adjustment. + +chain +enableVerifiableState; true; bool; Set to true if block chain should calculate state hashes so that state is fully verifiable at each block. +enableVerifiableReceipts; true; bool; Set to true if block chain should calculate receipts so that state changes are fully verifiable at each block. +currencyMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used as primary chain currency. +harvestingMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used to provide harvesting ability. +blockGenerationTargetTime; 30s; utils::TimeSpan; Targeted time between blocks. +blockTimeSmoothingFactor; 3000; uint32_t; Note: A higher value makes the network more biased. Note: This can lower security because it will increase the influence of time relative to importance. +importanceGrouping; 180; uint64_t; Number of blocks that should be treated as a group for importance purposes. Note: Importances will only be calculated at blocks that are multiples of this grouping number. +importanceActivityPercentage; 5; uint8_t; Percentage of importance resulting from fee generation and beneficiary usage. +maxRollbackBlocks; 0; uint32_t; Maximum number of blocks that can be rolled back. +maxDifficultyBlocks; 60; uint32_t; Maximum number of blocks to use in a difficulty calculation. +defaultDynamicFeeMultiplier; 1'000; BlockFeeMultiplier; Default multiplier to use for dynamic fees. +maxTransactionLifetime; 6h; utils::TimeSpan; Maximum lifetime a transaction can have before it expires. +maxBlockFutureTime; 500ms; utils::TimeSpan; Maximum future time of a block that can be accepted. +initialCurrencyAtomicUnits; 7'831'975'436'000'000; Amount; Initial currency atomic units available in the network. +maxMosaicAtomicUnits; 9'000'000'000'000'000; Amount; Maximum atomic units (total-supply * 10 ^ divisibility) of a mosaic allowed in the network. +totalChainImportance; 7'831'975'436'000'000; Importance; Total whole importance units available in the network. +minHarvesterBalance; 10'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. +maxHarvesterBalance; 50'000'000'000'000; Amount; Maximum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. +minVoterBalance; 3'000'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for voting. +votingSetGrouping; 720; ; +maxVotingKeysPerAccount; 3; uint8_t; Maximum number of voting keys that can be registered at once per account. +minVotingKeyLifetime; 28; uint32_t; Minimum number of finalization rounds for which voting key can be registered. +maxVotingKeyLifetime; 26280; uint32_t; Maximum number of finalization rounds for which voting key can be registered. +harvestBeneficiaryPercentage; 25; uint8_t; Percentage of the harvested fee that is collected by the beneficiary account. +harvestNetworkPercentage; 5; uint8_t; Percentage of the harvested fee that is collected by the network. +harvestNetworkFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the harvest network fee sink account. +maxTransactionsPerBlock; 6'000; uint32_t; Maximum number of transactions per block. + +plugin:catapult.plugins.accountlink +dummy; to trigger plugin load + +plugin:catapult.plugins.aggregate +maxTransactionsPerAggregate; 100; uint32_t; Maximum number of transactions per aggregate. +maxCosignaturesPerAggregate; 25; uint8_t; Maximum number of cosignatures per aggregate. +enableStrictCosignatureCheck; false; bool; Set to true if cosignatures must exactly match component signers. Set to false if cosignatures should be validated externally. +enableBondedAggregateSupport; true; bool; Set to true if bonded aggregates should be allowed. Set to false if bonded aggregates should be rejected. +maxBondedTransactionLifetime; 48h; utils::TimeSpan; Maximum lifetime a bonded transaction can have before it expires. + +plugin:catapult.plugins.lockhash +lockedFundsPerAggregate; 10'000'000; Amount; Amount that has to be locked per aggregate in partial cache. +maxHashLockDuration; 2d; utils::BlockSpan; Maximum number of blocks for which a hash lock can exist. + +plugin:catapult.plugins.locksecret +maxSecretLockDuration; 365d; utils::BlockSpan; Maximum number of blocks for which a secret lock can exist. +minProofSize; 20; uint16_t; Minimum size of a proof in bytes. +maxProofSize; 1024; uint16_t; Maximum size of a proof in bytes. + +plugin:catapult.plugins.metadata +maxValueSize; 1024; uint16_t; Maximum metadata value size. + +plugin:catapult.plugins.mosaic +maxMosaicsPerAccount; 1'000; uint16_t; Maximum number of mosaics that an account can own. +maxMosaicDuration; 3650d; utils::BlockSpan; Maximum mosaic duration. +maxMosaicDivisibility; 6; uint8_t; Maximum mosaic divisibility. +mosaicRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the mosaic rental fee sink account. +mosaicRentalFee; 500; Amount; Mosaic rental fee. + +plugin:catapult.plugins.multisig +maxMultisigDepth; 3; uint8_t; Maximum number of multisig levels. +maxCosignatoriesPerAccount; 25; uint32_t; Maximum number of cosignatories per account. +maxCosignedAccountsPerAccount; 25; uint32_t; Maximum number of accounts a single account can cosign. + +plugin:catapult.plugins.namespace +maxNameSize; 64; uint8_t; Maximum namespace name size. +maxChildNamespaces; 256; uint16_t; Maximum number of children for a root namespace. +maxNamespaceDepth; 3; uint8_t; Maximum namespace depth. +minNamespaceDuration; 30d; utils::BlockSpan; Minimum namespace duration. +maxNamespaceDuration; 1825d; utils::BlockSpan; Maximum namespace duration. +namespaceGracePeriodDuration; 1d; utils::BlockSpan; Grace period during which time only the previous owner can renew an expired namespace. +reservedRootNamespaceNames; symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info; unordered_set; Reserved root namespaces that cannot be claimed. +namespaceRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the namespace rental fee sink account. +rootNamespaceRentalFeePerBlock; 1; Amount; Root namespace rental fee per block. +childNamespaceRentalFee; 100; Amount; Child namespace rental fee. + +plugin:catapult.plugins.restrictionaccount +maxAccountRestrictionValues; 512; uint16_t; Maximum number of account restriction values. + +plugin:catapult.plugins.restrictionmosaic +maxMosaicRestrictionValues; 20; uint8_t; Maximum number of mosaic restriction values. + +plugin:catapult.plugins.transfer +maxMessageSize; 1024; uint16_t; Maximum transaction message size. + + +config-node.properties +node +port; 7900; unsigned short; Server port. +maxIncomingConnectionsPerIdentity; 6; uint32_t; Maximum number of incoming connections per identity over primary port. +enableAddressReuse; false; bool; Set to true if the server should reuse ports already in use. +enableSingleThreadPool; true; bool; Set to true if a single thread pool should be used, Set to false if multiple thread pools should be used. +enableCacheDatabaseStorage; true; bool; Set to true if cache data should be saved in a database. +enableAutoSyncCleanup; true; bool; Set to true if temporary sync files should be automatically cleaned up. Note: This should be Set to false if broker process is running. +fileDatabaseBatchSize; 1; ; +enableTransactionSpamThrottling; true; bool; Set to true if transaction spam throttling should be enabled. +transactionSpamThrottlingMaxBoostFee; 10'000'000; Amount; Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled. +maxHashesPerSyncAttempt; 370; ; +maxBlocksPerSyncAttempt; 360; uint32_t; Maximum number of blocks per sync attempt. +maxChainBytesPerSyncAttempt; 100MB; utils::FileSize; Maximum chain bytes per sync attempt. +shortLivedCacheTransactionDuration; 10m; utils::TimeSpan; Duration of a transaction in the short lived cache. +shortLivedCacheBlockDuration; 100m; utils::TimeSpan; Duration of a block in the short lived cache. +shortLivedCachePruneInterval; 90s; utils::TimeSpan; Time between short lived cache pruning. +shortLivedCacheMaxSize; 10'000'000; uint32_t; Maximum size of a short lived cache. +minFeeMultiplier; 100; BlockFeeMultiplier; Minimum fee multiplier of transactions to propagate and include in blocks. +maxTimeBehindPullTransactionsStart; 5m; ; +transactionSelectionStrategy; maximize-fee; model::TransactionSelectionStrategy; Transaction selection strategy used for syncing and harvesting unconfirmed transactions. +unconfirmedTransactionsCacheMaxResponseSize; 5MB; utils::FileSize; Maximum size of an unconfirmed transactions response. +unconfirmedTransactionsCacheMaxSize; 20MB; uint32_t; Maximum size of the unconfirmed transactions cache. +connectTimeout; 15s; utils::TimeSpan; Timeout for connecting to a peer. +syncTimeout; 20m; utils::TimeSpan; Timeout for syncing with a peer. +socketWorkingBufferSize; 16KB; utils::FileSize; Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size). +socketWorkingBufferSensitivity; 1; uint32_t; Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed). Note: Set to 0 will disable memory reclamation. +maxPacketDataSize; 150MB; utils::FileSize; Maximum packet data size. +blockDisruptorSlotCount; 4096; uint32_t; Size of the block disruptor circular buffer. +blockElementTraceInterval; 1; uint32_t; Multiple of elements at which a block element should be traced through queue and completion. +blockDisruptorMaxMemorySize; 300MB; ; +transactionDisruptorSlotCount; 8192; uint32_t; Size of the transaction disruptor circular buffer. +transactionElementTraceInterval; 10; uint32_t; Multiple of elements at which a transaction element should be traced through queue and completion. +transactionDisruptorMaxMemorySize; 20MB; ; +enableDispatcherAbortWhenFull; false; bool; Set to true if the process should terminate when any dispatcher is full. +enableDispatcherInputAuditing; false; bool; Set to true if all dispatcher inputs should be audited. +maxTrackedNodes; 5'000; uint32_t; Maximum number of nodes to track in memory. +minPartnerNodeVersion; 0.10.0.7; ; +maxPartnerNodeVersion; 0.10.1.8; ; +trustedHosts; ; unordered_set; Trusted hosts that are allowed to execute protected API calls on this node. +localNetworks; 127.0.0.1; unordered_set; Networks that should be treated as local. +listenInterface; 0.0.0.0; ; + +cache_database +enableStatistics; false +maxOpenFiles; 0 +maxBackgroundThreads; 0 +maxSubcompactionThreads; 0 +blockCacheSize; 0MB +memtableMemoryBudget; 0MB +maxWriteBatchSize; 5MB + +localnode +host; ; string; Node host (leave empty to auto-detect IP). +friendlyName; myFriendlyName; string; Node friendly name (leave empty to use address). +version; 0.10.1.8; uint32_t; Node version. +roles; Peer; ionet::NodeRoles; Node roles. + +outgoing_connections +maxConnections; 10; uint16_t; Maximum number of active connections. +maxConnectionAge; 200; uint16_t; Maximum connection age. +maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. +numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + +incoming_connections +maxConnections; 512; uint16_t; Maximum number of active connections. +maxConnectionAge; 200; uint16_t; Maximum connection age. +maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. +numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. +backlogSize; 512; uint16_t; Maximum size of the pending connections queue. + +banning +defaultBanDuration; 12h; utils::TimeSpan; Default duration for banning. +maxBanDuration; 12h; utils::TimeSpan; Maximum duration for banning. +keepAliveDuration; 48h; utils::TimeSpan; Duration to keep account in container after the ban expired. +maxBannedNodes; 5'000; uint32_t; Maximum number of banned nodes. +numReadRateMonitoringBuckets; 4; uint16_t; Number of read rate monitoring buckets (Set to 0 to disable read rate monitoring). +readRateMonitoringBucketDuration; 15s; utils::TimeSpan; Duration of each read rate monitoring bucket. +maxReadRateMonitoringTotalSize; 100MB; utils::FileSize; Maximum size allowed during full read rate monitoring period. +minTransactionFailuresCountForBan; 8; ; +minTransactionFailuresPercentForBan; 10; ; + + +config-pt.properties +partialtransactions +cacheMaxResponseSize; 5MB +cacheMaxSize; 20MB + + +config-task.properties +logging task +startDelay; 1m +repeatDelay; 10m + +connect peers task for service Finalization +startDelay; 2s +repeatDelay; 1m + +finalization task +startDelay; 2m +repeatDelay; 15s + +pull finalization messages task +startDelay; 3s +repeatDelay; 1s + +pull finalization proof task +startDelay; 10s +repeatDelay; 50s + +harvesting task +startDelay; 30s +repeatDelay; 1s + +network chain height detection +startDelay; 1s +repeatDelay; 15s + +node discovery peers task +startDelay; 1m +minDelay; 1m +maxDelay; 10m +numPhaseOneRounds; 10 +numTransitionRounds; 20 + +node discovery ping task +startDelay; 2m +repeatDelay; 5m + +age peers task for service Readers +startDelay; 1m +repeatDelay; 1m + +batch partial transaction task +startDelay; 500ms +repeatDelay; 500ms + +connect peers task for service Pt +startDelay; 3s +repeatDelay; 1m + +pull partial transactions task +startDelay; 10s +repeatDelay; 3s + +batch transaction task +startDelay; 500ms +repeatDelay; 500ms + +connect peers task for service Sync +startDelay; 1s +repeatDelay; 1m + +pull unconfirmed transactions task +startDelay; 4s +repeatDelay; 3s + +synchronizer task +startDelay; 3s +repeatDelay; 3s + +time synchronization task +startDelay; 1m +minDelay; 3m +maxDelay; 180m +numPhaseOneRounds; 5 +numTransitionRounds; 10 + +static node refresh task +startDelay; 5ms +minDelay; 15s +maxDelay; 24h +numPhaseOneRounds; 20 +numTransitionRounds; 20 + + +config-timesync.properties +timesynchronization +maxNodes; 20 +minImportance; 3'750 + + +config-user.properties +account +enableDelegatedHarvestersAutoDetection; true + +storage +seedDirectory; ./seed +certificateDirectory; ./cert +dataDirectory; ./data +pluginsDirectory; /usr/catapult/lib +votingKeysDirectory; ./votingkeys \ No newline at end of file diff --git a/test/reports/mainnet-peer/peer-node-config.rst b/test/reports/mainnet-peer/peer-node-config.rst new file mode 100644 index 000000000..2b9df3404 --- /dev/null +++ b/test/reports/mainnet-peer/peer-node-config.rst @@ -0,0 +1,887 @@ +Symbol Bootstrap Version: CURRENT_VERSION + +config-database.properties +========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **database**; + databaseUri; mongodb://:27017 + databaseName; catapult + maxWriterThreads; 8 + maxDropBatchSize; 10 + writeTimeout; 10m + **plugins**; + catapult.mongo.plugins.accountlink; true + catapult.mongo.plugins.aggregate; true + catapult.mongo.plugins.lockhash; true + catapult.mongo.plugins.locksecret; true + catapult.mongo.plugins.metadata; true + catapult.mongo.plugins.mosaic; true + catapult.mongo.plugins.multisig; true + catapult.mongo.plugins.namespace; true + catapult.mongo.plugins.restrictionaccount; true + catapult.mongo.plugins.restrictionmosaic; true + catapult.mongo.plugins.transfer; true + +config-extensions-broker.properties +=================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.addressextraction; true + extension.mongo; true + extension.zeromq; true + extension.hashcache; true + +config-extensions-recovery.properties +===================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.addressextraction; false + extension.mongo; false + extension.zeromq; false + extension.filespooling; true + extension.hashcache; true + +config-extensions-server.properties +=================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **extensions**; + extension.filespooling; false + extension.partialtransaction; false + extension.addressextraction; false + extension.mongo; false + extension.zeromq; false + extension.harvesting; true + extension.syncsource; true + extension.diagnostics; true + extension.finalization; true + extension.hashcache; true + extension.networkheight; false + extension.nodediscovery; true + extension.packetserver; true + extension.pluginhandlers; true + extension.sync; true + extension.timesync; true + extension.transactionsink; true + extension.unbondedpruning; true + +config-finalization.properties +============================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **finalization**; + enableVoting; false + enableRevoteOnBoot; true + size; 10'000 + threshold; 7'000 + stepDuration; 4m + shortLivedCacheMessageDuration; 10m + messageSynchronizationMaxResponseSize; 20MB + maxHashesPerPoint; 256 + prevoteBlocksMultiple; 4 + unfinalizedBlocksDuration; 0m + +config-harvesting.properties +============================ +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **harvesting**; ; ; + harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. + harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. + enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. + delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. + beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. + +config-inflation.properties +=========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **inflation**; + starting-at-height-2; 95998521 + starting-at-height-200; 91882261 + starting-at-height-400; 87942499 + starting-at-height-600; 84171668 + starting-at-height-800; 80562525 + starting-at-height-2537757; 77108135 + starting-at-height-3062757; 73801864 + starting-at-height-3587757; 70637360 + starting-at-height-4112757; 67608545 + starting-at-height-4637757; 64709601 + starting-at-height-5162757; 61934959 + starting-at-height-5687757; 59279289 + starting-at-height-6212757; 56737489 + starting-at-height-6737757; 54304678 + starting-at-height-7262757; 51976182 + starting-at-height-7787757; 49747528 + starting-at-height-8312757; 47614435 + starting-at-height-8837757; 45572806 + starting-at-height-9362757; 43618718 + starting-at-height-9887757; 41748419 + starting-at-height-10412757; 39958315 + starting-at-height-10937757; 38244967 + starting-at-height-11462757; 36605085 + starting-at-height-11987757; 35035519 + starting-at-height-12512757; 33533253 + starting-at-height-13037757; 32095402 + starting-at-height-13562757; 30719203 + starting-at-height-14087757; 29402014 + starting-at-height-14612757; 28141304 + starting-at-height-15137757; 26934650 + starting-at-height-15662757; 25779736 + starting-at-height-16187757; 24674343 + starting-at-height-16712757; 23616348 + starting-at-height-17237757; 22603717 + starting-at-height-17762757; 21634507 + starting-at-height-18287757; 20706854 + starting-at-height-18812757; 19818978 + starting-at-height-19337757; 18969173 + starting-at-height-19862757; 18155805 + starting-at-height-20387757; 17377314 + starting-at-height-20912757; 16632203 + starting-at-height-21437757; 15919041 + starting-at-height-21962757; 15236459 + starting-at-height-22487757; 14583144 + starting-at-height-23012757; 13957843 + starting-at-height-23537757; 13359353 + starting-at-height-24062757; 12786526 + starting-at-height-24587757; 12238261 + starting-at-height-25112757; 11713504 + starting-at-height-25637757; 11211248 + starting-at-height-26162757; 10730528 + starting-at-height-26687757; 10270420 + starting-at-height-27212757; 9830041 + starting-at-height-27737757; 9408545 + starting-at-height-28262757; 9005122 + starting-at-height-28787757; 8618997 + starting-at-height-29312757; 8249428 + starting-at-height-29837757; 7895707 + starting-at-height-30362757; 7557151 + starting-at-height-30887757; 7233113 + starting-at-height-31412757; 6922969 + starting-at-height-31937757; 6626123 + starting-at-height-32462757; 6342006 + starting-at-height-32987757; 6070071 + starting-at-height-33512757; 5809796 + starting-at-height-34037757; 5560682 + starting-at-height-34562757; 5322249 + starting-at-height-35087757; 5094039 + starting-at-height-35612757; 4875615 + starting-at-height-36137757; 4666557 + starting-at-height-36662757; 4466462 + starting-at-height-37187757; 4274948 + starting-at-height-37712757; 4091645 + starting-at-height-38237757; 3916202 + starting-at-height-38762757; 3748282 + starting-at-height-39287757; 3587561 + starting-at-height-39812757; 3433732 + starting-at-height-40337757; 3286500 + starting-at-height-40862757; 3145580 + starting-at-height-41387757; 3010703 + starting-at-height-41912757; 2881608 + starting-at-height-42437757; 2758050 + starting-at-height-42962757; 2639789 + starting-at-height-43487757; 2526599 + starting-at-height-44012757; 2418263 + starting-at-height-44537757; 2314572 + starting-at-height-45062757; 2215326 + starting-at-height-45587757; 2120337 + starting-at-height-46112757; 2029420 + starting-at-height-46637757; 1942402 + starting-at-height-47162757; 1859115 + starting-at-height-47687757; 1779399 + starting-at-height-48212757; 1703101 + starting-at-height-48737757; 1630075 + starting-at-height-49262757; 1560180 + starting-at-height-49787757; 1493282 + starting-at-height-50312757; 1429253 + starting-at-height-50837757; 1367969 + starting-at-height-51362757; 1309312 + starting-at-height-51887757; 1253171 + starting-at-height-52412757; 1199437 + starting-at-height-52937757; 1148007 + starting-at-height-53462757; 1098783 + starting-at-height-53987757; 1051669 + starting-at-height-54512757; 1006575 + starting-at-height-55037757; 963414 + starting-at-height-55562757; 922105 + starting-at-height-56087757; 882566 + starting-at-height-56612757; 844723 + starting-at-height-57137757; 808503 + starting-at-height-57662757; 773836 + starting-at-height-58187757; 740655 + starting-at-height-58712757; 708897 + starting-at-height-59237757; 678500 + starting-at-height-59762757; 649407 + starting-at-height-60287757; 621562 + starting-at-height-60812757; 594910 + starting-at-height-61337757; 569401 + starting-at-height-61862757; 544986 + starting-at-height-62387757; 521618 + starting-at-height-62912757; 499252 + starting-at-height-63437757; 477845 + starting-at-height-63962757; 457356 + starting-at-height-64487757; 437745 + starting-at-height-65012757; 418975 + starting-at-height-65537757; 401010 + starting-at-height-66062757; 383816 + starting-at-height-66587757; 367358 + starting-at-height-67112757; 351606 + starting-at-height-67637757; 336530 + starting-at-height-68162757; 322100 + starting-at-height-68687757; 308289 + starting-at-height-69212757; 295070 + starting-at-height-69737757; 282418 + starting-at-height-70262757; 270308 + starting-at-height-70787757; 258718 + starting-at-height-71312757; 247624 + starting-at-height-71837757; 237007 + starting-at-height-72362757; 226844 + starting-at-height-72887757; 217118 + starting-at-height-73412757; 207808 + starting-at-height-73937757; 198897 + starting-at-height-74462757; 190369 + starting-at-height-74987757; 182206 + starting-at-height-75512757; 174394 + starting-at-height-76037757; 166916 + starting-at-height-76562757; 159759 + starting-at-height-77087757; 152908 + starting-at-height-77612757; 146352 + starting-at-height-78137757; 140077 + starting-at-height-78662757; 134070 + starting-at-height-79187757; 128322 + starting-at-height-79712757; 122819 + starting-at-height-80237757; 117553 + starting-at-height-80762757; 112513 + starting-at-height-81287757; 107688 + starting-at-height-81812757; 103071 + starting-at-height-82337757; 98651 + starting-at-height-82862757; 94421 + starting-at-height-83387757; 90372 + starting-at-height-83912757; 86497 + starting-at-height-84437757; 82789 + starting-at-height-84962757; 79239 + starting-at-height-85487757; 75841 + starting-at-height-86012757; 72589 + starting-at-height-86537757; 69477 + starting-at-height-87062757; 66498 + starting-at-height-87587757; 63646 + starting-at-height-88112757; 60917 + starting-at-height-88637757; 58305 + starting-at-height-89162757; 55805 + starting-at-height-89687757; 53412 + starting-at-height-90212757; 51122 + starting-at-height-90737757; 48930 + starting-at-height-91262757; 46832 + starting-at-height-91787757; 44824 + starting-at-height-92312757; 42902 + starting-at-height-92837757; 41062 + starting-at-height-93362757; 39301 + starting-at-height-93887757; 37616 + starting-at-height-94412757; 36003 + starting-at-height-94937757; 34460 + starting-at-height-95462757; 32982 + starting-at-height-95987757; 31568 + starting-at-height-96512757; 30214 + starting-at-height-97037757; 28919 + starting-at-height-97562757; 27679 + starting-at-height-98087757; 26492 + starting-at-height-98612757; 25356 + starting-at-height-99137757; 24269 + starting-at-height-99662757; 23228 + starting-at-height-100187757; 22232 + starting-at-height-100712757; 21279 + starting-at-height-101237757; 20366 + starting-at-height-101762757; 19493 + starting-at-height-102287757; 18657 + starting-at-height-102812757; 17857 + starting-at-height-103337757; 17091 + starting-at-height-103862757; 16358 + starting-at-height-104387757; 15657 + starting-at-height-104912757; 14986 + starting-at-height-105437757; 14343 + starting-at-height-105962757; 13728 + starting-at-height-106487757; 13139 + starting-at-height-107012757; 12576 + starting-at-height-107537757; 12037 + starting-at-height-108062757; 11521 + starting-at-height-108587757; 11027 + starting-at-height-109112757; 10554 + starting-at-height-109637757; 10101 + starting-at-height-110162757; 9668 + starting-at-height-110687757; 9254 + starting-at-height-111212757; 8857 + starting-at-height-111737757; 8477 + starting-at-height-112262757; 8113 + starting-at-height-112787757; 7766 + starting-at-height-113312757; 7433 + starting-at-height-113837757; 7114 + starting-at-height-114362757; 6809 + starting-at-height-114887757; 6517 + starting-at-height-115412757; 6237 + starting-at-height-115937757; 5970 + starting-at-height-116462757; 5714 + starting-at-height-116987757; 5469 + starting-at-height-117512757; 5234 + starting-at-height-118037757; 5010 + starting-at-height-118562757; 4795 + starting-at-height-119087757; 4589 + starting-at-height-119612757; 4393 + starting-at-height-120137757; 4204 + starting-at-height-120662757; 4024 + starting-at-height-121187757; 3851 + starting-at-height-121712757; 3686 + starting-at-height-122237757; 3528 + starting-at-height-122762757; 3377 + starting-at-height-123287757; 3232 + starting-at-height-123812757; 3093 + starting-at-height-124337757; 2961 + starting-at-height-124862757; 2834 + starting-at-height-125387757; 2712 + starting-at-height-125912757; 2596 + starting-at-height-126437757; 2485 + starting-at-height-126962757; 2378 + starting-at-height-127487757; 2276 + starting-at-height-128012757; 2178 + starting-at-height-128537757; 2085 + starting-at-height-129062757; 1996 + starting-at-height-129587757; 1910 + starting-at-height-130112757; 1828 + starting-at-height-130637757; 1750 + starting-at-height-131162757; 1675 + starting-at-height-131687757; 1603 + starting-at-height-132212757; 1534 + starting-at-height-132737757; 1468 + starting-at-height-133262757; 1405 + starting-at-height-133787757; 1345 + starting-at-height-134312757; 1287 + starting-at-height-134837757; 1232 + starting-at-height-135362757; 1179 + starting-at-height-135887757; 1129 + starting-at-height-136412757; 1080 + starting-at-height-136937757; 1034 + starting-at-height-137462757; 990 + starting-at-height-137987757; 947 + starting-at-height-138512757; 907 + starting-at-height-139037757; 868 + starting-at-height-139562757; 830 + starting-at-height-140087757; 795 + starting-at-height-140612757; 761 + starting-at-height-141137757; 728 + starting-at-height-141662757; 697 + starting-at-height-142187757; 667 + starting-at-height-142712757; 638 + starting-at-height-143237757; 611 + starting-at-height-143762757; 585 + starting-at-height-144287757; 560 + starting-at-height-144812757; 536 + starting-at-height-145337757; 513 + starting-at-height-145862757; 491 + starting-at-height-146387757; 470 + starting-at-height-146912757; 449 + starting-at-height-147437757; 430 + starting-at-height-147962757; 412 + starting-at-height-148487757; 394 + starting-at-height-149012757; 377 + starting-at-height-149537757; 361 + starting-at-height-150062757; 345 + starting-at-height-150587757; 331 + starting-at-height-151112757; 316 + starting-at-height-151637757; 303 + starting-at-height-152162757; 290 + starting-at-height-152687757; 277 + starting-at-height-153212757; 265 + starting-at-height-153737757; 254 + starting-at-height-154262757; 243 + starting-at-height-154787757; 233 + starting-at-height-155312757; 223 + starting-at-height-155837757; 213 + starting-at-height-156362757; 204 + starting-at-height-156887757; 195 + starting-at-height-157412757; 187 + starting-at-height-157937757; 179 + starting-at-height-158462757; 171 + starting-at-height-158987757; 164 + starting-at-height-159512757; 157 + starting-at-height-160037757; 150 + starting-at-height-160562757; 143 + starting-at-height-161087757; 137 + starting-at-height-161612757; 131 + starting-at-height-162137757; 126 + starting-at-height-162662757; 120 + starting-at-height-163187757; 115 + starting-at-height-163712757; 110 + starting-at-height-164237757; 105 + starting-at-height-164762757; 101 + starting-at-height-165287757; 97 + starting-at-height-165812757; 92 + starting-at-height-166337757; 88 + starting-at-height-166862757; 85 + starting-at-height-167387757; 81 + starting-at-height-167912757; 77 + starting-at-height-168437757; 74 + starting-at-height-168962757; 71 + starting-at-height-169487757; 68 + starting-at-height-170012757; 65 + starting-at-height-170537757; 62 + starting-at-height-171062757; 59 + starting-at-height-171587757; 57 + starting-at-height-172112757; 54 + starting-at-height-172637757; 52 + starting-at-height-173162757; 50 + starting-at-height-173687757; 48 + starting-at-height-174212757; 46 + starting-at-height-174737757; 44 + starting-at-height-175262757; 42 + starting-at-height-175787757; 40 + starting-at-height-176312757; 38 + starting-at-height-176837757; 37 + starting-at-height-177362757; 35 + starting-at-height-177887757; 33 + starting-at-height-178412757; 32 + starting-at-height-178937757; 31 + starting-at-height-179462757; 29 + starting-at-height-179987757; 28 + starting-at-height-180512757; 27 + starting-at-height-181037757; 26 + starting-at-height-181562757; 24 + starting-at-height-182087757; 23 + starting-at-height-182612757; 22 + starting-at-height-183137757; 21 + starting-at-height-183662757; 20 + starting-at-height-184187757; 20 + starting-at-height-184712757; 19 + starting-at-height-185237757; 18 + starting-at-height-185762757; 17 + starting-at-height-186287757; 16 + starting-at-height-186812757; 16 + starting-at-height-187337757; 15 + starting-at-height-187862757; 14 + starting-at-height-188387757; 14 + starting-at-height-188912757; 13 + starting-at-height-189437757; 12 + starting-at-height-189962757; 12 + starting-at-height-190487757; 11 + starting-at-height-191012757; 11 + starting-at-height-191537757; 10 + starting-at-height-192062757; 10 + starting-at-height-192587757; 9 + starting-at-height-193112757; 9 + starting-at-height-193637757; 9 + starting-at-height-194162757; 8 + starting-at-height-194687757; 8 + starting-at-height-195212757; 8 + starting-at-height-195737757; 7 + starting-at-height-196262757; 7 + starting-at-height-196787757; 7 + starting-at-height-197312757; 6 + starting-at-height-197837757; 6 + starting-at-height-198362757; 6 + starting-at-height-198887757; 5 + starting-at-height-199412757; 5 + starting-at-height-199937757; 5 + starting-at-height-200462757; 5 + starting-at-height-200987757; 4 + starting-at-height-201512757; 4 + starting-at-height-202037757; 4 + starting-at-height-202562757; 4 + starting-at-height-203087757; 4 + starting-at-height-203612757; 4 + starting-at-height-204137757; 3 + starting-at-height-204662757; 3 + starting-at-height-205187757; 3 + starting-at-height-205712757; 3 + starting-at-height-206237757; 3 + starting-at-height-206762757; 3 + starting-at-height-207287757; 2 + starting-at-height-207812757; 2 + starting-at-height-208337757; 2 + starting-at-height-208862757; 2 + starting-at-height-209387757; 2 + starting-at-height-209912757; 2 + starting-at-height-210437757; 2 + starting-at-height-210962757; 2 + starting-at-height-211487757; 2 + starting-at-height-212012757; 2 + starting-at-height-212537757; 1 + starting-at-height-213062757; 1 + starting-at-height-213587757; 1 + starting-at-height-214112757; 1 + starting-at-height-214637757; 1 + starting-at-height-215162757; 1 + starting-at-height-215687757; 1 + starting-at-height-216212757; 1 + starting-at-height-216737757; 1 + starting-at-height-217262757; 1 + starting-at-height-217787757; 1 + starting-at-height-218312757; 1 + starting-at-height-218837757; 1 + starting-at-height-219362757; 1 + starting-at-height-219887757; 1 + starting-at-height-220412757; 1 + starting-at-height-220937757; 0 + +config-logging-broker.properties +================================ +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Async + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Async + level; Info + directory; logs + filePattern; logs/catapult_broker%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-logging-recovery.properties +================================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Sync + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Async + level; Info + directory; logs + filePattern; logs/catapult_recovery%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-logging-server.properties +================================ +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **console**; + sinkType; Sync + level; Info + colorMode; Ansi + **console.component.levels**; + **file**; + sinkType; Sync + level; Info + directory; logs + filePattern; logs/catapult_server%4N.log + rotationSize; 25MB + maxTotalSize; 1000MB + minFreeSpace; 100MB + **file.component.levels**; + +config-messaging.properties +=========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **messaging**; + subscriberPort; 7902 + listenInterface; 0.0.0.0 + +config-network.properties +========================= +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **network**; ; ; + identifier; public-test; NetworkIdentifier; Network identifier. + nemesisSignerPublicKey; 071964D3C040D62DE905EAE978E2119BFC8E70489BFDF45A85B3D7ED5A517AA8; Key; Nemesis public key. + nodeEqualityStrategy; host; NodeIdentityEqualityStrategy; Node equality strategy. + generationHashSeed; 45FBCF2F0EA36EFA7923C9BC923D6503169651F7FA4EFC46A8EAF5AE09057EBD; ; + epochAdjustment; 1573430400s; utils::TimeSpan; Nemesis epoch time adjustment. + **chain**; ; ; + enableVerifiableState; true; bool; Set to true if block chain should calculate state hashes so that state is fully verifiable at each block. + enableVerifiableReceipts; true; bool; Set to true if block chain should calculate receipts so that state changes are fully verifiable at each block. + currencyMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used as primary chain currency. + harvestingMosaicId; 0x2CF4'03E8'5507'F39E; MosaicId; Mosaic id used to provide harvesting ability. + blockGenerationTargetTime; 30s; utils::TimeSpan; Targeted time between blocks. + blockTimeSmoothingFactor; 3000; uint32_t; Note: A higher value makes the network more biased. Note: This can lower security because it will increase the influence of time relative to importance. + importanceGrouping; 180; uint64_t; Number of blocks that should be treated as a group for importance purposes. Note: Importances will only be calculated at blocks that are multiples of this grouping number. + importanceActivityPercentage; 5; uint8_t; Percentage of importance resulting from fee generation and beneficiary usage. + maxRollbackBlocks; 0; uint32_t; Maximum number of blocks that can be rolled back. + maxDifficultyBlocks; 60; uint32_t; Maximum number of blocks to use in a difficulty calculation. + defaultDynamicFeeMultiplier; 1'000; BlockFeeMultiplier; Default multiplier to use for dynamic fees. + maxTransactionLifetime; 6h; utils::TimeSpan; Maximum lifetime a transaction can have before it expires. + maxBlockFutureTime; 500ms; utils::TimeSpan; Maximum future time of a block that can be accepted. + initialCurrencyAtomicUnits; 7'831'975'436'000'000; Amount; Initial currency atomic units available in the network. + maxMosaicAtomicUnits; 9'000'000'000'000'000; Amount; Maximum atomic units (total-supply * 10 ^ divisibility) of a mosaic allowed in the network. + totalChainImportance; 7'831'975'436'000'000; Importance; Total whole importance units available in the network. + minHarvesterBalance; 10'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. + maxHarvesterBalance; 50'000'000'000'000; Amount; Maximum number of harvesting mosaic atomic units needed for an account to be eligible for harvesting. + minVoterBalance; 3'000'000'000'000; Amount; Minimum number of harvesting mosaic atomic units needed for an account to be eligible for voting. + votingSetGrouping; 720; ; + maxVotingKeysPerAccount; 3; uint8_t; Maximum number of voting keys that can be registered at once per account. + minVotingKeyLifetime; 28; uint32_t; Minimum number of finalization rounds for which voting key can be registered. + maxVotingKeyLifetime; 26280; uint32_t; Maximum number of finalization rounds for which voting key can be registered. + harvestBeneficiaryPercentage; 25; uint8_t; Percentage of the harvested fee that is collected by the beneficiary account. + harvestNetworkPercentage; 5; uint8_t; Percentage of the harvested fee that is collected by the network. + harvestNetworkFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the harvest network fee sink account. + maxTransactionsPerBlock; 6'000; uint32_t; Maximum number of transactions per block. + **plugin:catapult.plugins.accountlink**; + dummy; to trigger plugin load + **plugin:catapult.plugins.aggregate**; ; ; + maxTransactionsPerAggregate; 100; uint32_t; Maximum number of transactions per aggregate. + maxCosignaturesPerAggregate; 25; uint8_t; Maximum number of cosignatures per aggregate. + enableStrictCosignatureCheck; false; bool; Set to true if cosignatures must exactly match component signers. Set to false if cosignatures should be validated externally. + enableBondedAggregateSupport; true; bool; Set to true if bonded aggregates should be allowed. Set to false if bonded aggregates should be rejected. + maxBondedTransactionLifetime; 48h; utils::TimeSpan; Maximum lifetime a bonded transaction can have before it expires. + **plugin:catapult.plugins.lockhash**; ; ; + lockedFundsPerAggregate; 10'000'000; Amount; Amount that has to be locked per aggregate in partial cache. + maxHashLockDuration; 2d; utils::BlockSpan; Maximum number of blocks for which a hash lock can exist. + **plugin:catapult.plugins.locksecret**; ; ; + maxSecretLockDuration; 365d; utils::BlockSpan; Maximum number of blocks for which a secret lock can exist. + minProofSize; 20; uint16_t; Minimum size of a proof in bytes. + maxProofSize; 1024; uint16_t; Maximum size of a proof in bytes. + **plugin:catapult.plugins.metadata**; ; ; + maxValueSize; 1024; uint16_t; Maximum metadata value size. + **plugin:catapult.plugins.mosaic**; ; ; + maxMosaicsPerAccount; 1'000; uint16_t; Maximum number of mosaics that an account can own. + maxMosaicDuration; 3650d; utils::BlockSpan; Maximum mosaic duration. + maxMosaicDivisibility; 6; uint8_t; Maximum mosaic divisibility. + mosaicRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the mosaic rental fee sink account. + mosaicRentalFee; 500; Amount; Mosaic rental fee. + **plugin:catapult.plugins.multisig**; ; ; + maxMultisigDepth; 3; uint8_t; Maximum number of multisig levels. + maxCosignatoriesPerAccount; 25; uint32_t; Maximum number of cosignatories per account. + maxCosignedAccountsPerAccount; 25; uint32_t; Maximum number of accounts a single account can cosign. + **plugin:catapult.plugins.namespace**; ; ; + maxNameSize; 64; uint8_t; Maximum namespace name size. + maxChildNamespaces; 256; uint16_t; Maximum number of children for a root namespace. + maxNamespaceDepth; 3; uint8_t; Maximum namespace depth. + minNamespaceDuration; 30d; utils::BlockSpan; Minimum namespace duration. + maxNamespaceDuration; 1825d; utils::BlockSpan; Maximum namespace duration. + namespaceGracePeriodDuration; 1d; utils::BlockSpan; Grace period during which time only the previous owner can renew an expired namespace. + reservedRootNamespaceNames; symbol, symbl, xym, xem, nem, user, account, org, com, biz, net, edu, mil, gov, info; unordered_set; Reserved root namespaces that cannot be claimed. + namespaceRentalFeeSinkAddress; TDGY4DD2U4YQQGERFMDQYHPYS6M7LHIF6XUCJ4Q; Address; Address of the namespace rental fee sink account. + rootNamespaceRentalFeePerBlock; 1; Amount; Root namespace rental fee per block. + childNamespaceRentalFee; 100; Amount; Child namespace rental fee. + **plugin:catapult.plugins.restrictionaccount**; ; ; + maxAccountRestrictionValues; 512; uint16_t; Maximum number of account restriction values. + **plugin:catapult.plugins.restrictionmosaic**; ; ; + maxMosaicRestrictionValues; 20; uint8_t; Maximum number of mosaic restriction values. + **plugin:catapult.plugins.transfer**; ; ; + maxMessageSize; 1024; uint16_t; Maximum transaction message size. + +config-node.properties +====================== +.. csv-table:: + :header: "Property", "Value", "Type", "Description" + :delim: ; + + **node**; ; ; + port; 7900; unsigned short; Server port. + maxIncomingConnectionsPerIdentity; 6; uint32_t; Maximum number of incoming connections per identity over primary port. + enableAddressReuse; false; bool; Set to true if the server should reuse ports already in use. + enableSingleThreadPool; true; bool; Set to true if a single thread pool should be used, Set to false if multiple thread pools should be used. + enableCacheDatabaseStorage; true; bool; Set to true if cache data should be saved in a database. + enableAutoSyncCleanup; true; bool; Set to true if temporary sync files should be automatically cleaned up. Note: This should be Set to false if broker process is running. + fileDatabaseBatchSize; 1; ; + enableTransactionSpamThrottling; true; bool; Set to true if transaction spam throttling should be enabled. + transactionSpamThrottlingMaxBoostFee; 10'000'000; Amount; Maximum fee that will boost a transaction through the spam throttle when spam throttling is enabled. + maxHashesPerSyncAttempt; 370; ; + maxBlocksPerSyncAttempt; 360; uint32_t; Maximum number of blocks per sync attempt. + maxChainBytesPerSyncAttempt; 100MB; utils::FileSize; Maximum chain bytes per sync attempt. + shortLivedCacheTransactionDuration; 10m; utils::TimeSpan; Duration of a transaction in the short lived cache. + shortLivedCacheBlockDuration; 100m; utils::TimeSpan; Duration of a block in the short lived cache. + shortLivedCachePruneInterval; 90s; utils::TimeSpan; Time between short lived cache pruning. + shortLivedCacheMaxSize; 10'000'000; uint32_t; Maximum size of a short lived cache. + minFeeMultiplier; 100; BlockFeeMultiplier; Minimum fee multiplier of transactions to propagate and include in blocks. + maxTimeBehindPullTransactionsStart; 5m; ; + transactionSelectionStrategy; maximize-fee; model::TransactionSelectionStrategy; Transaction selection strategy used for syncing and harvesting unconfirmed transactions. + unconfirmedTransactionsCacheMaxResponseSize; 5MB; utils::FileSize; Maximum size of an unconfirmed transactions response. + unconfirmedTransactionsCacheMaxSize; 20MB; uint32_t; Maximum size of the unconfirmed transactions cache. + connectTimeout; 15s; utils::TimeSpan; Timeout for connecting to a peer. + syncTimeout; 20m; utils::TimeSpan; Timeout for syncing with a peer. + socketWorkingBufferSize; 16KB; utils::FileSize; Initial socket working buffer size (socket reads will attempt to read buffers of roughly this size). + socketWorkingBufferSensitivity; 1; uint32_t; Socket working buffer sensitivity (lower values will cause memory to be more aggressively reclaimed). Note: Set to 0 will disable memory reclamation. + maxPacketDataSize; 150MB; utils::FileSize; Maximum packet data size. + blockDisruptorSlotCount; 4096; uint32_t; Size of the block disruptor circular buffer. + blockElementTraceInterval; 1; uint32_t; Multiple of elements at which a block element should be traced through queue and completion. + blockDisruptorMaxMemorySize; 300MB; ; + transactionDisruptorSlotCount; 8192; uint32_t; Size of the transaction disruptor circular buffer. + transactionElementTraceInterval; 10; uint32_t; Multiple of elements at which a transaction element should be traced through queue and completion. + transactionDisruptorMaxMemorySize; 20MB; ; + enableDispatcherAbortWhenFull; false; bool; Set to true if the process should terminate when any dispatcher is full. + enableDispatcherInputAuditing; false; bool; Set to true if all dispatcher inputs should be audited. + maxTrackedNodes; 5'000; uint32_t; Maximum number of nodes to track in memory. + minPartnerNodeVersion; 0.10.0.7; ; + maxPartnerNodeVersion; 0.10.1.8; ; + trustedHosts; ; unordered_set; Trusted hosts that are allowed to execute protected API calls on this node. + localNetworks; 127.0.0.1; unordered_set; Networks that should be treated as local. + listenInterface; 0.0.0.0; ; + **cache_database**; + enableStatistics; false + maxOpenFiles; 0 + maxBackgroundThreads; 0 + maxSubcompactionThreads; 0 + blockCacheSize; 0MB + memtableMemoryBudget; 0MB + maxWriteBatchSize; 5MB + **localnode**; ; ; + host; ; string; Node host (leave empty to auto-detect IP). + friendlyName; myFriendlyName; string; Node friendly name (leave empty to use address). + version; 0.10.1.8; uint32_t; Node version. + roles; Peer; ionet::NodeRoles; Node roles. + **outgoing_connections**; ; ; + maxConnections; 10; uint16_t; Maximum number of active connections. + maxConnectionAge; 200; uint16_t; Maximum connection age. + maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. + numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + **incoming_connections**; ; ; + maxConnections; 512; uint16_t; Maximum number of active connections. + maxConnectionAge; 200; uint16_t; Maximum connection age. + maxConnectionBanAge; 20; uint16_t; Maximum connection ban age. + numConsecutiveFailuresBeforeBanning; 3; uint16_t; Number of consecutive connection failures before a connection is banned. + backlogSize; 512; uint16_t; Maximum size of the pending connections queue. + **banning**; ; ; + defaultBanDuration; 12h; utils::TimeSpan; Default duration for banning. + maxBanDuration; 12h; utils::TimeSpan; Maximum duration for banning. + keepAliveDuration; 48h; utils::TimeSpan; Duration to keep account in container after the ban expired. + maxBannedNodes; 5'000; uint32_t; Maximum number of banned nodes. + numReadRateMonitoringBuckets; 4; uint16_t; Number of read rate monitoring buckets (Set to 0 to disable read rate monitoring). + readRateMonitoringBucketDuration; 15s; utils::TimeSpan; Duration of each read rate monitoring bucket. + maxReadRateMonitoringTotalSize; 100MB; utils::FileSize; Maximum size allowed during full read rate monitoring period. + minTransactionFailuresCountForBan; 8; ; + minTransactionFailuresPercentForBan; 10; ; + +config-pt.properties +==================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **partialtransactions**; + cacheMaxResponseSize; 5MB + cacheMaxSize; 20MB + +config-task.properties +====================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **logging task**; + startDelay; 1m + repeatDelay; 10m + **connect peers task for service Finalization**; + startDelay; 2s + repeatDelay; 1m + **finalization task**; + startDelay; 2m + repeatDelay; 15s + **pull finalization messages task**; + startDelay; 3s + repeatDelay; 1s + **pull finalization proof task**; + startDelay; 10s + repeatDelay; 50s + **harvesting task**; + startDelay; 30s + repeatDelay; 1s + **network chain height detection**; + startDelay; 1s + repeatDelay; 15s + **node discovery peers task**; + startDelay; 1m + minDelay; 1m + maxDelay; 10m + numPhaseOneRounds; 10 + numTransitionRounds; 20 + **node discovery ping task**; + startDelay; 2m + repeatDelay; 5m + **age peers task for service Readers**; + startDelay; 1m + repeatDelay; 1m + **batch partial transaction task**; + startDelay; 500ms + repeatDelay; 500ms + **connect peers task for service Pt**; + startDelay; 3s + repeatDelay; 1m + **pull partial transactions task**; + startDelay; 10s + repeatDelay; 3s + **batch transaction task**; + startDelay; 500ms + repeatDelay; 500ms + **connect peers task for service Sync**; + startDelay; 1s + repeatDelay; 1m + **pull unconfirmed transactions task**; + startDelay; 4s + repeatDelay; 3s + **synchronizer task**; + startDelay; 3s + repeatDelay; 3s + **time synchronization task**; + startDelay; 1m + minDelay; 3m + maxDelay; 180m + numPhaseOneRounds; 5 + numTransitionRounds; 10 + **static node refresh task**; + startDelay; 5ms + minDelay; 15s + maxDelay; 24h + numPhaseOneRounds; 20 + numTransitionRounds; 20 + +config-timesync.properties +========================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **timesynchronization**; + maxNodes; 20 + minImportance; 3'750 + +config-user.properties +====================== +.. csv-table:: + :header: "Property", "Value" + :delim: ; + + **account**; + enableDelegatedHarvestersAutoDetection; true + **storage**; + seedDirectory; ./seed + certificateDirectory; ./cert + dataDirectory; ./data + pluginsDirectory; /usr/catapult/lib + votingKeysDirectory; ./votingkeys \ No newline at end of file diff --git a/test/reports/testnet-api/api-node-config.csv b/test/reports/testnet-api/api-node-config.csv index d24556f89..56c9ad8d3 100644 --- a/test/reports/testnet-api/api-node-config.csv +++ b/test/reports/testnet-api/api-node-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; true extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; false extension.syncsource; false extension.diagnostics; true diff --git a/test/reports/testnet-api/api-node-config.rst b/test/reports/testnet-api/api-node-config.rst index b7b4e645b..f9ed6c58a 100644 --- a/test/reports/testnet-api/api-node-config.rst +++ b/test/reports/testnet-api/api-node-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; false extension.syncsource; false extension.diagnostics; true diff --git a/test/reports/testnet-dual-voting/api-node-config.csv b/test/reports/testnet-dual-voting/api-node-config.csv index fa161e1f1..6ff9dd6de 100644 --- a/test/reports/testnet-dual-voting/api-node-config.csv +++ b/test/reports/testnet-dual-voting/api-node-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; true extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -81,7 +80,7 @@ harvesting harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. -maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/testnet-dual-voting/api-node-config.rst b/test/reports/testnet-dual-voting/api-node-config.rst index 14643d8d4..a564b4f21 100644 --- a/test/reports/testnet-dual-voting/api-node-config.rst +++ b/test/reports/testnet-dual-voting/api-node-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -105,7 +104,7 @@ config-harvesting.properties harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. - maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/testnet-peer/peer-node-config.csv b/test/reports/testnet-peer/peer-node-config.csv index b05c88c82..c736e98be 100644 --- a/test/reports/testnet-peer/peer-node-config.csv +++ b/test/reports/testnet-peer/peer-node-config.csv @@ -46,7 +46,6 @@ extension.partialtransaction; false extension.addressextraction; false extension.mongo; false extension.zeromq; false -extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -81,7 +80,7 @@ harvesting harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. -maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. +maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/reports/testnet-peer/peer-node-config.rst b/test/reports/testnet-peer/peer-node-config.rst index 1b97455d4..0429696da 100644 --- a/test/reports/testnet-peer/peer-node-config.rst +++ b/test/reports/testnet-peer/peer-node-config.rst @@ -62,7 +62,6 @@ config-extensions-server.properties extension.addressextraction; false extension.mongo; false extension.zeromq; false - extension.eventsource; false extension.harvesting; true extension.syncsource; true extension.diagnostics; true @@ -105,7 +104,7 @@ config-harvesting.properties harvesterSigningPrivateKey; ****************************************************************; string; Harvester signing private key. harvesterVrfPrivateKey; ****************************************************************; string; Harvester vrf private key. enableAutoHarvesting; true; bool; Set to true if auto harvesting is enabled. - maxUnlockedAccounts; 5; uint32_t; Maximum number of unlocked accounts. + maxUnlockedAccounts; 10; uint32_t; Maximum number of unlocked accounts. delegatePrioritizationPolicy; Importance; harvesting::DelegatePrioritizationPolicy; Delegate harvester prioritization policy. beneficiaryAddress; ; Address; Address of the account receiving part of the harvested fee. diff --git a/test/service/BootstrapUtils.test.ts b/test/service/BootstrapUtils.test.ts index 1faa3a3f7..7c8a818c1 100644 --- a/test/service/BootstrapUtils.test.ts +++ b/test/service/BootstrapUtils.test.ts @@ -60,6 +60,10 @@ describe('BootstrapUtils', () => { expect(await download()).eq(false); }); + it('BootstrapUtils.resolveRootFolder', async () => { + expect(BootstrapUtils.resolveRootFolder()).to.not.undefined; + }); + it('BootstrapUtils.download when invalid', async () => { BootstrapUtils.deleteFile('boat.png'); try { diff --git a/test/service/ConfigLoader.test.ts b/test/service/ConfigLoader.test.ts index e52e5de55..6d11288ef 100644 --- a/test/service/ConfigLoader.test.ts +++ b/test/service/ConfigLoader.test.ts @@ -507,7 +507,7 @@ describe('ConfigLoader', () => { it('should generateAccount brand new on remote', () => { const configLoader = new ConfigLoader(); const networkType = NetworkType.MIJIN_TEST; - const securityMode = PrivateKeySecurityMode.PROMPT_MAIN_VOTING; + const securityMode = PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT; const account = configLoader.generateAccount(networkType, securityMode, KeyName.Remote, undefined, undefined, undefined); expect(account.address).not.undefined; expect(account.privateKey).not.undefined; @@ -534,8 +534,8 @@ describe('ConfigLoader', () => { it('should generateAccount raise error new', () => { const configLoader = new ConfigLoader(); const networkType = NetworkType.MIJIN_TEST; - const securityMode = PrivateKeySecurityMode.PROMPT_MAIN_VOTING; - expect(() => configLoader.generateAccount(networkType, securityMode, KeyName.Voting, undefined, undefined, undefined)).throw; + const securityMode = PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT; + expect(() => configLoader.generateAccount(networkType, securityMode, KeyName.Transport, undefined, undefined, undefined)).throw; }); it('should generateAccount raise error new', () => { diff --git a/test/service/ConfigService.test.ts b/test/service/ConfigService.test.ts index f939dc785..e39bc9fa7 100644 --- a/test/service/ConfigService.test.ts +++ b/test/service/ConfigService.test.ts @@ -37,7 +37,7 @@ describe('ConfigService', () => { }).run(); }); - it('ConfigService testnet assemlby', async () => { + it('ConfigService testnet assembly', async () => { await new ConfigService('.', { ...ConfigService.defaultParams, reset: true, @@ -47,6 +47,16 @@ describe('ConfigService', () => { }).run(); }); + it('ConfigService mainnet assembly', async () => { + await new ConfigService('.', { + ...ConfigService.defaultParams, + reset: true, + target: 'target/tests/ConfigService.test.mainnet', + preset: Preset.mainnet, + assembly: 'dual', + }).run(); + }); + it('ConfigService bootstrap default', async () => { await new ConfigService('.', { ...ConfigService.defaultParams, diff --git a/test/service/CryptoUtils.test.ts b/test/service/CryptoUtils.test.ts index f31deb380..2e4e39f04 100644 --- a/test/service/CryptoUtils.test.ts +++ b/test/service/CryptoUtils.test.ts @@ -359,7 +359,6 @@ describe('CryptoUtils', () => { address: 'TAJUGHLVMRJL6YMBLWOSOOLZGN73CGIRKI3SR5I', }, voting: { - privateKey: 'B161B7E2205F0FB577594A47566FA735582997682D99C67B780DB45BD805A4A0', publicKey: 'DB15D252786AE741CF2DD4B07D0BFC2E26999804B4EAE0075407AD1D7AF8F7F3', address: 'TA37ECJGSNMSCKCPK5KW4UH74QBWZU24QZRUWNA', }, @@ -375,7 +374,7 @@ describe('CryptoUtils', () => { const noPrivateKeyObject = CryptoUtils.removePrivateKeysAccordingToSecurityMode(object, PrivateKeySecurityMode.PROMPT_MAIN); expect(noPrivateKeyObject).deep.eq(restrictedObject); }); - it('it removes private keys PROMPT_MAIN_VOTING', () => { + it('it removes private keys PROMPT_MAIN_TRANSPORT', () => { const object = { version: 2, networkType: 152, @@ -433,7 +432,6 @@ describe('CryptoUtils', () => { address: 'TAEAUXUZOFODY2ZQZGV5DUVQ2TN3HBSXKGBEH5Q', }, transport: { - privateKey: 'E07C107F25DE9CBBC301683F527EBE05A47572EE810DB91D5C4FA6A7E0B9D5BF', publicKey: '41470F3A43095F493319A2241C3059B5EA0ECC89318E6ED32381A4AAEC4D13D1', address: 'TCZARKJGP4RXWWTUZRRYW4X5Z7UQFUXQ5K2VIJQ', }, @@ -455,7 +453,10 @@ describe('CryptoUtils', () => { ], }; - const noPrivateKeyObject = CryptoUtils.removePrivateKeysAccordingToSecurityMode(object, PrivateKeySecurityMode.PROMPT_MAIN_VOTING); + const noPrivateKeyObject = CryptoUtils.removePrivateKeysAccordingToSecurityMode( + object, + PrivateKeySecurityMode.PROMPT_MAIN_TRANSPORT, + ); expect(noPrivateKeyObject).deep.eq(restrictedObject); }); }); diff --git a/test/service/ReportService.test.ts b/test/service/ReportService.test.ts index f88318e82..85e1e3508 100644 --- a/test/service/ReportService.test.ts +++ b/test/service/ReportService.test.ts @@ -115,6 +115,52 @@ describe('ReportService', () => { await assertReport(params, 'testnet-api'); }); + it('ReportService mainnet peer', async () => { + const target = 'target/tests/ReportService.mainnet.peer.report'; + const customPresetObject = { + nodes: [ + { + voting: false, + friendlyName: 'myFriendlyName', + }, + ], + }; + const params = { + ...ConfigService.defaultParams, + reset: false, + preset: Preset.testnet, + customPresetObject: customPresetObject, + assembly: 'peer', + target: target, + report: true, + }; + + await assertReport(params, 'mainnet-peer'); + }); + + it('ReportService mainnet dual', async () => { + const target = 'target/tests/ReportService.mainnet.dual.report'; + const customPresetObject = { + nodes: [ + { + voting: false, + friendlyName: 'myFriendlyName', + }, + ], + }; + const params = { + ...ConfigService.defaultParams, + reset: false, + preset: Preset.testnet, + customPresetObject: customPresetObject, + assembly: 'dual', + target: target, + report: true, + }; + + await assertReport(params, 'mainnet-dual'); + }); + it('ReportService bootstrap report', async () => { const target = 'target/tests/ReportService.bootstrap.voting.report'; const customPresetObject = { diff --git a/test/supernode.yml b/test/supernode.yml index cf6e98e07..5be29a6a8 100644 --- a/test/supernode.yml +++ b/test/supernode.yml @@ -1,4 +1,4 @@ -privateKeySecurityMode: PROMPT_MAIN_VOTING +privateKeySecurityMode: PROMPT_MAIN_TRANSPORT nodes: - voting: true rewardProgram: 'supernode' @@ -6,7 +6,6 @@ nodes: agentUrl: https://fboucquez-agent-symbollocal.ngrok.io restGatewayUrl: http://fboucquez-rest-gateway-symbollocal.ngrok.io mainPrivateKey: CA82E7ADAF7AB729A5462A1BD5AA78632390634904A64EB1BB22295E2E1A1BDD - # mainPublicKey: 93F9D99300DD04B66E727CA72667E5A2F6549A28AB8676B69ECAF30455C332E6 transportPrivateKey: 6154154096354BC3DB522174ACD8BFE553893A0991BD5D105599846F17A3383B vrfPrivateKey: F3C24C153783B683E40FB2671493B54480370BF4E3AB8027D4BF1293E14EB9B8 - votingPrivateKey: EFE3F0EF0AB368B8D7AC194D52A8CCFA2D5050B80B9C76E4D2F4D4BF2CD461C1 + remotePrivateKey: EFE3F0EF0AB368B8D7AC194D52A8CCFA2D5050B80B9C76E4D2F4D4BF2CD461C1