From 82e8ca41f4021dc416ee918381e74fdd732f29c9 Mon Sep 17 00:00:00 2001 From: Nicolas MASSART Date: Thu, 24 Sep 2020 07:50:10 +0200 Subject: [PATCH] Update markdown lint and linkchecker (#521) * update CI and scripts Signed-off-by: Nicolas MASSART * fix MD and ignore log files Signed-off-by: Nicolas MASSART * remove previously commited logs Signed-off-by: Nicolas MASSART * fix package path Signed-off-by: Nicolas MASSART * update link checker conf Signed-off-by: Nicolas MASSART * restored some link exclusions probably ddos protection on etherescan and internal postman link is in an include making path wrong when checked separately Signed-off-by: Nicolas MASSART --- .circleci/config.yml | 26 +- .gitignore | 1 + CHANGELOG.md | 2 +- CI/linkchecker/link_check_conf.json | 18 +- CI/markdownlint/info_style.rb | 15 - CI/markdownlint/lint-base-style.yml | 23 + CI/markdownlint/lint-info-style.yml | 20 + CI/markdownlint/style.rb | 21 - CI/scripts/README.md | 2 +- CI/scripts/run_job.sh | 29 + CI/scripts/test_all.sh | 19 +- CI/scripts/test_build.sh | 3 +- CI/scripts/test_guidelines.sh | 3 +- CI/scripts/test_links.sh | 3 +- CI/scripts/test_lint.sh | 2 - CI/scripts/test_markdown_syntax.sh | 3 + SECURITY.md | 2 +- .../Consensus-Protocols/Comparing-PoA.md | 2 +- docs/Concepts/Mining.md | 2 +- docs/Concepts/Monitoring.md | 1 - docs/Concepts/Network-vs-Node.md | 2 +- docs/Concepts/Plugins.md | 2 +- docs/Concepts/Privacy/Private-Transactions.md | 1 - docs/Concepts/Protocol-Upgrades.md | 2 +- docs/Concepts/TLS.md | 2 +- docs/HowTo/Backup/Backup.md | 2 +- docs/HowTo/Configure/Configure-Mining.md | 2 +- docs/HowTo/Configure/Configure-TLS.md | 2 +- .../Configure/Consensus-Protocols/Clique.md | 2 +- .../Consensus-Protocols/QuorumIBFT.md | 2 +- docs/HowTo/Configure/Contracts-in-Genesis.md | 2 +- docs/HowTo/Configure/Passing-JVM-Options.md | 2 +- docs/HowTo/Deploy/Ansible.md | 2 +- docs/HowTo/Deploy/Bootnodes.md | 2 +- docs/HowTo/Deploy/Cloud.md | 2 +- docs/HowTo/Deploy/Validators.md | 2 +- docs/HowTo/Find-and-Connect/Bootnodes.md | 2 +- .../Find-and-Connect/Configuring-Ports.md | 2 +- docs/HowTo/Find-and-Connect/Managing-Peers.md | 1 - docs/HowTo/Find-and-Connect/Specifying-NAT.md | 2 +- docs/HowTo/Get-Started/Build-from-source.md | 2 +- .../System-Requirements-Private.md | 1 - docs/HowTo/Interact/APIs/API.md | 2 +- .../HowTo/Interact/APIs/Using-JSON-RPC-API.md | 1 - .../Filters/Accessing-Logs-Using-JSON-RPC.md | 1 - docs/HowTo/Monitor/Elastic-Stack.md | 2 +- .../Send-Transactions/Account-Management.md | 1 - .../Concurrent-Private-Transactions.md | 2 +- .../Creating-Sending-Private-Transactions.md | 2 +- docs/HowTo/Troubleshoot/Trace-Transactions.md | 2 +- docs/HowTo/Upgrade/Upgrade-Node.md | 2 - docs/HowTo/Upgrade/Upgrade-Protocol.md | 2 +- .../Create-Manage-Privacy-Groups.md | 2 +- docs/HowTo/Use-Privacy/EEA-Compliant.md | 1 - docs/HowTo/Use-Privacy/Privacy.md | 2 +- docs/HowTo/Use-Privacy/Use-OnChainPrivacy.md | 2 +- docs/Reference/API-Objects.md | 2 +- docs/Reference/Evm-Tool.md | 2 +- docs/Tutorials/Privacy/Configuring-Privacy.md | 1 - .../Privacy/web3js-eea-Multinode-example.md | 2 +- package-lock.json | 671 ++++++++++++++---- package.json | 13 +- 62 files changed, 684 insertions(+), 269 deletions(-) delete mode 100644 CI/markdownlint/info_style.rb create mode 100644 CI/markdownlint/lint-base-style.yml create mode 100644 CI/markdownlint/lint-info-style.yml delete mode 100644 CI/markdownlint/style.rb create mode 100755 CI/scripts/run_job.sh delete mode 100755 CI/scripts/test_lint.sh create mode 100755 CI/scripts/test_markdown_syntax.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index c3b5f9e8..90cca191 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,9 +10,6 @@ executors: shell_executor: docker: - image: circleci/buildpack-deps:buster-scm - ruby_executor: - docker: - - image: circleci/ruby:2-stretch jobs: dco: @@ -50,7 +47,7 @@ jobs: command: | python3 -m venv venv . venv/bin/activate - pip install -r CI/requirements.txt + pip install -q -r CI/requirements.txt - save_cache: paths: - ./venv @@ -86,11 +83,11 @@ jobs: command: 'sudo npm install -g npm@latest' - restore_cache: keys: - - deps-{{ checksum "package.json" }} + - deps-{{ checksum "package-lock.json" }} - run: name: Install dependencies command: | - npm install + npm ci - run: name: Run markdown link checker command: | @@ -98,28 +95,35 @@ jobs: - save_cache: paths: - ./node_modules - key: deps-{{ checksum "package.json" }} + key: deps-{{ checksum "package-lock.json" }} - store_artifacts: path: ./linkchecker.out destination: linkchecker.out markdownlint: - executor: ruby_executor + executor: node_executor steps: - checkout + - restore_cache: + keys: + - deps-{{ checksum "package-lock.json" }} - run: name: Install dependencies command: | - gem install mdl + npm ci - run: shell: /bin/bash #this is a non breaking command so it will always return success name: Run Markdownlint info checks command: | - mdl --ignore-front-matter --style ./CI/markdownlint/info_style.rb . | tee ./markdownlint_info.out + npm run test:markdown:info - run: name: Run Markdownlint command: | - mdl --ignore-front-matter --style ./CI/markdownlint/style.rb . | tee ./markdownlint.out + npm run test:markdown + - save_cache: + paths: + - ./node_modules + key: deps-{{ checksum "package-lock.json" }} - store_artifacts: path: ./markdownlint.out destination: ./markdownlint.out diff --git a/.gitignore b/.gitignore index eedc491c..d9bde67b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ env/ node_modules/ .circleci/process.yml .DS_Store +*.log diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f4b3e77..0b7ec913 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,2 @@ For changes see the Hyperledger Besu -[CHANGELOG.md](https://github.com/hyperledger/besu/blob/master/CHANGELOG.md) \ No newline at end of file +[CHANGELOG.md](https://github.com/hyperledger/besu/blob/master/CHANGELOG.md) diff --git a/CI/linkchecker/link_check_conf.json b/CI/linkchecker/link_check_conf.json index 259bbc28..70c52881 100644 --- a/CI/linkchecker/link_check_conf.json +++ b/CI/linkchecker/link_check_conf.json @@ -7,22 +7,12 @@ "pattern": "^http(s)?://127.0.0.1" }, { - "pattern": "^http(s)?://.+.etherscan.io/txs\\?block=" - }, - { - "pattern": "^http(s)?://.+.etherscan.io/tx/0x" - }, - { - "pattern": "^http(s)?://.+.etherscan.io/address/0x" - }, - { - "pattern": "^http(s)?://.+.blockscout.com/" + "pattern": "^http(s)?://.+.etherscan.io/" }, { "pattern": "/postman/.+.json" - }, - { - "pattern": "https://remix.ethereum.org/" } - ] + ], + "aliveStatusCodes":[200, 206], + "retryOn429":true } diff --git a/CI/markdownlint/info_style.rb b/CI/markdownlint/info_style.rb deleted file mode 100644 index f952969a..00000000 --- a/CI/markdownlint/info_style.rb +++ /dev/null @@ -1,15 +0,0 @@ -# See https://github.com/markdownlint/markdownlint/blob/master/docs/creating_styles.md for doc -# on creating and modifying this style file -# rules are named by their aliases here for clarity, not their code. -# But for instance, line-length = MD013 - -rule 'line-length', :line_length=>100, :code_blocks=>false, :tables=> false - -# excluded rule for error as kramdown has a bug. -# see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 -# these are now in this info style. -# to be put back in error style once bug fixed. -rule 'single-h1' -rule 'no-space-in-code' -rule "no-duplicate-header", :allow_different_nesting => true -rule 'first-line-h1' diff --git a/CI/markdownlint/lint-base-style.yml b/CI/markdownlint/lint-base-style.yml new file mode 100644 index 00000000..806570d7 --- /dev/null +++ b/CI/markdownlint/lint-base-style.yml @@ -0,0 +1,23 @@ +default: true +no-trailing-punctuation: + punctuation: '.,;:!' +ul-indent: + indent: 4 + +no-bare-urls: false +code-block-style: false +line-length: false + + # excluded rule for as kramdown has a bug. + # see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 + # these are now in info style. + # to be put back in error style once bug fixed. +single-h1: false +no-space-in-code: false +no-duplicate-header: false +first-line-h1: false + + # Because I hate HTML but sometimes a table is hard to format in MD + # now in info style. +no-inline-html: false + diff --git a/CI/markdownlint/lint-info-style.yml b/CI/markdownlint/lint-info-style.yml new file mode 100644 index 00000000..c326af8e --- /dev/null +++ b/CI/markdownlint/lint-info-style.yml @@ -0,0 +1,20 @@ +line-length: + line_length: 100 + code_blocks: false + tables: false + +no-bare-urls: false + + # excluded rule for error as kramdown has a bug. + # see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 + # these are now in this info style. + # to be put back in error style once bug fixed. +single-h1: true +no-space-in-code: true +no-duplicate-header: + allow_different_nesting: true +first-line-h1: true + + # Because I hate HTML but sometimes a table is hard to format in MD +no-inline-html: true + diff --git a/CI/markdownlint/style.rb b/CI/markdownlint/style.rb deleted file mode 100644 index 1aca3b0a..00000000 --- a/CI/markdownlint/style.rb +++ /dev/null @@ -1,21 +0,0 @@ -# See https://github.com/markdownlint/markdownlint/blob/master/docs/creating_styles.md for doc -# on creating and modifying this style file -# rules are named by their aliases here for clarity, not their code. -# But for instance, ul-indent = MD007 -all - -rule 'no-trailing-punctuation', :punctuation=>'.,;:!' -rule 'ul-indent', :indent=> 4 - -exclude_rule 'no-bare-urls' -exclude_rule 'code-block-style' -exclude_rule 'line-length' - -# excluded rule for as kramdown has a bug. -# see https://github.com/markdownlint/markdownlint/issues/294#issuecomment-600600407 -# these are now in info style. -# to be put back in error style once bug fixed. -exclude_rule 'single-h1' -exclude_rule 'no-space-in-code' -exclude_rule 'no-duplicate-header' -exclude_rule 'first-line-h1' diff --git a/CI/scripts/README.md b/CI/scripts/README.md index 3a9bd5be..e823684f 100755 --- a/CI/scripts/README.md +++ b/CI/scripts/README.md @@ -17,7 +17,7 @@ Go to the besu-doc project root directory and run one of the following scripts: * `CI/scripts/test_links.sh` tests the internal and external links in the doc. If a link is incorrect or the targeted web page is unavailable (for external sites), the test will fail and display the faulty link. -* `CI/scripts/test_lint.sh` tests the Markdown syntax for issues. Sometimes they are not visible +* `CI/scripts/test_markdown_syntax.sh` tests the Markdown syntax for issues. Sometimes they are not visible but making sure the markdown is correct helps to make it readable and bug free. * `CI/scripts/test_all.sh` runs all the tests in one pass. diff --git a/CI/scripts/run_job.sh b/CI/scripts/run_job.sh new file mode 100755 index 00000000..956d5ac5 --- /dev/null +++ b/CI/scripts/run_job.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +set -o pipefail + +if [ -z "$1" ] + then + echo "No job mame supplied. See .circleci/config.yml for job names." + exit 1 + else + JOB=$1 +fi + +exec < /dev/tty + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +LOGFILE=${DIR}/${JOB}.log + +echo -e "\rRunning ${JOB} test job, please wait.\r" + +circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job $JOB > ${LOGFILE} 2>&1 + +if [ "$?" -eq "0" ] +then + echo -e "\r✓ ${JOB} test job succeeded\r" + exit 0 +else + echo -e "\r✖ ${JOB} test job failed. See ${LOGFILE}" + exit 1 +fi diff --git a/CI/scripts/test_all.sh b/CI/scripts/test_all.sh index 73f455cd..3ba76e75 100755 --- a/CI/scripts/test_all.sh +++ b/CI/scripts/test_all.sh @@ -1,5 +1,16 @@ #!/usr/bin/env bash -CI/scripts/test_build.sh -CI/scripts/test_guidelines.sh -CI/scripts/test_links.sh -CI/scripts/test_lint.sh + +echo -e "\r=================================" +echo -e "\rRunning all tests jobs, please wait." +echo -e "\r=================================" + +CI/scripts/run_job.sh build & buildPID=$! +CI/scripts/run_job.sh vale & guidelinesPID=$! +CI/scripts/run_job.sh linkchecker & linksPID=$! +CI/scripts/run_job.sh markdownlint & syntaxPID=$! + +wait $buildPID $linksPID $syntaxPID $guidelinesPID + +echo -e "\r=================================" +echo -e "\rAll tests jobs completed." +echo -e "\r=================================" diff --git a/CI/scripts/test_build.sh b/CI/scripts/test_build.sh index 949dfc90..8b0965eb 100755 --- a/CI/scripts/test_build.sh +++ b/CI/scripts/test_build.sh @@ -1,2 +1,3 @@ #!/usr/bin/env bash -circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job build + +CI/scripts/run_job.sh build diff --git a/CI/scripts/test_guidelines.sh b/CI/scripts/test_guidelines.sh index 08b5c7b1..f3b9cb86 100755 --- a/CI/scripts/test_guidelines.sh +++ b/CI/scripts/test_guidelines.sh @@ -1,2 +1,3 @@ #!/usr/bin/env bash -circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job vale + +CI/scripts/run_job.sh vale diff --git a/CI/scripts/test_links.sh b/CI/scripts/test_links.sh index a1ddfb1a..e27d9981 100755 --- a/CI/scripts/test_links.sh +++ b/CI/scripts/test_links.sh @@ -1,2 +1,3 @@ #!/usr/bin/env bash -circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job linkchecker + +CI/scripts/run_job.sh linkchecker diff --git a/CI/scripts/test_lint.sh b/CI/scripts/test_lint.sh deleted file mode 100755 index 5e506c13..00000000 --- a/CI/scripts/test_lint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -circleci config process .circleci/config.yml > .circleci/process.yml && circleci local execute -c .circleci/process.yml --job markdownlint diff --git a/CI/scripts/test_markdown_syntax.sh b/CI/scripts/test_markdown_syntax.sh new file mode 100755 index 00000000..9daed61a --- /dev/null +++ b/CI/scripts/test_markdown_syntax.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +CI/scripts/run_job.sh markdownlint diff --git a/SECURITY.md b/SECURITY.md index 50a19da4..8ecbb368 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -17,4 +17,4 @@ The other way is to file a confidential security bug in our The process by which the Hyperledger Security Team handles security bugs is documented further in our [Defect Response page](https://wiki.hyperledger.org/display/SEC/Defect+Response) on our -[wiki](https://wiki.hyperledger.org). \ No newline at end of file +[wiki](https://wiki.hyperledger.org). diff --git a/docs/Concepts/Consensus-Protocols/Comparing-PoA.md b/docs/Concepts/Consensus-Protocols/Comparing-PoA.md index fc0ff950..fac123cc 100644 --- a/docs/Concepts/Consensus-Protocols/Comparing-PoA.md +++ b/docs/Concepts/Consensus-Protocols/Comparing-PoA.md @@ -69,4 +69,4 @@ operating in adversarial environments. Reaching consensus and adding blocks is faster in Clique networks. For Clique, the probability of a fork increases as the number of validators increases. -For IBFT 2.0, the time to add new blocks increases as the number of validators increases. \ No newline at end of file +For IBFT 2.0, the time to add new blocks increases as the number of validators increases. diff --git a/docs/Concepts/Mining.md b/docs/Concepts/Mining.md index ddf504e3..caf60ad1 100644 --- a/docs/Concepts/Mining.md +++ b/docs/Concepts/Mining.md @@ -14,4 +14,4 @@ Ethminer has been used with Hyperledger Besu to mine blocks on the [Ropsten test [ETC mainnet (uncle block only)](https://etc.tokenview.com/en/uncleblock/10555173) and Mordor ETC testnet. !!! note - Some mining software supports the `getwork` scheme as the `http` scheme. \ No newline at end of file + Some mining software supports the `getwork` scheme as the `http` scheme. diff --git a/docs/Concepts/Monitoring.md b/docs/Concepts/Monitoring.md index 1a624d81..470fb363 100644 --- a/docs/Concepts/Monitoring.md +++ b/docs/Concepts/Monitoring.md @@ -12,4 +12,3 @@ logging enables: For an overview of monitoring Hyperledger Besu, view [this recording](https://www.youtube.com/watch?v=7BuutRe0I28&feature=youtu.be). - diff --git a/docs/Concepts/Network-vs-Node.md b/docs/Concepts/Network-vs-Node.md index a805f067..5f0d75b7 100644 --- a/docs/Concepts/Network-vs-Node.md +++ b/docs/Concepts/Network-vs-Node.md @@ -13,4 +13,4 @@ include `evmStackSize` or specify the Specify node settings on the command line or in the [node configuration file](../HowTo/Configure/Using-Configuration-File.md). For example, enable [JSON-RPC API methods](../Reference/API-Methods.md) or specify the -[data directory](../Reference/CLI/CLI-Syntax.md#data-path) for the node. \ No newline at end of file +[data directory](../Reference/CLI/CLI-Syntax.md#data-path) for the node. diff --git a/docs/Concepts/Plugins.md b/docs/Concepts/Plugins.md index c3ba3b6e..8e41d990 100644 --- a/docs/Concepts/Plugins.md +++ b/docs/Concepts/Plugins.md @@ -48,4 +48,4 @@ Each plugin in the directory has the following lifecycle events: !!! note - The order in which Besu calls plugins during lifecycle events is not guaranteed. \ No newline at end of file + The order in which Besu calls plugins during lifecycle events is not guaranteed. diff --git a/docs/Concepts/Privacy/Private-Transactions.md b/docs/Concepts/Privacy/Private-Transactions.md index f2999ae9..d377495b 100644 --- a/docs/Concepts/Privacy/Private-Transactions.md +++ b/docs/Concepts/Privacy/Private-Transactions.md @@ -82,4 +82,3 @@ for the private transaction with the incorrect nonce. [privacy marker transaction]: ../../Concepts/Privacy/Private-Transaction-Processing.md - diff --git a/docs/Concepts/Protocol-Upgrades.md b/docs/Concepts/Protocol-Upgrades.md index 46acc2d0..301c4a20 100644 --- a/docs/Concepts/Protocol-Upgrades.md +++ b/docs/Concepts/Protocol-Upgrades.md @@ -27,4 +27,4 @@ example, [Istanbul](https://eips.ethereum.org/EIPS/eip-1679). For compatibility with future protocol upgrades, do not hardcode any gas price assumptions. Implementing upgradeable contracts enables contracts to be upgraded if a protocol upgrade does - include breaking changes. \ No newline at end of file + include breaking changes. diff --git a/docs/Concepts/TLS.md b/docs/Concepts/TLS.md index 11886697..28dba5ec 100644 --- a/docs/Concepts/TLS.md +++ b/docs/Concepts/TLS.md @@ -12,4 +12,4 @@ or server ([Orion](https://docs.orion.pegasys.tech/en/latest/Concepts/TLS-Commun You must store private keys and certificates in password-protected PKCS #12 keystore files. -Use the command line options to [enable and configure](../HowTo/Configure/Configure-TLS.md) TLS. \ No newline at end of file +Use the command line options to [enable and configure](../HowTo/Configure/Configure-TLS.md) TLS. diff --git a/docs/HowTo/Backup/Backup.md b/docs/HowTo/Backup/Backup.md index 3c80eb31..5d63b7a6 100644 --- a/docs/HowTo/Backup/Backup.md +++ b/docs/HowTo/Backup/Backup.md @@ -52,4 +52,4 @@ The process for finding peers after restarting is the same as for [finding peers after upgrading and restarting]. -[finding peers after upgrading and restarting]: ../Upgrade/Upgrade-Node.md#finding-peers-on-restarting \ No newline at end of file +[finding peers after upgrading and restarting]: ../Upgrade/Upgrade-Node.md#finding-peers-on-restarting diff --git a/docs/HowTo/Configure/Configure-Mining.md b/docs/HowTo/Configure/Configure-Mining.md index b5c9c4ef..8cc66dc2 100644 --- a/docs/HowTo/Configure/Configure-Mining.md +++ b/docs/HowTo/Configure/Configure-Mining.md @@ -74,4 +74,4 @@ have been used to mine on public networks with Hyperledger Besu: * **Ropsten**: [`0x2f14582947E292a2eCd20C430B46f2d27CFE213c`](https://ropsten.etherscan.io/address/0x2f14582947E292a2eCd20C430B46f2d27CFE213c#mine) * **ETC**: [`0x3125309aa670f5e60493b50884a7e7abf9ebb701`](https://etc.tokenview.com/en/address/0x3125309aa670f5e60493b50884a7e7abf9ebb701) -* **Mordor**: `0x2f14582947E292a2eCd20C430B46f2d27CFE213c` \ No newline at end of file +* **Mordor**: `0x2f14582947E292a2eCd20C430B46f2d27CFE213c` diff --git a/docs/HowTo/Configure/Configure-TLS.md b/docs/HowTo/Configure/Configure-TLS.md index 56a32aa5..6e3b2e93 100644 --- a/docs/HowTo/Configure/Configure-TLS.md +++ b/docs/HowTo/Configure/Configure-TLS.md @@ -130,4 +130,4 @@ The command line: [Configure the client for TLS]: https://docs.ethsigner.pegasys.tech/en/latest/HowTo/Configure-TLS/#server-tls-connection -[Configure the server to allow TLS communication]: https://docs.orion.pegasys.tech/en/latest/Tutorials/TLS/ \ No newline at end of file +[Configure the server to allow TLS communication]: https://docs.orion.pegasys.tech/en/latest/Tutorials/TLS/ diff --git a/docs/HowTo/Configure/Consensus-Protocols/Clique.md b/docs/HowTo/Configure/Consensus-Protocols/Clique.md index 797501f5..dcb71bd8 100644 --- a/docs/HowTo/Configure/Consensus-Protocols/Clique.md +++ b/docs/HowTo/Configure/Consensus-Protocols/Clique.md @@ -159,4 +159,4 @@ Define the number of blocks between epoch transitions in the genesis file. -*[vanity data]: Signers can include anything they like as vanity data. \ No newline at end of file +*[vanity data]: Signers can include anything they like as vanity data. diff --git a/docs/HowTo/Configure/Consensus-Protocols/QuorumIBFT.md b/docs/HowTo/Configure/Consensus-Protocols/QuorumIBFT.md index f3cc3608..6f9777fc 100644 --- a/docs/HowTo/Configure/Consensus-Protocols/QuorumIBFT.md +++ b/docs/HowTo/Configure/Consensus-Protocols/QuorumIBFT.md @@ -21,4 +21,4 @@ To connect to a Quorum IBFT 1.0 network: ``` 1. When starting Besu, specify the IBFT 1.0 genesis file using the - [`--genesis-file`](../../../Reference/CLI/CLI-Syntax.md#genesis-file) option. \ No newline at end of file + [`--genesis-file`](../../../Reference/CLI/CLI-Syntax.md#genesis-file) option. diff --git a/docs/HowTo/Configure/Contracts-in-Genesis.md b/docs/HowTo/Configure/Contracts-in-Genesis.md index 352859ad..72a43711 100644 --- a/docs/HowTo/Configure/Contracts-in-Genesis.md +++ b/docs/HowTo/Configure/Contracts-in-Genesis.md @@ -30,4 +30,4 @@ The contract code in the genesis file defines the: * Address * Balance * Bytecode -* Key value pairs for contract storage. \ No newline at end of file +* Key value pairs for contract storage. diff --git a/docs/HowTo/Configure/Passing-JVM-Options.md b/docs/HowTo/Configure/Passing-JVM-Options.md index beb6c77e..a923a9be 100644 --- a/docs/HowTo/Configure/Passing-JVM-Options.md +++ b/docs/HowTo/Configure/Passing-JVM-Options.md @@ -18,4 +18,4 @@ setting it before starting Besu. ```bash BESU_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \ besu --network=rinkeby - ``` \ No newline at end of file + ``` diff --git a/docs/HowTo/Deploy/Ansible.md b/docs/HowTo/Deploy/Ansible.md index 20733621..f50c748e 100644 --- a/docs/HowTo/Deploy/Ansible.md +++ b/docs/HowTo/Deploy/Ansible.md @@ -14,4 +14,4 @@ For more information, see the !!! important We strongly recommend automating network creation. Automating makes updates easier and ensures - your configuration is synchronized across the network. \ No newline at end of file + your configuration is synchronized across the network. diff --git a/docs/HowTo/Deploy/Bootnodes.md b/docs/HowTo/Deploy/Bootnodes.md index 647c13d4..3635091b 100644 --- a/docs/HowTo/Deploy/Bootnodes.md +++ b/docs/HowTo/Deploy/Bootnodes.md @@ -54,4 +54,4 @@ command line option for each node to include the new bootnodes. When adding bootnodes, you do not need to restart running nodes. By updating the [`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) option, the next time you restart the nodes (for example, when [upgrading](../Upgrade/Upgrade-Node.md)), the nodes connect to the new -bootnodes. \ No newline at end of file +bootnodes. diff --git a/docs/HowTo/Deploy/Cloud.md b/docs/HowTo/Deploy/Cloud.md index ecc274d4..62f3f9d5 100644 --- a/docs/HowTo/Deploy/Cloud.md +++ b/docs/HowTo/Deploy/Cloud.md @@ -9,4 +9,4 @@ When deploying Hyperledger Besu to the cloud: * Ensure you have enough spread across Availability Zones (AZs) and Regions, especially for bootnodes and validators. * If your network is a multi-region network, consider using VPC Peering to reduce latency. -* Where required, use VPNs to connect to your on premise systems, or single private chains. \ No newline at end of file +* Where required, use VPNs to connect to your on premise systems, or single private chains. diff --git a/docs/HowTo/Deploy/Validators.md b/docs/HowTo/Deploy/Validators.md index 2984be77..c13cf006 100644 --- a/docs/HowTo/Deploy/Validators.md +++ b/docs/HowTo/Deploy/Validators.md @@ -38,4 +38,4 @@ If you remove a validator that is also a bootnode, ensure there are enough remai the network. -[vote validators in or out of the validator pool]: ../Configure/Consensus-Protocols/IBFT.md#adding-and-removing-validators \ No newline at end of file +[vote validators in or out of the validator pool]: ../Configure/Consensus-Protocols/IBFT.md#adding-and-removing-validators diff --git a/docs/HowTo/Find-and-Connect/Bootnodes.md b/docs/HowTo/Find-and-Connect/Bootnodes.md index e325f928..63b12f61 100644 --- a/docs/HowTo/Find-and-Connect/Bootnodes.md +++ b/docs/HowTo/Find-and-Connect/Bootnodes.md @@ -47,4 +47,4 @@ specify a different host or port, use the By default, peer discovery listens on all available network interfaces. If the device Besu is running on must bind to a specific network interface, specify the interface using the -[`--p2p-interface`](../../Reference/CLI/CLI-Syntax.md#p2p-interface) option. \ No newline at end of file +[`--p2p-interface`](../../Reference/CLI/CLI-Syntax.md#p2p-interface) option. diff --git a/docs/HowTo/Find-and-Connect/Configuring-Ports.md b/docs/HowTo/Find-and-Connect/Configuring-Ports.md index 73e91b62..225f26c3 100644 --- a/docs/HowTo/Find-and-Connect/Configuring-Ports.md +++ b/docs/HowTo/Find-and-Connect/Configuring-Ports.md @@ -58,4 +58,4 @@ the metrics port or metrics push port to Prometheus or the Prometheus push gatew Specify the ports for Prometheus and Prometheus push gateway using the [`--metrics-port`](../../Reference/CLI/CLI-Syntax.md#metrics-port) and [`--metrics-push-port`](../../Reference/CLI/CLI-Syntax.md#metrics-push-port) options. The defaults -are `9545` and `9001`. \ No newline at end of file +are `9545` and `9001`. diff --git a/docs/HowTo/Find-and-Connect/Managing-Peers.md b/docs/HowTo/Find-and-Connect/Managing-Peers.md index d45d8446..409e0f82 100644 --- a/docs/HowTo/Find-and-Connect/Managing-Peers.md +++ b/docs/HowTo/Find-and-Connect/Managing-Peers.md @@ -51,4 +51,3 @@ the firewalls. In private networks with a level of trust between peers, enabling the [remote connection limits](../../Reference/CLI/CLI-Syntax.md#remote-connections-limit-enabled) is unnecessary and disabling might increase the speed at which nodes can join the network. - diff --git a/docs/HowTo/Find-and-Connect/Specifying-NAT.md b/docs/HowTo/Find-and-Connect/Specifying-NAT.md index 9b8b0439..23f6301a 100644 --- a/docs/HowTo/Find-and-Connect/Specifying-NAT.md +++ b/docs/HowTo/Find-and-Connect/Specifying-NAT.md @@ -88,4 +88,4 @@ Specify `NONE` to explicitly configure the external IP address and ports adverti * [`--p2p-host`](../../Reference/CLI/CLI-Syntax.md#p2p-host) and [`--p2p-port`](../../Reference/CLI/CLI-Syntax.md#p2p-port) for the P2P service. * [`--rpc-http-host`](../../Reference/CLI/CLI-Syntax.md#rpc-http-host) and [`--rpc-http-port`](../../Reference/CLI/CLI-Syntax.md#rpc-http-port) - for the JSON-RPC HTTP service. \ No newline at end of file + for the JSON-RPC HTTP service. diff --git a/docs/HowTo/Get-Started/Build-from-source.md b/docs/HowTo/Get-Started/Build-from-source.md index ce7cdcba..ea41c22d 100644 --- a/docs/HowTo/Get-Started/Build-from-source.md +++ b/docs/HowTo/Get-Started/Build-from-source.md @@ -13,4 +13,4 @@ View the [Hyperledger documentation] for instructions to install Hyperledger Bes [Hyperledger documentation]: https://wiki.hyperledger.org/display/BESU/Building+from+source [binary]: Install-Binaries.md -[Docker image]: Run-Docker-Image.md \ No newline at end of file +[Docker image]: Run-Docker-Image.md diff --git a/docs/HowTo/Get-Started/System-Requirements-Private.md b/docs/HowTo/Get-Started/System-Requirements-Private.md index e8268032..e0f9bca8 100644 --- a/docs/HowTo/Get-Started/System-Requirements-Private.md +++ b/docs/HowTo/Get-Started/System-Requirements-Private.md @@ -47,4 +47,3 @@ We recommend you create a VM with the following attributes: [Oracle VirtualBox documentation]: https://www.virtualbox.org/manual/UserManual.html#sharedfolders - diff --git a/docs/HowTo/Interact/APIs/API.md b/docs/HowTo/Interact/APIs/API.md index 662d55da..3be4243c 100644 --- a/docs/HowTo/Interact/APIs/API.md +++ b/docs/HowTo/Interact/APIs/API.md @@ -85,4 +85,4 @@ For [account management](../../Send-Transactions/Account-Management.md), use thi ### Protocols -Besu does not support the Whisper and Swarm protocols. \ No newline at end of file +Besu does not support the Whisper and Swarm protocols. diff --git a/docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md b/docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md index df869c4c..9dcf2edf 100644 --- a/docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md +++ b/docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md @@ -153,4 +153,3 @@ The block parameter can have the following values: If [synchronizing in FAST mode](../../../Reference/CLI/CLI-Syntax.md#sync-mode), most historical world state data is unavailable. Any methods attempting to access unavailable world state data return `null`. - diff --git a/docs/HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md b/docs/HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md index a1e396ac..b06dee8d 100644 --- a/docs/HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md +++ b/docs/HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md @@ -219,4 +219,3 @@ for a private contract. The above example returns the same result as calling [eth_newFilter](#creating-a-filter) followed by [eth_getFilterLogs](#getting-all-logs-for-a-filter). - diff --git a/docs/HowTo/Monitor/Elastic-Stack.md b/docs/HowTo/Monitor/Elastic-Stack.md index a6ec30fc..8903a079 100644 --- a/docs/HowTo/Monitor/Elastic-Stack.md +++ b/docs/HowTo/Monitor/Elastic-Stack.md @@ -35,4 +35,4 @@ To see the Besu Sample Networks logs in Kibana: [Filebeat]: https://github.com/PegaSysEng/besu-sample-networks/blob/master/filebeat/filebeat.yml [Metricbeat]: https://github.com/PegaSysEng/besu-sample-networks/blob/master/metricbeat/metricbeat.yml -[pipeline configuration]: https://github.com/PegaSysEng/besu-sample-networks/blob/master/logstash/pipeline/20_besu.conf \ No newline at end of file +[pipeline configuration]: https://github.com/PegaSysEng/besu-sample-networks/blob/master/logstash/pipeline/20_besu.conf diff --git a/docs/HowTo/Send-Transactions/Account-Management.md b/docs/HowTo/Send-Transactions/Account-Management.md index 53600bfb..e7b186a0 100644 --- a/docs/HowTo/Send-Transactions/Account-Management.md +++ b/docs/HowTo/Send-Transactions/Account-Management.md @@ -25,4 +25,3 @@ In Besu, you can use the JSON-RPC methods: [EthSigner](http://docs.ethsigner.pegasys.tech/en/latest/) implements [`eth_sendTransaction`](http://docs.ethsigner.pegasys.tech/en/latest/Using-EthSigner/Using-EthSigner/#eth_sendtransaction) and [`eea_sendTransaction`](http://docs.ethsigner.pegasys.tech/en/latest/Using-EthSigner/Using-EthSigner/#eea_sendtransaction). - diff --git a/docs/HowTo/Send-Transactions/Concurrent-Private-Transactions.md b/docs/HowTo/Send-Transactions/Concurrent-Private-Transactions.md index 55700a7c..5d2a7239 100644 --- a/docs/HowTo/Send-Transactions/Concurrent-Private-Transactions.md +++ b/docs/HowTo/Send-Transactions/Concurrent-Private-Transactions.md @@ -26,4 +26,4 @@ includes an example of how to send concurrent private transactions. [privacy marker transaction]: ../../Concepts/Privacy/Private-Transaction-Processing.md -[own nonce]: ../../Concepts/Privacy/Private-Transactions.md#nonces \ No newline at end of file +[own nonce]: ../../Concepts/Privacy/Private-Transactions.md#nonces diff --git a/docs/HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md b/docs/HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md index bfa465db..4c7c3a5a 100644 --- a/docs/HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md +++ b/docs/HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md @@ -170,4 +170,4 @@ private transactions to create a contract. [privacy marker transaction]: ../../Concepts/Privacy/Private-Transaction-Processing.md [EEA-compliant private transaction]: ../../Concepts/Privacy/Privacy-Groups.md#enterprise-ethereum-alliance-privacy -[Besu-extended private transaction]: ../../Concepts/Privacy/Privacy-Groups.md#besu-extended-privacy \ No newline at end of file +[Besu-extended private transaction]: ../../Concepts/Privacy/Privacy-Groups.md#besu-extended-privacy diff --git a/docs/HowTo/Troubleshoot/Trace-Transactions.md b/docs/HowTo/Troubleshoot/Trace-Transactions.md index 2a29da13..b248d784 100644 --- a/docs/HowTo/Troubleshoot/Trace-Transactions.md +++ b/docs/HowTo/Troubleshoot/Trace-Transactions.md @@ -26,4 +26,4 @@ requested block or transaction must be within the [the number of pruning blocks !!! important The `TRACE` API is an early access feature in v1.4. The return values might change between v1.4 - and v1.5. \ No newline at end of file + and v1.5. diff --git a/docs/HowTo/Upgrade/Upgrade-Node.md b/docs/HowTo/Upgrade/Upgrade-Node.md index 74b336fe..ccaec691 100644 --- a/docs/HowTo/Upgrade/Upgrade-Node.md +++ b/docs/HowTo/Upgrade/Upgrade-Node.md @@ -34,5 +34,3 @@ Before the node restarted, connected peers saved the node details in their peer can reconnect to the restarted node. The restarted node uses these peers, as well as the bootnodes, to discover more peers. To ensure that the restarted node successfully rejoins the network, ensure you specify at least one operational bootnode. - - diff --git a/docs/HowTo/Upgrade/Upgrade-Protocol.md b/docs/HowTo/Upgrade/Upgrade-Protocol.md index 16c242bc..caaeb7d8 100644 --- a/docs/HowTo/Upgrade/Upgrade-Protocol.md +++ b/docs/HowTo/Upgrade/Upgrade-Protocol.md @@ -22,4 +22,4 @@ private network: !!! caution To avoid a forked network, all network participants must update their genesis file to include - the agreed on milestone block and restart their node before reaching the milestone block. \ No newline at end of file + the agreed on milestone block and restart their node before reaching the milestone block. diff --git a/docs/HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md b/docs/HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md index 437b2675..71b5d4df 100644 --- a/docs/HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md +++ b/docs/HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md @@ -16,4 +16,4 @@ groups: You can find and delete [EEA-compliant privacy groups](../../Concepts/Privacy/Privacy-Groups.md) using [`priv_findPrivacyGroup`](../../Reference/API-Methods.md#priv_findprivacygroup) and - [`priv_deletePrivacyGroup`](../../Reference/API-Methods.md#priv_deleteprivacygroup). \ No newline at end of file + [`priv_deletePrivacyGroup`](../../Reference/API-Methods.md#priv_deleteprivacygroup). diff --git a/docs/HowTo/Use-Privacy/EEA-Compliant.md b/docs/HowTo/Use-Privacy/EEA-Compliant.md index d9f094e4..c59a3c33 100644 --- a/docs/HowTo/Use-Privacy/EEA-Compliant.md +++ b/docs/HowTo/Use-Privacy/EEA-Compliant.md @@ -42,4 +42,3 @@ type when returned by ] } ``` - diff --git a/docs/HowTo/Use-Privacy/Privacy.md b/docs/HowTo/Use-Privacy/Privacy.md index bdca585d..b59d312d 100644 --- a/docs/HowTo/Use-Privacy/Privacy.md +++ b/docs/HowTo/Use-Privacy/Privacy.md @@ -45,4 +45,4 @@ have a `BESU` privacy group type when returned by } ] } - ``` \ No newline at end of file + ``` diff --git a/docs/HowTo/Use-Privacy/Use-OnChainPrivacy.md b/docs/HowTo/Use-Privacy/Use-OnChainPrivacy.md index ce7bbab8..7c39acf3 100644 --- a/docs/HowTo/Use-Privacy/Use-OnChainPrivacy.md +++ b/docs/HowTo/Use-Privacy/Use-OnChainPrivacy.md @@ -38,7 +38,7 @@ the [web3.js-eea library](https://github.com/PegaSysEng/web3js-eea): 1. Run: - ``` + ```bash node simpleOnChainPrivacy.js ``` diff --git a/docs/Reference/API-Objects.md b/docs/Reference/API-Objects.md index 65f29a2f..987db8a0 100644 --- a/docs/Reference/API-Objects.md +++ b/docs/Reference/API-Objects.md @@ -246,4 +246,4 @@ Returned by [`priv_getTransactionReceipt`](API-Methods.md#priv_getTransactionRec | **privateFrom** | Data, 32 bytes | [Orion](https://docs.orion.pegasys.tech/en/stable/) public key of the sender. | | **privateFor** or **privacyGroupId** | Array or Data, 32 bytes | [Orion](https://docs.orion.pegasys.tech/en/stable/) public keys or privacy group ID of the recipients. | | **status** | Quantity | Either `0x1` (success) or `0x0` (failure). | -| **logs** | Array | Array of [log objects](#log-object) generated by this private transaction. | \ No newline at end of file +| **logs** | Array | Array of [log objects](#log-object) generated by this private transaction. | diff --git a/docs/Reference/Evm-Tool.md b/docs/Reference/Evm-Tool.md index 7777a6b9..0cab5e07 100644 --- a/docs/Reference/Evm-Tool.md +++ b/docs/Reference/Evm-Tool.md @@ -347,4 +347,4 @@ from standard input and executes that state test. ```bash evm --json state-test < stExample/add11.json - ``` \ No newline at end of file + ``` diff --git a/docs/Tutorials/Privacy/Configuring-Privacy.md b/docs/Tutorials/Privacy/Configuring-Privacy.md index 3bdb0146..2c07fcc1 100644 --- a/docs/Tutorials/Privacy/Configuring-Privacy.md +++ b/docs/Tutorials/Privacy/Configuring-Privacy.md @@ -215,4 +215,3 @@ Node-1 as the bootnode: The command line specifies the same options as for Node-1 with different ports and Orion node URL. The [`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) option specifies the enode URL for Node-1. - diff --git a/docs/Tutorials/Privacy/web3js-eea-Multinode-example.md b/docs/Tutorials/Privacy/web3js-eea-Multinode-example.md index fe4fa505..f5e242d4 100644 --- a/docs/Tutorials/Privacy/web3js-eea-Multinode-example.md +++ b/docs/Tutorials/Privacy/web3js-eea-Multinode-example.md @@ -35,7 +35,7 @@ To use the examples provided in the web3js-eea library with A private transaction receipt returns. - ``` + ```bash Transaction Hash 0x23b57ddc3ecf9c9a548e4401a411420ffc0002fd259a86d5656add7c6108beeb Waiting for transaction to be mined ... Private Transaction Receipt diff --git a/package-lock.json b/package-lock.json index ea92f654..7b73efed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,32 +1,51 @@ { - "name": "doc.besu", + "name": "hyperledger-besu", "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@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==", + "dev": true + }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "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==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "requires": { - "color-convert": "^1.9.0" + "sprintf-js": "~1.0.2" } }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -34,206 +53,328 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", + "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "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=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "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, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", + "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "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=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, - "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=" + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "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 }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "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 }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "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, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "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" + } + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, "requires": { - "ajv": "^6.5.5", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true }, "is-relative-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-2.0.0.tgz", - "integrity": "sha1-cpAtf+BLPUeS59sV+duEtyBMnO8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", + "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", + "dev": true, "requires": { - "is-absolute-url": "^2.0.0" + "is-absolute-url": "^3.0.0" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "isemail": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dev": true, "requires": { "punycode": "2.x.x" } @@ -241,32 +382,54 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "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=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonc-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", + "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", + "dev": true }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -275,101 +438,284 @@ } }, "link-check": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/link-check/-/link-check-4.4.5.tgz", - "integrity": "sha512-csF0k7MAQjyDLkrZfsAJNkTav/vvATMYkm9dAstzmu60vzNGlgvWd3SgBTFH9KLWOO1hUuVxgSEPuWv+fdyuaQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/link-check/-/link-check-4.5.1.tgz", + "integrity": "sha512-g0tu3Nkj/rpl1b6rQHRlaaSZ16iRqRDNP30jLUfRK0uNN98H56YVZlJXLjWcyjsj4f2+xZdxqeV398dx38MzfQ==", + "dev": true, "requires": { - "is-relative-url": "^2.0.0", + "is-relative-url": "^3.0.0", "isemail": "^3.2.0", - "ms": "^2.1.1", - "request": "^2.88.0" + "ms": "^2.1.2", + "request": "^2.88.2" + } + }, + "linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash.differencewith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", + "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "markdown-it": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-11.0.0.tgz", + "integrity": "sha512-+CvOnmbSubmQFSA9dKz1BRiaSMV7rhexl3sngKqFyXSagoA3fBdJQ8oZWtRy2knXdpDXaBw44euz37DeJQ9asg==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } }, "markdown-link-check": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.7.3.tgz", - "integrity": "sha512-X/HWomzeox5HtkKLupin4affBXHq22r7RNqiSKsxlgZQMSU9n+zpGY0sbzJr1IycB6FXpKUZet1VH3Rs1/8WQg==", - "requires": { - "async": "^2.6.1", - "chalk": "^2.4.2", - "commander": "^2.20.0", - "link-check": "^4.4.5", - "lodash": "^4.17.11", - "markdown-link-extractor": "^1.2.1", + "version": "github:tcort/markdown-link-check#9f50271d2b676caf7a70d5cae667d2fdeb4810a2", + "from": "github:tcort/markdown-link-check", + "dev": true, + "requires": { + "async": "^3.2.0", + "chalk": "^4.1.0", + "commander": "^6.1.0", + "link-check": "^4.5.1", + "lodash": "^4.17.20", + "markdown-link-extractor": "^1.2.6", "progress": "^2.0.3", - "request": "^2.88.0" + "request": "^2.88.2" } }, "markdown-link-extractor": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.1.tgz", - "integrity": "sha512-eo4hXLZC6/NrVimHqEu0X029ymIreg0VQjlWudGtOg1FiiZYPwU+Sh1CP3CQqP16woyCsDplVfqPD2Oi8JRpdw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.6.tgz", + "integrity": "sha512-WDiwWTzR/zk0n0As7q1KCB1Jd/T7nJ7IEr6E1QKZR1Agd/xRmB0FjM2IrtC7IZ1ZwxflBE0aLe4pkX8d+rzV8w==", + "dev": true, "requires": { - "marked": "^0.6.2" + "marked": "^1.1.1" } }, + "markdownlint": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.21.0.tgz", + "integrity": "sha512-rTxr0fbCFmS65oxXBD0HNy3/+PSukLS+b7Z6rGDWbjdRJp/e2dKj538r3KTn8oXrusx+ZtuYOozV2Knpnn0pkQ==", + "dev": true, + "requires": { + "markdown-it": "11.0.0" + } + }, + "markdownlint-cli": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.23.2.tgz", + "integrity": "sha512-OSl5OZ8xzGN6z355cqRkiq67zPi3reJimklaF72p0554q85Dng5ToOjjSB9tDKZebSt85jX8cp+ruoQlPqOsPA==", + "dev": true, + "requires": { + "commander": "~2.9.0", + "deep-extend": "~0.5.1", + "get-stdin": "~5.0.1", + "glob": "~7.1.2", + "ignore": "~5.1.4", + "js-yaml": "~3.13.1", + "jsonc-parser": "~2.2.0", + "lodash.differencewith": "~4.5.0", + "lodash.flatten": "~4.4.0", + "markdownlint": "~0.20.4", + "markdownlint-rule-helpers": "~0.11.0", + "minimatch": "~3.0.4", + "minimist": "~1.2.5", + "rc": "~1.2.7" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdownlint": { + "version": "0.20.4", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.20.4.tgz", + "integrity": "sha512-jpfaPgjT0OpeBbemjYNZbzGG3hCLcAIvrm/pEY3+q/szDScG6ZonDacqySVRJAv9glbo8y4wBPJ0wgW17+9GGA==", + "dev": true, + "requires": { + "markdown-it": "10.0.0" + } + } + } + }, + "markdownlint-rule-helpers": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.11.0.tgz", + "integrity": "sha512-PhGii9dOiDJDXxiRMpK8N0FM9powprvRPsXALgkjlSPTwLh6ymH+iF3iUe3nq8KGu26tclFBlLL5xAGy/zb7FA==", + "dev": true + }, "marked": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", - "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz", + "integrity": "sha512-mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "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 }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "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, + "requires": { + "mime-db": "1.44.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { - "mime-db": "1.40.0" + "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "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=", + "dev": true }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true }, "psl": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + } + } }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -378,7 +724,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -388,25 +734,34 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -419,34 +774,36 @@ "tweetnacl": "~0.14.0" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "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, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -454,30 +811,46 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true }, "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==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, "requires": { "punycode": "^2.1.0" } }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true } } } diff --git a/package.json b/package.json index 4ddc03df..3750777a 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,12 @@ "test:links:display": "cat linkchecker.out", "test:links:verify": "! grep -n '[✖]\\|ERROR' ./linkchecker.out", "test:links": "npm run test:links:check && npm run test:links:display && npm run test:links:verify", - "test": "npm run test:links" + "test:markdown:error": "node ./node_modules/markdownlint-cli/markdownlint.js --ignore 'env' --ignore 'node_modules' --config CI/markdownlint/lint-base-style.yml '**/*.md' 2>&1 | tee ./markdownlint.out", + "test:markdown:info": "node ./node_modules/markdownlint-cli/markdownlint.js --ignore 'env' --ignore 'node_modules' --config CI/markdownlint/lint-info-style.yml '**/*.md' 2>&1 | tee ./markdownlint_info.out", + "test:markdown:verify": "! grep -nE 'MD[0-9]+/.+' ./markdownlint.out", + "test:markdown": "npm run test:markdown:error && npm run test:markdown:verify", + "fix:markdown": "node ./node_modules/markdownlint-cli/markdownlint.js --fix --config CI/markdownlint/lint-base-style.yml '**/*.md'", + "test": "npm run test:links && npm run test:markdown" }, "repository": { "type": "git", @@ -23,7 +28,9 @@ "url": "https://github.com/hyperledger/besu-docs/issues" }, "homepage": "https://github.com/hyperledger/besu-docs#readme", - "dependencies": { - "markdown-link-check": "3.7.3" + "devDependencies": { + "markdown-link-check": "github:tcort/markdown-link-check", + "markdownlint-cli": "0.23.2", + "markdownlint": "0.21.0" } }