From 666f1366619f5b51a74ed33a17892463e4496d32 Mon Sep 17 00:00:00 2001 From: stephensprinkle <71673860+stephensprinkle@users.noreply.github.com> Date: Tue, 22 Feb 2022 08:59:02 -0800 Subject: [PATCH] removal of docs dir, migrated to discrete repo (#1169) --- docs/.vuepress/config.js | 157 - docs/.vuepress/public/favicon.ico | Bin 464 -> 0 bytes docs/.vuepress/public/logo.svg | 7 - docs/.vuepress/styles/index.styl | 3 - docs/Education/FAQ/basics.md | 61 - docs/Education/FAQ/earn.md | 64 - docs/Education/FAQ/support.md | 55 - docs/Education/application_process.md | 3 - .../dev_process/kava_dao_governance.md | 3 - docs/Education/dev_process/mainnet_upgrade.md | 3 - docs/Education/dev_process/testnet.md | 3 - docs/Education/getting_started.md | 88 - docs/Education/hello_kava.md | 777 -- docs/Education/lite_paper.md | 3 - .../Education/user_actions/Governance/Vote.md | 50 - .../user_actions/Governance/committee.md | 95 - .../user_actions/Governance/param-change.md | 80 - .../user_actions/Lend/hard_borrow.md | 50 - .../user_actions/Lend/hard_deposit.md | 53 - .../Education/user_actions/Lend/hard_repay.md | 56 - .../user_actions/Lend/hard_withdraw.md | 53 - .../Education/user_actions/Mint/cdp_create.md | 51 - .../user_actions/Mint/cdp_deposit.md | 51 - docs/Education/user_actions/Mint/cdp_draw.md | 51 - docs/Education/user_actions/Mint/cdp_repay.md | 53 - .../user_actions/Mint/cdp_withdraw.md | 51 - .../user_actions/Swap/swap_deposit.md | 57 - .../user_actions/Swap/swap_tokens.md | 56 - .../user_actions/Swap/swap_withdraw.md | 57 - docs/Education/user_actions/quick_guide.md | 76 - docs/LICENSE.md | 201 - docs/REWARDS.md | 33 - docs/communitytools.md | 54 - docs/core/proto-docs.md | 5442 -------- docs/founder-badge.png | Bin 77146 -> 0 bytes docs/founder-plus.png | Bin 86502 -> 0 bytes docs/kava-8/upgrade_oracle.md | 36 - docs/kava-8/upgrade_validator.md | 70 - docs/kava-8/upgrade_wallet.md | 51 - docs/kava-9/validator_guide.md | 95 - docs/kava-9/wallet_explorer_exchange_guide.md | 90 - docs/node_guide.md | 151 - docs/package-lock.json | 10545 ---------------- docs/package.json | 23 - docs/post.sh | 10 - docs/pre.sh | 49 - docs/protodoc-markdown.tmpl | 105 - docs/readme.md | 57 - docs/validator_guide.md | 194 - 49 files changed, 19373 deletions(-) delete mode 100644 docs/.vuepress/config.js delete mode 100644 docs/.vuepress/public/favicon.ico delete mode 100644 docs/.vuepress/public/logo.svg delete mode 100644 docs/.vuepress/styles/index.styl delete mode 100644 docs/Education/FAQ/basics.md delete mode 100644 docs/Education/FAQ/earn.md delete mode 100644 docs/Education/FAQ/support.md delete mode 100644 docs/Education/application_process.md delete mode 100644 docs/Education/dev_process/kava_dao_governance.md delete mode 100644 docs/Education/dev_process/mainnet_upgrade.md delete mode 100644 docs/Education/dev_process/testnet.md delete mode 100644 docs/Education/getting_started.md delete mode 100644 docs/Education/hello_kava.md delete mode 100644 docs/Education/lite_paper.md delete mode 100644 docs/Education/user_actions/Governance/Vote.md delete mode 100644 docs/Education/user_actions/Governance/committee.md delete mode 100644 docs/Education/user_actions/Governance/param-change.md delete mode 100644 docs/Education/user_actions/Lend/hard_borrow.md delete mode 100644 docs/Education/user_actions/Lend/hard_deposit.md delete mode 100644 docs/Education/user_actions/Lend/hard_repay.md delete mode 100644 docs/Education/user_actions/Lend/hard_withdraw.md delete mode 100644 docs/Education/user_actions/Mint/cdp_create.md delete mode 100644 docs/Education/user_actions/Mint/cdp_deposit.md delete mode 100644 docs/Education/user_actions/Mint/cdp_draw.md delete mode 100644 docs/Education/user_actions/Mint/cdp_repay.md delete mode 100644 docs/Education/user_actions/Mint/cdp_withdraw.md delete mode 100644 docs/Education/user_actions/Swap/swap_deposit.md delete mode 100644 docs/Education/user_actions/Swap/swap_tokens.md delete mode 100644 docs/Education/user_actions/Swap/swap_withdraw.md delete mode 100644 docs/Education/user_actions/quick_guide.md delete mode 100644 docs/LICENSE.md delete mode 100644 docs/REWARDS.md delete mode 100644 docs/communitytools.md delete mode 100644 docs/core/proto-docs.md delete mode 100644 docs/founder-badge.png delete mode 100644 docs/founder-plus.png delete mode 100644 docs/kava-8/upgrade_oracle.md delete mode 100644 docs/kava-8/upgrade_validator.md delete mode 100644 docs/kava-8/upgrade_wallet.md delete mode 100644 docs/kava-9/validator_guide.md delete mode 100644 docs/kava-9/wallet_explorer_exchange_guide.md delete mode 100644 docs/node_guide.md delete mode 100644 docs/package-lock.json delete mode 100644 docs/package.json delete mode 100755 docs/post.sh delete mode 100755 docs/pre.sh delete mode 100644 docs/protodoc-markdown.tmpl delete mode 100644 docs/readme.md delete mode 100644 docs/validator_guide.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js deleted file mode 100644 index 8fee331b..00000000 --- a/docs/.vuepress/config.js +++ /dev/null @@ -1,157 +0,0 @@ -module.exports = { - theme: "cosmos", - title: "Kava Documentation", - themeConfig: { - logo: { - src: "/logo.svg" - }, - custom: true, - sidebar: { - auto: false, - nav: [ - { - title: "Getting Started - Developers", - children: [ - { - title: "Get Started", - path: "/Education/getting_started.html" - }, - { - title: "Building Modules", - path: "/Education/hello_kava.html" - }, - { - title: "Javascript SDK", - path: "/building/javascript-sdk.html" - }, - { - title: "Run Validator Node", - path: "/validator_guide" - }, - { - title: "Run Bots", - children: [ - { - title: "Sentinel Bot", - path: "/tools/sentinel.html" - }, - { - title: "Auction Bot", - path: "/tools/auction.html" - } - ] - }, - { - title: "Migration Guide", - path: "/kava-8", - directory: true - } - ] - }, - { - title: "Resources", - children: [ - { - title: "Community Tools", - path: "/tools/community.html" - }, - { - title: "Module Specs", - path: "/Modules", - directory: true, - }, - { - title: "CLI Docs", - path: "/Education/user_actions/", - directory: true, - }, - { - title: "REST API Spec", - path: "https://swagger.kava.io/" - }, - { - title: "Protocol Reference", - path: "https://pkg.go.dev/github.com/kava-labs/kava?tab=subdirectories" - }, - { - title: "FAQ", - path: "/Education/FAQ/", - directory: true, - } - ] - } - ] - }, - footer: { - logo: "/logo.svg", - textLink: { - text: "kava.io", - url: "https://www.kava.io" - }, - services: [ - { - service: "twitter", - url: "https://twitter.com/kava_platform" - }, - { - service: "medium", - url: "https://medium.com/kava-labs" - }, - { - service: "telegram", - url: "https://t.me/kavalabs" - }, - { - service: "discord", - url: "https://discord.gg/JJYnuCx" - }, - { - service: "github", - url: "https://github.com/kava-labs" - } - ], - smallprint: "© 2021 Kava Labs.", - links: [ - { - title: "Community", - children: [ - { - title: "Blog", - url: "https://medium.com/kava-labs" - }, - { - title: "Chat", - url: "https://t.me/kavalabs" - } - ] - }, - { - title: "Contributing", - children: [ - { - title: "Contributing to the docs", - url: "https://github.com/Kava-Labs/kava/tree/master/docs" - }, - { - title: "Source code on GitHub", - url: "https://github.com/Kava-Labs/kava" - } - ] - }, - { - title: "Related Docs", - children: [ - { - title: "Cosmos SDK", - url: "https://cosmos.network/docs" - }, - { - title: "Binance Chain", - url: "https://docs.binance.org" - } - ] - } - ] - } - } -} diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico deleted file mode 100644 index 893265e5f0c12a52f9626b21dfc5ead8718759a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmV;>0WbcEP)sID$?f zy!Z?o;0A7h8=$YgpcAMYID#X%fqqSDLV&{k^qQC&j$FU?``SBZre)vV_HO!io?UJy z<7n7x0oO?D*mFaE-g&+rc=u`itP%Dj+yDP0CW0aRY9#m-*&m|;K=2f<6qeuk73~L! za_}WwJ@QJ1>_5=}Fz*YAcLaZRA0~>~Q|2oh-qishcn+7_@~#R1!71y?g?BXoJZx%L z-Zd*w`S7j+0NIzmyaxjaH(L)db)&q(18kL^&s7xw*M;q1Q-C&6o({b?XyS#0000 diff --git a/docs/.vuepress/public/logo.svg b/docs/.vuepress/public/logo.svg deleted file mode 100644 index 0669fac6..00000000 --- a/docs/.vuepress/public/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/docs/.vuepress/styles/index.styl b/docs/.vuepress/styles/index.styl deleted file mode 100644 index 44ab5834..00000000 --- a/docs/.vuepress/styles/index.styl +++ /dev/null @@ -1,3 +0,0 @@ -:root - --color-link #ff554f - --color-primary #ff554f \ No newline at end of file diff --git a/docs/Education/FAQ/basics.md b/docs/Education/FAQ/basics.md deleted file mode 100644 index f3c3c981..00000000 --- a/docs/Education/FAQ/basics.md +++ /dev/null @@ -1,61 +0,0 @@ -## The Basics - -### What is Kava Protocol? -Kava Chain is a decentralized, permissionless, censorship-resistant blockchain built with the Cosmos SDK. This means it operates much like other Cosmos ecosystem blockchains, and is designed to be interoperable between chains. - -[Learn more about Cosmos](https://cosmos.network/). - -[Learn more about Kava](https://medium.com/kava-labs/kava-protocol-101-ce3beb0fa8b8) -‍ -Kava Protocol is the set of rules and behaviors built into the Kava Chain that enables advanced Decentralized Finance (DeFi) functionality like permissionless borrowing and lending. -‍ -The KAVA token is an asset on the Kava Chain. Kava Chain is secured by its token KAVA and it is used across the full chain as a transport and a store of value. - -### What is Kava Lend? -Kava Lend is an application that runs on Kava blockchain. It builds upon the Kava Protocol and adds new functionality, expanding the Kava Ecosystem to include an autonomous money market protocol. - -The HARD token is an asset on the Kava Chain. It is given as a reward for supplying and borrowing on Kava Lend. - -### What tokens and assets can be use on the Kava Blockchain? -**Native assets** -Native assets are tokens that originate on the Kava Chain. These currently include KAVA, HARD, SWP and USDX. - -KAVA and HARD are governance tokens, meaning holders can vote on the rules of the protocols. KAVA is also used as a Proof of Stake staking asset, which ensures the finality and safety of loans on the protocol and also acts as the ‘lender of last resort’ in certain situations. USDX is a stable coin loosely pegged to the US Dollar. It is minted when a Kava CDP is opened. The exact value of USDX is determined by market forces. [Read more](https://medium.com/kava-labs/usdx-stability-mechanics-12bf23ed957b.com/kava-labs/usdx-stability-mechanics-12bf23ed957b) - -**Non-native assets** -Other tokens can also be issued on the Kava Chain. These non-native asset tokens are often used to “wrap”, “tokenize,” or represent assets on other chains. For example: - -Binance Coin (BNB) can be represented as a token on Kava Chain. During a cross-chain swap, BNB(Kava) coins are created or destroyed (burned) on Kava Chain, and frozen/unfrozen on Binance Chain. - -Assets from other blockchains are considered non-native assets. This includes coins from other Cosmos ecosystem blockchains, which can connect to the Kava Chain through protocols like [Cosmos IBC](https://cosmos.network/ibc). - -Be aware that KAVA (native) has been tokenized on other blockchains, namely Binance Chain. KAVA (BEP-2) is a token that exists solely on Binance Chain. Do not send KAVA (BEP2) directly to the Kava Chain. - -**BTCB** -represents BTC which has been tokenized on Binance Chain. This BNB token has also been tokenized on KAVA, making BTCB (Kava) a doubly tokenized representation of BTC. -### How do I access Kava? -The Kava Platform or Kava Web App, which is live at [app.kava.io](https://app.kava.io/), is a user-friendly hub for interacting with the protocol. - -Similarly, Kava Lend can be found at [app.kava.io/lend](https://app.kava.io/lend). - -### Where can I learn more? -Here are great introductory readings: - -[Mint](https://medium.com/kava-labs/kava-protocol-101-ce3beb0fa8b8) - -[Lend](https://medium.com/kava-labs/introducing-harvest-io-the-worlds-first-cross-chain-money-market-a27535a5d91a). - -Check out our other articles on [Medium](https://medium.com/kava-labs). -### Does Kava have smart contracts? -Like most Cosmos ecosystem blockchains, the automated transaction behaviors known as smart contracts are hardcoded into the protocol. They are referred to as “modules” in the Cosmos Ecosystem. The Kava App uses a special kind of module called a CDP. -### What is a CDP? How do I mint USDX? -A CDP or Collateralized Debt Position is a new kind of automated loan contract, used to create “stablecoins” that are pegged to a fiat currency like the US Dollar. The lender puts up a crypto asset as collateral to ‘mint’, or create new stablecoins. - -For example, on Kava, users can stake BNB as collateral to mint USDX. The collateral is locked while the position is open. The lender unlocks their collateral once they repay the loan amount plus accumulated interest. - -Minting USDX is as simple as supplying your asset to Kava and clicking “Borrow.” The lender can only take out 2/3rds of the collateral amount. [Read more here](https://medium.com/kava-labs/borrow-usdx-on-kavas-web-app-using-trust-wallet-8540ba61f7a4) - -Lenders should keep in mind that if the price of the collateral asset drops below the liquidation price, their CDP will be liquidated. Therefore, it is advised not to mint more than 1/2 of the value of the collateral. The “Safe Max” button included in the app goes by this recommendation. - -### What is Kava planning for the future? - Check out our [roadmap](https://medium.com/kava-labs/kava-2021-roadmap-91f839a0907b). Follow us on [Twitter](https://twitter.com/kava_labs) to receive the latest announcements. diff --git a/docs/Education/FAQ/earn.md b/docs/Education/FAQ/earn.md deleted file mode 100644 index 0314675c..00000000 --- a/docs/Education/FAQ/earn.md +++ /dev/null @@ -1,64 +0,0 @@ -## Earn With Kava - -### Why use Mint/Lend? -**Borrowing** -Mint and Lend let users take out loans in a decentralized fashion. This democratizes finance by removing the barrier to entry, lowering friction, and removing gatekeepers. - -**Lending** -Mint, Lend, and Swap let users turn their idle cryptocurrencies into interest-producing assets safely and transparently. - -**Rewards** -As the protocols scale, numerous rewards are available to early adopters.DeFi applications - developers are encouraged to build new apps, integrations, and protocols in the Kava ecosystem for new business use cases. - -### How can I earn money on Kava? -**Staking** -Like most Proof of Stake (PoS) blockchains, KAVA holders can ‘stake’ their KAVA by either running a validator node themselves or by ‘bonding’ their tokens to a third party that is running a node. Bonding temporarily locks in your coins for a 21-day. [Learn more.](https://medium.com/kava-labs/kava-staking-guide-4894b8452ab3) A list of validators can be found [here.](https://kava.bigdipper.live/validators) - -**Borrowing** -Use your assets as collateral to borrow other assets, then using those to earn returns by trading or with other DeFi pursuits. Users can borrow USDX on Kava and other assets on Lend. - -**Lending** -Supply assets to Kava Lend and automatically earn rewards in HARD tokens. - -**Rewards** -Kava Mint - -[Trust wallet guide](https://medium.com/kava-labs/borrow-usdx-on-kavas-web-app-using-trust-wallet-8540ba61f7a4). - -[Minting rewards](https://medium.com/kava-labs/usdx-minting-rewards-explained-82d0b74897a2#Reward%20Calculation). - -Available assets include: BNB, BTCB, BUSD-A, BUSD-B, XRPB, KAVA, UST, and HARD. - -Kava Lend -Supply assets to Kava Lend to earn KAVA and HARD rewards. [Guide](https://medium.com/kava-labs/supply-and-earn-on-hard-money-market-from-binance-com-e3f54acf4b19). - -Available assets include: USDX, KAVA, HARD, BNB, BUSD, BTCB, SWP, ATOM, and XRPB. - -KAVA, HARD, and SWP rewards have a vesting period of either 1 month or 12 months. If you choose 12 months, the reward amount increases. - -Users can earn rewards by: -- Supplying an asset to Lend. -- Borrowing against that asset. -- Supplying the borrowed asset to Mint. -- Minting USDX. -- Supplying that minted USDX to Lend. -- Supplying a pair of assets to a Swap Liquidity pool. - -**Tips** -Keep a small amount of KAVA in your wallet in case you want to include a fee. - -Avoid having a CDP liquidated by monitoring the collateral value, debt value, and liquidation price. If the collateral value drops below the liquidation price, your position will be liquidated. Assets from liquidated CDP’s are put up for auction. If that happens, the auction typically takes 8-24 hours and you can expect ~⅓ of the collateral back (not guaranteed). - -Some exchanges (like Binance) require a memo field for cross-chain transfers. If a memo is not included, those funds can be lost. -### How can I send assets to Kava? -To use assets on Kava, first move those assets to the Binance Chain (not Binance Smart Chain) and then to the Kava Chain. - -This [guide](https://medium.com/kava-labs/borrow-usdx-on-kavas-web-app-using-trust-wallet-8540ba61f7a4) walks you through the process. -### Do Kava transactions require fees? -Fees are optional. They can be included if the network becomes busy, and can be added to prioritize a transaction to complete faster. -### Do Kava transactions require gas? -All transactions on the Kava blockchain consume gas. - -The amount of gas consumed is proportional to the amount of computation and state access that the transaction requires. - -For large and/or complex transactions, users may have to increase the amount of gas that the transaction requests above the default value. diff --git a/docs/Education/FAQ/support.md b/docs/Education/FAQ/support.md deleted file mode 100644 index 5098ad84..00000000 --- a/docs/Education/FAQ/support.md +++ /dev/null @@ -1,55 +0,0 @@ -## Support - -### Where did my coins go? What is the deal with the hot wallet balance? -Check the status of the transaction by searching for your kava address on [Mintscan](https://www.mintscan.io/kava). - -If you don’t see your funds as expected, these are the most likely reasons: -- The deputy is running slowly and the transaction is still in progress -- Check to be sure that asset is visible in the Tokens tab in Trust Wallet. If the asset is not visible, search for it in the Manage tab and toggle it on. - -Every cross-chain swap has an auditable record. In times of high network traffic, the deputy might not complete transactions immediately. If you encounter this issue, please wait patiently. If your transaction has not completed or refunded after 24 hours, please contact the Kava team and send us the transaction ID. - -To operate cross-chain swaps, Binance must allocate a certain amount of funds for transfers into a hot wallet. As a security measure, the Binance team needs to manually refill the hot wallet from time to time. Otherwise, the rest of the cross-chain swap is completely automated. -### I have unstaked my coins, why are they still pending? -After unstaking KAVA, those coins are locked for 21 days. After that, they are released and can be used. -### Why can't I repay my CDP? -The total amount to close the position is the original loan amount plus accrued interest. - -When repaying a CDP, the remaining debt balance cannot be below 10 USDX. -If you try to repay your original principal only, the transaction will fail if the remaining interest would leave a debt balance of less than 10 USDX. - -If you need to purchase additional USDX to fully close out a position: -- Swap an asset for USDX on Kava Swap -- Purchase USDX on AscendEx -- Peer-to-peer transaction through [Kava TipBot](https://kavatipbot.com/) - -### I have enough balance, but it says I can't transfer because my balance is too low -Check if your balance contains vested (“locked”) coins or not. If so, you need to wait for the vesting period to complete. -### I got an error during a transaction -"Error during Broadcasting - could not broadcast transaction" -This error can result from: -- closing the app -- a problem with the connection -- attempting to repeatedly send the same transaction. - -Check for the transaction on the balances tab in the Kava app or the tokens tab (if you're using Cosmostation wallet) and see if it was successfully completed. If not, your tokens will still be there. - -“Error during Confirming - out of gas” -- This transaction requires more than the default amount of gas. -- Note the amount of “gasUsed” -- Attempt the transaction again, and select click “Advanced” below the fee slider to be able to manually set the gas amount. If you enter an amount greater than “gasUsed,” the transaction should complete. - -### Why are my transactions for 10 KAVA and 10 BNB showing up as 10,000,000 ukava and 1,000,000,000, bnb in Trust Wallet? -This is how the coins are represented in the source code. They represent the smallest indivisible unit of the currency. -‍ -- ukava is one -millionth (or 10^-6) of a KAVA coin -- bnb is one hundred-millionth (or 10^-8) of a BNB coin - -### My validator node is having problems -Please contact our team through [Discord](https://discord.com/invite/kQzh3Uv), [Telegram](https://t.me/kavalabs), or Slack. Describe the problem in full with steps to reproduce. - -Check the #validator-announcements channel in Discord for information regarding the potential need for an update. - -Feel free to message us and we will set up a private channel on Telegram or Slack. -### Somebody from Kava support messaged me in Telegram. Are they legitimate team members? -Kava team members never message first. Please report at @notoscam and block the account. The scammer might also imitate the account of a team member changing the letters in the username. If you need assistance, find the team member in the chat user list and send them a direct message. \ No newline at end of file diff --git a/docs/Education/application_process.md b/docs/Education/application_process.md deleted file mode 100644 index e80e3a56..00000000 --- a/docs/Education/application_process.md +++ /dev/null @@ -1,3 +0,0 @@ -# Application Process - -We are working on updating our entire documentation to provide a better user experience, please check back later! \ No newline at end of file diff --git a/docs/Education/dev_process/kava_dao_governance.md b/docs/Education/dev_process/kava_dao_governance.md deleted file mode 100644 index bff5d432..00000000 --- a/docs/Education/dev_process/kava_dao_governance.md +++ /dev/null @@ -1,3 +0,0 @@ -# Kava DAO Governance - -We are working on updating our entire documentation to provide a better user experience, please check back later! \ No newline at end of file diff --git a/docs/Education/dev_process/mainnet_upgrade.md b/docs/Education/dev_process/mainnet_upgrade.md deleted file mode 100644 index 1baf571f..00000000 --- a/docs/Education/dev_process/mainnet_upgrade.md +++ /dev/null @@ -1,3 +0,0 @@ -# Mainnet Upgrade - -We are working on updating our entire documentation to provide a better user experience, please check back later! \ No newline at end of file diff --git a/docs/Education/dev_process/testnet.md b/docs/Education/dev_process/testnet.md deleted file mode 100644 index 9ecea8d4..00000000 --- a/docs/Education/dev_process/testnet.md +++ /dev/null @@ -1,3 +0,0 @@ -# Testnet - -We are working on updating our entire documentation to provide a better user experience, please check back later! \ No newline at end of file diff --git a/docs/Education/getting_started.md b/docs/Education/getting_started.md deleted file mode 100644 index 08ed6811..00000000 --- a/docs/Education/getting_started.md +++ /dev/null @@ -1,88 +0,0 @@ -## Getting Started For Developers - -In order for developers to start building modules, they must install the following tools: - -1. [Go 1.6 or higher](https://golang.org/doc/install) -2. [Docker](https://docs.docker.com/get-docker/) - -### Go Programming Language -Go is a language developed and used by some of the largest companies in the world for server/networking applications. Go is used to develop modules and provides optimum performance and flexibility to blockchain developers. - -[A Tour Of Go](https://tour.golang.org/welcome/1) - -### Docker -Docker is a software containerization tool used to spin up and shut down Kava nodes and allows software portability between different operating systems & environments. It is also used to spin up multiple Kava nodes locally and handles basic networking between them with `docker compose`. - -[Docker Overview](https://docs.docker.com/get-started/overview/) - -### Set Up bash_profile -Once Go & Docker are installed, update your bash_profile to include the go path and an alias command for one of the tools we will use to handle Kava node interactions -``` -export PATH=/usr/local/go/bin:$PATH -export PATH=$HOME/go/bin:$PATH -export GOPATH=$HOME/go -export GO111MODULE=on - -alias dkvcli='docker exec -it generated_kavanode_1 kvcli' -``` -Make sure to source your bash profile or restart it for the changes to take place. - -## Getting The Kava Repository & Development Tools - -Once you have the core tools installed & set up, its now time to get the following repositories from Github: - - -- [kava](https://github.com/Kava-Labs/kava) - - Main Kava Repo that holds all modules -- [kvtool](https://github.com/Kava-Labs/kvtool) - - Dev tools to interact with a Kava node - -## Set Up a Local Blockchain - -Now that you have set up all the tools & repositories in your local machine its finally time to set up a local blockchain. - - - Open a terminal and change into the ```kvtool``` directory. - - Ensure Docker is running. - - Run ```make install``` in your terminal which will install ```kvtool``` in your machine. - - Ensure Docker is running. - - Run ```kvtool testnet bootstrap``` this command will build against the master branch from the kava project, initialize the Docker containers and finally starts a local chain. - - -Now that you have a local chain running, you can start utilizing the ```dkvcli``` that we set up an alias for. If for whatever reason ```dkvcli``` doesn't work, you can try the following: - - - Open a terminal and change into the ```kvtool``` directory. - - In the ```kvtool``` directory there should be a directory named ```full_configs``` change into it. - - Once at ```full_configs``` directory change into ```generated``` directory. - - Once you are at ```generated``` run the following command ```docker-compose exec kavanode bash```. - -This should open up a bash terminal inside a docker container that will give you access to the ```kvcli``` command line interface. You should see something similar to the snippet below after typing ```kvcli help```: -``` -bash-5.0# kvcli -Command line interface for interacting with kvd - -Usage: - kvcli [command] - -Available Commands: - status Query remote node for status - config Create or query an application CLI configuration file - query Querying subcommands - tx Transactions subcommands - - rest-server Start LCD (light-client daemon), a local REST server - - keys Add or view local private keys - - version Print the app version - help Help about any command - -Flags: - --chain-id string Chain ID of tendermint node - -e, --encoding string Binary encoding (hex|b64|btc) (default "hex") - -h, --help help for kvcli - --home string directory for config and data (default "/root/.kvcli") - -o, --output string Output format (text|json) (default "text") - --trace print out full stack trace on errors - -Use "kvcli [command] --help" for more information about a command. -``` \ No newline at end of file diff --git a/docs/Education/hello_kava.md b/docs/Education/hello_kava.md deleted file mode 100644 index f26a4c0d..00000000 --- a/docs/Education/hello_kava.md +++ /dev/null @@ -1,777 +0,0 @@ -# Building a Module - -In this tutorial we will be going over building a module in Kava to show how easy it is to build on top of the Kava ecosystem. This module will be simple in nature but will show how to set up and connect a module to Kava and can be used as a starting point for more complex modules. - - - - -## Set up -``` -this tutorial is based on the v44 cosmos version which Kava is currently migrating to, to follow this tutorial clone the kava repo but ensure you -clone the upgrade-v44 branch as the master branch is currently on v39 & ensure you have kvtool, docker & go installed on your machine. -git clone -b upgrade-v44 https://github.com/Kava-Labs/kava.git -``` -## Defining Protocol Buffer Types - -The first step in building a new Kava Module is to define our Module's types. To do that we use Protocol Buffers which is a used for serializing structured data and generating code for multiple target languages, Protocol Buffers are also smaller than JSON & XML so sending data around the network will be less expensive. [Learn More](https://developers.google.com/protocol-buffers). - -Our Protobuf files will all live in ```proto/kava``` directory. we will create a new directory with the new module ```greet``` and add the following files in the ```proto/greet/v1beta1/``` directory -``` -genesis.proto -greet.proto -query.proto -tx.proto -``` -### Defining The Greet Type -Inside the ```proto/greet/v1beta1/greet.proto``` file lets define our greet type: -``` -syntax = "proto3"; -package kava.greet.v1beta1; -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -option go_package = "github.com/kava-labs/kava/x/greet/types"; - -message Greet { -string owner = 1; -string id = 2; -string message = 3; -} -``` -Here we are saying that we have a Greet type that will have an owner, an id and a message that will contain the greet string. Once we have that defined we are ready to set up a way to create this greet message and query it. - -### Creating a new Greeting -Inside the ```proto/greet/v1beta1/tx.proto``` file lets define our Msg Type: -``` -syntax = "proto3"; -package kava.greet.v1beta1; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -option go_package = "github.com/kava-labs/kava/x/greet/types"; - -service Msg { - rpc CreateGreet(MsgCreateGreet) returns (MsgCreateGreetResponse); -} - -message MsgCreateGreet { -string message = 1; -string owner = 2; -} -message MsgCreateGreetResponse {} -``` -Now that we have defined how to create a new Greeting let's finish up by setting up our queries to view a specific greeting or all of them. - -One thing to note here is that any state changing actions are transactions and for that reason we put them in our ```tx.proto``` files, we essentially said we are creating a new state changing message & defined the types for that message in our proto file, we will later add clients to trigger state change, which in our case will be adding a new message to our chain. - -### Querying Greetings -Code inside the ```proto/greet/v1beta1/query.proto``` : -``` -syntax = "proto3"; - -package kava.greet.v1beta1; -option go_package = "github.com/kava-labs/kava/x/greet/types"; - -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; -import "cosmos_proto/cosmos.proto"; -import "kava/greet/v1beta1/greet.proto"; - -service Query { - rpc Greet(QueryGetGreetRequest) returns (QueryGetGreetResponse) { - option (google.api.http).get = "/kava/greet/v1beta1/greetings/{id}"; - } - rpc GreetAll(QueryAllGreetRequest) returns (QueryAllGreetResponse) { - option (google.api.http).get = "/kava/swap/v1beta1/greetings"; - } -} - - -message QueryGetGreetRequest { -string id = 1; -} - -message QueryGetGreetResponse { -Greet greeting = 1; -} - -message QueryAllGreetRequest { -cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -message QueryAllGreetResponse { -repeated Greet greetings = 1; -cosmos.base.query.v1beta1.PageResponse pagination = 2; -} -``` -Our ```query.proto``` now contains the types for our queries, we have defined a request type & a response type and those types will be returned once we trigger a query through the CLI, REST API, or Grpc. The response will follow the same structure regardless of the type of client initiating the request. - -We defined our query, tx, and greet proto files we finally need to set up the genesis file and then we are ready to generate these types. In the genesis file we will create a minimal ```genesis.proto``` for this tutorial to keep things simple. -``` -syntax = "proto3"; -package kava.greet.v1beta1; -import "kava/greet/v1beta1/greet.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; -import "cosmos_proto/cosmos.proto"; -option go_package = "github.com/kava-labs/kava/x/greet/types"; -// our gensis state message will be empty for this tutorial -message GenesisState {} -``` -Once all the files are filled in we are ready to generate our proto types. in the Kava Directory run ```make proto-gen ``` to generate the types, this will create a folder inside the ```x/greet``` and will contain the auto-generated proto types. - -## Developing Our Greet Module -we have successfully set up our Proto files & generated them, we now have a ```x/greet``` directory generated, this is where we will write our module's code. For starters we will define our module's types in a new file inside ```x/greet/types/greet.go```. - -### Setting up constants & importing packages -Let's set up some basic constants for our module to help with routing, & fetching items from our store. -``` -package types - -import ( - "fmt" - "strings" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/types/msgservice" -) - - - -// defined our module's constants such as name, routerkey -// and prefixes for getting items from the store -const ( - ModuleName = "greet" - StoreKey = ModuleName - RouterKey = ModuleName - QuerierRoute = ModuleName - GreetKey = "greet-value-" // used for getting a greeting from our store - GreetCountKey = "greet-count-" // used for getting count from out store - QueryGetGreeting = "get-greeting" // used for legacy querier routing - QueryListGreetings = "list-greetings"// used for legacy querier routing -) -// heler function simply returns []byte out of a prefix string -func KeyPrefix(p string) []byte { - return []byte(p) -} - -// returns default genesis state -func DefaultGenesisState() GenesisState { - return GenesisState{} -} - -// validates genesis state -func (gs GenesisState) Validate() error { - return nil -} -``` - -### Setting up our Msg for creating a new greeting -Our ```MsgCreateGreet``` struct was created when we generated our Proto Types, we now need to use that struct to implement the ```sdk.Msg``` interface such that we can create new greetings. the first thing we will do is defined an unnamed variable with the ```_``` syntax and have it implement the ```sdk.Msg``` type. This will help us catch unimplemented functions and guide us with syntax highlighting. - -``` -// MsgCreateGreet we defined it here to get type checking -//to make sure we are immplementing it correctly -var _ sdk.Msg = &MsgCreateGreet{} - - -// constructor for creating a new greeting -func NewMsgCreateGreet(owner string, message string) *MsgCreateGreet{ - return &MsgCreateGreet{ - Owner: owner, - Message: message, - } -} -// does a quick stateless validation on our new greeting -func (m *MsgCreateGreet) ValidateBasic() error { - // ensures address is valid - if _, err := sdk.AccAddressFromBech32(m.Owner); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid owner address", err) - } - // ensures the greeting is not empty - if len(strings.TrimSpace(m.Message)) == 0 { - return fmt.Errorf("must provide a greeting message") - } - return nil -} - -// gets the signer of the new message which will be the owner of the greeting -func (m *MsgCreateGreet) GetSigners() []sdk.AccAddress { - owner, err := sdk.AccAddressFromBech32(m.Owner); - if err != nil { - panic(err) - } - return []sdk.AccAddress{owner} -} -``` - -### Registering our Codec & interfaces -now that we have our ```MsgCreateGreet``` implement the ```sdk.Msg``` interface let's register our codec for marshaling/unmarshaling our greeting we will register both the deprecated legacy amino and the new Interface registry. -``` -// registers the marshal/unmarsahl for greating a new greeting for our legacy amino codec -func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino){ - cdc.RegisterConcrete(&MsgCreateGreet{}, "greet/CreateGreet", nil) -} - -// registers a module's interface types and their concrete implementations as proto.Message. -func RegisterInterfaces(registry types.InterfaceRegistry){ - registry.RegisterImplementations((*sdk.Msg)(nil), &MsgCreateGreet{}) - msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) -} - -var amino = codec.NewLegacyAmino() -var ModuleCdc = codec.NewAminoCodec(amino) -``` - -### Setting up a basic Keeper -we have finished up setting up our types, now it's time to implement our greet module's keeper, lets do that in a new folder & package named keeper, create ```x/greet/keeper/greet_keeper.go``` . - -### Setting up the Keeper Struct & imports -keepers are an abstraction over the state defined by a module, every module would have a keeper which would be used to access the state of that module, or if given access a keeper can also use other module's keepers by providing reference to the other module's keeper. -``` -package keeper - -import ( - "context" - "strconv" - "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/store/prefix" - sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/kava-labs/kava/x/greet/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -) - -type Keeper struct { - cdc codec.Codec // used to marshall and unmarshall structs from & to []byte - key sdk.StoreKey // grant access to the store -} - -// our constructor for creating a new Keeper for this module -func NewKeeper(c codec.Codec, k sdk.StoreKey) Keeper { - return Keeper{ - cdc: c, - key: k, - } -} -``` - -### Wiring up our methods for handling new transactions & queries -Now that we have our Keeper Struct written, let's create some receiver functions on our keeper to handle adding a new greeting & looking up a greeting. -``` -// get greet count will be used for setting an Id when a new greeting is created -func (k Keeper) GetGreetCount(ctx sdk.Context) int64 { - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetCountKey)) - byteKey := types.KeyPrefix(types.GreetCountKey) - bz := store.Get(byteKey) - if bz == nil { - return 0 - } - count, err := strconv.ParseInt(string(bz), 10, 64) - if err != nil { - panic("cannot decode count") - } - return count -} - -// sets the greet count -func (k Keeper) SetGreetCount(ctx sdk.Context, count int64){ - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetCountKey)) - key := types.KeyPrefix(types.GreetCountKey) - value := []byte(strconv.FormatInt(count, 10)) - store.Set(key, value) -} - -// creates a new greeting -func (k Keeper) CreateGreet(ctx sdk.Context, m types.MsgCreateGreet){ - count := k.GetGreetCount(ctx) - greet := types.Greet{ - Id: strconv.FormatInt(count, 10), - Owner: m.Owner, - Message: m.Message, - } - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetKey)) - key := types.KeyPrefix(types.GreetKey + greet.Id) - value := k.cdc.MustMarshal(&greet) - store.Set(key, value) - k.SetGreetCount(ctx, count + 1) -} - -// gets a greeting from the store -func (k Keeper) GetGreeting(ctx sdk.Context, key string) types.Greet { - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetKey)) - var Greet types.Greet - k.cdc.Unmarshal(store.Get(types.KeyPrefix(types.GreetKey + key)), &Greet) - return Greet -} - -// checks if a greeting exists by an id -func (k Keeper) HasGreet(ctx sdk.Context, id string) bool { - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetKey)) - return store.Has(types.KeyPrefix(types.GreetKey + id)) -} - -// gets the owner of a greeting -func (k Keeper) GetGreetOwner(ctx sdk.Context, key string) string { - return k.GetGreeting(ctx, key).Owner -} - -// gets a list of all greetings in the store -func (k Keeper) GetAllGreetings(ctx sdk.Context) (msgs []types.Greet){ - store := prefix.NewStore(ctx.KVStore(k.key), types.KeyPrefix(types.GreetKey)) - iterator := sdk.KVStorePrefixIterator(store, types.KeyPrefix(types.GreetKey)) - - defer iterator.Close() - - for ; iterator.Valid(); iterator.Next() { - var msg types.Greet - k.cdc.Unmarshal(iterator.Value(), &msg) - msgs = append(msgs, msg) - } - return -} -``` -### Handling queries - -We have added methods for interacting with greetings such as creating or reading them, now let's set up our two query services so we can route them to the correct method, we will set up our legacy Querier & gRPC querier below the methods we defined above on our keeper. - -``` -func (k Keeper) GreetAll(c context.Context, req *types.QueryAllGreetRequest) (*types.QueryAllGreetResponse, error){ - ctx := sdk.UnwrapSDKContext(c) - var greetings []*types.Greet - for _, g := range k.GetAllGreetings(ctx) { - var greeting = &g - greetings = append(greetings,greeting) - } - return &types.QueryAllGreetResponse{Greetings: greetings, Pagination: nil}, nil -} - -func (k Keeper) Greet(c context.Context, req *types.QueryGetGreetRequest) (*types.QueryGetGreetResponse, error){ - sdk.UnwrapSDKContext(c) - var greeting = k.GetGreeting(sdk.UnwrapSDKContext(c), req.Id) - return &types.QueryGetGreetResponse{Greeting: &greeting}, nil -} - - - - -// LEGACY QUERIER will be deperacted but for the sake of competeness this is how to set it up -func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) { - switch path[0] { - case types.QueryGetGreeting: - var getGreetRequest types.QueryGetGreetRequest - err := legacyQuerierCdc.UnmarshalJSON(req.Data, &getGreetRequest) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - val := k.GetGreeting(ctx, getGreetRequest.GetId()) - bz, err := legacyQuerierCdc.MarshalJSON(val) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil - - case types.QueryListGreetings: - val := k.GetAllGreetings(ctx) - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, val) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil - default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unknow request at %s query endpoint", types.ModuleName) - } - } -} -``` - -### Setting up a command to create a new greeting -let's set up a way for clients to submit a new greeting & query existing greetings, we can do that with a CLI, REST, & gRPC clients. for this tutorial we will focus on setting up our CLI client. create ```x/greet/client/cli/tx.go```. - -here We will define a command to create a new greeting: -``` -package cli - -import ( - "fmt" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/client/tx" - "github.com/kava-labs/kava/x/greet/types" - "github.com/spf13/cobra" -) - -func GetTxCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: types.ModuleName, - Short: fmt.Sprintf("%s transactions subcommands", types.ModuleName), - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - cmd.AddCommand(CmdCreateGreeting()) - return cmd -} - - -func CmdCreateGreeting() *cobra.Command { - cmd:= &cobra.Command{ - Use: "create-greeting [message]", - Short: "creates a new greetings", - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) error { - message := string(args[0]) - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - msg := types.NewMsgCreateGreet(clientCtx.GetFromAddress().String(), string(message)) - if err := msg.ValidateBasic(); err != nil { - return err - } - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) - }, - } - flags.AddTxFlagsToCmd(cmd) - return cmd -} -``` - -### Querying greetings -We will now set up two different commands for querying, one will be to list all greetings & the other will be to get a greeting by it's id. inside ```x/greet/cli/query.go```: - -``` -package cli - -import ( - "context" - "fmt" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/kava-labs/kava/x/greet/types" - "github.com/spf13/cobra" -) -// this is the parent query command for the greet module everytime we add a new command we will register it here -func GetQueryCmd(queryRoute string) *cobra.Command { -// Group todos queries under a subcommand - cmd := &cobra.Command{ - Use: types.ModuleName, - Short: fmt.Sprintf("Querying commands for the %s module", types.ModuleName), - DisableFlagParsing: true, - SuggestionsMinimumDistance: 2, - RunE: client.ValidateCmd, - } - - cmd.AddCommand(CmdListGreetings()) - cmd.AddCommand(CmdShowGreeting()) - return cmd -} - -// build the list greet command function -func CmdListGreetings() *cobra.Command { - cmd := &cobra.Command{ - Use: "list-greetings", - Short: "list all greetings", - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - pageReq, err := client.ReadPageRequest(cmd.Flags()) - if err != nil { - return err - } - queryClient := types.NewQueryClient(clientCtx) - params := &types.QueryAllGreetRequest{ - Pagination: pageReq, - } - - res, err := queryClient.GreetAll(context.Background(), params) - if err != nil { - return err - } - return clientCtx.PrintProto(res) - }, - } - flags.AddQueryFlagsToCmd(cmd) - return cmd -} - -// build the show greet command function -func CmdShowGreeting() *cobra.Command { - cmd := &cobra.Command{ - Use: "get-greeting [id]", - Short: "shows a greeting", - Args: cobra.ExactArgs(1), - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - queryClient := types.NewQueryClient(clientCtx) - params := &types.QueryGetGreetRequest{ - Id: args[0], - } - res, err := queryClient.Greet(context.Background(), params) - if err != nil { - return err - } - return clientCtx.PrintProto(res) - }, - } - flags.AddQueryFlagsToCmd(cmd) - return cmd -} - - -``` - -### Setting up our Module's package - -Now that we have all the basic functionality set up for our greet module, let's bring it all together and get our module ready to be used & tested, create a new file ```x/greet/module.go```. - -Here we will start by implementing our ```AppModuleBasic``` && ```AppModule``` interfaces. - -``` -package greet - - -import ( - "context" - "encoding/json" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/codec" - cdctypes "github.com/cosmos/cosmos-sdk/codec/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/gorilla/mux" - "github.com/grpc-ecosystem/grpc-gateway/runtime" - "github.com/kava-labs/kava/x/greet/client/cli" - "github.com/kava-labs/kava/x/greet/keeper" - "github.com/kava-labs/kava/x/greet/types" - "github.com/spf13/cobra" - abci "github.com/tendermint/tendermint/abci/types" -) - -var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} -) - -/* -The AppModuleBasic interface defines the independent methods modules need to implement -it follows this interface below -type AppModuleBasic interface { - Name() string - RegisterLegacyAminoCodec(*codec.LegacyAmino) - RegisterInterfaces(codectypes.InterfaceRegistry) - DefaultGenesis(codec.JSONMarshaler) json.RawMessage - ValidateGenesis(codec.JSONMarshaler, client.TxEncodingConfig, json.RawMessage) error - // client functionality - RegisterRESTRoutes(client.Context, *mux.Router) - RegisterGRPCRoutes(client.Context, *runtime.ServeMux) - GetTxCmd() *cobra.Command - GetQueryCmd() *cobra.Command -} -*/ - -type AppModuleBasic struct{} - -// Returns the name of the module as a string -func (AppModuleBasic) Name() string { - return types.ModuleName -} - -func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { - gs := types.DefaultGenesisState() - return cdc.MustMarshalJSON(&gs) -} - - -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { - return nil -} -// Registers the amino codec for the module, which is used to marshal -// and unmarshal structs to/from []byte in order to persist them in the module's KVStore. -func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino){ - types.RegisterLegacyAminoCodec(cdc) -} -// Registers a module's interface types and their concrete implementations as proto.Message -func (AppModuleBasic) RegisterInterfaces(registry cdctypes.InterfaceRegistry) { - types.RegisterInterfaces(registry) -} -// Registers gRPC routes for the module. -func (a AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) { - if err := types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)); err != nil { - panic(err) - } -} -// Registers the REST routes for the module. These routes will be used to map REST request to the module in order to process them -func (a AppModuleBasic) RegisterRESTRoutes(clientCtx client.Context, rtr *mux.Router) { } - -// Returns the root Tx command for the module. The subcommands of this root command are used by end-users -// to generate new transactions containing messages defined in the module -func (AppModuleBasic) GetTxCmd() *cobra.Command { - return cli.GetTxCmd() -} -// Return the root query command for the module. The subcommands of this root command are used by end-users -// to generate new queries to the subset of the state defined by the module. -func (AppModuleBasic) GetQueryCmd() *cobra.Command { - return cli.GetQueryCmd(types.StoreKey) -} - -// -------------------------------------APPMODULE BELOW------------------------------------------------- // - - - -/* -The AppModule interface defines the inter-dependent methods that modules need to implement -follows the interface below - type AppModule interface { - AppModuleGenesis - // registers - RegisterInvariants(sdk.InvariantRegistry) - // routes - Route() sdk.Route - // Deprecated: use RegisterServices - QuerierRoute() string - // Deprecated: use RegisterServices - LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier - // RegisterServices allows a module to register services - RegisterServices(Configurator) - // ABCI - BeginBlock(sdk.Context, abci.RequestBeginBlock) - EndBlock(sdk.Context, abci.RequestEndBlock) []abci.ValidatorUpdate - } -*/ -type AppModule struct{ - AppModuleBasic - keeper keeper.Keeper -} -// constructor -func NewAppModule(keeper keeper.Keeper) AppModule { - return AppModule{ - AppModuleBasic: AppModuleBasic{}, - keeper: keeper, - } -} -// Returns the route for messages to be routed to the module by BaseApp. -func (am AppModule) Name() string { - return am.AppModuleBasic.Name() -} - -// registers the invariants of the module. If an invariant deviates from its predicted value, -// the InvariantRegistry triggers appropriate logic (most often the chain will be halted). -func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { } - -// Returns the route for messages to be routed to the module by BaseApp. -func (AppModule) Route() sdk.Route { - return sdk.Route{} -} - - -// Returns the name of the module's query route, for queries to be routes to the module by BaseApp.deprecated -func (AppModule) QuerierRoute() string { - return types.QuerierRoute -} - -// Returns a querier given the query path, in order to process the query. -func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) -} - -func (AppModule) ConsensusVersion() uint64 { - return 1 -} - -// Allows a module to register services. -func (am AppModule) RegisterServices(cfg module.Configurator) { - types.RegisterMsgServer(cfg.MsgServer(), NewMsgServerImpl(am.keeper)) - types.RegisterQueryServer(cfg.QueryServer(), am.keeper) -} - -func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.RawMessage) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - -func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := types.DefaultGenesisState() - return cdc.MustMarshalJSON(&gs) -} - -func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) { } -func (am AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - - - -// ----------------------------------MSGSERVER REGISTER------------------------// -var _ types.MsgServer = msgServer{} -type msgServer struct { - keeper keeper.Keeper -} - -func (m msgServer) CreateGreet(c context.Context, msg *types.MsgCreateGreet) (*types.MsgCreateGreetResponse, error) { - ctx := sdk.UnwrapSDKContext(c) - m.keeper.CreateGreet(ctx, types.MsgCreateGreet{Owner: msg.Owner, Message: msg.Message}) - return &types.MsgCreateGreetResponse{}, nil -} - -func NewMsgServerImpl(keeper keeper.Keeper) types.MsgServer { - return &msgServer{keeper: keeper} -} -``` - -### Hooking up our module inside App.go - -inside ```app/app.go``` start off importing the greet module, it's types & keeper packages and add them to the following places: - -1. ```module.NewBasicManager()``` add ```greet.AppModuleBasic{}``` -2. ```type App struct {}``` add ```greetkeeper.Keeper``` -3. ```sdk.NewKVStoreKeys()``` inside ```NewApp``` func add ```greettypes.StoreKey``` -4. inside ```NewApp``` func add ```app.greetKeeper = greetKeeper.NewKeeper()``` and add arguments ```appCodec``` & ```keys[greettypes.StoreKey]``` -5. inside ```NewApp``` find where we define ```app.mm``` & add ```greet.NewAppModule(app.greetKeeper),``` -6. finally add the greet module's name to ```SetOrderBeginBlockers```, ```SetOrderEndBlockers``` && ```SetOrderInitGenesis``` - -## Testing our new Module - -1. inside the root of our directory run ```docker build -t kava/kava:tutorial-demo .``` -2. find the directory for ```kvtool``` and open in your favorite code editor -3. run ```kvtool testnet gen-config kava --kava.configTemplate upgrade-v44``` which will create a bunch of files inside ```full_configs/generated``` -4. open up the two ```docker-compose.yaml``` files the one inside ```generated``` & the one inside ```generated/kava``` and change the image to point to ```kava/kava:tutorial-demo``` this will point to the local image we just built -5. change into the ```full_configs/generated``` directory and run ```docker compose up -d``` -6. now run ```docker compose exec kavanode bash``` to bash into our ```kava``` cli inside the running container - -We should now have access to our greet commands that we defined first we will test creating a new greeting, for that we will run the following command: - -```kava tx greet create-greeting "hello world from kava chain" --from whale``` - -now let's test to see if the greeting message is able to be queried: - -```kava q greet list-greetings``` - -We should see something like this below: - -``` -greetings: -- id: "0" - message: hello world from kava chain - owner: kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc -pagination: null -``` - -Now let's test if we can query the greeting by it's id which in our case will be ```"0"```, run the following: - -```kava q greet get-greeting 0``` - -We should see: -``` -greeting: - id: "0" - message: hello world from kava chain - owner: kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc -``` - diff --git a/docs/Education/lite_paper.md b/docs/Education/lite_paper.md deleted file mode 100644 index abe9a443..00000000 --- a/docs/Education/lite_paper.md +++ /dev/null @@ -1,3 +0,0 @@ -# Lite Paper - -We are working on updating our entire documentation to provide a better user experience, please check back later! \ No newline at end of file diff --git a/docs/Education/user_actions/Governance/Vote.md b/docs/Education/user_actions/Governance/Vote.md deleted file mode 100644 index d53c2e48..00000000 --- a/docs/Education/user_actions/Governance/Vote.md +++ /dev/null @@ -1,50 +0,0 @@ - -## kava tx committee vote - -Vote for an active proposal - -### Synopsis - -Submit a ```[yes/no/abstain]``` vote for the proposal with id ```[proposal-id]```. - -``` -kava tx committee vote [proposal-id] [vote] [flags] -``` - -### Examples - -``` -kava tx committee vote 2 yes -``` - -### Options - -``` - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for vote - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands - -``` - --chain-id string Chain ID of tendermint node -``` - diff --git a/docs/Education/user_actions/Governance/committee.md b/docs/Education/user_actions/Governance/committee.md deleted file mode 100644 index 535b4d26..00000000 --- a/docs/Education/user_actions/Governance/committee.md +++ /dev/null @@ -1,95 +0,0 @@ - -## kava tx gov submit-proposal committee - -Submit a governance proposal to change a committee. - -### Synopsis - -Submit a governance proposal to create, alter, or delete a committee. - -The proposal file must be the json encoded form of the proposal type you want to submit. -For example, to create or update a committee: -``` -{ - "type": "kava/CommitteeChangeProposal", - "value": { - "title": "A Title", - "description": "A description of this proposal.", - "new_committee": { - "type": "kava/MemberCommittee", - "value": { - "base_committee": { - "id": "1", - "description": "The description of this committee.", - "members": [ - "kava182k5kyx9sy4ap624gm9gukr3jfj7fdx8jzrdgq" - ], - "permissions": [ - { - "type": "kava/SimpleParamChangePermission", - "value": { - "allowed_params": [ - { - "subspace": "cdp", - "key": "CircuitBreaker" - } - ] - } - } - ], - "vote_threshold": "0.800000000000000000", - "proposal_duration": "604800000000000", - "tally_option": "FirstPastThePost" - } - } - } - } -} -``` -and to delete a committee: -``` -{ - "type": "kava/CommitteeDeleteProposal", - "value": { - "title": "A Title", - "description": "A description of this proposal.", - "committee_id": "1" - } -} -``` - -``` -kava tx gov submit-proposal committee [proposal-file] [deposit] [flags] -``` - -### Options - -``` - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for committee - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands - -``` - --chain-id string Chain ID of tendermint node -``` - diff --git a/docs/Education/user_actions/Governance/param-change.md b/docs/Education/user_actions/Governance/param-change.md deleted file mode 100644 index cf23a39b..00000000 --- a/docs/Education/user_actions/Governance/param-change.md +++ /dev/null @@ -1,80 +0,0 @@ - -## kava tx gov submit-proposal param-change - -Submit a parameter change proposal - -### Synopsis - -Submit a parameter proposal along with an initial deposit. -The proposal details must be supplied via a JSON file. For values that contains -objects, only non-empty fields will be updated. - -IMPORTANT: Currently parameter changes are evaluated but not validated, so it is -very important that any "value" change is valid (ie. correct type and within bounds) -for its respective parameter, eg. "MaxValidators" should be an integer and not a decimal. - -Proper vetting of a parameter change proposal should prevent this from happening -(no deposits should occur during the governance process), but it should be noted -regardless. - -Example: - -``` -$ kava tx gov submit-proposal param-change --from= -``` - -Where proposal.json contains: -``` -{ - "title": "Staking Param Change", - "description": "Update max validators", - "changes": [ - { - "subspace": "staking", - "key": "MaxValidators", - "value": 105 - } - ], - "deposit": [ - { - "denom": "stake", - "amount": "10000" - } - ] -} -``` -``` -kava tx gov submit-proposal param-change [proposal-file] [flags] -``` - -### Options - -``` - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for param-change - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands - -``` - --chain-id string Chain ID of tendermint node -``` - diff --git a/docs/Education/user_actions/Lend/hard_borrow.md b/docs/Education/user_actions/Lend/hard_borrow.md deleted file mode 100644 index d9f32093..00000000 --- a/docs/Education/user_actions/Lend/hard_borrow.md +++ /dev/null @@ -1,50 +0,0 @@ -# Borrow - -Borrow tokens from the hard protocol - -## Command -``` -kava tx hard borrow -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```hard```, then define the action which is ```borrow``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|amount| amount & name (no spaces) - - - -### Example -``` -kava tx hard borrow 1000000000ukava --from -``` - -### Options -``` - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for borrow - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - --chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Lend/hard_deposit.md b/docs/Education/user_actions/Lend/hard_deposit.md deleted file mode 100644 index a7a37481..00000000 --- a/docs/Education/user_actions/Lend/hard_deposit.md +++ /dev/null @@ -1,53 +0,0 @@ -# Deposit - -Deposit coins to hard - -## Command -``` -kava tx hard deposit -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```hard```, then define the action which is ```deposit``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|amount| amount & name (no spaces) - - - -### Example -``` -kava tx hard deposit 10000000bnb --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for deposit - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Lend/hard_repay.md b/docs/Education/user_actions/Lend/hard_repay.md deleted file mode 100644 index 288735b1..00000000 --- a/docs/Education/user_actions/Lend/hard_repay.md +++ /dev/null @@ -1,56 +0,0 @@ -# Repay - -Repay tokens to the hard protocol - -## Command -``` -kava tx hard repay -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```hard```, then define the action which is ```repay``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|amount| amount & name (no spaces) - - - -### Example -``` -kava tx hard repay 1000000000ukava --from -kava tx hard repay 1000000000ukava,25000000000bnb --from -kava tx hard repay 1000000000ukava,25000000000bnb --owner --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for repay - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - --owner string original borrower's address whose loan will be repaid - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Lend/hard_withdraw.md b/docs/Education/user_actions/Lend/hard_withdraw.md deleted file mode 100644 index 1e166e50..00000000 --- a/docs/Education/user_actions/Lend/hard_withdraw.md +++ /dev/null @@ -1,53 +0,0 @@ -# Withdraw - -Withdraw coins from hard - -## Command -``` -kava tx hard withdraw -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```hard```, then define the action which is ```withdraw``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|amount| amount & name (no spaces) - - - -### Example -``` -kava tx hard withdraw 10000000bnb --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for withdraw - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Mint/cdp_create.md b/docs/Education/user_actions/Mint/cdp_create.md deleted file mode 100644 index def06f59..00000000 --- a/docs/Education/user_actions/Mint/cdp_create.md +++ /dev/null @@ -1,51 +0,0 @@ -# Create New CDP - -Create a new cdp, depositing some collateral and drawing some debt. - -## Command -``` -kava tx cdp create -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```cdp```, then define the action which is ```create``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|collateral| amount & name (no spaces) -2|debt| amount & name (no spaces) -3|collateral-type| name - - - -### Example -``` -kava tx cdp create 10000000uatom 1000usdx atom-a --from myKeyName -``` - -### Options -``` --a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for create - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands -``` ---chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Mint/cdp_deposit.md b/docs/Education/user_actions/Mint/cdp_deposit.md deleted file mode 100644 index 8a26925d..00000000 --- a/docs/Education/user_actions/Mint/cdp_deposit.md +++ /dev/null @@ -1,51 +0,0 @@ -# Add Collateral - -Add collateral to an existing cdp. - -## Command -``` -kava tx cdp deposit -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```cdp```, then define the action which is ```deposit``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|owner-addr| kava address -2|collateral| amount & name (no spaces) -3|collateral-type| name - - - -### Example -``` -kava tx cdp deposit kava15qdefkmwswysgg4qxgqpqr35k3m49pkx2jdfnw 10000000uatom atom-a --from myKeyName -``` - -### Options -``` --a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for deposit - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands -``` - --chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Mint/cdp_draw.md b/docs/Education/user_actions/Mint/cdp_draw.md deleted file mode 100644 index a7b96fcf..00000000 --- a/docs/Education/user_actions/Mint/cdp_draw.md +++ /dev/null @@ -1,51 +0,0 @@ -# Draw Debt - -Create debt in an existing cdp and send the newly minted asset to your account. - -## Command -``` -kava tx cdp draw -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```cdp```, then define the action which is ```draw``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|collateral-type| name -2|debt| amount & name (no spaces) - - - - -### Example -``` -kava tx cdp draw atom-a 1000usdx --from myKeyName -``` - -### Options -``` --a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for draw - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands -``` - --chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Mint/cdp_repay.md b/docs/Education/user_actions/Mint/cdp_repay.md deleted file mode 100644 index 87658b32..00000000 --- a/docs/Education/user_actions/Mint/cdp_repay.md +++ /dev/null @@ -1,53 +0,0 @@ -# Repay Debt - -Repay debt to an existing cdp - -## Command -``` -kava tx cdp repay -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```cdp```, then define the action which is ```repay``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|collateral-name| name -2|debt| amount & name (no spaces) - - - -### Example -``` -kava tx cdp repay atom-a 1000usdx --from myKeyName -``` - -### Options -``` --a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for repay - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - - --chain-id string Chain ID of tendermint node - -``` - -### Options inherited from parent commands -``` ---chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Mint/cdp_withdraw.md b/docs/Education/user_actions/Mint/cdp_withdraw.md deleted file mode 100644 index 04450477..00000000 --- a/docs/Education/user_actions/Mint/cdp_withdraw.md +++ /dev/null @@ -1,51 +0,0 @@ -# Remove Collateral - -Withdraw collateral from an existing cdp - -## Command -``` -kava tx cdp withdraw -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```cdp```, then define the action which is ```withdraw``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|owner-addr| kava address -2|collateral| amount & name (no spaces) -3|collateral-type| name - - - -### Example -``` -kava tx cdp withdraw kava15qdefkmwswysgg4qxgqpqr35k3m49pkx2jdfnw 10000000uatom atom-a --from myKeyName -``` - -### Options -``` --a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for withdraw - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation -``` - -### Options inherited from parent commands -``` - --chain-id string Chain ID of tendermint node -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Swap/swap_deposit.md b/docs/Education/user_actions/Swap/swap_deposit.md deleted file mode 100644 index 0605f2dc..00000000 --- a/docs/Education/user_actions/Swap/swap_deposit.md +++ /dev/null @@ -1,57 +0,0 @@ -# Deposit - -Deposit coins to a swap liquidity pool - -## Command -``` -kava tx swap deposit -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```swap```, then define the action which is ```deposit``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|tokenA| amount & name (no spaces) -2|tokenB| amount & name (no spaces) -3|slippage| percentage float -4|deadline| deadline block - - - - -### Example -``` -kava tx swap deposit 10000000ukava 10000000usdx 0.01 1624224736 --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for deposit - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Swap/swap_tokens.md b/docs/Education/user_actions/Swap/swap_tokens.md deleted file mode 100644 index 5b46a035..00000000 --- a/docs/Education/user_actions/Swap/swap_tokens.md +++ /dev/null @@ -1,56 +0,0 @@ -# Swap Tokens - -Swap an exact amount of token a for token b - -## Command -``` -kava tx swap swap-exact-for-tokens -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```swap```, then define the action which is ```swap-exact-for-tokens``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|exactCoinA| exact amount & name (no spaces) -2|coinB| amount & name (no spaces) -3|slippage| percentage float -4|deadline| timestamp - - - -### Example -``` -kava tx swap swap-exact-for-tokens 1000000ukava 5000000usdx 0.01 1624224736 --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for swap-exact-for-tokens - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/Swap/swap_withdraw.md b/docs/Education/user_actions/Swap/swap_withdraw.md deleted file mode 100644 index 268edd57..00000000 --- a/docs/Education/user_actions/Swap/swap_withdraw.md +++ /dev/null @@ -1,57 +0,0 @@ -# Withdraw - -Withdraw coins from a swap liquidity pool - -## Command -``` -kava tx swap withdraw -``` - -Using ```kava``` call the ```tx``` subcommand followed by the module name which is```swap```, then define the action which is ```withdraw``` and finally follow up with required arguments or flags. - -### Arguments -position|name|expects -|--|--|--| -1|shares| number of shares -2|minCoinA| amount & name (no spaces) -3|minCoinB| amount & name (no spaces) -4|deadline| timestamp - - - - -### Example -``` -kava tx swap withdraw 153000 10000000ukava 20000000usdx 176293740 --from -``` - -### Options -``` - - -a, --account-number uint The account number of the signing account (offline mode only) - -b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync") - --dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it - --fees string Fees to pay along with transaction; eg: 10uatom - --from string Name or address of private key with which to sign - --gas string gas limit to set per-transaction; set to "auto" to calculate required gas automatically (default 200000) (default "200000") - --gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1) - --gas-prices string Gas prices to determine the transaction fee (e.g. 10uatom) - --generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase is not accessible and the node operates offline) - -h, --help help for withdraw - --indent Add indent to JSON response - --keyring-backend string Select keyring's backend (os|file|test) (default "os") - --ledger Use a connected Ledger device - --memo string Memo to send along with transaction - --node string : to tendermint rpc interface for this chain (default "tcp://localhost:26657") - -s, --sequence uint The sequence number of the signing account (offline mode only) - --trust-node Trust connected full node (don't verify proofs for responses) (default true) - -y, --yes Skip tx broadcasting prompt confirmation - -``` - -### Options inherited from parent commands -``` - - --chain-id string Chain ID of tendermint node - -``` \ No newline at end of file diff --git a/docs/Education/user_actions/quick_guide.md b/docs/Education/user_actions/quick_guide.md deleted file mode 100644 index afc564be..00000000 --- a/docs/Education/user_actions/quick_guide.md +++ /dev/null @@ -1,76 +0,0 @@ - -# Quick Reference - - -### Get a list of all keys -``` -kava keys list -``` - -### Query Account -``` -kava q account -``` - -### View Staking Delegations -``` -kava q staking delegations -``` - -### Claim staking rewards -``` -kava tx distribution withdraw-all-rewards --gas 650000 --gas-prices 0.01ukava --from -``` - -### Querying outstanding staking rewards -``` -kava q distribution rewards -``` - -### Claim staking from individual validator -``` -kava tx distribution withdraw-rewards --gas 650000 --gas-prices 0.01ukava --from -``` - -### Claiming KAVA Delegator rewards (yielding HARD and SWP) -``` -kava tx incentive claim-delegator --multiplier hard=large,swp=large --from --gas 800000 --gas-prices 0.01ukava -``` - -### Querying outstanding HARD rewards -``` -kava q incentive rewards --type delegator --owner -``` - -### View HARD Incentives -``` -kava q incentive rewards --type hard --owner -``` - -### Claim HARD Incentives -``` -kava tx incentive claim-hard --multiplier hard=large --multiplier ukava=large --from --gas 800000 --gas-prices 0.01ukava -``` - -### Send Coins -``` -kava tx bank send --memo [memo] --gas-prices 0.01ukava -``` - -### Query Transaction Status Using TX Hash -``` -kava q tx -``` - -### Query Transactions Using events -``` -kava q txs --events message.actions=swap_deposit -``` - - -### Adding a Key to Ledger -``` -kava keys add --account --legacy-hd-path --ledger -``` \ No newline at end of file diff --git a/docs/LICENSE.md b/docs/LICENSE.md deleted file mode 100644 index ab20c300..00000000 --- a/docs/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2020 Kava Labs, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/docs/REWARDS.md b/docs/REWARDS.md deleted file mode 100644 index ab2d4696..00000000 --- a/docs/REWARDS.md +++ /dev/null @@ -1,33 +0,0 @@ -# Become a Founding Member of Kava - -> ### Validate & Earn Tokens - -Every project begins with those brave few who have vision and grit. Fortune favors the bold, and the Kava community honors validators that participate in testnets and the mainnet launch with a badge commemorating their early validator services and entitling them to Kava tokens. - -## Earn Your First Badge! - -| | | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| |

The “Founder” Badge

Kava founders helped secure the network before it was the cool thing to do. Participate in the transition from Testnet #1 to Testnet #2 and stay live through Mainnet launch.

Reward

  • 3,000 KAVA

Qualification

  • Validate at least one (1) precommit of Testnet #1
  • Validate at least 90% of precommits for Testnet #2
| - -## Keep Going! - -| | | -| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| |

The “Founder PLUS” Badge

Success doesn’t follow from time and place alone, it requires persistence. Secure Kava as it goes live to the world and remain highly available as it upgrades in Mainnet environment.

Reward

  • 3,000 KAVA

Qualification

  • Validate at least 90% of precommits for the first six (6) consecutive thirty (30) day periods.
  • Obtain “Founder” badge
| - -### General Qualifications - -- “Founder” badges restricted to first 100 Kava validators, measured by timestamp of first precommit. -- Only available to residents outside the following countries: - - Afghanistan, Balkans, Belarus, Burma (Myanmar), Burundi, Cambodia, the Cayman Islands, Central African Republic, the People’s Republic of China, Cote D'Ivoire (Ivory Coast), Cuba, the Democratic Republic of Congo, Egypt, Guinea, Guinea-Bissau, Haiti, Iran, Iraq, Lebanon, Liberia, Libya, Maldives, Mali, Nicaragua, North Korea, Serbia, Somalia, Sudan and Darfur, South Sudan, Syria, Thailand, Tunisia, Turkey, the Crimea region of Ukraine, Ukraine/Russia, United States, Venezuela, Yemen, Zimbabwe -- Kava badge rewards are not available to entities that participated in the Kava fundraiser. -- Subject to registration and completion of KYC requirements. We will update participants on KYC proceedures at the end of testnet #1. - -### Get Started - -Follow the documentation [here](https://github.com/Kava-Labs/kava-devnet) to begin validating! - -### Join the conversation - -Join our community channels on [Riot](https://riot.im/app/#/room/#kava-validators:matrix.org) and [Telegram](https://t.me/kavalabs) to stay up to date and get your questions answered! _And make sure to watch out for future badge announcements!_ diff --git a/docs/communitytools.md b/docs/communitytools.md deleted file mode 100644 index 8e56a06f..00000000 --- a/docs/communitytools.md +++ /dev/null @@ -1,54 +0,0 @@ - - -# Community Tools - -The Kava community has developed some amazing tools and services. If you've built something great on, for, or in support of the Kava ecosystem let us know and we'll add it to this list. - -## User Interfaces - -- [Kava Web App](https://app.kava.io/) -- Cosmostation Mobile App: [App Store](https://apps.apple.com/us/app/cosmostation/id1459830339), [Play Store](https://play.google.com/store/apps/details?id=wannabit.io.cosmostaion&hl=en) -- Frontier Mobile App: [App Store](https://apps.apple.com/us/app/frontier-defi-wallet/id1482380988), [Play Store](https://play.google.com/store/apps/details?id=com.frontierwallet&hl=en) - -## Explorers - -- [Mintscan](https://kava.mintscan.io/) by Cosmostation -- [Big Dipper](https://kava.bigdipper.live/) by Forbole -- [PING.pub](https://kava.ping.pub/#/parameter) -- [KAVAScan](https://kavascan.com) - -## For Validators - -- [QuickSync](https://kava.quicksync.io/) chain snapshots - -## Staking - -- [Staking rewards calculator](https://www.stakingrewards.com/earn/kava/calculate) - -### Staking Providers - -Listed in alphabetical order. - -- [ATEAM](https://nodeateam.com/) -- [B-Harvest](https://bharvest.io/) -- [BNB48 Club](https://www.bnb48.club/) -- [Binance Staking](https://www.binance.com/en/earn) -- [ChainLayer](https://www.chainlayer.io/) -- [Chorus One](https://chorus.one/) -- [Cosmostation](https://www.cosmostation.io/) -- [Figment](https://figment.io/protocols/kava/) -- [Forbole](https://www.forbole.com/) -- [Huboi Pool](https://www.huobipool.com/) -- [Lemniscap](https://lemniscap.com/) -- [Kraken](https://www.kraken.com/) -- [OKEx Pool](https://www.okex.com/pool) -- [P2P](https://p2p.org/) -- [pylonvalidator](https://pylonvalidator.com/) -- [sikka](https://sikka.tech/) -- [SNZ Pool](https://snzholding.com/pool.html) -- [StakeWith.Us](https://www.stakewith.us/) -- [Staked](https://staked.us/) -- [stake.fish](https://stake.fish/en/) diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md deleted file mode 100644 index e141ce27..00000000 --- a/docs/core/proto-docs.md +++ /dev/null @@ -1,5442 +0,0 @@ - -# Protobuf Documentation - - -## Table of Contents - -- [kava/auction/v1beta1/auction.proto](#kava/auction/v1beta1/auction.proto) - - [BaseAuction](#kava.auction.v1beta1.BaseAuction) - - [CollateralAuction](#kava.auction.v1beta1.CollateralAuction) - - [DebtAuction](#kava.auction.v1beta1.DebtAuction) - - [SurplusAuction](#kava.auction.v1beta1.SurplusAuction) - - [WeightedAddresses](#kava.auction.v1beta1.WeightedAddresses) - -- [kava/auction/v1beta1/genesis.proto](#kava/auction/v1beta1/genesis.proto) - - [GenesisState](#kava.auction.v1beta1.GenesisState) - - [Params](#kava.auction.v1beta1.Params) - -- [kava/auction/v1beta1/query.proto](#kava/auction/v1beta1/query.proto) - - [QueryAuctionRequest](#kava.auction.v1beta1.QueryAuctionRequest) - - [QueryAuctionResponse](#kava.auction.v1beta1.QueryAuctionResponse) - - [QueryAuctionsRequest](#kava.auction.v1beta1.QueryAuctionsRequest) - - [QueryAuctionsResponse](#kava.auction.v1beta1.QueryAuctionsResponse) - - [QueryNextAuctionIDRequest](#kava.auction.v1beta1.QueryNextAuctionIDRequest) - - [QueryNextAuctionIDResponse](#kava.auction.v1beta1.QueryNextAuctionIDResponse) - - [QueryParamsRequest](#kava.auction.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.auction.v1beta1.QueryParamsResponse) - - - [Query](#kava.auction.v1beta1.Query) - -- [kava/auction/v1beta1/tx.proto](#kava/auction/v1beta1/tx.proto) - - [MsgPlaceBid](#kava.auction.v1beta1.MsgPlaceBid) - - [MsgPlaceBidResponse](#kava.auction.v1beta1.MsgPlaceBidResponse) - - - [Msg](#kava.auction.v1beta1.Msg) - -- [kava/bep3/v1beta1/bep3.proto](#kava/bep3/v1beta1/bep3.proto) - - [AssetParam](#kava.bep3.v1beta1.AssetParam) - - [AssetSupply](#kava.bep3.v1beta1.AssetSupply) - - [AtomicSwap](#kava.bep3.v1beta1.AtomicSwap) - - [Params](#kava.bep3.v1beta1.Params) - - [SupplyLimit](#kava.bep3.v1beta1.SupplyLimit) - - - [SwapDirection](#kava.bep3.v1beta1.SwapDirection) - - [SwapStatus](#kava.bep3.v1beta1.SwapStatus) - -- [kava/bep3/v1beta1/genesis.proto](#kava/bep3/v1beta1/genesis.proto) - - [GenesisState](#kava.bep3.v1beta1.GenesisState) - -- [kava/bep3/v1beta1/query.proto](#kava/bep3/v1beta1/query.proto) - - [AssetSupplyResponse](#kava.bep3.v1beta1.AssetSupplyResponse) - - [AtomicSwapResponse](#kava.bep3.v1beta1.AtomicSwapResponse) - - [QueryAssetSuppliesRequest](#kava.bep3.v1beta1.QueryAssetSuppliesRequest) - - [QueryAssetSuppliesResponse](#kava.bep3.v1beta1.QueryAssetSuppliesResponse) - - [QueryAssetSupplyRequest](#kava.bep3.v1beta1.QueryAssetSupplyRequest) - - [QueryAssetSupplyResponse](#kava.bep3.v1beta1.QueryAssetSupplyResponse) - - [QueryAtomicSwapRequest](#kava.bep3.v1beta1.QueryAtomicSwapRequest) - - [QueryAtomicSwapResponse](#kava.bep3.v1beta1.QueryAtomicSwapResponse) - - [QueryAtomicSwapsRequest](#kava.bep3.v1beta1.QueryAtomicSwapsRequest) - - [QueryAtomicSwapsResponse](#kava.bep3.v1beta1.QueryAtomicSwapsResponse) - - [QueryParamsRequest](#kava.bep3.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.bep3.v1beta1.QueryParamsResponse) - - - [Query](#kava.bep3.v1beta1.Query) - -- [kava/bep3/v1beta1/tx.proto](#kava/bep3/v1beta1/tx.proto) - - [MsgClaimAtomicSwap](#kava.bep3.v1beta1.MsgClaimAtomicSwap) - - [MsgClaimAtomicSwapResponse](#kava.bep3.v1beta1.MsgClaimAtomicSwapResponse) - - [MsgCreateAtomicSwap](#kava.bep3.v1beta1.MsgCreateAtomicSwap) - - [MsgCreateAtomicSwapResponse](#kava.bep3.v1beta1.MsgCreateAtomicSwapResponse) - - [MsgRefundAtomicSwap](#kava.bep3.v1beta1.MsgRefundAtomicSwap) - - [MsgRefundAtomicSwapResponse](#kava.bep3.v1beta1.MsgRefundAtomicSwapResponse) - - - [Msg](#kava.bep3.v1beta1.Msg) - -- [kava/cdp/v1beta1/cdp.proto](#kava/cdp/v1beta1/cdp.proto) - - [CDP](#kava.cdp.v1beta1.CDP) - - [Deposit](#kava.cdp.v1beta1.Deposit) - - [OwnerCDPIndex](#kava.cdp.v1beta1.OwnerCDPIndex) - - [TotalCollateral](#kava.cdp.v1beta1.TotalCollateral) - - [TotalPrincipal](#kava.cdp.v1beta1.TotalPrincipal) - -- [kava/cdp/v1beta1/genesis.proto](#kava/cdp/v1beta1/genesis.proto) - - [CollateralParam](#kava.cdp.v1beta1.CollateralParam) - - [DebtParam](#kava.cdp.v1beta1.DebtParam) - - [GenesisAccumulationTime](#kava.cdp.v1beta1.GenesisAccumulationTime) - - [GenesisState](#kava.cdp.v1beta1.GenesisState) - - [GenesisTotalPrincipal](#kava.cdp.v1beta1.GenesisTotalPrincipal) - - [Params](#kava.cdp.v1beta1.Params) - -- [kava/cdp/v1beta1/query.proto](#kava/cdp/v1beta1/query.proto) - - [CDPResponse](#kava.cdp.v1beta1.CDPResponse) - - [QueryAccountsRequest](#kava.cdp.v1beta1.QueryAccountsRequest) - - [QueryAccountsResponse](#kava.cdp.v1beta1.QueryAccountsResponse) - - [QueryCdpRequest](#kava.cdp.v1beta1.QueryCdpRequest) - - [QueryCdpResponse](#kava.cdp.v1beta1.QueryCdpResponse) - - [QueryCdpsRequest](#kava.cdp.v1beta1.QueryCdpsRequest) - - [QueryCdpsResponse](#kava.cdp.v1beta1.QueryCdpsResponse) - - [QueryDepositsRequest](#kava.cdp.v1beta1.QueryDepositsRequest) - - [QueryDepositsResponse](#kava.cdp.v1beta1.QueryDepositsResponse) - - [QueryParamsRequest](#kava.cdp.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.cdp.v1beta1.QueryParamsResponse) - - [QueryTotalCollateralRequest](#kava.cdp.v1beta1.QueryTotalCollateralRequest) - - [QueryTotalCollateralResponse](#kava.cdp.v1beta1.QueryTotalCollateralResponse) - - [QueryTotalPrincipalRequest](#kava.cdp.v1beta1.QueryTotalPrincipalRequest) - - [QueryTotalPrincipalResponse](#kava.cdp.v1beta1.QueryTotalPrincipalResponse) - - - [Query](#kava.cdp.v1beta1.Query) - -- [kava/cdp/v1beta1/tx.proto](#kava/cdp/v1beta1/tx.proto) - - [MsgCreateCDP](#kava.cdp.v1beta1.MsgCreateCDP) - - [MsgCreateCDPResponse](#kava.cdp.v1beta1.MsgCreateCDPResponse) - - [MsgDeposit](#kava.cdp.v1beta1.MsgDeposit) - - [MsgDepositResponse](#kava.cdp.v1beta1.MsgDepositResponse) - - [MsgDrawDebt](#kava.cdp.v1beta1.MsgDrawDebt) - - [MsgDrawDebtResponse](#kava.cdp.v1beta1.MsgDrawDebtResponse) - - [MsgLiquidate](#kava.cdp.v1beta1.MsgLiquidate) - - [MsgLiquidateResponse](#kava.cdp.v1beta1.MsgLiquidateResponse) - - [MsgRepayDebt](#kava.cdp.v1beta1.MsgRepayDebt) - - [MsgRepayDebtResponse](#kava.cdp.v1beta1.MsgRepayDebtResponse) - - [MsgWithdraw](#kava.cdp.v1beta1.MsgWithdraw) - - [MsgWithdrawResponse](#kava.cdp.v1beta1.MsgWithdrawResponse) - - - [Msg](#kava.cdp.v1beta1.Msg) - -- [kava/committee/v1beta1/committee.proto](#kava/committee/v1beta1/committee.proto) - - [BaseCommittee](#kava.committee.v1beta1.BaseCommittee) - - [MemberCommittee](#kava.committee.v1beta1.MemberCommittee) - - [TokenCommittee](#kava.committee.v1beta1.TokenCommittee) - - - [TallyOption](#kava.committee.v1beta1.TallyOption) - -- [kava/committee/v1beta1/genesis.proto](#kava/committee/v1beta1/genesis.proto) - - [GenesisState](#kava.committee.v1beta1.GenesisState) - - [Proposal](#kava.committee.v1beta1.Proposal) - - [Vote](#kava.committee.v1beta1.Vote) - - - [VoteType](#kava.committee.v1beta1.VoteType) - -- [kava/committee/v1beta1/permissions.proto](#kava/committee/v1beta1/permissions.proto) - - [AllowedParamsChange](#kava.committee.v1beta1.AllowedParamsChange) - - [GodPermission](#kava.committee.v1beta1.GodPermission) - - [ParamsChangePermission](#kava.committee.v1beta1.ParamsChangePermission) - - [SoftwareUpgradePermission](#kava.committee.v1beta1.SoftwareUpgradePermission) - - [SubparamRequirement](#kava.committee.v1beta1.SubparamRequirement) - - [TextPermission](#kava.committee.v1beta1.TextPermission) - -- [kava/committee/v1beta1/proposal.proto](#kava/committee/v1beta1/proposal.proto) - - [CommitteeChangeProposal](#kava.committee.v1beta1.CommitteeChangeProposal) - - [CommitteeDeleteProposal](#kava.committee.v1beta1.CommitteeDeleteProposal) - -- [kava/committee/v1beta1/query.proto](#kava/committee/v1beta1/query.proto) - - [QueryCommitteeRequest](#kava.committee.v1beta1.QueryCommitteeRequest) - - [QueryCommitteeResponse](#kava.committee.v1beta1.QueryCommitteeResponse) - - [QueryCommitteesRequest](#kava.committee.v1beta1.QueryCommitteesRequest) - - [QueryCommitteesResponse](#kava.committee.v1beta1.QueryCommitteesResponse) - - [QueryNextProposalIDRequest](#kava.committee.v1beta1.QueryNextProposalIDRequest) - - [QueryNextProposalIDResponse](#kava.committee.v1beta1.QueryNextProposalIDResponse) - - [QueryProposalRequest](#kava.committee.v1beta1.QueryProposalRequest) - - [QueryProposalResponse](#kava.committee.v1beta1.QueryProposalResponse) - - [QueryProposalsRequest](#kava.committee.v1beta1.QueryProposalsRequest) - - [QueryProposalsResponse](#kava.committee.v1beta1.QueryProposalsResponse) - - [QueryRawParamsRequest](#kava.committee.v1beta1.QueryRawParamsRequest) - - [QueryRawParamsResponse](#kava.committee.v1beta1.QueryRawParamsResponse) - - [QueryTallyRequest](#kava.committee.v1beta1.QueryTallyRequest) - - [QueryTallyResponse](#kava.committee.v1beta1.QueryTallyResponse) - - [QueryVoteRequest](#kava.committee.v1beta1.QueryVoteRequest) - - [QueryVoteResponse](#kava.committee.v1beta1.QueryVoteResponse) - - [QueryVotesRequest](#kava.committee.v1beta1.QueryVotesRequest) - - [QueryVotesResponse](#kava.committee.v1beta1.QueryVotesResponse) - - - [Query](#kava.committee.v1beta1.Query) - -- [kava/committee/v1beta1/tx.proto](#kava/committee/v1beta1/tx.proto) - - [MsgSubmitProposal](#kava.committee.v1beta1.MsgSubmitProposal) - - [MsgSubmitProposalResponse](#kava.committee.v1beta1.MsgSubmitProposalResponse) - - [MsgVote](#kava.committee.v1beta1.MsgVote) - - [MsgVoteResponse](#kava.committee.v1beta1.MsgVoteResponse) - - - [Msg](#kava.committee.v1beta1.Msg) - -- [kava/hard/v1beta1/hard.proto](#kava/hard/v1beta1/hard.proto) - - [Borrow](#kava.hard.v1beta1.Borrow) - - [BorrowInterestFactor](#kava.hard.v1beta1.BorrowInterestFactor) - - [BorrowLimit](#kava.hard.v1beta1.BorrowLimit) - - [CoinsProto](#kava.hard.v1beta1.CoinsProto) - - [Deposit](#kava.hard.v1beta1.Deposit) - - [InterestRateModel](#kava.hard.v1beta1.InterestRateModel) - - [MoneyMarket](#kava.hard.v1beta1.MoneyMarket) - - [Params](#kava.hard.v1beta1.Params) - - [SupplyInterestFactor](#kava.hard.v1beta1.SupplyInterestFactor) - -- [kava/hard/v1beta1/genesis.proto](#kava/hard/v1beta1/genesis.proto) - - [GenesisAccumulationTime](#kava.hard.v1beta1.GenesisAccumulationTime) - - [GenesisState](#kava.hard.v1beta1.GenesisState) - -- [kava/hard/v1beta1/query.proto](#kava/hard/v1beta1/query.proto) - - [BorrowInterestFactorResponse](#kava.hard.v1beta1.BorrowInterestFactorResponse) - - [BorrowResponse](#kava.hard.v1beta1.BorrowResponse) - - [DepositResponse](#kava.hard.v1beta1.DepositResponse) - - [InterestFactor](#kava.hard.v1beta1.InterestFactor) - - [MoneyMarketInterestRate](#kava.hard.v1beta1.MoneyMarketInterestRate) - - [QueryAccountsRequest](#kava.hard.v1beta1.QueryAccountsRequest) - - [QueryAccountsResponse](#kava.hard.v1beta1.QueryAccountsResponse) - - [QueryBorrowsRequest](#kava.hard.v1beta1.QueryBorrowsRequest) - - [QueryBorrowsResponse](#kava.hard.v1beta1.QueryBorrowsResponse) - - [QueryDepositsRequest](#kava.hard.v1beta1.QueryDepositsRequest) - - [QueryDepositsResponse](#kava.hard.v1beta1.QueryDepositsResponse) - - [QueryInterestFactorsRequest](#kava.hard.v1beta1.QueryInterestFactorsRequest) - - [QueryInterestFactorsResponse](#kava.hard.v1beta1.QueryInterestFactorsResponse) - - [QueryInterestRateRequest](#kava.hard.v1beta1.QueryInterestRateRequest) - - [QueryInterestRateResponse](#kava.hard.v1beta1.QueryInterestRateResponse) - - [QueryParamsRequest](#kava.hard.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.hard.v1beta1.QueryParamsResponse) - - [QueryReservesRequest](#kava.hard.v1beta1.QueryReservesRequest) - - [QueryReservesResponse](#kava.hard.v1beta1.QueryReservesResponse) - - [QueryTotalBorrowedRequest](#kava.hard.v1beta1.QueryTotalBorrowedRequest) - - [QueryTotalBorrowedResponse](#kava.hard.v1beta1.QueryTotalBorrowedResponse) - - [QueryTotalDepositedRequest](#kava.hard.v1beta1.QueryTotalDepositedRequest) - - [QueryTotalDepositedResponse](#kava.hard.v1beta1.QueryTotalDepositedResponse) - - [QueryUnsyncedBorrowsRequest](#kava.hard.v1beta1.QueryUnsyncedBorrowsRequest) - - [QueryUnsyncedBorrowsResponse](#kava.hard.v1beta1.QueryUnsyncedBorrowsResponse) - - [QueryUnsyncedDepositsRequest](#kava.hard.v1beta1.QueryUnsyncedDepositsRequest) - - [QueryUnsyncedDepositsResponse](#kava.hard.v1beta1.QueryUnsyncedDepositsResponse) - - [SupplyInterestFactorResponse](#kava.hard.v1beta1.SupplyInterestFactorResponse) - - - [Query](#kava.hard.v1beta1.Query) - -- [kava/hard/v1beta1/tx.proto](#kava/hard/v1beta1/tx.proto) - - [MsgBorrow](#kava.hard.v1beta1.MsgBorrow) - - [MsgBorrowResponse](#kava.hard.v1beta1.MsgBorrowResponse) - - [MsgDeposit](#kava.hard.v1beta1.MsgDeposit) - - [MsgDepositResponse](#kava.hard.v1beta1.MsgDepositResponse) - - [MsgLiquidate](#kava.hard.v1beta1.MsgLiquidate) - - [MsgLiquidateResponse](#kava.hard.v1beta1.MsgLiquidateResponse) - - [MsgRepay](#kava.hard.v1beta1.MsgRepay) - - [MsgRepayResponse](#kava.hard.v1beta1.MsgRepayResponse) - - [MsgWithdraw](#kava.hard.v1beta1.MsgWithdraw) - - [MsgWithdrawResponse](#kava.hard.v1beta1.MsgWithdrawResponse) - - - [Msg](#kava.hard.v1beta1.Msg) - -- [kava/incentive/v1beta1/claims.proto](#kava/incentive/v1beta1/claims.proto) - - [BaseClaim](#kava.incentive.v1beta1.BaseClaim) - - [BaseMultiClaim](#kava.incentive.v1beta1.BaseMultiClaim) - - [DelegatorClaim](#kava.incentive.v1beta1.DelegatorClaim) - - [HardLiquidityProviderClaim](#kava.incentive.v1beta1.HardLiquidityProviderClaim) - - [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) - - [MultiRewardIndexesProto](#kava.incentive.v1beta1.MultiRewardIndexesProto) - - [RewardIndex](#kava.incentive.v1beta1.RewardIndex) - - [RewardIndexesProto](#kava.incentive.v1beta1.RewardIndexesProto) - - [SwapClaim](#kava.incentive.v1beta1.SwapClaim) - - [USDXMintingClaim](#kava.incentive.v1beta1.USDXMintingClaim) - -- [kava/incentive/v1beta1/params.proto](#kava/incentive/v1beta1/params.proto) - - [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) - - [Multiplier](#kava.incentive.v1beta1.Multiplier) - - [MultipliersPerDenom](#kava.incentive.v1beta1.MultipliersPerDenom) - - [Params](#kava.incentive.v1beta1.Params) - - [RewardPeriod](#kava.incentive.v1beta1.RewardPeriod) - -- [kava/incentive/v1beta1/genesis.proto](#kava/incentive/v1beta1/genesis.proto) - - [AccumulationTime](#kava.incentive.v1beta1.AccumulationTime) - - [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) - - [GenesisState](#kava.incentive.v1beta1.GenesisState) - -- [kava/incentive/v1beta1/tx.proto](#kava/incentive/v1beta1/tx.proto) - - [MsgClaimDelegatorReward](#kava.incentive.v1beta1.MsgClaimDelegatorReward) - - [MsgClaimDelegatorRewardResponse](#kava.incentive.v1beta1.MsgClaimDelegatorRewardResponse) - - [MsgClaimHardReward](#kava.incentive.v1beta1.MsgClaimHardReward) - - [MsgClaimHardRewardResponse](#kava.incentive.v1beta1.MsgClaimHardRewardResponse) - - [MsgClaimSwapReward](#kava.incentive.v1beta1.MsgClaimSwapReward) - - [MsgClaimSwapRewardResponse](#kava.incentive.v1beta1.MsgClaimSwapRewardResponse) - - [MsgClaimUSDXMintingReward](#kava.incentive.v1beta1.MsgClaimUSDXMintingReward) - - [MsgClaimUSDXMintingRewardResponse](#kava.incentive.v1beta1.MsgClaimUSDXMintingRewardResponse) - - [Selection](#kava.incentive.v1beta1.Selection) - - - [Msg](#kava.incentive.v1beta1.Msg) - -- [kava/issuance/v1beta1/genesis.proto](#kava/issuance/v1beta1/genesis.proto) - - [Asset](#kava.issuance.v1beta1.Asset) - - [AssetSupply](#kava.issuance.v1beta1.AssetSupply) - - [GenesisState](#kava.issuance.v1beta1.GenesisState) - - [Params](#kava.issuance.v1beta1.Params) - - [RateLimit](#kava.issuance.v1beta1.RateLimit) - -- [kava/issuance/v1beta1/query.proto](#kava/issuance/v1beta1/query.proto) - - [QueryParamsRequest](#kava.issuance.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.issuance.v1beta1.QueryParamsResponse) - - - [Query](#kava.issuance.v1beta1.Query) - -- [kava/issuance/v1beta1/tx.proto](#kava/issuance/v1beta1/tx.proto) - - [MsgBlockAddress](#kava.issuance.v1beta1.MsgBlockAddress) - - [MsgBlockAddressResponse](#kava.issuance.v1beta1.MsgBlockAddressResponse) - - [MsgIssueTokens](#kava.issuance.v1beta1.MsgIssueTokens) - - [MsgIssueTokensResponse](#kava.issuance.v1beta1.MsgIssueTokensResponse) - - [MsgRedeemTokens](#kava.issuance.v1beta1.MsgRedeemTokens) - - [MsgRedeemTokensResponse](#kava.issuance.v1beta1.MsgRedeemTokensResponse) - - [MsgSetPauseStatus](#kava.issuance.v1beta1.MsgSetPauseStatus) - - [MsgSetPauseStatusResponse](#kava.issuance.v1beta1.MsgSetPauseStatusResponse) - - [MsgUnblockAddress](#kava.issuance.v1beta1.MsgUnblockAddress) - - [MsgUnblockAddressResponse](#kava.issuance.v1beta1.MsgUnblockAddressResponse) - - - [Msg](#kava.issuance.v1beta1.Msg) - -- [kava/kavadist/v1beta1/params.proto](#kava/kavadist/v1beta1/params.proto) - - [Params](#kava.kavadist.v1beta1.Params) - - [Period](#kava.kavadist.v1beta1.Period) - -- [kava/kavadist/v1beta1/genesis.proto](#kava/kavadist/v1beta1/genesis.proto) - - [GenesisState](#kava.kavadist.v1beta1.GenesisState) - -- [kava/kavadist/v1beta1/proposal.proto](#kava/kavadist/v1beta1/proposal.proto) - - [CommunityPoolMultiSpendProposal](#kava.kavadist.v1beta1.CommunityPoolMultiSpendProposal) - - [CommunityPoolMultiSpendProposalJSON](#kava.kavadist.v1beta1.CommunityPoolMultiSpendProposalJSON) - - [MultiSpendRecipient](#kava.kavadist.v1beta1.MultiSpendRecipient) - -- [kava/kavadist/v1beta1/query.proto](#kava/kavadist/v1beta1/query.proto) - - [QueryBalanceRequest](#kava.kavadist.v1beta1.QueryBalanceRequest) - - [QueryBalanceResponse](#kava.kavadist.v1beta1.QueryBalanceResponse) - - [QueryParamsRequest](#kava.kavadist.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.kavadist.v1beta1.QueryParamsResponse) - - - [Query](#kava.kavadist.v1beta1.Query) - -- [kava/pricefeed/v1beta1/store.proto](#kava/pricefeed/v1beta1/store.proto) - - [CurrentPrice](#kava.pricefeed.v1beta1.CurrentPrice) - - [Market](#kava.pricefeed.v1beta1.Market) - - [Params](#kava.pricefeed.v1beta1.Params) - - [PostedPrice](#kava.pricefeed.v1beta1.PostedPrice) - -- [kava/pricefeed/v1beta1/genesis.proto](#kava/pricefeed/v1beta1/genesis.proto) - - [GenesisState](#kava.pricefeed.v1beta1.GenesisState) - -- [kava/pricefeed/v1beta1/query.proto](#kava/pricefeed/v1beta1/query.proto) - - [CurrentPriceResponse](#kava.pricefeed.v1beta1.CurrentPriceResponse) - - [MarketResponse](#kava.pricefeed.v1beta1.MarketResponse) - - [PostedPriceResponse](#kava.pricefeed.v1beta1.PostedPriceResponse) - - [QueryMarketsRequest](#kava.pricefeed.v1beta1.QueryMarketsRequest) - - [QueryMarketsResponse](#kava.pricefeed.v1beta1.QueryMarketsResponse) - - [QueryOraclesRequest](#kava.pricefeed.v1beta1.QueryOraclesRequest) - - [QueryOraclesResponse](#kava.pricefeed.v1beta1.QueryOraclesResponse) - - [QueryParamsRequest](#kava.pricefeed.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.pricefeed.v1beta1.QueryParamsResponse) - - [QueryPriceRequest](#kava.pricefeed.v1beta1.QueryPriceRequest) - - [QueryPriceResponse](#kava.pricefeed.v1beta1.QueryPriceResponse) - - [QueryPricesRequest](#kava.pricefeed.v1beta1.QueryPricesRequest) - - [QueryPricesResponse](#kava.pricefeed.v1beta1.QueryPricesResponse) - - [QueryRawPricesRequest](#kava.pricefeed.v1beta1.QueryRawPricesRequest) - - [QueryRawPricesResponse](#kava.pricefeed.v1beta1.QueryRawPricesResponse) - - - [Query](#kava.pricefeed.v1beta1.Query) - -- [kava/pricefeed/v1beta1/tx.proto](#kava/pricefeed/v1beta1/tx.proto) - - [MsgPostPrice](#kava.pricefeed.v1beta1.MsgPostPrice) - - [MsgPostPriceResponse](#kava.pricefeed.v1beta1.MsgPostPriceResponse) - - - [Msg](#kava.pricefeed.v1beta1.Msg) - -- [kava/swap/v1beta1/swap.proto](#kava/swap/v1beta1/swap.proto) - - [AllowedPool](#kava.swap.v1beta1.AllowedPool) - - [Params](#kava.swap.v1beta1.Params) - - [PoolRecord](#kava.swap.v1beta1.PoolRecord) - - [ShareRecord](#kava.swap.v1beta1.ShareRecord) - -- [kava/swap/v1beta1/genesis.proto](#kava/swap/v1beta1/genesis.proto) - - [GenesisState](#kava.swap.v1beta1.GenesisState) - -- [kava/swap/v1beta1/query.proto](#kava/swap/v1beta1/query.proto) - - [DepositResponse](#kava.swap.v1beta1.DepositResponse) - - [PoolResponse](#kava.swap.v1beta1.PoolResponse) - - [QueryDepositsRequest](#kava.swap.v1beta1.QueryDepositsRequest) - - [QueryDepositsResponse](#kava.swap.v1beta1.QueryDepositsResponse) - - [QueryParamsRequest](#kava.swap.v1beta1.QueryParamsRequest) - - [QueryParamsResponse](#kava.swap.v1beta1.QueryParamsResponse) - - [QueryPoolsRequest](#kava.swap.v1beta1.QueryPoolsRequest) - - [QueryPoolsResponse](#kava.swap.v1beta1.QueryPoolsResponse) - - - [Query](#kava.swap.v1beta1.Query) - -- [kava/swap/v1beta1/tx.proto](#kava/swap/v1beta1/tx.proto) - - [MsgDeposit](#kava.swap.v1beta1.MsgDeposit) - - [MsgDepositResponse](#kava.swap.v1beta1.MsgDepositResponse) - - [MsgSwapExactForTokens](#kava.swap.v1beta1.MsgSwapExactForTokens) - - [MsgSwapExactForTokensResponse](#kava.swap.v1beta1.MsgSwapExactForTokensResponse) - - [MsgSwapForExactTokens](#kava.swap.v1beta1.MsgSwapForExactTokens) - - [MsgSwapForExactTokensResponse](#kava.swap.v1beta1.MsgSwapForExactTokensResponse) - - [MsgWithdraw](#kava.swap.v1beta1.MsgWithdraw) - - [MsgWithdrawResponse](#kava.swap.v1beta1.MsgWithdrawResponse) - - - [Msg](#kava.swap.v1beta1.Msg) - -- [Scalar Value Types](#scalar-value-types) - - - - -

Top

- -## kava/auction/v1beta1/auction.proto - - - - - -### BaseAuction -BaseAuction defines common attributes of all auctions - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [uint64](#uint64) | | | -| `initiator` | [string](#string) | | | -| `lot` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `bidder` | [bytes](#bytes) | | | -| `bid` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `has_received_bids` | [bool](#bool) | | | -| `end_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `max_end_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### CollateralAuction -CollateralAuction is a two phase auction. -Initially, in forward auction phase, bids can be placed up to a max bid. -Then it switches to a reverse auction phase, where the initial amount up for auction is bid down. -Unsold Lot is sent to LotReturns, being divided among the addresses by weight. -Collateral auctions are normally used to sell off collateral seized from CDPs. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_auction` | [BaseAuction](#kava.auction.v1beta1.BaseAuction) | | | -| `corresponding_debt` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `max_bid` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `lot_returns` | [WeightedAddresses](#kava.auction.v1beta1.WeightedAddresses) | | | - - - - - - - - -### DebtAuction -DebtAuction is a reverse auction that mints what it pays out. -It is normally used to acquire pegged asset to cover the CDP system's debts that were not covered by selling -collateral. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_auction` | [BaseAuction](#kava.auction.v1beta1.BaseAuction) | | | -| `corresponding_debt` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### SurplusAuction -SurplusAuction is a forward auction that burns what it receives from bids. -It is normally used to sell off excess pegged asset acquired by the CDP system. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_auction` | [BaseAuction](#kava.auction.v1beta1.BaseAuction) | | | - - - - - - - - -### WeightedAddresses -WeightedAddresses is a type for storing some addresses and associated weights. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `addresses` | [bytes](#bytes) | repeated | | -| `weights` | [bytes](#bytes) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/auction/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the auction module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `next_auction_id` | [uint64](#uint64) | | | -| `params` | [Params](#kava.auction.v1beta1.Params) | | | -| `auctions` | [google.protobuf.Any](#google.protobuf.Any) | repeated | Genesis auctions | - - - - - - - - -### Params -Params defines the parameters for the issuance module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `max_auction_duration` | [google.protobuf.Duration](#google.protobuf.Duration) | | | -| `forward_bid_duration` | [google.protobuf.Duration](#google.protobuf.Duration) | | | -| `reverse_bid_duration` | [google.protobuf.Duration](#google.protobuf.Duration) | | | -| `increment_surplus` | [bytes](#bytes) | | | -| `increment_debt` | [bytes](#bytes) | | | -| `increment_collateral` | [bytes](#bytes) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/auction/v1beta1/query.proto - - - - - -### QueryAuctionRequest -QueryAuctionRequest is the request type for the Query/Auction RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `auction_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryAuctionResponse -QueryAuctionResponse is the response type for the Query/Auction RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `auction` | [google.protobuf.Any](#google.protobuf.Any) | | | - - - - - - - - -### QueryAuctionsRequest -QueryAuctionsRequest is the request type for the Query/Auctions RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `type` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `denom` | [string](#string) | | | -| `phase` | [string](#string) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | - - - - - - - - -### QueryAuctionsResponse -QueryAuctionsResponse is the response type for the Query/Auctions RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `auctions` | [google.protobuf.Any](#google.protobuf.Any) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | - - - - - - - - -### QueryNextAuctionIDRequest -QueryNextAuctionIDRequest defines the request type for querying x/auction next auction ID. - - - - - - - - -### QueryNextAuctionIDResponse -QueryNextAuctionIDResponse defines the response type for querying x/auction next auction ID. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [uint64](#uint64) | | | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/auction parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/auction parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.auction.v1beta1.Params) | | | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for auction module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.auction.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.auction.v1beta1.QueryParamsResponse) | Params queries all parameters of the auction module. | GET|/kava/auction/v1beta1/params| -| `Auction` | [QueryAuctionRequest](#kava.auction.v1beta1.QueryAuctionRequest) | [QueryAuctionResponse](#kava.auction.v1beta1.QueryAuctionResponse) | Auction queries an individual Auction by auction ID | GET|/kava/auction/v1beta1/auctions/{auction_id}| -| `Auctions` | [QueryAuctionsRequest](#kava.auction.v1beta1.QueryAuctionsRequest) | [QueryAuctionsResponse](#kava.auction.v1beta1.QueryAuctionsResponse) | Auctions queries auctions filtered by asset denom, owner address, phase, and auction type | GET|/kava/auction/v1beta1/auctions| -| `NextAuctionID` | [QueryNextAuctionIDRequest](#kava.auction.v1beta1.QueryNextAuctionIDRequest) | [QueryNextAuctionIDResponse](#kava.auction.v1beta1.QueryNextAuctionIDResponse) | NextAuctionID queries the next auction ID | GET|/kava/auction/v1beta1/next-auction-id| - - - - - - -

Top

- -## kava/auction/v1beta1/tx.proto - - - - - -### MsgPlaceBid -MsgPlaceBid represents a message used by bidders to place bids on auctions - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `auction_id` | [uint64](#uint64) | | | -| `bidder` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### MsgPlaceBidResponse -MsgPlaceBidResponse defines the Msg/PlaceBid response type. - - - - - - - - - - - - - - -### Msg -Msg defines the auction Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `PlaceBid` | [MsgPlaceBid](#kava.auction.v1beta1.MsgPlaceBid) | [MsgPlaceBidResponse](#kava.auction.v1beta1.MsgPlaceBidResponse) | PlaceBid message type used by bidders to place bids on auctions | | - - - - - - -

Top

- -## kava/bep3/v1beta1/bep3.proto - - - - - -### AssetParam -AssetParam defines parameters for each bep3 asset. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | denom represents the denominatin for this asset | -| `coin_id` | [int64](#int64) | | coin_id represents the registered coin type to use (https://github.com/satoshilabs/slips/blob/master/slip-0044.md) | -| `supply_limit` | [SupplyLimit](#kava.bep3.v1beta1.SupplyLimit) | | supply_limit defines the maximum supply allowed for the asset - a total or time based rate limit | -| `active` | [bool](#bool) | | active specifies if the asset is live or paused | -| `deputy_address` | [bytes](#bytes) | | deputy_address the kava address of the deputy | -| `fixed_fee` | [string](#string) | | fixed_fee defines the fee for incoming swaps | -| `min_swap_amount` | [string](#string) | | min_swap_amount defines the minimum amount able to be swapped in a single message | -| `max_swap_amount` | [string](#string) | | max_swap_amount defines the maximum amount able to be swapped in a single message | -| `min_block_lock` | [uint64](#uint64) | | min_block_lock defined the minimum blocks to lock | -| `max_block_lock` | [uint64](#uint64) | | min_block_lock defined the maximum blocks to lock | - - - - - - - - -### AssetSupply -AssetSupply defines information about an asset's supply. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `incoming_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | incoming_supply represents the incoming supply of an asset | -| `outgoing_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | outgoing_supply represents the outgoing supply of an asset | -| `current_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | current_supply represents the current on-chain supply of an asset | -| `time_limited_current_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | time_limited_current_supply represents the time limited current supply of an asset | -| `time_elapsed` | [google.protobuf.Duration](#google.protobuf.Duration) | | time_elapsed represents the time elapsed | - - - - - - - - -### AtomicSwap -AtomicSwap defines an atomic swap between chains for the pricefeed module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | amount represents the amount being swapped | -| `random_number_hash` | [bytes](#bytes) | | random_number_hash represents the hash of the random number | -| `expire_height` | [uint64](#uint64) | | expire_height represents the height when the swap expires | -| `timestamp` | [int64](#int64) | | timestamp represents the timestamp of the swap | -| `sender` | [bytes](#bytes) | | sender is the kava chain sender of the swap | -| `recipient` | [bytes](#bytes) | | recipient is the kava chain recipient of the swap | -| `sender_other_chain` | [string](#string) | | sender_other_chain is the sender on the other chain | -| `recipient_other_chain` | [string](#string) | | recipient_other_chain is the recipient on the other chain | -| `closed_block` | [int64](#int64) | | closed_block is the block when the swap is closed | -| `status` | [SwapStatus](#kava.bep3.v1beta1.SwapStatus) | | status represents the current status of the swap | -| `cross_chain` | [bool](#bool) | | cross_chain identifies whether the atomic swap is cross chain | -| `direction` | [SwapDirection](#kava.bep3.v1beta1.SwapDirection) | | direction identifies if the swap is incoming or outgoing | - - - - - - - - -### Params -Params defines the parameters for the bep3 module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `asset_params` | [AssetParam](#kava.bep3.v1beta1.AssetParam) | repeated | asset_params define the parameters for each bep3 asset | - - - - - - - - -### SupplyLimit -SupplyLimit define the absolute and time-based limits for an assets's supply. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `limit` | [string](#string) | | limit defines the total supply allowed | -| `time_limited` | [bool](#bool) | | time_limited enables or disables time based supply limiting | -| `time_period` | [google.protobuf.Duration](#google.protobuf.Duration) | | time_period specifies the duration that time_based_limit is evalulated | -| `time_based_limit` | [string](#string) | | time_based_limit defines the maximum supply that can be swapped within time_period | - - - - - - - - - - -### SwapDirection -SwapDirection is the direction of an AtomicSwap - -| Name | Number | Description | -| ---- | ------ | ----------- | -| SWAP_DIRECTION_UNSPECIFIED | 0 | SWAP_DIRECTION_UNSPECIFIED represents unspecified or invalid swap direcation | -| SWAP_DIRECTION_INCOMING | 1 | SWAP_DIRECTION_INCOMING represents is incoming swap (to the kava chain) | -| SWAP_DIRECTION_OUTGOING | 2 | SWAP_DIRECTION_OUTGOING represents an outgoing swap (from the kava chain) | - - - - - -### SwapStatus -SwapStatus is the status of an AtomicSwap - -| Name | Number | Description | -| ---- | ------ | ----------- | -| SWAP_STATUS_UNSPECIFIED | 0 | SWAP_STATUS_UNSPECIFIED represents an unspecified status | -| SWAP_STATUS_OPEN | 1 | SWAP_STATUS_OPEN represents an open swap | -| SWAP_STATUS_COMPLETED | 2 | SWAP_STATUS_COMPLETED represents a completed swap | -| SWAP_STATUS_EXPIRED | 3 | SWAP_STATUS_EXPIRED represents an expired swap | - - - - - - - - - - - -

Top

- -## kava/bep3/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the pricefeed module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.bep3.v1beta1.Params) | | params defines all the paramaters of the module. | -| `atomic_swaps` | [AtomicSwap](#kava.bep3.v1beta1.AtomicSwap) | repeated | atomic_swaps represents the state of stored atomic swaps | -| `supplies` | [AssetSupply](#kava.bep3.v1beta1.AssetSupply) | repeated | supplies represents the supply information of each atomic swap | -| `previous_block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | previous_block_time represents the time of the previous block | - - - - - - - - - - - - - - - - -

Top

- -## kava/bep3/v1beta1/query.proto - - - - - -### AssetSupplyResponse -AssetSupplyResponse defines information about an asset's supply. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `incoming_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | incoming_supply represents the incoming supply of an asset | -| `outgoing_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | outgoing_supply represents the outgoing supply of an asset | -| `current_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | current_supply represents the current on-chain supply of an asset | -| `time_limited_current_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | time_limited_current_supply represents the time limited current supply of an asset | -| `time_elapsed` | [google.protobuf.Duration](#google.protobuf.Duration) | | time_elapsed represents the time elapsed | - - - - - - - - -### AtomicSwapResponse -AtomicSwapResponse represents the returned atomic swap properties - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [string](#string) | | id represents the id of the atomic swap | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | amount represents the amount being swapped | -| `random_number_hash` | [string](#string) | | random_number_hash represents the hash of the random number | -| `expire_height` | [uint64](#uint64) | | expire_height represents the height when the swap expires | -| `timestamp` | [int64](#int64) | | timestamp represents the timestamp of the swap | -| `sender` | [string](#string) | | sender is the kava chain sender of the swap | -| `recipient` | [string](#string) | | recipient is the kava chain recipient of the swap | -| `sender_other_chain` | [string](#string) | | sender_other_chain is the sender on the other chain | -| `recipient_other_chain` | [string](#string) | | recipient_other_chain is the recipient on the other chain | -| `closed_block` | [int64](#int64) | | closed_block is the block when the swap is closed | -| `status` | [SwapStatus](#kava.bep3.v1beta1.SwapStatus) | | status represents the current status of the swap | -| `cross_chain` | [bool](#bool) | | cross_chain identifies whether the atomic swap is cross chain | -| `direction` | [SwapDirection](#kava.bep3.v1beta1.SwapDirection) | | direction identifies if the swap is incoming or outgoing | - - - - - - - - -### QueryAssetSuppliesRequest -QueryAssetSuppliesRequest is the request type for the Query/AssetSupplies RPC method. - - - - - - - - -### QueryAssetSuppliesResponse -QueryAssetSuppliesResponse is the response type for the Query/AssetSupplies RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `asset_supplies` | [AssetSupplyResponse](#kava.bep3.v1beta1.AssetSupplyResponse) | repeated | asset_supplies represents the supplies of returned assets | - - - - - - - - -### QueryAssetSupplyRequest -QueryAssetSupplyRequest is the request type for the Query/AssetSupply RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | denom filters the asset response for the specified denom | - - - - - - - - -### QueryAssetSupplyResponse -QueryAssetSupplyResponse is the response type for the Query/AssetSupply RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `asset_supply` | [AssetSupplyResponse](#kava.bep3.v1beta1.AssetSupplyResponse) | | asset_supply represents the supply of the asset | - - - - - - - - -### QueryAtomicSwapRequest -QueryAtomicSwapRequest is the request type for the Query/AtomicSwap RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `swap_id` | [string](#string) | | swap_id represents the id of the swap to query | - - - - - - - - -### QueryAtomicSwapResponse -QueryAtomicSwapResponse is the response type for the Query/AtomicSwap RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `atomic_swap` | [AtomicSwapResponse](#kava.bep3.v1beta1.AtomicSwapResponse) | | | - - - - - - - - -### QueryAtomicSwapsRequest -QueryAtomicSwapsRequest is the request type for the Query/AtomicSwaps RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `involve` | [string](#string) | | involve filters by address | -| `expiration` | [uint64](#uint64) | | expiration filters by expiration block height | -| `status` | [SwapStatus](#kava.bep3.v1beta1.SwapStatus) | | status filters by swap status | -| `direction` | [SwapDirection](#kava.bep3.v1beta1.SwapDirection) | | direction fitlers by swap direction | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryAtomicSwapsResponse -QueryAtomicSwapsResponse is the response type for the Query/AtomicSwaps RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `atomic_swaps` | [AtomicSwapResponse](#kava.bep3.v1beta1.AtomicSwapResponse) | repeated | atomic_swap represents the returned atomic swaps for the request | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/bep3 parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/bep3 parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.bep3.v1beta1.Params) | | params represents the parameters of the module | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for bep3 module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.bep3.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.bep3.v1beta1.QueryParamsResponse) | Params queries module params | GET|/kava/bep3/v1beta1/params| -| `AssetSupply` | [QueryAssetSupplyRequest](#kava.bep3.v1beta1.QueryAssetSupplyRequest) | [QueryAssetSupplyResponse](#kava.bep3.v1beta1.QueryAssetSupplyResponse) | AssetSupply queries info about an asset's supply | GET|/kava/bep3/v1beta1/assetsupply/{denom}| -| `AssetSupplies` | [QueryAssetSuppliesRequest](#kava.bep3.v1beta1.QueryAssetSuppliesRequest) | [QueryAssetSuppliesResponse](#kava.bep3.v1beta1.QueryAssetSuppliesResponse) | AssetSupplies queries a list of asset supplies | GET|/kava/bep3/v1beta1/assetsupplies| -| `AtomicSwap` | [QueryAtomicSwapRequest](#kava.bep3.v1beta1.QueryAtomicSwapRequest) | [QueryAtomicSwapResponse](#kava.bep3.v1beta1.QueryAtomicSwapResponse) | AtomicSwap queries info about an atomic swap | GET|/kava/bep3/v1beta1/atomicswap/{swap_id}| -| `AtomicSwaps` | [QueryAtomicSwapsRequest](#kava.bep3.v1beta1.QueryAtomicSwapsRequest) | [QueryAtomicSwapsResponse](#kava.bep3.v1beta1.QueryAtomicSwapsResponse) | AtomicSwaps queries a list of atomic swaps | GET|/kava/bep3/v1beta1/atomicswaps| - - - - - - -

Top

- -## kava/bep3/v1beta1/tx.proto - - - - - -### MsgClaimAtomicSwap -MsgClaimAtomicSwap defines the Msg/ClaimAtomicSwap request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `from` | [string](#string) | | | -| `swap_id` | [string](#string) | | | -| `random_number` | [string](#string) | | | - - - - - - - - -### MsgClaimAtomicSwapResponse -MsgClaimAtomicSwapResponse defines the Msg/ClaimAtomicSwap response type. - - - - - - - - -### MsgCreateAtomicSwap -MsgCreateAtomicSwap defines the Msg/CreateAtomicSwap request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `from` | [string](#string) | | | -| `to` | [string](#string) | | | -| `recipient_other_chain` | [string](#string) | | | -| `sender_other_chain` | [string](#string) | | | -| `random_number_hash` | [string](#string) | | | -| `timestamp` | [int64](#int64) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `height_span` | [uint64](#uint64) | | | - - - - - - - - -### MsgCreateAtomicSwapResponse -MsgCreateAtomicSwapResponse defines the Msg/CreateAtomicSwap response type. - - - - - - - - -### MsgRefundAtomicSwap -MsgRefundAtomicSwap defines the Msg/RefundAtomicSwap request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `from` | [string](#string) | | | -| `swap_id` | [string](#string) | | | - - - - - - - - -### MsgRefundAtomicSwapResponse -MsgRefundAtomicSwapResponse defines the Msg/RefundAtomicSwap response type. - - - - - - - - - - - - - - -### Msg -Msg defines the bep3 Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `CreateAtomicSwap` | [MsgCreateAtomicSwap](#kava.bep3.v1beta1.MsgCreateAtomicSwap) | [MsgCreateAtomicSwapResponse](#kava.bep3.v1beta1.MsgCreateAtomicSwapResponse) | CreateAtomicSwap defines a method for creating an atomic swap | | -| `ClaimAtomicSwap` | [MsgClaimAtomicSwap](#kava.bep3.v1beta1.MsgClaimAtomicSwap) | [MsgClaimAtomicSwapResponse](#kava.bep3.v1beta1.MsgClaimAtomicSwapResponse) | ClaimAtomicSwap defines a method for claiming an atomic swap | | -| `RefundAtomicSwap` | [MsgRefundAtomicSwap](#kava.bep3.v1beta1.MsgRefundAtomicSwap) | [MsgRefundAtomicSwapResponse](#kava.bep3.v1beta1.MsgRefundAtomicSwapResponse) | RefundAtomicSwap defines a method for refunding an atomic swap | | - - - - - - -

Top

- -## kava/cdp/v1beta1/cdp.proto - - - - - -### CDP -CDP defines the state of a single collateralized debt position. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [uint64](#uint64) | | | -| `owner` | [bytes](#bytes) | | | -| `type` | [string](#string) | | | -| `collateral` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `principal` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `accumulated_fees` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `fees_updated` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `interest_factor` | [string](#string) | | | - - - - - - - - -### Deposit -Deposit defines an amount of coins deposited by an account to a cdp - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `cdp_id` | [uint64](#uint64) | | | -| `depositor` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### OwnerCDPIndex -OwnerCDPIndex defines the cdp ids for a single cdp owner - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `cdp_ids` | [uint64](#uint64) | repeated | | - - - - - - - - -### TotalCollateral -TotalCollateral defines the total collateral of a given collateral type - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### TotalPrincipal -TotalPrincipal defines the total principal of a given collateral type - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/cdp/v1beta1/genesis.proto - - - - - -### CollateralParam -CollateralParam defines governance parameters for each collateral type within the cdp module - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `type` | [string](#string) | | | -| `liquidation_ratio` | [string](#string) | | | -| `debt_limit` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `stability_fee` | [string](#string) | | | -| `auction_size` | [string](#string) | | | -| `liquidation_penalty` | [string](#string) | | | -| `spot_market_id` | [string](#string) | | | -| `liquidation_market_id` | [string](#string) | | | -| `keeper_reward_percentage` | [string](#string) | | | -| `check_collateralization_index_count` | [string](#string) | | | -| `conversion_factor` | [string](#string) | | | - - - - - - - - -### DebtParam -DebtParam defines governance params for debt assets - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `reference_asset` | [string](#string) | | | -| `conversion_factor` | [string](#string) | | | -| `debt_floor` | [string](#string) | | | - - - - - - - - -### GenesisAccumulationTime -GenesisAccumulationTime defines the previous distribution time and its corresponding denom - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `previous_accumulation_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `interest_factor` | [string](#string) | | | - - - - - - - - -### GenesisState -GenesisState defines the cdp module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.cdp.v1beta1.Params) | | params defines all the paramaters of the module. | -| `cdps` | [CDP](#kava.cdp.v1beta1.CDP) | repeated | | -| `deposits` | [Deposit](#kava.cdp.v1beta1.Deposit) | repeated | | -| `starting_cdp_id` | [uint64](#uint64) | | | -| `debt_denom` | [string](#string) | | | -| `gov_denom` | [string](#string) | | | -| `previous_accumulation_times` | [GenesisAccumulationTime](#kava.cdp.v1beta1.GenesisAccumulationTime) | repeated | | -| `total_principals` | [GenesisTotalPrincipal](#kava.cdp.v1beta1.GenesisTotalPrincipal) | repeated | | - - - - - - - - -### GenesisTotalPrincipal -GenesisTotalPrincipal defines the total principal and its corresponding collateral type - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `total_principal` | [string](#string) | | | - - - - - - - - -### Params -Params defines the parameters for the cdp module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_params` | [CollateralParam](#kava.cdp.v1beta1.CollateralParam) | repeated | | -| `debt_param` | [DebtParam](#kava.cdp.v1beta1.DebtParam) | | | -| `global_debt_limit` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `surplus_auction_threshold` | [string](#string) | | | -| `surplus_auction_lot` | [string](#string) | | | -| `debt_auction_threshold` | [string](#string) | | | -| `debt_auction_lot` | [string](#string) | | | -| `circuit_breaker` | [bool](#bool) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/cdp/v1beta1/query.proto - - - - - -### CDPResponse -CDPResponse defines the state of a single collateralized debt position. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [uint64](#uint64) | | | -| `owner` | [string](#string) | | | -| `type` | [string](#string) | | | -| `collateral` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `principal` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `accumulated_fees` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `fees_updated` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `interest_factor` | [string](#string) | | | -| `collateral_value` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `collateralization_ratio` | [string](#string) | | | - - - - - - - - -### QueryAccountsRequest -QueryAccountsRequest defines the request type for the Query/Accounts RPC method. - - - - - - - - -### QueryAccountsResponse -QueryAccountsResponse defines the response type for the Query/Accounts RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `accounts` | [cosmos.auth.v1beta1.ModuleAccount](#cosmos.auth.v1beta1.ModuleAccount) | repeated | | - - - - - - - - -### QueryCdpRequest -QueryCdpRequest defines the request type for the Query/Cdp RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `owner` | [string](#string) | | | - - - - - - - - -### QueryCdpResponse -QueryCdpResponse defines the response type for the Query/Cdp RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `cdp` | [CDPResponse](#kava.cdp.v1beta1.CDPResponse) | | | - - - - - - - - -### QueryCdpsRequest -QueryCdpsRequest is the params for a filtered CDP query, the request type for the Query/Cdps RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `id` | [uint64](#uint64) | | | -| `ratio` | [string](#string) | | sdk.Dec as a string | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryCdpsResponse -QueryCdpsResponse defines the response type for the Query/Cdps RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `cdps` | [CDPResponse](#kava.cdp.v1beta1.CDPResponse) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### QueryDepositsRequest -QueryDepositsRequest defines the request type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `owner` | [string](#string) | | | - - - - - - - - -### QueryDepositsResponse -QueryDepositsResponse defines the response type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `deposits` | [Deposit](#kava.cdp.v1beta1.Deposit) | repeated | | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for the Query/Params RPC method. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for the Query/Params RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.cdp.v1beta1.Params) | | | - - - - - - - - -### QueryTotalCollateralRequest -QueryTotalCollateralRequest defines the request type for the Query/TotalCollateral RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### QueryTotalCollateralResponse -QueryTotalCollateralResponse defines the response type for the Query/TotalCollateral RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `total_collateral` | [TotalCollateral](#kava.cdp.v1beta1.TotalCollateral) | repeated | | - - - - - - - - -### QueryTotalPrincipalRequest -QueryTotalPrincipalRequest defines the request type for the Query/TotalPrincipal RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### QueryTotalPrincipalResponse -QueryTotalPrincipalResponse defines the response type for the Query/TotalPrincipal RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `total_principal` | [TotalPrincipal](#kava.cdp.v1beta1.TotalPrincipal) | repeated | | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for cdp module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.cdp.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.cdp.v1beta1.QueryParamsResponse) | Params queries all parameters of the cdp module. | GET|/kava/cdp/v1beta1/params| -| `Accounts` | [QueryAccountsRequest](#kava.cdp.v1beta1.QueryAccountsRequest) | [QueryAccountsResponse](#kava.cdp.v1beta1.QueryAccountsResponse) | Accounts queries the CDP module accounts. | GET|/kava/cdp/v1beta1/accounts| -| `TotalPrincipal` | [QueryTotalPrincipalRequest](#kava.cdp.v1beta1.QueryTotalPrincipalRequest) | [QueryTotalPrincipalResponse](#kava.cdp.v1beta1.QueryTotalPrincipalResponse) | TotalPrincipal queries the total principal of a given collateral type. | GET|/kava/cdp/v1beta1/totalPrincipal| -| `TotalCollateral` | [QueryTotalCollateralRequest](#kava.cdp.v1beta1.QueryTotalCollateralRequest) | [QueryTotalCollateralResponse](#kava.cdp.v1beta1.QueryTotalCollateralResponse) | TotalCollateral queries the total collateral of a given collateral type. | GET|/kava/cdp/v1beta1/totalCollateral| -| `Cdps` | [QueryCdpsRequest](#kava.cdp.v1beta1.QueryCdpsRequest) | [QueryCdpsResponse](#kava.cdp.v1beta1.QueryCdpsResponse) | Cdps queries all active CDPs. | GET|/kava/cdp/v1beta1/cdps| -| `Cdp` | [QueryCdpRequest](#kava.cdp.v1beta1.QueryCdpRequest) | [QueryCdpResponse](#kava.cdp.v1beta1.QueryCdpResponse) | Cdp queries a CDP with the input owner address and collateral type. | GET|/kava/cdp/v1beta1/cdps/{owner}/{collateral_type}| -| `Deposits` | [QueryDepositsRequest](#kava.cdp.v1beta1.QueryDepositsRequest) | [QueryDepositsResponse](#kava.cdp.v1beta1.QueryDepositsResponse) | Deposits queries deposits associated with the CDP owned by an address for a collateral type. | GET|/kava/cdp/v1beta1/cdps/deposits/{owner}/{collateral_type}| - - - - - - -

Top

- -## kava/cdp/v1beta1/tx.proto - - - - - -### MsgCreateCDP -MsgCreateCDP defines a message to create a new CDP. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `collateral` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `principal` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### MsgCreateCDPResponse -MsgCreateCDPResponse defines the Msg/CreateCDP response type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `cdp_id` | [uint64](#uint64) | | | - - - - - - - - -### MsgDeposit -MsgDeposit defines a message to deposit to a CDP. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `collateral` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### MsgDepositResponse -MsgDepositResponse defines the Msg/Deposit response type. - - - - - - - - -### MsgDrawDebt -MsgDrawDebt defines a message to draw debt from a CDP. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `collateral_type` | [string](#string) | | | -| `principal` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### MsgDrawDebtResponse -MsgDrawDebtResponse defines the Msg/DrawDebt response type. - - - - - - - - -### MsgLiquidate -MsgLiquidate defines a message to attempt to liquidate a CDP whos -collateralization ratio is under its liquidation ratio. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `keeper` | [string](#string) | | | -| `borrower` | [string](#string) | | | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### MsgLiquidateResponse -MsgLiquidateResponse defines the Msg/Liquidate response type. - - - - - - - - -### MsgRepayDebt -MsgRepayDebt defines a message to repay debt from a CDP. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `collateral_type` | [string](#string) | | | -| `payment` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### MsgRepayDebtResponse -MsgRepayDebtResponse defines the Msg/RepayDebt response type. - - - - - - - - -### MsgWithdraw -MsgWithdraw defines a message to withdraw collateral from a CDP. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `collateral` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `collateral_type` | [string](#string) | | | - - - - - - - - -### MsgWithdrawResponse -MsgWithdrawResponse defines the Msg/Withdraw response type. - - - - - - - - - - - - - - -### Msg -Msg defines the cdp Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `CreateCDP` | [MsgCreateCDP](#kava.cdp.v1beta1.MsgCreateCDP) | [MsgCreateCDPResponse](#kava.cdp.v1beta1.MsgCreateCDPResponse) | CreateCDP defines a method to create a new CDP. | | -| `Deposit` | [MsgDeposit](#kava.cdp.v1beta1.MsgDeposit) | [MsgDepositResponse](#kava.cdp.v1beta1.MsgDepositResponse) | Deposit defines a method to deposit to a CDP. | | -| `Withdraw` | [MsgWithdraw](#kava.cdp.v1beta1.MsgWithdraw) | [MsgWithdrawResponse](#kava.cdp.v1beta1.MsgWithdrawResponse) | Withdraw defines a method to withdraw collateral from a CDP. | | -| `DrawDebt` | [MsgDrawDebt](#kava.cdp.v1beta1.MsgDrawDebt) | [MsgDrawDebtResponse](#kava.cdp.v1beta1.MsgDrawDebtResponse) | DrawDebt defines a method to draw debt from a CDP. | | -| `RepayDebt` | [MsgRepayDebt](#kava.cdp.v1beta1.MsgRepayDebt) | [MsgRepayDebtResponse](#kava.cdp.v1beta1.MsgRepayDebtResponse) | RepayDebt defines a method to repay debt from a CDP. | | -| `Liquidate` | [MsgLiquidate](#kava.cdp.v1beta1.MsgLiquidate) | [MsgLiquidateResponse](#kava.cdp.v1beta1.MsgLiquidateResponse) | Liquidate defines a method to attempt to liquidate a CDP whos collateralization ratio is under its liquidation ratio. | | - - - - - - -

Top

- -## kava/committee/v1beta1/committee.proto - - - - - -### BaseCommittee -BaseCommittee is a common type shared by all Committees - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `id` | [uint64](#uint64) | | | -| `description` | [string](#string) | | | -| `members` | [bytes](#bytes) | repeated | | -| `permissions` | [google.protobuf.Any](#google.protobuf.Any) | repeated | | -| `vote_threshold` | [string](#string) | | Smallest percentage that must vote for a proposal to pass | -| `proposal_duration` | [google.protobuf.Duration](#google.protobuf.Duration) | | The length of time a proposal remains active for. Proposals will close earlier if they get enough votes. | -| `tally_option` | [TallyOption](#kava.committee.v1beta1.TallyOption) | | | - - - - - - - - -### MemberCommittee -MemberCommittee is an alias of BaseCommittee - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_committee` | [BaseCommittee](#kava.committee.v1beta1.BaseCommittee) | | | - - - - - - - - -### TokenCommittee -TokenCommittee supports voting on proposals by token holders - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_committee` | [BaseCommittee](#kava.committee.v1beta1.BaseCommittee) | | | -| `quorum` | [string](#string) | | | -| `tally_denom` | [string](#string) | | | - - - - - - - - - - -### TallyOption -TallyOption enumerates the valid types of a tally. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| TALLY_OPTION_UNSPECIFIED | 0 | TALLY_OPTION_UNSPECIFIED defines a null tally option. | -| TALLY_OPTION_FIRST_PAST_THE_POST | 1 | Votes are tallied each block and the proposal passes as soon as the vote threshold is reached | -| TALLY_OPTION_DEADLINE | 2 | Votes are tallied exactly once, when the deadline time is reached | - - - - - - - - - - - -

Top

- -## kava/committee/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the committee module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `next_proposal_id` | [uint64](#uint64) | | | -| `committees` | [google.protobuf.Any](#google.protobuf.Any) | repeated | | -| `proposals` | [Proposal](#kava.committee.v1beta1.Proposal) | repeated | | -| `votes` | [Vote](#kava.committee.v1beta1.Vote) | repeated | | - - - - - - - - -### Proposal -Proposal is an internal record of a governance proposal submitted to a committee. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `content` | [google.protobuf.Any](#google.protobuf.Any) | | | -| `id` | [uint64](#uint64) | | | -| `committee_id` | [uint64](#uint64) | | | -| `deadline` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### Vote -Vote is an internal record of a single governance vote. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `voter` | [bytes](#bytes) | | | -| `vote_type` | [VoteType](#kava.committee.v1beta1.VoteType) | | | - - - - - - - - - - -### VoteType -VoteType enumerates the valid types of a vote. - -| Name | Number | Description | -| ---- | ------ | ----------- | -| VOTE_TYPE_UNSPECIFIED | 0 | VOTE_TYPE_UNSPECIFIED defines a no-op vote option. | -| VOTE_TYPE_YES | 1 | VOTE_TYPE_YES defines a yes vote option. | -| VOTE_TYPE_NO | 2 | VOTE_TYPE_NO defines a no vote option. | -| VOTE_TYPE_ABSTAIN | 3 | VOTE_TYPE_ABSTAIN defines an abstain vote option. | - - - - - - - - - - - -

Top

- -## kava/committee/v1beta1/permissions.proto - - - - - -### AllowedParamsChange -AllowedParamsChange contains data on the allowed parameter changes for subspace, key, and sub params requirements. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `subspace` | [string](#string) | | | -| `key` | [string](#string) | | | -| `single_subparam_allowed_attrs` | [string](#string) | repeated | Requirements for when the subparam value is a single record. This contains list of allowed attribute keys that can be changed on the subparam record. | -| `multi_subparams_requirements` | [SubparamRequirement](#kava.committee.v1beta1.SubparamRequirement) | repeated | Requirements for when the subparam value is a list of records. The requirements contains requirements for each record in the list. | - - - - - - - - -### GodPermission -GodPermission allows any governance proposal. It is used mainly for testing. - - - - - - - - -### ParamsChangePermission -ParamsChangePermission allows any parameter or sub parameter change proposal. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `allowed_params_changes` | [AllowedParamsChange](#kava.committee.v1beta1.AllowedParamsChange) | repeated | | - - - - - - - - -### SoftwareUpgradePermission -SoftwareUpgradePermission permission type for software upgrade proposals - - - - - - - - -### SubparamRequirement -SubparamRequirement contains requirements for a single record in a subparam value list - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `key` | [string](#string) | | The required attr key of the param record. | -| `val` | [string](#string) | | The required param value for the param record key. The key and value is used to match to the target param record. | -| `allowed_subparam_attr_changes` | [string](#string) | repeated | The sub param attrs that are allowed to be changed. | - - - - - - - - -### TextPermission -TextPermission allows any text governance proposal. - - - - - - - - - - - - - - - - -

Top

- -## kava/committee/v1beta1/proposal.proto - - - - - -### CommitteeChangeProposal -CommitteeChangeProposal is a gov proposal for creating a new committee or modifying an existing one. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `title` | [string](#string) | | | -| `description` | [string](#string) | | | -| `new_committee` | [google.protobuf.Any](#google.protobuf.Any) | | | - - - - - - - - -### CommitteeDeleteProposal -CommitteeDeleteProposal is a gov proposal for removing a committee. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `title` | [string](#string) | | | -| `description` | [string](#string) | | | -| `committee_id` | [uint64](#uint64) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/committee/v1beta1/query.proto - - - - - -### QueryCommitteeRequest -QueryCommitteeRequest defines the request type for querying x/committee committee. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `committee_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryCommitteeResponse -QueryCommitteeResponse defines the response type for querying x/committee committee. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `committee` | [google.protobuf.Any](#google.protobuf.Any) | | | - - - - - - - - -### QueryCommitteesRequest -QueryCommitteesRequest defines the request type for querying x/committee committees. - - - - - - - - -### QueryCommitteesResponse -QueryCommitteesResponse defines the response type for querying x/committee committees. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `committees` | [google.protobuf.Any](#google.protobuf.Any) | repeated | | - - - - - - - - -### QueryNextProposalIDRequest -QueryNextProposalIDRequest defines the request type for querying x/committee NextProposalID. - - - - - - - - -### QueryNextProposalIDResponse -QueryNextProposalIDRequest defines the response type for querying x/committee NextProposalID. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `next_proposal_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryProposalRequest -QueryProposalRequest defines the request type for querying x/committee proposal. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryProposalResponse -QueryProposalResponse defines the response type for querying x/committee proposal. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `pub_proposal` | [google.protobuf.Any](#google.protobuf.Any) | | | -| `id` | [uint64](#uint64) | | | -| `committee_id` | [uint64](#uint64) | | | -| `deadline` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### QueryProposalsRequest -QueryProposalsRequest defines the request type for querying x/committee proposals. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `committee_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryProposalsResponse -QueryProposalsResponse defines the response type for querying x/committee proposals. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposals` | [QueryProposalResponse](#kava.committee.v1beta1.QueryProposalResponse) | repeated | | - - - - - - - - -### QueryRawParamsRequest -QueryRawParamsRequest defines the request type for querying x/committee raw params. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `subspace` | [string](#string) | | | -| `key` | [string](#string) | | | - - - - - - - - -### QueryRawParamsResponse -QueryRawParamsResponse defines the response type for querying x/committee raw params. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `raw_data` | [string](#string) | | | - - - - - - - - -### QueryTallyRequest -QueryTallyRequest defines the request type for querying x/committee tally. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | - - - - - - - - -### QueryTallyResponse -QueryTallyResponse defines the response type for querying x/committee tally. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `yes_votes` | [string](#string) | | | -| `no_votes` | [string](#string) | | | -| `current_votes` | [string](#string) | | | -| `possible_votes` | [string](#string) | | | -| `vote_threshold` | [string](#string) | | | -| `quorum` | [string](#string) | | | - - - - - - - - -### QueryVoteRequest -QueryVoteRequest defines the request type for querying x/committee vote. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `voter` | [string](#string) | | | - - - - - - - - -### QueryVoteResponse -QueryVoteResponse defines the response type for querying x/committee vote. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `voter` | [string](#string) | | | -| `vote_type` | [VoteType](#kava.committee.v1beta1.VoteType) | | | - - - - - - - - -### QueryVotesRequest -QueryVotesRequest defines the request type for querying x/committee votes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryVotesResponse -QueryVotesResponse defines the response type for querying x/committee votes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `votes` | [QueryVoteResponse](#kava.committee.v1beta1.QueryVoteResponse) | repeated | votes defined the queried votes. | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for committee module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Committees` | [QueryCommitteesRequest](#kava.committee.v1beta1.QueryCommitteesRequest) | [QueryCommitteesResponse](#kava.committee.v1beta1.QueryCommitteesResponse) | Committees queries all committess of the committee module. | GET|/kava/committee/v1beta1/committees| -| `Committee` | [QueryCommitteeRequest](#kava.committee.v1beta1.QueryCommitteeRequest) | [QueryCommitteeResponse](#kava.committee.v1beta1.QueryCommitteeResponse) | Committee queries a committee based on committee ID. | GET|/kava/committee/v1beta1/committees/{committee_id}| -| `Proposals` | [QueryProposalsRequest](#kava.committee.v1beta1.QueryProposalsRequest) | [QueryProposalsResponse](#kava.committee.v1beta1.QueryProposalsResponse) | Proposals queries proposals based on committee ID. | GET|/kava/committee/v1beta1/proposals| -| `Proposal` | [QueryProposalRequest](#kava.committee.v1beta1.QueryProposalRequest) | [QueryProposalResponse](#kava.committee.v1beta1.QueryProposalResponse) | Deposits queries a proposal based on proposal ID. | GET|/kava/committee/v1beta1/proposals/{proposal_id}| -| `NextProposalID` | [QueryNextProposalIDRequest](#kava.committee.v1beta1.QueryNextProposalIDRequest) | [QueryNextProposalIDResponse](#kava.committee.v1beta1.QueryNextProposalIDResponse) | NextProposalID queries the next proposal ID of the committee module. | GET|/kava/committee/v1beta1/next-proposal-id| -| `Votes` | [QueryVotesRequest](#kava.committee.v1beta1.QueryVotesRequest) | [QueryVotesResponse](#kava.committee.v1beta1.QueryVotesResponse) | Votes queries all votes for a single proposal ID. | GET|/kava/committee/v1beta1/proposals/{proposal_id}/votes| -| `Vote` | [QueryVoteRequest](#kava.committee.v1beta1.QueryVoteRequest) | [QueryVoteResponse](#kava.committee.v1beta1.QueryVoteResponse) | Vote queries the vote of a single voter for a single proposal ID. | GET|/kava/committee/v1beta1/proposals/{proposal_id}/votes/{voter}| -| `Tally` | [QueryTallyRequest](#kava.committee.v1beta1.QueryTallyRequest) | [QueryTallyResponse](#kava.committee.v1beta1.QueryTallyResponse) | Tally queries the tally of a single proposal ID. | GET|/kava/committee/v1beta1/proposals/{proposal_id}/tally| -| `RawParams` | [QueryRawParamsRequest](#kava.committee.v1beta1.QueryRawParamsRequest) | [QueryRawParamsResponse](#kava.committee.v1beta1.QueryRawParamsResponse) | RawParams queries the raw params data of any subspace and key. | GET|/kava/committee/v1beta1/raw-params| - - - - - - -

Top

- -## kava/committee/v1beta1/tx.proto - - - - - -### MsgSubmitProposal -MsgSubmitProposal is used by committee members to create a new proposal that they can vote on. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `pub_proposal` | [google.protobuf.Any](#google.protobuf.Any) | | | -| `proposer` | [string](#string) | | | -| `committee_id` | [uint64](#uint64) | | | - - - - - - - - -### MsgSubmitProposalResponse -MsgSubmitProposalResponse defines the SubmitProposal response type - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | - - - - - - - - -### MsgVote -MsgVote is submitted by committee members to vote on proposals. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `proposal_id` | [uint64](#uint64) | | | -| `voter` | [string](#string) | | | -| `vote_type` | [VoteType](#kava.committee.v1beta1.VoteType) | | | - - - - - - - - -### MsgVoteResponse -MsgVoteResponse defines the Vote response type - - - - - - - - - - - - - - -### Msg -Msg defines the committee Msg service - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `SubmitProposal` | [MsgSubmitProposal](#kava.committee.v1beta1.MsgSubmitProposal) | [MsgSubmitProposalResponse](#kava.committee.v1beta1.MsgSubmitProposalResponse) | SubmitProposal defines a method for submitting a committee proposal | | -| `Vote` | [MsgVote](#kava.committee.v1beta1.MsgVote) | [MsgVoteResponse](#kava.committee.v1beta1.MsgVoteResponse) | Vote defines a method for voting on a proposal | | - - - - - - -

Top

- -## kava/hard/v1beta1/hard.proto - - - - - -### Borrow -Borrow defines an amount of coins borrowed from a hard module account. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrower` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `index` | [BorrowInterestFactor](#kava.hard.v1beta1.BorrowInterestFactor) | repeated | | - - - - - - - - -### BorrowInterestFactor -BorrowInterestFactor defines an individual borrow interest factor. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `value` | [string](#string) | | | - - - - - - - - -### BorrowLimit -BorrowLimit enforces restrictions on a money market. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `has_max_limit` | [bool](#bool) | | | -| `maximum_limit` | [string](#string) | | | -| `loan_to_value` | [string](#string) | | | - - - - - - - - -### CoinsProto -CoinsProto defines a Protobuf wrapper around a Coins slice - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `coins` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### Deposit -Deposit defines an amount of coins deposited into a hard module account. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `index` | [SupplyInterestFactor](#kava.hard.v1beta1.SupplyInterestFactor) | repeated | | - - - - - - - - -### InterestRateModel -InterestRateModel contains information about an asset's interest rate. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_rate_apy` | [string](#string) | | | -| `base_multiplier` | [string](#string) | | | -| `kink` | [string](#string) | | | -| `jump_multiplier` | [string](#string) | | | - - - - - - - - -### MoneyMarket -MoneyMarket is a money market for an individual asset. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `borrow_limit` | [BorrowLimit](#kava.hard.v1beta1.BorrowLimit) | | | -| `spot_market_id` | [string](#string) | | | -| `conversion_factor` | [string](#string) | | | -| `interest_rate_model` | [InterestRateModel](#kava.hard.v1beta1.InterestRateModel) | | | -| `reserve_factor` | [string](#string) | | | -| `keeper_reward_percentage` | [string](#string) | | | - - - - - - - - -### Params -Params defines the parameters for the hard module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `money_markets` | [MoneyMarket](#kava.hard.v1beta1.MoneyMarket) | repeated | | -| `minimum_borrow_usd_value` | [string](#string) | | | - - - - - - - - -### SupplyInterestFactor -SupplyInterestFactor defines an individual borrow interest factor. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `value` | [string](#string) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/hard/v1beta1/genesis.proto - - - - - -### GenesisAccumulationTime -GenesisAccumulationTime stores the previous distribution time and its corresponding denom. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `previous_accumulation_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `supply_interest_factor` | [string](#string) | | | -| `borrow_interest_factor` | [string](#string) | | | - - - - - - - - -### GenesisState -GenesisState defines the hard module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.hard.v1beta1.Params) | | | -| `previous_accumulation_times` | [GenesisAccumulationTime](#kava.hard.v1beta1.GenesisAccumulationTime) | repeated | | -| `deposits` | [Deposit](#kava.hard.v1beta1.Deposit) | repeated | | -| `borrows` | [Borrow](#kava.hard.v1beta1.Borrow) | repeated | | -| `total_supplied` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `total_borrowed` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `total_reserves` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/hard/v1beta1/query.proto - - - - - -### BorrowInterestFactorResponse -BorrowInterestFactorResponse defines an individual borrow interest factor. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `value` | [string](#string) | | sdk.Dec as string | - - - - - - - - -### BorrowResponse -BorrowResponse defines an amount of coins borrowed from a hard module account. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrower` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `index` | [BorrowInterestFactorResponse](#kava.hard.v1beta1.BorrowInterestFactorResponse) | repeated | | - - - - - - - - -### DepositResponse -DepositResponse defines an amount of coins deposited into a hard module account. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | -| `index` | [SupplyInterestFactorResponse](#kava.hard.v1beta1.SupplyInterestFactorResponse) | repeated | | - - - - - - - - -### InterestFactor -InterestFactor is a unique type returned by interest factor queries - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `borrow_interest_factor` | [string](#string) | | sdk.Dec as String | -| `supply_interest_factor` | [string](#string) | | sdk.Dec as String | - - - - - - - - -### MoneyMarketInterestRate -MoneyMarketInterestRate is a unique type returned by interest rate queries - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `supply_interest_rate` | [string](#string) | | sdk.Dec as String | -| `borrow_interest_rate` | [string](#string) | | sdk.Dec as String | - - - - - - - - -### QueryAccountsRequest -QueryAccountsRequest is the request type for the Query/Accounts RPC method. - - - - - - - - -### QueryAccountsResponse -QueryAccountsResponse is the response type for the Query/Accounts RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `accounts` | [cosmos.auth.v1beta1.ModuleAccount](#cosmos.auth.v1beta1.ModuleAccount) | repeated | | - - - - - - - - -### QueryBorrowsRequest -QueryBorrowsRequest is the request type for the Query/Borrows RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryBorrowsResponse -QueryBorrowsResponse is the response type for the Query/Borrows RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrows` | [BorrowResponse](#kava.hard.v1beta1.BorrowResponse) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### QueryDepositsRequest -QueryDepositsRequest is the request type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryDepositsResponse -QueryDepositsResponse is the response type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `deposits` | [DepositResponse](#kava.hard.v1beta1.DepositResponse) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### QueryInterestFactorsRequest -QueryInterestFactorsRequest is the request type for the Query/InterestFactors RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | - - - - - - - - -### QueryInterestFactorsResponse -QueryInterestFactorsResponse is the response type for the Query/InterestFactors RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `interest_factors` | [InterestFactor](#kava.hard.v1beta1.InterestFactor) | repeated | | - - - - - - - - -### QueryInterestRateRequest -QueryInterestRateRequest is the request type for the Query/InterestRate RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | - - - - - - - - -### QueryInterestRateResponse -QueryInterestRateResponse is the response type for the Query/InterestRate RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `interest_rates` | [MoneyMarketInterestRate](#kava.hard.v1beta1.MoneyMarketInterestRate) | repeated | | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest is the request type for the Query/Params RPC method. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse is the response type for the Query/Params RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.hard.v1beta1.Params) | | | - - - - - - - - -### QueryReservesRequest -QueryReservesRequest is the request type for the Query/Reserves RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | - - - - - - - - -### QueryReservesResponse -QueryReservesResponse is the response type for the Query/Reserves RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### QueryTotalBorrowedRequest -QueryTotalBorrowedRequest is the request type for the Query/TotalBorrowed RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | - - - - - - - - -### QueryTotalBorrowedResponse -QueryTotalBorrowedResponse is the response type for the Query/TotalBorrowed RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrowed_coins` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### QueryTotalDepositedRequest -QueryTotalDepositedRequest is the request type for the Query/TotalDeposited RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | - - - - - - - - -### QueryTotalDepositedResponse -QueryTotalDepositedResponse is the response type for the Query/TotalDeposited RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `supplied_coins` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### QueryUnsyncedBorrowsRequest -QueryUnsyncedBorrowsRequest is the request type for the Query/UnsyncedBorrows RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryUnsyncedBorrowsResponse -QueryUnsyncedBorrowsResponse is the response type for the Query/UnsyncedBorrows RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrows` | [BorrowResponse](#kava.hard.v1beta1.BorrowResponse) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### QueryUnsyncedDepositsRequest -QueryUnsyncedDepositsRequest is the request type for the Query/UnsyncedDeposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | | - - - - - - - - -### QueryUnsyncedDepositsResponse -QueryUnsyncedDepositsResponse is the response type for the Query/UnsyncedDeposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `deposits` | [DepositResponse](#kava.hard.v1beta1.DepositResponse) | repeated | | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | | - - - - - - - - -### SupplyInterestFactorResponse -SupplyInterestFactorResponse defines an individual borrow interest factor. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `value` | [string](#string) | | sdk.Dec as string | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for bep3 module. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.hard.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.hard.v1beta1.QueryParamsResponse) | Params queries module params. | GET|/kava/hard/v1beta1/params| -| `Accounts` | [QueryAccountsRequest](#kava.hard.v1beta1.QueryAccountsRequest) | [QueryAccountsResponse](#kava.hard.v1beta1.QueryAccountsResponse) | Accounts queries module accounts. | GET|/kava/hard/v1beta1/accounts| -| `Deposits` | [QueryDepositsRequest](#kava.hard.v1beta1.QueryDepositsRequest) | [QueryDepositsResponse](#kava.hard.v1beta1.QueryDepositsResponse) | Deposits queries hard deposits. | GET|/kava/hard/v1beta1/deposits| -| `UnsyncedDeposits` | [QueryUnsyncedDepositsRequest](#kava.hard.v1beta1.QueryUnsyncedDepositsRequest) | [QueryUnsyncedDepositsResponse](#kava.hard.v1beta1.QueryUnsyncedDepositsResponse) | UnsyncedDeposits queries unsynced deposits. | GET|/kava/hard/v1beta1/unsynced-deposits| -| `TotalDeposited` | [QueryTotalDepositedRequest](#kava.hard.v1beta1.QueryTotalDepositedRequest) | [QueryTotalDepositedResponse](#kava.hard.v1beta1.QueryTotalDepositedResponse) | TotalDeposited queries total coins deposited to hard liquidity pools. | GET|/kava/hard/v1beta1/total-deposited/{denom}| -| `Borrows` | [QueryBorrowsRequest](#kava.hard.v1beta1.QueryBorrowsRequest) | [QueryBorrowsResponse](#kava.hard.v1beta1.QueryBorrowsResponse) | Borrows queries hard borrows. | GET|/kava/hard/v1beta1/borrows| -| `UnsyncedBorrows` | [QueryUnsyncedBorrowsRequest](#kava.hard.v1beta1.QueryUnsyncedBorrowsRequest) | [QueryUnsyncedBorrowsResponse](#kava.hard.v1beta1.QueryUnsyncedBorrowsResponse) | UnsyncedBorrows queries unsynced borrows. | GET|/kava/hard/v1beta1/unsynced-borrows| -| `TotalBorrowed` | [QueryTotalBorrowedRequest](#kava.hard.v1beta1.QueryTotalBorrowedRequest) | [QueryTotalBorrowedResponse](#kava.hard.v1beta1.QueryTotalBorrowedResponse) | TotalBorrowed queries total coins borrowed from hard liquidity pools. | GET|/kava/hard/v1beta1/total-borrowed/{denom}| -| `InterestRate` | [QueryInterestRateRequest](#kava.hard.v1beta1.QueryInterestRateRequest) | [QueryInterestRateResponse](#kava.hard.v1beta1.QueryInterestRateResponse) | InterestRate queries the hard module interest rates. | GET|/kava/hard/v1beta1/interest-rate/{denom}| -| `Reserves` | [QueryReservesRequest](#kava.hard.v1beta1.QueryReservesRequest) | [QueryReservesResponse](#kava.hard.v1beta1.QueryReservesResponse) | Reserves queries total hard reserve coins. | GET|/kava/hard/v1beta1/reserves/{denom}| -| `InterestFactors` | [QueryInterestFactorsRequest](#kava.hard.v1beta1.QueryInterestFactorsRequest) | [QueryInterestFactorsResponse](#kava.hard.v1beta1.QueryInterestFactorsResponse) | InterestFactors queries hard module interest factors. | GET|/kava/hard/v1beta1/interest-factors/{denom}| - - - - - - -

Top

- -## kava/hard/v1beta1/tx.proto - - - - - -### MsgBorrow -MsgBorrow defines the Msg/Borrow request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `borrower` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### MsgBorrowResponse -MsgBorrowResponse defines the Msg/Borrow response type. - - - - - - - - -### MsgDeposit -MsgDeposit defines the Msg/Deposit request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### MsgDepositResponse -MsgDepositResponse defines the Msg/Deposit response type. - - - - - - - - -### MsgLiquidate -MsgLiquidate defines the Msg/Liquidate request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `keeper` | [string](#string) | | | -| `borrower` | [string](#string) | | | - - - - - - - - -### MsgLiquidateResponse -MsgLiquidateResponse defines the Msg/Liquidate response type. - - - - - - - - -### MsgRepay -MsgRepay defines the Msg/Repay request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `owner` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### MsgRepayResponse -MsgRepayResponse defines the Msg/Repay response type. - - - - - - - - -### MsgWithdraw -MsgWithdraw defines the Msg/Withdraw request type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### MsgWithdrawResponse -MsgWithdrawResponse defines the Msg/Withdraw response type. - - - - - - - - - - - - - - -### Msg -Msg defines the hard Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Deposit` | [MsgDeposit](#kava.hard.v1beta1.MsgDeposit) | [MsgDepositResponse](#kava.hard.v1beta1.MsgDepositResponse) | Deposit defines a method for depositing funds to hard liquidity pool. | | -| `Withdraw` | [MsgWithdraw](#kava.hard.v1beta1.MsgWithdraw) | [MsgWithdrawResponse](#kava.hard.v1beta1.MsgWithdrawResponse) | Withdraw defines a method for withdrawing funds from hard liquidity pool. | | -| `Borrow` | [MsgBorrow](#kava.hard.v1beta1.MsgBorrow) | [MsgBorrowResponse](#kava.hard.v1beta1.MsgBorrowResponse) | Borrow defines a method for borrowing funds from hard liquidity pool. | | -| `Repay` | [MsgRepay](#kava.hard.v1beta1.MsgRepay) | [MsgRepayResponse](#kava.hard.v1beta1.MsgRepayResponse) | Repay defines a method for repaying funds borrowed from hard liquidity pool. | | -| `Liquidate` | [MsgLiquidate](#kava.hard.v1beta1.MsgLiquidate) | [MsgLiquidateResponse](#kava.hard.v1beta1.MsgLiquidateResponse) | Liquidate defines a method for attempting to liquidate a borrower that is over their loan-to-value. | | - - - - - - -

Top

- -## kava/incentive/v1beta1/claims.proto - - - - - -### BaseClaim -BaseClaim is a claim with a single reward coin types - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `owner` | [bytes](#bytes) | | | -| `reward` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### BaseMultiClaim -BaseMultiClaim is a claim with multiple reward coin types - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `owner` | [bytes](#bytes) | | | -| `reward` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### DelegatorClaim -DelegatorClaim stores delegation rewards that can be claimed by owner - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_claim` | [BaseMultiClaim](#kava.incentive.v1beta1.BaseMultiClaim) | | | -| `reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | - - - - - - - - -### HardLiquidityProviderClaim -HardLiquidityProviderClaim stores the hard liquidity provider rewards that can be claimed by owner - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_claim` | [BaseMultiClaim](#kava.incentive.v1beta1.BaseMultiClaim) | | | -| `supply_reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | -| `borrow_reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | - - - - - - - - -### MultiRewardIndex -MultiRewardIndex stores reward accumulation information on multiple reward types - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `reward_indexes` | [RewardIndex](#kava.incentive.v1beta1.RewardIndex) | repeated | | - - - - - - - - -### MultiRewardIndexesProto -MultiRewardIndexesProto defines a Protobuf wrapper around a MultiRewardIndexes slice - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `multi_reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | - - - - - - - - -### RewardIndex -RewardIndex stores reward accumulation information - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `reward_factor` | [bytes](#bytes) | | | - - - - - - - - -### RewardIndexesProto -RewardIndexesProto defines a Protobuf wrapper around a RewardIndexes slice - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `reward_indexes` | [RewardIndex](#kava.incentive.v1beta1.RewardIndex) | repeated | | - - - - - - - - -### SwapClaim -SwapClaim stores the swap rewards that can be claimed by owner - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_claim` | [BaseMultiClaim](#kava.incentive.v1beta1.BaseMultiClaim) | | | -| `reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | - - - - - - - - -### USDXMintingClaim -USDXMintingClaim is for USDX minting rewards - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `base_claim` | [BaseClaim](#kava.incentive.v1beta1.BaseClaim) | | | -| `reward_indexes` | [RewardIndex](#kava.incentive.v1beta1.RewardIndex) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/incentive/v1beta1/params.proto - - - - - -### MultiRewardPeriod -MultiRewardPeriod supports multiple reward types - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `active` | [bool](#bool) | | | -| `collateral_type` | [string](#string) | | | -| `start` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `rewards_per_second` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### Multiplier -Multiplier amount the claim rewards get increased by, along with how long the claim rewards are locked - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `name` | [string](#string) | | | -| `months_lockup` | [int64](#int64) | | | -| `factor` | [bytes](#bytes) | | | - - - - - - - - -### MultipliersPerDenom -MultipliersPerDenom is a map of denoms to a set of multipliers - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `multipliers` | [Multiplier](#kava.incentive.v1beta1.Multiplier) | repeated | | - - - - - - - - -### Params -Params - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `usdx_minting_reward_periods` | [RewardPeriod](#kava.incentive.v1beta1.RewardPeriod) | repeated | | -| `hard_supply_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | -| `hard_borrow_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | -| `delegator_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | -| `swap_reward_periods` | [MultiRewardPeriod](#kava.incentive.v1beta1.MultiRewardPeriod) | repeated | | -| `claim_multipliers` | [MultipliersPerDenom](#kava.incentive.v1beta1.MultipliersPerDenom) | repeated | | -| `claim_end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### RewardPeriod -RewardPeriod stores the state of an ongoing reward - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `active` | [bool](#bool) | | | -| `collateral_type` | [string](#string) | | | -| `start` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | -| `rewards_per_second` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/incentive/v1beta1/genesis.proto - - - - - -### AccumulationTime -AccumulationTime stores the previous reward distribution time and its corresponding collateral type - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `collateral_type` | [string](#string) | | | -| `previous_accumulation_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### GenesisRewardState -GenesisRewardState groups together the global state for a particular reward so it can be exported in genesis. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `accumulation_times` | [AccumulationTime](#kava.incentive.v1beta1.AccumulationTime) | repeated | | -| `multi_reward_indexes` | [MultiRewardIndex](#kava.incentive.v1beta1.MultiRewardIndex) | repeated | | - - - - - - - - -### GenesisState -GenesisState is the state that must be provided at genesis. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.incentive.v1beta1.Params) | | | -| `usdx_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | | -| `hard_supply_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | | -| `hard_borrow_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | | -| `delegator_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | | -| `swap_reward_state` | [GenesisRewardState](#kava.incentive.v1beta1.GenesisRewardState) | | | -| `usdx_minting_claims` | [USDXMintingClaim](#kava.incentive.v1beta1.USDXMintingClaim) | repeated | | -| `hard_liquidity_provider_claims` | [HardLiquidityProviderClaim](#kava.incentive.v1beta1.HardLiquidityProviderClaim) | repeated | | -| `delegator_claims` | [DelegatorClaim](#kava.incentive.v1beta1.DelegatorClaim) | repeated | | -| `swap_claims` | [SwapClaim](#kava.incentive.v1beta1.SwapClaim) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/incentive/v1beta1/tx.proto - - - - - -### MsgClaimDelegatorReward -MsgClaimDelegatorReward message type used to claim delegator rewards - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denoms_to_claim` | [Selection](#kava.incentive.v1beta1.Selection) | repeated | | - - - - - - - - -### MsgClaimDelegatorRewardResponse -MsgClaimDelegatorRewardResponse defines the Msg/ClaimDelegatorReward response type. - - - - - - - - -### MsgClaimHardReward -MsgClaimHardReward message type used to claim Hard liquidity provider rewards - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denoms_to_claim` | [Selection](#kava.incentive.v1beta1.Selection) | repeated | | - - - - - - - - -### MsgClaimHardRewardResponse -MsgClaimHardRewardResponse defines the Msg/ClaimHardReward response type. - - - - - - - - -### MsgClaimSwapReward -MsgClaimSwapReward message type used to claim delegator rewards - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denoms_to_claim` | [Selection](#kava.incentive.v1beta1.Selection) | repeated | | - - - - - - - - -### MsgClaimSwapRewardResponse -MsgClaimSwapRewardResponse defines the Msg/ClaimSwapReward response type. - - - - - - - - -### MsgClaimUSDXMintingReward -MsgClaimUSDXMintingReward message type used to claim USDX minting rewards - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `multiplier_name` | [string](#string) | | | - - - - - - - - -### MsgClaimUSDXMintingRewardResponse -MsgClaimUSDXMintingRewardResponse defines the Msg/ClaimUSDXMintingReward response type. - - - - - - - - -### Selection -Selection is a pair of denom and multiplier name. It holds the choice of multiplier a user makes when they claim a -denom. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `denom` | [string](#string) | | | -| `multiplier_name` | [string](#string) | | | - - - - - - - - - - - - - - -### Msg -Msg defines the incentive Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `ClaimUSDXMintingReward` | [MsgClaimUSDXMintingReward](#kava.incentive.v1beta1.MsgClaimUSDXMintingReward) | [MsgClaimUSDXMintingRewardResponse](#kava.incentive.v1beta1.MsgClaimUSDXMintingRewardResponse) | ClaimUSDXMintingReward is a message type used to claim USDX minting rewards | | -| `ClaimHardReward` | [MsgClaimHardReward](#kava.incentive.v1beta1.MsgClaimHardReward) | [MsgClaimHardRewardResponse](#kava.incentive.v1beta1.MsgClaimHardRewardResponse) | ClaimHardReward is a message type used to claim Hard liquidity provider rewards | | -| `ClaimDelegatorReward` | [MsgClaimDelegatorReward](#kava.incentive.v1beta1.MsgClaimDelegatorReward) | [MsgClaimDelegatorRewardResponse](#kava.incentive.v1beta1.MsgClaimDelegatorRewardResponse) | ClaimDelegatorReward is a message type used to claim delegator rewards | | -| `ClaimSwapReward` | [MsgClaimSwapReward](#kava.incentive.v1beta1.MsgClaimSwapReward) | [MsgClaimSwapRewardResponse](#kava.incentive.v1beta1.MsgClaimSwapRewardResponse) | ClaimSwapReward is a message type used to claim delegator rewards | | - - - - - - -

Top

- -## kava/issuance/v1beta1/genesis.proto - - - - - -### Asset -Asset type for assets in the issuance module - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `owner` | [string](#string) | | | -| `denom` | [string](#string) | | | -| `blocked_addresses` | [string](#string) | repeated | | -| `paused` | [bool](#bool) | | | -| `blockable` | [bool](#bool) | | | -| `rate_limit` | [RateLimit](#kava.issuance.v1beta1.RateLimit) | | | - - - - - - - - -### AssetSupply -AssetSupply contains information about an asset's rate-limited supply (the -total supply of the asset is tracked in the top-level supply module) - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `current_supply` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `time_elapsed` | [google.protobuf.Duration](#google.protobuf.Duration) | | | - - - - - - - - -### GenesisState -GenesisState defines the issuance module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.issuance.v1beta1.Params) | | params defines all the paramaters of the module. | -| `supplies` | [AssetSupply](#kava.issuance.v1beta1.AssetSupply) | repeated | | - - - - - - - - -### Params -Params defines the parameters for the issuance module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `assets` | [Asset](#kava.issuance.v1beta1.Asset) | repeated | | - - - - - - - - -### RateLimit -RateLimit parameters for rate-limiting the supply of an issued asset - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `active` | [bool](#bool) | | | -| `limit` | [bytes](#bytes) | | | -| `time_period` | [google.protobuf.Duration](#google.protobuf.Duration) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/issuance/v1beta1/query.proto - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/issuance parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/issuance parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.issuance.v1beta1.Params) | | | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for issuance module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.issuance.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.issuance.v1beta1.QueryParamsResponse) | Params queries all parameters of the issuance module. | GET|/kava/issuance/v1beta1/params| - - - - - - -

Top

- -## kava/issuance/v1beta1/tx.proto - - - - - -### MsgBlockAddress -MsgBlockAddress represents a message used by the issuer to block an address from holding or transferring tokens - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denom` | [string](#string) | | | -| `blocked_address` | [string](#string) | | | - - - - - - - - -### MsgBlockAddressResponse -MsgBlockAddressResponse defines the Msg/BlockAddress response type. - - - - - - - - -### MsgIssueTokens -MsgIssueTokens represents a message used by the issuer to issue new tokens - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `tokens` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `receiver` | [string](#string) | | | - - - - - - - - -### MsgIssueTokensResponse -MsgIssueTokensResponse defines the Msg/IssueTokens response type. - - - - - - - - -### MsgRedeemTokens -MsgRedeemTokens represents a message used by the issuer to redeem (burn) tokens - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `tokens` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | - - - - - - - - -### MsgRedeemTokensResponse -MsgRedeemTokensResponse defines the Msg/RedeemTokens response type. - - - - - - - - -### MsgSetPauseStatus -MsgSetPauseStatus message type used by the issuer to pause or unpause status - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denom` | [string](#string) | | | -| `status` | [bool](#bool) | | | - - - - - - - - -### MsgSetPauseStatusResponse -MsgSetPauseStatusResponse defines the Msg/SetPauseStatus response type. - - - - - - - - -### MsgUnblockAddress -MsgUnblockAddress message type used by the issuer to unblock an address from holding or transferring tokens - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `sender` | [string](#string) | | | -| `denom` | [string](#string) | | | -| `blocked_address` | [string](#string) | | | - - - - - - - - -### MsgUnblockAddressResponse -MsgUnblockAddressResponse defines the Msg/UnblockAddress response type. - - - - - - - - - - - - - - -### Msg -Msg defines the issuance Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `IssueTokens` | [MsgIssueTokens](#kava.issuance.v1beta1.MsgIssueTokens) | [MsgIssueTokensResponse](#kava.issuance.v1beta1.MsgIssueTokensResponse) | IssueTokens message type used by the issuer to issue new tokens | | -| `RedeemTokens` | [MsgRedeemTokens](#kava.issuance.v1beta1.MsgRedeemTokens) | [MsgRedeemTokensResponse](#kava.issuance.v1beta1.MsgRedeemTokensResponse) | RedeemTokens message type used by the issuer to redeem (burn) tokens | | -| `BlockAddress` | [MsgBlockAddress](#kava.issuance.v1beta1.MsgBlockAddress) | [MsgBlockAddressResponse](#kava.issuance.v1beta1.MsgBlockAddressResponse) | BlockAddress message type used by the issuer to block an address from holding or transferring tokens | | -| `UnblockAddress` | [MsgUnblockAddress](#kava.issuance.v1beta1.MsgUnblockAddress) | [MsgUnblockAddressResponse](#kava.issuance.v1beta1.MsgUnblockAddressResponse) | UnblockAddress message type used by the issuer to unblock an address from holding or transferring tokens | | -| `SetPauseStatus` | [MsgSetPauseStatus](#kava.issuance.v1beta1.MsgSetPauseStatus) | [MsgSetPauseStatusResponse](#kava.issuance.v1beta1.MsgSetPauseStatusResponse) | SetPauseStatus message type used to pause or unpause status | | - - - - - - -

Top

- -## kava/kavadist/v1beta1/params.proto - - - - - -### Params -Params governance parameters for kavadist module - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `active` | [bool](#bool) | | | -| `periods` | [Period](#kava.kavadist.v1beta1.Period) | repeated | | - - - - - - - - -### Period -Period stores the specified start and end dates, and the inflation, expressed as a decimal -representing the yearly APR of KAVA tokens that will be minted during that period - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `start` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | example "2020-03-01T15:20:00Z" | -| `end` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | example "2020-06-01T15:20:00Z" | -| `inflation` | [bytes](#bytes) | | example "1.000000003022265980" - 10% inflation | - - - - - - - - - - - - - - - - -

Top

- -## kava/kavadist/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the kavadist module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.kavadist.v1beta1.Params) | | | -| `previous_block_time` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/kavadist/v1beta1/proposal.proto - - - - - -### CommunityPoolMultiSpendProposal -CommunityPoolMultiSpendProposal spends from the community pool by sending to one or more -addresses - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `title` | [string](#string) | | | -| `description` | [string](#string) | | | -| `recipient_list` | [MultiSpendRecipient](#kava.kavadist.v1beta1.MultiSpendRecipient) | repeated | | - - - - - - - - -### CommunityPoolMultiSpendProposalJSON -CommunityPoolMultiSpendProposalJSON defines a CommunityPoolMultiSpendProposal with a deposit - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `title` | [string](#string) | | | -| `description` | [string](#string) | | | -| `recipient_list` | [MultiSpendRecipient](#kava.kavadist.v1beta1.MultiSpendRecipient) | repeated | | -| `deposit` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### MultiSpendRecipient -MultiSpendRecipient defines a recipient and the amount of coins they are receiving - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `address` | [string](#string) | | | -| `amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/kavadist/v1beta1/query.proto - - - - - -### QueryBalanceRequest -QueryBalanceRequest defines the request type for querying x/kavadist balance. - - - - - - - - -### QueryBalanceResponse -QueryBalanceResponse defines the response type for querying x/kavadist balance. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `coins` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/kavadist parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/kavadist parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.kavadist.v1beta1.Params) | | | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.kavadist.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.kavadist.v1beta1.QueryParamsResponse) | Params queries the parameters of x/kavadist module. | GET|/kava/kavadist/v1beta1/parameters| -| `Balance` | [QueryBalanceRequest](#kava.kavadist.v1beta1.QueryBalanceRequest) | [QueryBalanceResponse](#kava.kavadist.v1beta1.QueryBalanceResponse) | Balance queries the balance of all coins of x/kavadist module. | GET|/kava/kavadist/v1beta1/balance| - - - - - - -

Top

- -## kava/pricefeed/v1beta1/store.proto - - - - - -### CurrentPrice -CurrentPrice defines a current price for a particular market in the pricefeed -module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `price` | [string](#string) | | | - - - - - - - - -### Market -Market defines an asset in the pricefeed. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `base_asset` | [string](#string) | | | -| `quote_asset` | [string](#string) | | | -| `oracles` | [bytes](#bytes) | repeated | | -| `active` | [bool](#bool) | | | - - - - - - - - -### Params -Params defines the parameters for the pricefeed module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `markets` | [Market](#kava.pricefeed.v1beta1.Market) | repeated | | - - - - - - - - -### PostedPrice -PostedPrice defines a price for market posted by a specific oracle. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `oracle_address` | [bytes](#bytes) | | | -| `price` | [string](#string) | | | -| `expiry` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - - - - - - - - - -

Top

- -## kava/pricefeed/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the pricefeed module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.pricefeed.v1beta1.Params) | | params defines all the paramaters of the module. | -| `posted_prices` | [PostedPrice](#kava.pricefeed.v1beta1.PostedPrice) | repeated | | - - - - - - - - - - - - - - - - -

Top

- -## kava/pricefeed/v1beta1/query.proto - - - - - -### CurrentPriceResponse -CurrentPriceResponse defines a current price for a particular market in the pricefeed -module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `price` | [string](#string) | | | - - - - - - - - -### MarketResponse -MarketResponse defines an asset in the pricefeed. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `base_asset` | [string](#string) | | | -| `quote_asset` | [string](#string) | | | -| `oracles` | [string](#string) | repeated | | -| `active` | [bool](#bool) | | | - - - - - - - - -### PostedPriceResponse -PostedPriceResponse defines a price for market posted by a specific oracle. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | -| `oracle_address` | [string](#string) | | | -| `price` | [string](#string) | | | -| `expiry` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### QueryMarketsRequest -QueryMarketsRequest is the request type for the Query/Markets RPC method. - - - - - - - - -### QueryMarketsResponse -QueryMarketsResponse is the response type for the Query/Markets RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `markets` | [MarketResponse](#kava.pricefeed.v1beta1.MarketResponse) | repeated | List of markets | - - - - - - - - -### QueryOraclesRequest -QueryOraclesRequest is the request type for the Query/Oracles RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | - - - - - - - - -### QueryOraclesResponse -QueryOraclesResponse is the response type for the Query/Oracles RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `oracles` | [string](#string) | repeated | List of oracle addresses | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/pricefeed -parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/pricefeed -parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.pricefeed.v1beta1.Params) | | | - - - - - - - - -### QueryPriceRequest -QueryPriceRequest is the request type for the Query/PriceRequest RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | - - - - - - - - -### QueryPriceResponse -QueryPriceResponse is the response type for the Query/Prices RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `price` | [CurrentPriceResponse](#kava.pricefeed.v1beta1.CurrentPriceResponse) | | | - - - - - - - - -### QueryPricesRequest -QueryPricesRequest is the request type for the Query/Prices RPC method. - - - - - - - - -### QueryPricesResponse -QueryPricesResponse is the response type for the Query/Prices RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `prices` | [CurrentPriceResponse](#kava.pricefeed.v1beta1.CurrentPriceResponse) | repeated | | - - - - - - - - -### QueryRawPricesRequest -QueryRawPricesRequest is the request type for the Query/RawPrices RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `market_id` | [string](#string) | | | - - - - - - - - -### QueryRawPricesResponse -QueryRawPricesResponse is the response type for the Query/RawPrices RPC -method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `raw_prices` | [PostedPriceResponse](#kava.pricefeed.v1beta1.PostedPriceResponse) | repeated | | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for pricefeed module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.pricefeed.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.pricefeed.v1beta1.QueryParamsResponse) | Params queries all parameters of the pricefeed module. | GET|/kava/pricefeed/v1beta1/params| -| `Price` | [QueryPriceRequest](#kava.pricefeed.v1beta1.QueryPriceRequest) | [QueryPriceResponse](#kava.pricefeed.v1beta1.QueryPriceResponse) | Price queries price details based on a market | GET|/kava/pricefeed/v1beta1/prices/{market_id}| -| `Prices` | [QueryPricesRequest](#kava.pricefeed.v1beta1.QueryPricesRequest) | [QueryPricesResponse](#kava.pricefeed.v1beta1.QueryPricesResponse) | Prices queries all prices | GET|/kava/pricefeed/v1beta1/prices| -| `RawPrices` | [QueryRawPricesRequest](#kava.pricefeed.v1beta1.QueryRawPricesRequest) | [QueryRawPricesResponse](#kava.pricefeed.v1beta1.QueryRawPricesResponse) | RawPrices queries all raw prices based on a market | GET|/kava/pricefeed/v1beta1/rawprices/{market_id}| -| `Oracles` | [QueryOraclesRequest](#kava.pricefeed.v1beta1.QueryOraclesRequest) | [QueryOraclesResponse](#kava.pricefeed.v1beta1.QueryOraclesResponse) | Oracles queries all oracles based on a market | GET|/kava/pricefeed/v1beta1/oracles/{market_id}| -| `Markets` | [QueryMarketsRequest](#kava.pricefeed.v1beta1.QueryMarketsRequest) | [QueryMarketsResponse](#kava.pricefeed.v1beta1.QueryMarketsResponse) | Markets queries all markets | GET|/kava/pricefeed/v1beta1/markets| - - - - - - -

Top

- -## kava/pricefeed/v1beta1/tx.proto - - - - - -### MsgPostPrice -MsgPostPrice represents a method for creating a new post price - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `from` | [string](#string) | | address of client | -| `market_id` | [string](#string) | | | -| `price` | [string](#string) | | | -| `expiry` | [google.protobuf.Timestamp](#google.protobuf.Timestamp) | | | - - - - - - - - -### MsgPostPriceResponse -MsgPostPriceResponse defines the Msg/PostPrice response type. - - - - - - - - - - - - - - -### Msg -Msg defines the pricefeed Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `PostPrice` | [MsgPostPrice](#kava.pricefeed.v1beta1.MsgPostPrice) | [MsgPostPriceResponse](#kava.pricefeed.v1beta1.MsgPostPriceResponse) | PostPrice defines a method for creating a new post price | | - - - - - - -

Top

- -## kava/swap/v1beta1/swap.proto - - - - - -### AllowedPool -AllowedPool defines a pool that is allowed to be created - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `token_a` | [string](#string) | | token_a represents the a token allowed | -| `token_b` | [string](#string) | | token_b represents the b token allowed | - - - - - - - - -### Params -Params defines the parameters for the swap module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `allowed_pools` | [AllowedPool](#kava.swap.v1beta1.AllowedPool) | repeated | allowed_pools defines that pools that are allowed to be created | -| `swap_fee` | [string](#string) | | swap_fee defines the swap fee for all pools | - - - - - - - - -### PoolRecord -PoolRecord represents the state of a liquidity pool -and is used to store the state of a denominated pool - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `pool_id` | [string](#string) | | pool_id represents the unique id of the pool | -| `reserves_a` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | reserves_a is the a token coin reserves | -| `reserves_b` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | reserves_b is the a token coin reserves | -| `total_shares` | [string](#string) | | total_shares is the total distrubuted shares of the pool | - - - - - - - - -### ShareRecord -ShareRecord stores the shares owned for a depositor and pool - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [bytes](#bytes) | | depositor represents the owner of the shares | -| `pool_id` | [string](#string) | | pool_id represents the pool the shares belong to | -| `shares_owned` | [string](#string) | | shares_owned represents the number of shares owned by depsoitor for the pool_id | - - - - - - - - - - - - - - - - -

Top

- -## kava/swap/v1beta1/genesis.proto - - - - - -### GenesisState -GenesisState defines the swap module's genesis state. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.swap.v1beta1.Params) | | params defines all the paramaters related to swap | -| `pool_records` | [PoolRecord](#kava.swap.v1beta1.PoolRecord) | repeated | pool_records defines the available pools | -| `share_records` | [ShareRecord](#kava.swap.v1beta1.ShareRecord) | repeated | share_records defines the owned shares of each pool | - - - - - - - - - - - - - - - - -

Top

- -## kava/swap/v1beta1/query.proto - - - - - -### DepositResponse -DepositResponse defines a single deposit query response type. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | depositor represents the owner of the deposit | -| `pool_id` | [string](#string) | | pool_id represents the pool the deposit is for | -| `shares_owned` | [string](#string) | | shares_owned presents the shares owned by the depositor for the pool | -| `shares_value` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | shares_value represents the coin value of the shares_owned | - - - - - - - - -### PoolResponse -Pool represents the state of a single pool - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `name` | [string](#string) | | name represents the name of the pool | -| `coins` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | coins represents the total reserves of the pool | -| `total_shares` | [string](#string) | | total_shares represents the total shares of the pool | - - - - - - - - -### QueryDepositsRequest -QueryDepositsRequest is the request type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `owner` | [string](#string) | | owner optionally filters deposits by owner | -| `pool_id` | [string](#string) | | pool_id optionally fitlers deposits by pool id | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | - - - - - - - - -### QueryDepositsResponse -QueryDepositsResponse is the response type for the Query/Deposits RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `deposits` | [DepositResponse](#kava.swap.v1beta1.DepositResponse) | repeated | deposits returns the deposits matching the requested parameters | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | - - - - - - - - -### QueryParamsRequest -QueryParamsRequest defines the request type for querying x/swap parameters. - - - - - - - - -### QueryParamsResponse -QueryParamsResponse defines the response type for querying x/swap parameters. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `params` | [Params](#kava.swap.v1beta1.Params) | | params represents the swap module parameters | - - - - - - - - -### QueryPoolsRequest -QueryPoolsRequest is the request type for the Query/Pools RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `pool_id` | [string](#string) | | pool_id filters pools by id | -| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | - - - - - - - - -### QueryPoolsResponse -QueryPoolsResponse is the response type for the Query/Pools RPC method. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `pools` | [PoolResponse](#kava.swap.v1beta1.PoolResponse) | repeated | pools represents returned pools | -| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | - - - - - - - - - - - - - - -### Query -Query defines the gRPC querier service for swap module - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Params` | [QueryParamsRequest](#kava.swap.v1beta1.QueryParamsRequest) | [QueryParamsResponse](#kava.swap.v1beta1.QueryParamsResponse) | Params queries all parameters of the swap module. | GET|/kava/swap/v1beta1/params| -| `Pools` | [QueryPoolsRequest](#kava.swap.v1beta1.QueryPoolsRequest) | [QueryPoolsResponse](#kava.swap.v1beta1.QueryPoolsResponse) | Pools queries pools based on pool ID | GET|/kava/swap/v1beta1/pools| -| `Deposits` | [QueryDepositsRequest](#kava.swap.v1beta1.QueryDepositsRequest) | [QueryDepositsResponse](#kava.swap.v1beta1.QueryDepositsResponse) | Deposits queries deposit details based on owner address and pool | GET|/kava/swap/v1beta1/deposits| - - - - - - -

Top

- -## kava/swap/v1beta1/tx.proto - - - - - -### MsgDeposit -MsgDeposit represents a message for depositing liquidity into a pool - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `depositor` | [string](#string) | | depositor represents the address to deposit funds from | -| `token_a` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | token_a represents one token of deposit pair | -| `token_b` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | token_b represents one token of deposit pair | -| `slippage` | [string](#string) | | slippage represents the max decimal percentage price change | -| `deadline` | [int64](#int64) | | deadline represents the unix timestamp to complete the deposit by | - - - - - - - - -### MsgDepositResponse -MsgDepositResponse defines the Msg/Deposit response type. - - - - - - - - -### MsgSwapExactForTokens -MsgSwapExactForTokens represents a message for trading exact coinA for coinB - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `requester` | [string](#string) | | represents the address swaping the tokens | -| `exact_token_a` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | exact_token_a represents the exact amount to swap for token_b | -| `token_b` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | token_b represents the desired token_b to swap for | -| `slippage` | [string](#string) | | slippage represents the maximum change in token_b allowed | -| `deadline` | [int64](#int64) | | deadline represents the unix timestamp to complete the swap by | - - - - - - - - -### MsgSwapExactForTokensResponse -MsgSwapExactForTokensResponse defines the Msg/SwapExactForTokens response -type. - - - - - - - - -### MsgSwapForExactTokens -MsgSwapForExactTokens represents a message for trading coinA for an exact -coinB - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `requester` | [string](#string) | | represents the address swaping the tokens | -| `token_a` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | token_a represents the desired token_a to swap for | -| `exact_token_b` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | exact_token_b represents the exact token b amount to swap for token a | -| `slippage` | [string](#string) | | slippage represents the maximum change in token_a allowed | -| `deadline` | [int64](#int64) | | deadline represents the unix timestamp to complete the swap by | - - - - - - - - -### MsgSwapForExactTokensResponse -MsgSwapForExactTokensResponse defines the Msg/SwapForExactTokensResponse -response type. - - - - - - - - -### MsgWithdraw -MsgWithdraw represents a message for withdrawing liquidity from a pool - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `from` | [string](#string) | | from represents the address we are withdrawing for | -| `shares` | [string](#string) | | shares represents the amount of shares to withdraw | -| `min_token_a` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | min_token_a represents the minimum a token to withdraw | -| `min_token_b` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | min_token_a represents the minimum a token to withdraw | -| `deadline` | [int64](#int64) | | deadline represents the unix timestamp to complete the withdraw by | - - - - - - - - -### MsgWithdrawResponse -MsgWithdrawResponse defines the Msg/Withdraw response type. - - - - - - - - - - - - - - -### Msg -Msg defines the swap Msg service. - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -| `Deposit` | [MsgDeposit](#kava.swap.v1beta1.MsgDeposit) | [MsgDepositResponse](#kava.swap.v1beta1.MsgDepositResponse) | Deposit defines a method for depositing liquidity into a pool | | -| `Withdraw` | [MsgWithdraw](#kava.swap.v1beta1.MsgWithdraw) | [MsgWithdrawResponse](#kava.swap.v1beta1.MsgWithdrawResponse) | Withdraw defines a method for withdrawing liquidity into a pool | | -| `SwapExactForTokens` | [MsgSwapExactForTokens](#kava.swap.v1beta1.MsgSwapExactForTokens) | [MsgSwapExactForTokensResponse](#kava.swap.v1beta1.MsgSwapExactForTokensResponse) | SwapExactForTokens represents a message for trading exact coinA for coinB | | -| `SwapForExactTokens` | [MsgSwapForExactTokens](#kava.swap.v1beta1.MsgSwapForExactTokens) | [MsgSwapForExactTokensResponse](#kava.swap.v1beta1.MsgSwapForExactTokensResponse) | SwapForExactTokens represents a message for trading coinA for an exact coinB | | - - - - - -## Scalar Value Types - -| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | -| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | -| double | | double | double | float | float64 | double | float | Float | -| float | | float | float | float | float32 | float | float | Float | -| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | -| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | -| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | -| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | -| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | -| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | -| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | -| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | -| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | - diff --git a/docs/founder-badge.png b/docs/founder-badge.png deleted file mode 100644 index 0c98d7739e4e8199fd9343dc22a9ded96193c3df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77146 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 X&0OTOs6DO?62=(au#p0Sbb}zF(jl#c2nc)$ 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�N{W$BPB7Qyub9=BkNx6p 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 z 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 VpK6*OKrT%;&^fLB{G@Hz{{ZaSAN&9S diff --git a/docs/kava-8/upgrade_oracle.md b/docs/kava-8/upgrade_oracle.md deleted file mode 100644 index 3d157c2e..00000000 --- a/docs/kava-8/upgrade_oracle.md +++ /dev/null @@ -1,36 +0,0 @@ -# kava-8 Oracle Update Guide -The Kava blockchain is upgrading and minor updates are needed for oracles - -## Update Guide For Standalone Oracle Operators -1. Install the latest version of kava-tools -2. In your `.env` configuration file, add an entry for `FEE`. This will set the default fee (in ukava) for each oracle transaction (can be 0). - - `FEE=”10000”` -3. In your `.env` configuration file, update the MARKET_IDS entry to include the latest markets for kava-5: - - `MARKET_IDS="bnb:usd,bnb:usd:30,btc:usd,btc:usd:30,xrp:usd,xrp:usd:30,busd:usd,busd:usd:30,kava:usd,kava:usd:30,hard:usd,hard:usd:30,usdx:usd,usdx:usd:30"` -4. Restart your oracle process - -## Update Guide For Chainlink Oracle Operators -1. Pull the latest version of Kava’s external-adapters-js repo -2. Install `yarn` -3. Build the latest version of the kava adapter - - from top level external-adapter-js directory - - make docker adapter=kava -4. Edit your configuration file and add an entry for `FEE`. This will set the default fee (in ukava) for each oracle transaction (can be 0). - - `FEE=”10000”` -5. Restart the kava adapter with the latest version -6. If necessary, create jobs for the following market_ids, if they do not already exist - - bnb:usd - - bnb:usd:30 - - btc:usd - - btc:usd:30 - - xrp:usd - - xrp:usd:30 - - busd:usd - - busd:usd:30 - - kava:usd - - kava:usd:30 - - hard:usd - - hard:usd:30 - - usdx:usd - - usdx:usd:30 - diff --git a/docs/kava-8/upgrade_validator.md b/docs/kava-8/upgrade_validator.md deleted file mode 100644 index 7df859be..00000000 --- a/docs/kava-8/upgrade_validator.md +++ /dev/null @@ -1,70 +0,0 @@ -# kava-8 Validator Update Guide -The kava-8 update includes new features. This document contains important information about the new functionality and breaking changes. - -kava-8 will use the same major version of the cosmos-sdk (v0.39.x). kava-8 will have the same golang compatibility as kava-7, requiring v1.13+. Golang v1.15 has been tested and is suitable for use on kava-8 mainnet. - -## Migration Procedure - -The specific steps to migrate your node can be found [here](https://github.com/Kava-Labs/kava/blob/master/migrate/v0_15/migrate.md). - -## Breaking Changes - -#### Claiming Rewards -Reward claims in the `x/incentive` module have been updated to enable selective reward claiming by type and token denom. There are four primary reward claim message types: - -- **MsgClaimUSDXMintingReward** has arguments Sender (sdk.AccAddress) and MultiplierName (string). This message will claim all USDX minting rewards for the user, applying the specified reward multiplier. -- **MsgClaimHardReward** takes three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available HARD supply/borrow rewards of the specified denoms for the user, applying the specified reward multiplier. -- **MsgClaimDelegatorReward** takes three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available delegation rewards of the specified denoms for the user, applying the specified reward multiplier. -- **MsgClaimSwapReward** takes three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available SWAP protocol rewards of the specified denoms for the user, applying the specified reward multiplier. - -#### Committee Voting -Voting in the `x/committee` module has been updated to support Yes, No, and Abstain votes. -- **MsgVote** takes three arguments: Proposal ID (uint64), Voter (sdk.AccAddress), and Vote Type (VoteType). Valid Vote Types are “yes”, “y,” “no”, “n”, “abstain”, and “a”. - -## New Features -#### SWAP Protocol -Kava-8 introduces SWAP protocol, a decentralized exchange that enables users to swap tokens against liquidity pools. SWAP protocol has several new messages: - - -- **MsgDeposit** enables liquidity providers to deposit tokens into a liquidity pool. It takes five arguments - the depositor (sdk.AccAddress) that is providing liquidity, token A (sdk.Coin) that is being deposited, token B (sdk.Coin) that is being deposited, minimum acceptable slippage (sdk.Dec), and deadline (int64). After a successful deposit the liquidity provider will be credited deposit shares in the pool. -- **MsgWithdraw** enables liquidity providers to withdraw deposited tokens from a liquidity pool. It takes five arguments - the withdrawer’s address (sdk.AccAddress), the amount of shares (sdk.Int) to be withdrawn, the minimum accepted token A amount (sdk.Coin) to be received by the withdrawer, the minimum accepted token B amount (sdk.Coin) to be received, and the deadline (int64). After a successful withdrawal the liquidity provider will receive tokens. -- **MsgSwapExactForTokens** supports token swaps with an exact amount of input tokens. It takes five arguments - the requester’s address (sdk.AccAddress), the exact input amount of token A (sdk.Coin), the desired output amount of token B (sdk.Coin), the minimum accepted slippage (sdk.Dec) i.e. percentage difference from the output amount, and the deadline (int64). -- **MsgSwapForExactTokens** supports token swaps for an exact amount of output tokens. It takes five arguments - the requester’s address (sdk.AccAddress), the desired input amount of token A (sdk.Coin), the exact output amount of token B (sdk.Coin), the minimum accepted slippage (sdk.Dec) i.e. percentage difference from the input amount, and the deadline (int64). - -#### Committee -kava-8 introduces HARD and SWAP protocol governance by token holders via two new committees. Both committees have a proposal voting duration of seven days, a minimum quorum of 33%, and enact proposals that receive over 50% Yes votes. - -The **HARD Governance Committee** will have permissions to change the following parameters: -- Hard module permissions - - *Money markets*: whitelist of supported money markets. - - *Minimum borrow USD value*: minimum valid borrow amount in USD from a money market. -- Incentive module permissions - - *Hard supply reward periods*: HARD token rewards for HARD protocol suppliers. - - *Hard borrow reward periods*: HARD token rewards for HARD protocol borrowers. - - *Delegator reward periods*: HARD token rewards for KAVA delegators - -The **SWP Governance Committee** will have permissions to change the following parameters: -- Swap module permissions - - *Allowed pools*: whitelist of supported token pairs. - - *Swap fee*: global trading fee paid by users to liquidity providers. -- Incentive module permissions - - *Swap reward periods*: SWP token rewards for SWAP protocol liquidity providers. - - *Delegator reward periods*: SWP token rewards for KAVA delegators. - -## Kava REST API -Kava’s REST API supports all Kava-8 changes and features. To minimize compatibility issues, commonly used endpoints are still supported and have not been deprecated. API documentation can be found here. -Testing - -Kava-testnet-13000 is a publicly available testnet (http://app.swap-testnet.kava.io/) to test validation and external integrations. Publicly available REST and RPC endpoints are: - -#### Pruning nodes: -- Rest: https://api.testnet.kava.io/node_info -- RPC: https://rpc.testnet.kava.io - -#### Archive nodes: -- Rest: https://api.data-testnet.kava.io/node_info -- RPC: https://rpc.data-testnet.kava.io - - -## Questions/Feedback -Please reach out in your preferred communication channel (Discord, Slack, email) with any questions, or ask in [The Kava Platform Telegram](https://t.me/kavalabs). diff --git a/docs/kava-8/upgrade_wallet.md b/docs/kava-8/upgrade_wallet.md deleted file mode 100644 index c1259cef..00000000 --- a/docs/kava-8/upgrade_wallet.md +++ /dev/null @@ -1,51 +0,0 @@ -# kava-8 Wallet Update Guide -The kava-8 update includes new features. This document contains important information about the new functionality and breaking changes. - -kava-8 will use the same major version of the cosmos-sdk (v0.39.x). kava-8 will have the same golang compatibility as kava-7, requiring v1.13+. Golang v1.15 has been tested and is suitable for use on kava-8 mainnet. - -## Breaking Changes - -#### Claiming Rewards -Reward claims in the `x/incentive` module have been updated to enable selective reward claiming by type and token denom. There are four primary reward claim message types: - -- **MsgClaimUSDXMintingReward** has arguments Sender (sdk.AccAddress) and MultiplierName (string). This message will claim all USDX minting rewards for the user, applying the specified reward multiplier. -- **MsgClaimHardReward** takes three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available HARD supply/borrow rewards of the specified denoms for the user, applying the specified reward multiplier. -- **MsgClaimDelegatorReward** takes three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available delegation rewards of the specified denoms for the user, applying the specified reward multiplier. -- **MsgClaimSwapReward takes** three arguments: Sender (sdk.AccAddress), Multiplier Name (string), and Denoms To Claim ([]string). This message will claim any available SWAP protocol rewards of the specified denoms for the user, applying the specified reward multiplier. - -#### Committee Voting -Voting in the `x/committee` module has been updated to support Yes, No, and Abstain votes. -- **MsgVote takes three arguments: Proposal ID (uint64), Voter (sdk.AccAddress), and Vote Type (VoteType). Valid Vote Types are “yes”, “y,” “no”, “n”, “abstain”, and “a”. - -## New Features -#### SWAP Protocol -Kava-8 introduces SWAP protocol, a decentralized exchange that enables users to swap tokens against liquidity pools. SWAP protocol has several new messages: - - -- **MsgDeposit** enables liquidity providers to deposit tokens into a liquidity pool. It takes five arguments - the depositor (sdk.AccAddress) that is providing liquidity, token A (sdk.Coin) that is being deposited, token B (sdk.Coin) that is being deposited, minimum acceptable slippage (sdk.Dec), and deadline (int64). After a successful deposit the liquidity provider will be credited deposit shares in the pool. -- **MsgWithdraw** enables liquidity providers to withdraw deposited tokens from a liquidity pool. It takes five arguments - the withdrawer’s address (sdk.AccAddress), the amount of shares (sdk.Int) to be withdrawn, the minimum accepted token A amount (sdk.Coin) to be received by the withdrawer, the minimum accepted token B amount (sdk.Coin) to be received, and the deadline (int64). After a successful withdrawal the liquidity provider will receive tokens. -- **MsgSwapExactForTokens** supports token swaps with an exact amount of input tokens. It takes five arguments - the requester’s address (sdk.AccAddress), the exact input amount of token A (sdk.Coin), the desired output amount of token B (sdk.Coin), the minimum accepted slippage (sdk.Dec) i.e. percentage difference from the output amount, and the deadline (int64). -- **MsgSwapForExactTokens** supports token swaps for an exact amount of output tokens. It takes five arguments - the requester’s address (sdk.AccAddress), the desired input amount of token A (sdk.Coin), the exact output amount of token B (sdk.Coin), the minimum accepted slippage (sdk.Dec) i.e. percentage difference from the input amount, and the deadline (int64). - -#### Committee -kava-8 introduces HARD and SWAP protocol governance by token holders via two new committees. Both committees have a proposal voting duration of seven days, a minimum quorum of 33%, and enact proposals that receive over 50% Yes votes. - -The **HARD Governance Committee** will have permissions to change the following parameters: -- Hard module permissions - - *Money markets*: whitelist of supported money markets. - - *Minimum borrow USD value*: minimum valid borrow amount in USD from a money market. -- Incentive module permissions - - *Hard supply reward periods*: HARD token rewards for HARD protocol suppliers. - - *Hard borrow reward periods*: HARD token rewards for HARD protocol borrowers. - - *Delegator reward periods*: HARD token rewards for KAVA delegators - -The **SWP Governance Committee** will have permissions to change the following parameters: -- Swap module permissions - - *Allowed pools*: whitelist of supported token pairs. - - *Swap fee*: global trading fee paid by users to liquidity providers. -- Incentive module permissions - - *Swap reward periods*: SWP token rewards for SWAP protocol liquidity providers. - - *Delegator reward periods*: SWP token rewards for KAVA delegators. - -Kava REST API -Kava’s REST API supports all Kava-8 changes and features. To minimize compatibility issues, commonly used endpoints are still supported and have not been deprecated. API documentation can be found [here](https://swagger.kava.io/). diff --git a/docs/kava-9/validator_guide.md b/docs/kava-9/validator_guide.md deleted file mode 100644 index da02c578..00000000 --- a/docs/kava-9/validator_guide.md +++ /dev/null @@ -1,95 +0,0 @@ -# Kava-9 Validator Guide - -## Software Version and Key Dates - -- We will be upgrading from chain-id "kava-8" to chain-id "kava-9". -- The version of Kava for kava-9 is v0.16.1 -- The kava-8 chain will be shutdown with a `SoftwareUpgradeProposal` that activates at block height __1803250__, which is approximately 14:00 UTC on January, 19 2022. -- kava-9 genesis time is set to January 19, 2022 at 16:00 UTC -- The version of cosmos-sdk for kava-9 is v0.44.5 -- The version of tendermint for kava-9 v0.34.14 -- The minimum version of golang for kava-9 is __1.17+__. - -__NOTE__: As part of the upgrade to kava-9, the `kvd` and `kvcli` binaries were combined into a single blockchain binary named `kava`. When restarting the chain, be sure to use `kava start` and not the deprecated `kvd start`. - -### Risks - -As a validator, performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing. - -The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it. If the network is halted and you have started with a different genesis file than the expected one, seek advice from a Kava developer before resetting your validator. - -### Recovery - -Prior to exporting kava-8 state, validators are encouraged to take a full data snapshot at the export height before proceeding. Snap-shotting depends heavily on infrastructure, but generally this can be done by backing up the .kvd and .kvcli directories. - -It is critically important to back-up the .kvd/data/priv_validator_state.json file after stopping your kvd process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing, in case the upgrade fails and the previous chain needs to be restarted. - -In the event that the upgrade does not succeed, validators and operators must downgrade back to v0.15.2 of the Kava software and restore to their latest snapshot before restarting their nodes. - -## Upgrade Procedure - -### Before the upgrade - -Kava Labs has submitted a `SoftwareUpgradeProposal` that specifies block height __1803250__ as the final block height for kava-8. This height corresponds to approximately 14:00 UTC on January 19th. Once the proposal passes, the chain will shutdown automatically at the specified height and does not require manual intervention by validators. - -### On the day of the upgrade - -**The kava chain is expected to halt at block height __1803250__, at approximately 14:00 UTC, and restart with new software at 16:00 UTC January 19th. Do not stop your node and begin the upgrade before 14:00UTC on January 19th, or you may go offline and be unable to recover until after the upgrade!** - -**Make sure the kvd process is stopped before proceeding and that you have backed up your validator**. Failure to backup your validator could make it impossible to restart your node if the upgrade fails. - -1. Export State (this **MUST** be done using **v0.15.x**) - -```sh -# verify version before export: -kvd version --long -# name: kava -# server_name: kvd -# client_name: kvcli -# version: 0.15.0 (any 0.15 version is fine) -# commit: 8691ac44ed0e65db7ebc4a2fe85c58c717f63c39 -# build_tags: netgo,ledger -# go: go version go1.17.1 linux/amd64 - -# export genesis using v0.15.x -kvd export --for-zero-height --height 1803249 > export-genesis.json -``` - -**Note:** This can take a while! - -2. Update to kava-9 - -```sh - # in the `kava` folder - git pull - git checkout v0.16.1 - make install - - # verify versions - kava version --long - # name: kava - # server_name: kava - # version: v0.16.1 - # commit: [PLACEHOLDER] - # build_tags: netgo,ledger - # go: go version go1.17.1 linux/amd64 - - - # Migrate genesis state - kava migrate export-genesis.json > genesis.json - - # Verify output of genesis migration - kava validate-genesis genesis.json # should say it's valid - kava assert-invariants genesis.json # should say invariants pass - jq -S -c -M '' genesis.json | shasum -a 256 - # [PLACEHOLDER] - - # Restart node with migrated genesis state - cp genesis.json ~/.kava/config/genesis.json - kava unsafe-reset-all - - # Restart node - - # ! Be sure to remove --halt-time flag if it is set in systemd/docker - # NOTE: THE BINARY IS NOW NAMED KAVA - kava start -``` diff --git a/docs/kava-9/wallet_explorer_exchange_guide.md b/docs/kava-9/wallet_explorer_exchange_guide.md deleted file mode 100644 index 6a249ee1..00000000 --- a/docs/kava-9/wallet_explorer_exchange_guide.md +++ /dev/null @@ -1,90 +0,0 @@ -# Kava-9 Upgrade Guide for Wallets, Explorers, and Exchanges - -The Kava-9 Upgrade migrates the Kava blockchain from v0.39.x of the cosmos-sdk to v0.44.x of the cosmos-sdk. A full description of the v0.39 -> v0.40-42 REST changes can be found at: - -https://github.com/cosmos/cosmos-sdk/blob/v0.42.11/docs/migrations/rest.md - -**Note**: Kava engineers have implemented a custom POST /txs endpoint to preserve backwards compatibility (v0.42 -> v0.44 REST changes) for legacy encoded transaction: - -https://docs.cosmos.network/master/migrations/rest.html - -**Note**: Cosmos, Terra, and Osmosis blockchains have also been upgraded to v0.44 of the cosmos-sdk. Changes needed to support those chains will apply to Kava as well. - -For wallets, explorers, and exchanges, there are a few particular changes to be aware of: - -### Account data -Account data has been separated from balances data. In v0.15 of kava (kava-8), querying an account would return the following JSON, which contains both the account data and balance data: - -```sh -curl /auth/accounts/kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc` -``` -```json -{"height":"38","result":{"type":"cosmos-sdk/Account","value":{"address":"kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc","coins":[{"denom":"ukava","amount":"1000000000000"}],"public_key":null,"account_number":"16","sequence":"0"}}}` -``` - -In v0.16 (kava-9): - - -```sh -curl /auth/accounts/kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc` -``` -```json -{"height":"6","result":{"type":"cosmos-sdk/BaseAccount","value":{"address":"kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc","account_number":"15"}}}` -``` - - -Note: The `sequence` field is now omitted from the response if an account has not signed a transaction. - -To get the balance data, the /bank/balances endpoint must be used in addition to /auth/accounts: - -```sh -curl /bank/balances/kava173w2zz287s36ewnnkf4mjansnthnnsz7rtrxqc` -``` -```json -{"height":"198","result":[{"denom":"ukava","amount":"10000000000000000"}]}` -``` - - -### Vesting Account Data -The address, account sequence and account number fields for periodic vesting accounts have moved: - -In v0.15 (kava-8): - - -```sh -curl /auth/accounts/kava1z3ytjpr6ancl8gw80z6f47z9smug7986x29vtj -``` -```json -{"height":"3","result":{"type":"cosmos-sdk/PeriodicVestingAccount","value":{"address":"kava1z3ytjpr6ancl8gw80z6f47z9smug7986x29vtj","coins":[{"denom":"ukava","amount":"565077579"},{"denom":"usdx","amount":"1363200"}],"public_key":null,"account_number":"6","sequence":"0","original_vesting":[{"denom":"ukava","amount":"560159828"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1628213878","start_time":"1596677878","vesting_periods":[{"length":"31536000","amount":[{"denom":"ukava","amount":"560159828"}]}]}}} -``` - - -**Note**: address, account sequence and account number can be found at -- `.result.value.address` -- `.result.value.sequence` -- `.result.value.account_number` - -In v0.16 (kava-9): - -```sh -curl /auth/accounts/kava1z3ytjpr6ancl8gw80z6f47z9smug7986x29vtj` -``` - -```json -{"height":"4059","result":{"type":"cosmos-sdk/PeriodicVestingAccount","value":{"base_vesting_account":{"base_account":{"address":"kava1fwfwmt6vupf3m9uvpdsuuc4dga8p5dtl4npcqz","public_key":{"type":"tendermint/PubKeySecp256k1","value":"A3CJ0ejMGhGhxC9dRqKooEkiOj++kMh+lFDbdN283QHE"},"account_number":"18","sequence":"2"},"original_vesting":[{"denom":"ukava","amount":"560159828"}],"delegated_free":[],"delegated_vesting":[],"end_time":"1664632800"},"start_time":"1633096800","vesting_periods":[{"length":"31536000","amount":[{"denom":"ukava","amount":"560159828"}]}]}}}` -``` - -**Note**: address, account sequence and account number can be found at -- `.result.value.base_vesting_account.base_account.address` -- `.result.value.base_vesting_account.base_account.sequence` -- `.result.value.base_vesting_account.base_account.account_number` - -### Legacy encoded transactions (POST /txs) -The Cosmos team found vulnerabilities in legacy transaction support and removed the [POST] /txs endpoints from v0.44.0 of the cosmos-sdk. To avoid this backwards incompatibility, kava-9 introduces a custom [POST] /txs endpoint that converts legacy (amino) transactions to the new proto encoding and broadcasts the converted tx. Implementation details can be found [here](https://github.com/Kava-Labs/kava/pull/1070). - -### Javascript-SDK - -The Kava Javascript-SDK has been updated to support kava-9, including the new [POST] /txs endpoint. This means that applications utilizing the Javascript-SDK can simply update: - -`npm i @kava-labs/javascript-sdk@latest` - diff --git a/docs/node_guide.md b/docs/node_guide.md deleted file mode 100644 index c8f28593..00000000 --- a/docs/node_guide.md +++ /dev/null @@ -1,151 +0,0 @@ -# Node Guide - -This is an updated guide on setting up a mainnet full or light node. If you have questions, please join the active conversation in the #validators thread of our [__Discord Channel__](https://discord.com/invite/kQzh3Uv). - -## Installing Kava - -### Prerequisites -You should select an all-purpose server with at least 8GB of RAM, good connectivity, and a solid state drive with sufficient disk space. Storage requirements are discussed further in the section below. In addition, you’ll need to open **port 26656** to connect to the Kava peer-to-peer network. As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for updating your server as well. - -### Storage -The monthly storage requirements for a node are as follows. These are estimated values based on experience, but should serve as a good guide. - -- A light node (`pruning = "everything"`) grows at a rate of ~5 GB per month. -- A full node (`pruning = "nothing"`) grows at a rate of ~100 GB per month - -## Install Go -Kava is built using Go and requires Go version 1.13+. In this example, you will be installing Go on a fresh install of ubuntu 18.04. - -```bash -# Update ubuntu -sudo apt update -sudo apt upgrade -y - -# Install packages necessary to run go and jq for pretty formatting command line outputs -sudo apt install build-essential jq -y - -# Install go -wget https://dl.google.com/go/go1.17.1.linux-amd64.tar.gz (or latest version at https://golang.org/dl/) -sudo tar -xvf go1.17.1.linux-amd64.tar.gz -sudo mv go /usr/local - -# Updates environmental variables to include go -cat <> ~/.profile -export GOROOT=/usr/local/go -export GOPATH=$HOME/go -export GO111MODULE=on -export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin -EOF -source ~/.profile -``` -To verify that Go is installed: -```bash -go version -# Should return go version go1.17.1 linux/amd64 -``` - -## Install Kava -Install Kava using `git clone`. Note that version 0.15.1 is the correct version for mainnet. - -```bash -git clone https://github.com/kava-labs/kava -cd kava -git checkout v0.15.1 -make install -``` -To verify that kava is installed: -```bash -kvd version --long -# name: kava -# server_name: kvd -# client_name: kvcli -# version: 0.15.1 -# commit: f0c90f0cbf96d230a83cd2309b8fd032e52d7fb933881541472df1bf2703a939 - -# build_tags: netgo,ledger -# go: go version go1.15.14 linux/amd64 -``` - -## Configuring Your Node -Next, download the correct genesis file and sync your node with the Kava mainnet. To download the genesis file: -```bash -# First, initialize kvd. Replace with the public name of your node -kvd init --chain-id kava-8 -# Download the genesis file -wget https://kava-genesis-files.s3.amazonaws.com/kava-8-genesis-migrated-from-block-1878508.json -O ~/.kvd/config/genesis.json -# Verify genesis hash -jq -S -c -M '' $HOME/.kvd/config/genesis.json | shasum -a 256 -# f0c90f0cbf96d230a83cd2309b8fd032e52d7fb933881541472df1bf2703a939 -``` -Next, adjust some configurations. To open the config file: -```bash -vim $HOME/.kvd/config/config.toml -``` -At line 160, add [seeds](https://docs.google.com/spreadsheets/d/1TWsD2lMi1idkPI6W9xFCn5W64x75yn9PDjvQaJVkIRk/edit?usp=sharing). These are used to connect to the peer-to-peer network: - -At line 163, add some [persistent peers](https://docs.google.com/spreadsheets/d/1TWsD2lMi1idkPI6W9xFCn5W64x75yn9PDjvQaJVkIRk/edit?usp=sharing), which help maintain a connection to the peer-to-peer network - - -Next, chose how much historical state you want to store. To open the application config file: -```bash -vim $HOME/.kvd/config/app.toml -``` -In this file, choose between `default`, `nothing`, and `everything`. To reduce hard drive storage, choose `everything` or `default`. To run an archival node, chose `nothing`. -```bash -pruning = "default" -``` -In the same file, you will want to set minimum gas prices — setting a minimum prevents spam transactions: -```bash -minimum-gas-prices = "0.001ukava" -``` -### Syncing Your Node -To sync your node, you will use systemd, which manages the Kava daemon and automatically restarts it in case of failure. To use systemd, you will create a service file. Be sure to replace `` with the user on your server: -```bash -sudo tee /etc/systemd/system/kvd.service > /dev/null <<'EOF' -[Unit] -Description=Kava daemon -After=network-online.target - -[Service] -User= -ExecStart=/home//go/bin/kvd start -Restart=on-failure -RestartSec=3 -LimitNOFILE=4096 - -[Install] -WantedBy=multi-user.target -EOF -``` -To start syncing: -```bash -# Start the node -sudo systemctl enable kvd -sudo systemctl start kvd -``` -To check on the status of syncing: -```bash -kvcli status --output json | jq '.sync_info' -``` -This will give output like: -```bash -{ -"latest_block_hash": "21D7E37A0A5992E1992DD43E42C05E4475A6E212694F746ABEE132267067847D", -"latest_app_hash": "FBE0E799BCCA57F12F781252787BD6340782E5D45E591294D01269F481B128AC", -"latest_block_height": "183566", -"latest_block_time": "2021-03-22T17:21:41.848445277Z", -"earliest_block_hash": "09E688467E5016159D74CEDE2EE870D671CAA772F76E6697AEEB685A398ACB08", -"earliest_app_hash": "", -"earliest_block_height": "1", -"earliest_block_time": "2021-03-05T06:00:00Z", -"catching_up": false -} -``` -The main thing to watch is that the block height is increasing. Once you are caught up with the chain, `catching_up` will become false. At that point, you can start using your node to create a validator. If you need to sync using a snapshot, please use https://kava.quicksync.io/ - -To check the logs of the node: -```bash -sudo journalctl -u kvd -f -``` - -If you have questions, please join the active conversation in the #validators thread of the [__Kava Discord Channel__](https://discord.com/invite/kQzh3Uv). diff --git a/docs/package-lock.json b/docs/package-lock.json deleted file mode 100644 index 048ed2f3..00000000 --- a/docs/package-lock.json +++ /dev/null @@ -1,10545 +0,0 @@ -{ - "name": "docs", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@algolia/cache-browser-local-storage": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.3.0.tgz", - "integrity": "sha512-91Cf3IPUk84PF2wvR8ys8XO42FqaJEtIh/dyR0WvwMdv0x13GORkAvoBJgkFI2wofZqUY86jNimvHWfsWzPQ+g==", - "requires": { - "@algolia/cache-common": "4.3.0" - } - }, - "@algolia/cache-common": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.3.0.tgz", - "integrity": "sha512-AHTbOn9lk0f5IkjssXXmDgnaZfsUJVZ61sqOH1W3LyJdAscDzCj0KtwijELn8FHlLXQak7+K93/O3Oct0uHncQ==" - }, - "@algolia/cache-in-memory": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.3.0.tgz", - "integrity": "sha512-8BZS5IFEtiSFkA6vNQUXJXIWABDbSanQdkGX5LArlhbCjuykZqF68yaCjXWG10EZTySnkZLmKc+5ozYVOktJaQ==", - "requires": { - "@algolia/cache-common": "4.3.0" - } - }, - "@algolia/client-account": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.3.0.tgz", - "integrity": "sha512-8LJSvWooc+fe+XZXeu+h4dhpo9lsu3sb7rV9cpPhymYSHgEJAHaDkZEcPM1u/PBMvFe0mZXaW6nabeb3jeIRcw==", - "requires": { - "@algolia/client-common": "4.3.0", - "@algolia/client-search": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "@algolia/client-analytics": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.3.0.tgz", - "integrity": "sha512-BFH4ddyrqI2pE3bUctn5KtJgYqgvO0Ap9vJEHBNj6mjSKqFbTnZeVEPG3yWrOuWRCqPHR3ewcWRisNwJHG3+Mw==", - "requires": { - "@algolia/client-common": "4.3.0", - "@algolia/client-search": "4.3.0", - "@algolia/requester-common": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "@algolia/client-common": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.3.0.tgz", - "integrity": "sha512-8Ohj6zXZkpwDKc8ZWVTZo2wPO4+LT5D258suGg/C6nh4UxOrFOp6QaqeQo8JZ1eqMqtfb3zv5SHgW4fZ00NCLQ==", - "requires": { - "@algolia/requester-common": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "@algolia/client-recommendation": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.3.0.tgz", - "integrity": "sha512-jCMIAWPA2hsxc5CCtoTtQAcohaG+10CxXK122Tc47t4w1K8qzSJnCjC2cHvM4UNJO+k7NrmjOYW0EXp9RKc7SQ==", - "requires": { - "@algolia/client-common": "4.3.0", - "@algolia/requester-common": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "@algolia/client-search": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.3.0.tgz", - "integrity": "sha512-KCgcIsNMW1/0F5OILiFTddbTAKduJHRvXQS4NxY1H9gQWMTVeWJS7VZQ/ukKBiUMLatwUQHJz2qpYm9fmqOjkQ==", - "requires": { - "@algolia/client-common": "4.3.0", - "@algolia/requester-common": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "@algolia/logger-common": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.3.0.tgz", - "integrity": "sha512-vQ+aukjZkRAyO9iyINBefT366UtF/B9QoA1Kw8PlY67T6fYmklFgYp3LNH/e7h/gz0py5LYY/HIwSsaTKk8/VQ==" - }, - "@algolia/logger-console": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.3.0.tgz", - "integrity": "sha512-7pWtcv1cSSa7F48gRBOZLcEWN073+WbnKjbpRrIGej+abZppw/h+22jtVZZORC8EIjFffGqz2/2e6bZiX+Jg7A==", - "requires": { - "@algolia/logger-common": "4.3.0" - } - }, - "@algolia/requester-browser-xhr": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.3.0.tgz", - "integrity": "sha512-CpUwgQhXZsnZmjEd5DTwQv1BKQNCt83bzyVdUqvljsFxZOsNQacS6lOYs0B1eD18tKHCwVMuwbYqTaLPGBXTKQ==", - "requires": { - "@algolia/requester-common": "4.3.0" - } - }, - "@algolia/requester-common": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.3.0.tgz", - "integrity": "sha512-1v73KyspJBiTzfyXupjHxikxTYjh5MoxI6mOIvAtQxRqc4ehUPAEdPCNHEvvLiCK96iKWzZaULmV0U7pj3yvTw==" - }, - "@algolia/requester-node-http": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.3.0.tgz", - "integrity": "sha512-Hg9Y8sUeSGQgoO1FpoL5jbkDzCtXI/8HXHybU6bimsX93DAz3HZWaoQFKmIpQDNhQ8G9FLgAtzDAxS6eckDxzg==", - "requires": { - "@algolia/requester-common": "4.3.0" - } - }, - "@algolia/transporter": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.3.0.tgz", - "integrity": "sha512-BTKHAtdQdfOJ0xzZkiyEK/2QVQJTiVgBZlOBfXp2gBtztjV26OqfW4n6Xz0o7eBRzLEwY1ot3mHF5QIVUjAsMg==", - "requires": { - "@algolia/cache-common": "4.3.0", - "@algolia/logger-common": "4.3.0", - "@algolia/requester-common": "4.3.0" - } - }, - "@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==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.4.tgz", - "integrity": "sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==", - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/core": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz", - "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz", - "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==", - "requires": { - "@babel/types": "^7.10.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", - "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz", - "integrity": "sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz", - "integrity": "sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.4", - "lodash": "^4.17.13" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", - "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", - "requires": { - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@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==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz", - "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz", - "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "@babel/helper-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.4.tgz", - "integrity": "sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ==", - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", - "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@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==" - }, - "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@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==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz", - "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz", - "integrity": "sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.4.tgz", - "integrity": "sha512-JHTWjQngOPv+ZQQqOGv2x6sCCr4IYWy7S1/VH6BE9ZfkoLrdQ2GpEP3tfb5M++G9PwvqjhY8VC/C3tXm+/eHvA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-decorators": "^7.10.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", - "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz", - "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz", - "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz", - "integrity": "sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz", - "integrity": "sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA==", - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz", - "integrity": "sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ==", - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", - "requires": { - "@babel/helper-module-transforms": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz", - "integrity": "sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.4.tgz", - "integrity": "sha512-8ULlGv8p+Vuxu+kz2Y1dk6MYS2b/Dki+NO6/0ZlfSj5tMalfDL7jI/o/2a+rrWLqSXvnadEqc2WguB4gdQIxZw==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", - "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz", - "integrity": "sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz", - "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==", - "requires": { - "@babel/compat-data": "^7.10.4", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.10.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.10.4", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.10.4", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.4", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz", - "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==", - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - } - } - }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/traverse": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz", - "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz", - "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==", - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "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=" - } - } - }, - "@cosmos-ui/vue": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@cosmos-ui/vue/-/vue-0.33.0.tgz", - "integrity": "sha512-fHRQcxd66nohpeUMiNm6A8XHhFtanrle/7RPv+XQH0ztbUzO4vyCjCI0FQd7QJsmlGWF/il7b9esunM0Y4Lx+A==", - "requires": { - "algoliasearch": "^4.1.0", - "axios": "^0.19.2", - "clipboard-copy": "^3.1.0", - "fuse.js": "^3.4.6", - "hotkeys-js": "^3.7.3", - "js-base64": "^2.5.2", - "lodash": "^4.17.15", - "markdown-it": "^10.0.0", - "prismjs": "^1.19.0", - "querystring": "^0.2.0", - "tiny-cookie": "^2.3.1", - "vue": "^2.6.10" - }, - "dependencies": { - "fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==" - } - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/babel-types": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" - }, - "@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", - "requires": { - "@types/babel-types": "*" - } - }, - "@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==" - }, - "@types/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@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==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/node": { - "version": "14.0.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", - "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==" - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" - }, - "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", - "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==" - }, - "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz", - "integrity": "sha512-YfdaoSMvD1nj7+DsrwfTvTnhDXI7bsuh+Y5qWwvQXlD24uLgnsoww3qbiZvWf/EoviZMrvqkqN4CBw0W3BWUTQ==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "html-tags": "^2.0.0", - "lodash.kebabcase": "^4.1.1", - "svg-tags": "^1.0.0" - } - }, - "@vue/babel-preset-app": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.4.6.tgz", - "integrity": "sha512-urIa6Qk3lKacLvscrzxMNyYlTqKFcPAUo5MohOjv1ISZ9PssHw693WTOrqSC0XksdMLtp/rnLvc6l5G8Muk0lw==", - "requires": { - "@babel/core": "^7.9.6", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-decorators": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.9.6", - "@babel/preset-env": "^7.9.6", - "@babel/runtime": "^7.9.6", - "@vue/babel-preset-jsx": "^1.1.2", - "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5", - "semver": "^6.1.0" - }, - "dependencies": { - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - } - } - }, - "@vue/babel-preset-jsx": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz", - "integrity": "sha512-zDpVnFpeC9YXmvGIDSsKNdL7qCG2rA3gjywLYHPCKDT10erjxF4U+6ay9X6TW5fl4GsDlJp9bVfAVQAAVzxxvQ==", - "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", - "@vue/babel-sugar-functional-vue": "^1.1.2", - "@vue/babel-sugar-inject-h": "^1.1.2", - "@vue/babel-sugar-v-model": "^1.1.2", - "@vue/babel-sugar-v-on": "^1.1.2" - } - }, - "@vue/babel-sugar-functional-vue": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz", - "integrity": "sha512-YhmdJQSVEFF5ETJXzrMpj0nkCXEa39TvVxJTuVjzvP2rgKhdMmQzlJuMv/HpadhZaRVMCCF3AEjjJcK5q/cYzQ==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-inject-h": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz", - "integrity": "sha512-VRSENdTvD5htpnVp7i7DNuChR5rVMcORdXjvv5HVvpdKHzDZAYiLSD+GhnhxLm3/dMuk8pSzV+k28ECkiN5m8w==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0" - } - }, - "@vue/babel-sugar-v-model": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz", - "integrity": "sha512-vLXPvNq8vDtt0u9LqFdpGM9W9IWDmCmCyJXuozlq4F4UYVleXJ2Fa+3JsnTZNJcG+pLjjfnEGHci2339Kj5sGg==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", - "camelcase": "^5.0.0", - "html-tags": "^2.0.0", - "svg-tags": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "@vue/babel-sugar-v-on": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz", - "integrity": "sha512-T8ZCwC8Jp2uRtcZ88YwZtZXe7eQrJcfRq0uTFy6ShbwYJyz5qWskRFoVsdTi9o0WEhmQXxhQUewodOSCUPVmsQ==", - "requires": { - "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", - "camelcase": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "@vue/component-compiler-utils": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz", - "integrity": "sha512-QLq9z8m79mCinpaEeSURhnNCN6djxpHw0lpP/bodMlt5kALfONpryMthvnrQOlTcIKoF+VoPi+lPHUYeDFPXug==", - "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" - }, - "dependencies": { - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } - }, - "@vuepress/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/core/-/core-1.5.0.tgz", - "integrity": "sha512-GYMFKR1Nzy3ArxcSc7HRTvYTiosAmAI8nGBhYKcxdp/ZTIzCkgUkyk1OCKvl/7c2H3Iv1AmvwM2DEXTXrfS5Mw==", - "requires": { - "@babel/core": "^7.8.4", - "@vue/babel-preset-app": "^4.1.2", - "@vuepress/markdown": "1.5.0", - "@vuepress/markdown-loader": "1.5.0", - "@vuepress/plugin-last-updated": "1.5.0", - "@vuepress/plugin-register-components": "1.5.0", - "@vuepress/shared-utils": "1.5.0", - "autoprefixer": "^9.5.1", - "babel-loader": "^8.0.4", - "cache-loader": "^3.0.0", - "chokidar": "^2.0.3", - "connect-history-api-fallback": "^1.5.0", - "copy-webpack-plugin": "^5.0.2", - "core-js": "^3.6.4", - "cross-spawn": "^6.0.5", - "css-loader": "^2.1.1", - "file-loader": "^3.0.1", - "js-yaml": "^3.13.1", - "lru-cache": "^5.1.1", - "mini-css-extract-plugin": "0.6.0", - "optimize-css-assets-webpack-plugin": "^5.0.1", - "portfinder": "^1.0.13", - "postcss-loader": "^3.0.0", - "postcss-safe-parser": "^4.0.1", - "toml": "^3.0.0", - "url-loader": "^1.0.1", - "vue": "^2.6.10", - "vue-loader": "^15.7.1", - "vue-router": "^3.1.3", - "vue-server-renderer": "^2.6.10", - "vue-template-compiler": "^2.6.10", - "vuepress-html-webpack-plugin": "^3.2.0", - "vuepress-plugin-container": "^2.0.2", - "webpack": "^4.8.1", - "webpack-chain": "^6.0.0", - "webpack-dev-server": "^3.5.1", - "webpack-merge": "^4.1.2", - "webpackbar": "3.2.0" - }, - "dependencies": { - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - } - } - }, - "@vuepress/markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/markdown/-/markdown-1.5.0.tgz", - "integrity": "sha512-dSIRa3kLz0hjEbl1XN70Uqz7MFiK8Nx7bHxXF9uhN8b870R2Hs1vQlWVgDfyC4NICb5aVhks4q7W2TDIOIgjtw==", - "requires": { - "@vuepress/shared-utils": "1.5.0", - "markdown-it": "^8.4.1", - "markdown-it-anchor": "^5.0.2", - "markdown-it-chain": "^1.3.0", - "markdown-it-emoji": "^1.4.0", - "markdown-it-table-of-contents": "^0.4.0", - "prismjs": "^1.13.0" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - } - } - }, - "@vuepress/markdown-loader": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/markdown-loader/-/markdown-loader-1.5.0.tgz", - "integrity": "sha512-Qu9mkH736yNN1a7Si6UhbUcLGOoHg76hnpWvgaCvHEIGdGKiJopNO0Sjgioo9n4OwS21dtefjhafsmp9nZqYoQ==", - "requires": { - "@vuepress/markdown": "1.5.0", - "loader-utils": "^1.1.0", - "lru-cache": "^5.1.1" - } - }, - "@vuepress/plugin-active-header-links": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.5.0.tgz", - "integrity": "sha512-jVMOo4mgGpRe7dNopsLEsoUvQQFDIZmM1IhOJi9bsv6NLRPP3Ej2MwIYV+JQ1akSQn9zmGB8t6aO9DKRaK8J3g==", - "requires": { - "lodash.debounce": "^4.0.8" - } - }, - "@vuepress/plugin-google-analytics": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-google-analytics/-/plugin-google-analytics-1.5.0.tgz", - "integrity": "sha512-VJo7igbrkZdl02rkCnGmfr124o7qKkY8YfZtsGTsXDMpwP43FDQjsZVB2TLXHdaKoeVQr3khD4wKKklGzpiOGg==" - }, - "@vuepress/plugin-last-updated": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-last-updated/-/plugin-last-updated-1.5.0.tgz", - "integrity": "sha512-qZpxJ0BDofyMdrALuJI4dqtSbP1uSK6X4/kh+P+eLKCWongRIvPCq5eH75xTbn94EIH6N65AgqCbPiZCN4eOKA==", - "requires": { - "cross-spawn": "^6.0.5" - } - }, - "@vuepress/plugin-nprogress": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-nprogress/-/plugin-nprogress-1.5.0.tgz", - "integrity": "sha512-0xs5Y0igCpA03/WXBvo01crJLVkirglh+JAIZY+daJUdjY38u4FXtrxe4/Nq7Nwo++Qy/OGFCWoilukgzpL8tA==", - "requires": { - "nprogress": "^0.2.0" - } - }, - "@vuepress/plugin-register-components": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-register-components/-/plugin-register-components-1.5.0.tgz", - "integrity": "sha512-TtiCzf3DyErltxz1fdXnLultkdiOw6UMLEwkr02Bf8CtzZCrPxMPiLmXqy/i7h/Ef+0s/LUtwpSL97YYOeZUtA==", - "requires": { - "@vuepress/shared-utils": "1.5.0" - } - }, - "@vuepress/plugin-search": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-search/-/plugin-search-1.5.0.tgz", - "integrity": "sha512-zZ7awYWzube+FwYQP2GcrCeoGUxcOWQm6cOaxQ9BiEn+M8sj4/fn18sKjGkzREQ+BVJguxHw0y29gUlvHALPhQ==" - }, - "@vuepress/shared-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/shared-utils/-/shared-utils-1.5.0.tgz", - "integrity": "sha512-YKMMuiODPmk09vGnXrpGFCuDIyltZSM4K3OUZoxViZWiYhWxbBS7YY6CVScrcQxG59rk+OPXQb1mP/ItIvOEow==", - "requires": { - "chalk": "^2.3.2", - "diacritics": "^1.3.0", - "escape-html": "^1.0.3", - "fs-extra": "^7.0.1", - "globby": "^9.2.0", - "gray-matter": "^4.0.1", - "hash-sum": "^1.0.2", - "semver": "^6.0.0", - "upath": "^1.1.0" - } - }, - "@vuepress/theme-default": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-1.5.0.tgz", - "integrity": "sha512-qdV0TVuKt0N9s0sVKRPmrW9o1aLcW2AZvkHATdDmAjKk8R34JC7Gqa0QiBsGLrIr7dUvEVYXy9T0r6IG2Z+dog==", - "requires": { - "@vuepress/plugin-active-header-links": "1.5.0", - "@vuepress/plugin-nprogress": "1.5.0", - "@vuepress/plugin-search": "1.5.0", - "docsearch.js": "^2.5.2", - "lodash": "^4.17.15", - "stylus": "^0.54.5", - "stylus-loader": "^3.0.2", - "vuepress-plugin-container": "^2.0.2", - "vuepress-plugin-smooth-scroll": "^0.0.3" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "agentkeepalive": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-2.2.0.tgz", - "integrity": "sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=" - }, - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.0.tgz", - "integrity": "sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw==" - }, - "algoliasearch": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.3.0.tgz", - "integrity": "sha512-H2woXyqmd1nFYDrQKLZXgghNkLBTcBXJ7Q/bxQ+F9WWS4H0Kb7IlQvNi7bDzHyldhDhIthImaUwcKqr5iiyMFQ==", - "requires": { - "@algolia/cache-browser-local-storage": "4.3.0", - "@algolia/cache-common": "4.3.0", - "@algolia/cache-in-memory": "4.3.0", - "@algolia/client-account": "4.3.0", - "@algolia/client-analytics": "4.3.0", - "@algolia/client-common": "4.3.0", - "@algolia/client-recommendation": "4.3.0", - "@algolia/client-search": "4.3.0", - "@algolia/logger-common": "4.3.0", - "@algolia/logger-console": "4.3.0", - "@algolia/requester-browser-xhr": "4.3.0", - "@algolia/requester-common": "4.3.0", - "@algolia/requester-node-http": "4.3.0", - "@algolia/transporter": "4.3.0" - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "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==", - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "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" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autocomplete.js": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.36.0.tgz", - "integrity": "sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==", - "requires": { - "immediate": "^3.2.3" - } - }, - "autoprefixer": { - "version": "9.8.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz", - "integrity": "sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==", - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001087", - "colorette": "^1.2.0", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "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=" - }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "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==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30001230", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz", - "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==" - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - }, - "electron-to-chromium": { - "version": "1.3.739", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz", - "integrity": "sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "node-releases": { - "version": "1.1.72", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", - "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==" - } - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "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==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", - "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cac": { - "version": "6.5.10", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.5.10.tgz", - "integrity": "sha512-uxyxsID5p5kYlFFnhw86A4c8K5QTLRp6JM4AY2OtCq5lnnn4DGxV8YI1Z5rlt6KUjEKpA4qM+WZQshMoJY6dQQ==" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-3.0.1.tgz", - "integrity": "sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==", - "requires": { - "buffer-json": "^2.0.0", - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.2.3", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001091", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001091.tgz", - "integrity": "sha512-ECd8gfBBpv0GKsEYY5052+8PBjExiugDoi3dfkJcxujh2mf7kiuDvb1o27GXlOOGopKiIPYEX8XDPYj7eo3E9w==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "requires": { - "is-regex": "^1.0.3" - } - }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "requires": { - "source-map": "~0.6.0" - } - }, - "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" - }, - "clipboard-copy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/clipboard-copy/-/clipboard-copy-3.1.0.tgz", - "integrity": "sha512-Xsu1NddBXB89IUauda5BIq3Zq73UWkjkaQlPQbLNvNsd5WBMnTWPNKYR6HGaySOxGYZ+BKxP2E9X4ElnI3yiPA==" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz", - "integrity": "sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "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==" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "semver": "^6.0.0" - } - } - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "consola": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.14.0.tgz", - "integrity": "sha512-A2j1x4u8d6SIVikhZROfpFJxQZie+cZOfQMyI/tu2+hWXe8iAv7R6FW6s6x04/7zBCst94lPddztot/d6GJiuQ==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", - "requires": { - "bluebird": "^3.1.1" - } - }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "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==" - } - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "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==" - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==", - "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - } - } - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "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=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", - "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", - "requires": { - "camelcase": "^5.2.0", - "icss-utils": "^4.1.0", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.14", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^2.0.6", - "postcss-modules-scope": "^2.1.0", - "postcss-modules-values": "^2.0.0", - "postcss-value-parser": "^3.3.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "requires": { - "css": "^2.0.0" - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" - } - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "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==" - }, - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "diacritics": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz", - "integrity": "sha1-PvqHMj67hj5mls67AILUj/PW96E=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "requires": { - "path-type": "^3.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "docsearch.js": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/docsearch.js/-/docsearch.js-2.6.3.tgz", - "integrity": "sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==", - "requires": { - "algoliasearch": "^3.24.5", - "autocomplete.js": "0.36.0", - "hogan.js": "^3.0.2", - "request": "^2.87.0", - "stack-utils": "^1.0.1", - "to-factory": "^1.0.0", - "zepto": "^1.2.0" - }, - "dependencies": { - "algoliasearch": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-3.35.1.tgz", - "integrity": "sha512-K4yKVhaHkXfJ/xcUnil04xiSrB8B8yHZoFEhWNpXg23eiCnqvTZw1tn/SqvdsANlYHLJlKl0qi3I/Q2Sqo7LwQ==", - "requires": { - "agentkeepalive": "^2.2.0", - "debug": "^2.6.9", - "envify": "^4.0.0", - "es6-promise": "^4.1.0", - "events": "^1.1.0", - "foreach": "^2.0.5", - "global": "^4.3.2", - "inherits": "^2.0.1", - "isarray": "^2.0.1", - "load-script": "^1.0.0", - "object-keys": "^1.0.11", - "querystring-es3": "^0.2.1", - "reduce": "^1.0.1", - "semver": "^5.1.0", - "tunnel-agent": "^0.6.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "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==", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.2.0.tgz", - "integrity": "sha512-S7eiFb/erugyd1rLb6mQ3Vuq+EXHv5cpCkNqqIkYkBgN2QdFnyCZzFBleqwGEx4lgNGYij81BWnCrFNK7vxvjQ==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz", - "integrity": "sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==" - }, - "envify": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz", - "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==", - "requires": { - "esprima": "^4.0.0", - "through": "~2.3.4" - } - }, - "envinfo": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz", - "integrity": "sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "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==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "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=" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.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" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "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==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "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==" - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "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==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "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==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "fuse.js": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.0.0.tgz", - "integrity": "sha512-e5Ap6mhF/WQ9bKqsMFTTR5/DS9qbYab4VXHtMdxCanH+VZkdUV2LqcgMO31etSQv53NXsguQF1bdqkrrPAM2HQ==" - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "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==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "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==", - "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" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "requires": { - "ini": "^1.3.5" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "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==" - }, - "gray-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", - "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", - "requires": { - "js-yaml": "^3.11.0", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "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==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^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=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "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==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "requires": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "dependencies": { - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" - } - } - }, - "hotkeys-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.8.1.tgz", - "integrity": "sha512-YlhVQtyG9f1b7GhtzdhR0Pl+cImD1ZrKI6zYUa7QLd0zuThiL7RzZ+ANJyy7z+kmcCpNYBf5PjBa3CjiQ5PFpw==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - } - } - } - } - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=" - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "immediate": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", - "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "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==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "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=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - } - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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=" - }, - "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==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "dependencies": { - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - } - } - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "javascript-stringify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz", - "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=" - }, - "js-base64": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz", - "integrity": "sha512-1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==" - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "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==", - "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=" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "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==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "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=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz", - "integrity": "sha1-pltPoPEL2nGaBUQep7lMVfPhW64=", - "requires": { - "debug": "^2.1.3" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "requires": { - "leven": "^3.1.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==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "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==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "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==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", - "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "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==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "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==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" - }, - "markdown-it-attrs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-3.0.3.tgz", - "integrity": "sha512-cLnICU2t61skNCr4Wih/sdza+UbQcqJGZwvqAypnbWA284nzDm+Gpc90iaRk/JjsIy4emag5v3s0rXFhFBWhCA==" - }, - "markdown-it-chain": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz", - "integrity": "sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==", - "requires": { - "webpack-chain": "^4.9.0" - }, - "dependencies": { - "webpack-chain": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz", - "integrity": "sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==", - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^1.6.0" - } - } - } - }, - "markdown-it-container": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-2.0.0.tgz", - "integrity": "sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=" - }, - "markdown-it-emoji": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", - "integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=" - }, - "markdown-it-table-of-contents": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", - "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==", - "requires": { - "source-map": "^0.6.1" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" - }, - "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==" - }, - "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==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "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==" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "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==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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==" - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "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=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "opencollective-postinstall": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", - "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "requires": { - "retry": "^0.12.0" - } - }, - "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==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "requires": { - "@types/node": "*" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "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==", - "requires": { - "find-up": "^3.0.0" - } - }, - "portfinder": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz", - "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", - "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "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==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", - "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0", - "postcss-value-parser": "^3.3.1" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", - "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^7.0.6" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-safe-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", - "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "optional": true - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" - }, - "prismjs": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", - "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } - } - }, - "pug": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", - "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", - "requires": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" - } - }, - "pug-attrs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", - "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" - } - }, - "pug-code-gen": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz", - "integrity": "sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==", - "requires": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", - "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==" - }, - "pug-filters": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", - "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - } - }, - "pug-lexer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", - "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } - }, - "pug-linker": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", - "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", - "requires": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } - }, - "pug-load": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", - "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" - } - }, - "pug-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", - "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", - "requires": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" - } - }, - "pug-plain-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pug-plain-loader/-/pug-plain-loader-1.0.0.tgz", - "integrity": "sha512-mDfq/qvJJ0xdug38mZ1ObW0BQTx9kAHnKqotXC+C00XQkKmsWaMe90JUg/kN4lS6MU7tpVsMZ+rmcnBSPfDtHA==", - "requires": { - "loader-utils": "^1.1.0" - } - }, - "pug-runtime": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", - "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==" - }, - "pug-strip-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", - "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", - "requires": { - "pug-error": "^1.3.3" - } - }, - "pug-walk": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", - "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "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==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "reduce": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce/-/reduce-1.0.2.tgz", - "integrity": "sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==", - "requires": { - "object-keys": "^1.1.0" - } - }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "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" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "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==" - } - } - }, - "sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", - "requires": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "smoothscroll-polyfill": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", - "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "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" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "std-env": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz", - "integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==", - "requires": { - "ci-info": "^1.6.0" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "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==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "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": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "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=" - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "stylus": { - "version": "0.54.7", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz", - "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==", - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.3", - "mkdirp": "~0.5.x", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "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==" - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", - "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^3.1.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "serialize-javascript": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", - "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", - "requires": { - "randombytes": "^2.1.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "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==", - "requires": { - "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" - } - }, - "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==" - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tiny-cookie/-/tiny-cookie-2.3.2.tgz", - "integrity": "sha512-qbymkVh+6+Gc/c9sqnvbG+dOHH6bschjphK3SHgIfT6h/t+63GBL37JXNoXEc6u/+BcwU6XmaWUuf19ouLVtPg==" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-factory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-factory/-/to-factory-1.0.0.tgz", - "integrity": "sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=" - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, - "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==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "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==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "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==" - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-notifier": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", - "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "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==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v-runtime-template": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/v-runtime-template/-/v-runtime-template-1.10.0.tgz", - "integrity": "sha512-WLlq9jUepSfUrMEenw3mn7FDXX6hhbl11JjC1OKhwLzifHzVrY5a696TUHDPyj9jke3GGnR7b+2T3od/RL5cww==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" - }, - "vue": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz", - "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==" - }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" - }, - "vue-loader": { - "version": "15.9.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz", - "integrity": "sha512-Y67VnGGgVLH5Voostx8JBZgPQTlDQeOVBLOEsjc2cXbCYBKexSKEpOA56x0YZofoDOTszrLnIShyOX1p9uCEHA==", - "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" - } - }, - "vue-router": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.3.4.tgz", - "integrity": "sha512-SdKRBeoXUjaZ9R/8AyxsdTqkOfMcI5tWxPZOUX5Ie1BTL5rPSZ0O++pbiZCeYeythiZIdLEfkDiQPKIaWk5hDg==" - }, - "vue-server-renderer": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.11.tgz", - "integrity": "sha512-V3faFJHr2KYfdSIalL+JjinZSHYUhlrvJ9pzCIjjwSh77+pkrsXpK4PucdPcng57+N77pd1LrKqwbqjQdktU1A==", - "requires": { - "chalk": "^1.1.3", - "hash-sum": "^1.0.2", - "he": "^1.1.0", - "lodash.template": "^4.5.0", - "lodash.uniq": "^4.5.0", - "resolve": "^1.2.0", - "serialize-javascript": "^2.1.2", - "source-map": "0.5.6" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "vue-style-loader": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", - "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "vue-template-compiler": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz", - "integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==", - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" - }, - "vuepress": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-1.5.0.tgz", - "integrity": "sha512-Th07IdRtD6EiDGtlNwohQqfYorkDVdUkOHjLEC+T6k79Vfj7f0vv3tswmLrFb+sZvRxdfESOHDlpatxUZDjSmA==", - "requires": { - "@vuepress/core": "1.5.0", - "@vuepress/theme-default": "1.5.0", - "cac": "^6.5.6", - "envinfo": "^7.2.0", - "opencollective-postinstall": "^2.0.2", - "update-notifier": "^4.0.0" - } - }, - "vuepress-html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==", - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - } - } - }, - "vuepress-plugin-container": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/vuepress-plugin-container/-/vuepress-plugin-container-2.1.4.tgz", - "integrity": "sha512-l+EkeL+rC6DJch1wAZUFIkNDaz2TNOg4NQTHa3yMAsYkC+QaSRubGdN6YwOSmfjxVmM9s9D3gwBWw0O7OBhqRg==", - "requires": { - "markdown-it-container": "^2.0.0" - } - }, - "vuepress-plugin-sitemap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/vuepress-plugin-sitemap/-/vuepress-plugin-sitemap-2.3.1.tgz", - "integrity": "sha512-n+8lbukhrKrsI9H/EX0EBgkE1pn85LAQFvQ5dIvrZP4Kz6JxPOPPNTQmZMhahQV1tXbLZQCEN7A1WZH4x+arJQ==", - "requires": { - "sitemap": "^3.0.0" - } - }, - "vuepress-plugin-smooth-scroll": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/vuepress-plugin-smooth-scroll/-/vuepress-plugin-smooth-scroll-0.0.3.tgz", - "integrity": "sha512-qsQkDftLVFLe8BiviIHaLV0Ea38YLZKKonDGsNQy1IE0wllFpFIEldWD8frWZtDFdx6b/O3KDMgVQ0qp5NjJCg==", - "requires": { - "smoothscroll-polyfill": "^0.4.3" - } - }, - "vuepress-theme-cosmos": { - "version": "1.0.168", - "resolved": "https://registry.npmjs.org/vuepress-theme-cosmos/-/vuepress-theme-cosmos-1.0.168.tgz", - "integrity": "sha512-84/W/5m0qDM7eH2od8qxovjhjHDiWJOFB8tPlUYItqRYsEmrCV1FYjMjEFNYaAqec+bpGh3Nc15Z+xGpseXuXg==", - "requires": { - "@cosmos-ui/vue": "^0.33.0", - "@vuepress/plugin-google-analytics": "1.5.0", - "axios": "^0.19.2", - "cheerio": "^1.0.0-rc.3", - "clipboard-copy": "^3.1.0", - "entities": "2.0.2", - "fuse.js": "6.0.0", - "gray-matter": "^4.0.2", - "hotkeys-js": "3.8.1", - "jsonp": "^0.2.1", - "markdown-it": "^10.0.0", - "markdown-it-attrs": "^3.0.2", - "prismjs": "^1.20.0", - "pug": "^2.0.4", - "pug-plain-loader": "^1.0.0", - "stylus": "^0.54.7", - "stylus-loader": "^3.0.2", - "v-runtime-template": "^1.10.0", - "vuepress": "1.5.0", - "vuepress-plugin-sitemap": "^2.3.1" - } - }, - "watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", - "requires": { - "chokidar": "^3.4.0", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "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==", - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "optional": true - }, - "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==", - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "optional": true - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "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==", - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "optional": true, - "requires": { - "chokidar": "^2.1.8" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-chain": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.4.0.tgz", - "integrity": "sha512-f97PYqxU+9/u0IUqp/ekAHRhBD1IQwhBv3wlJo2nvyELpr2vNnUqO3XQEk+qneg0uWGP54iciotszpjfnEExFA==", - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.1" - }, - "dependencies": { - "javascript-stringify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.1.tgz", - "integrity": "sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow==" - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "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==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "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" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "webpackbar": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz", - "integrity": "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==", - "requires": { - "ansi-escapes": "^4.1.0", - "chalk": "^2.4.1", - "consola": "^2.6.0", - "figures": "^3.0.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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==" - }, - "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==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "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==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - } - } - }, - "zepto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zepto/-/zepto-1.2.0.tgz", - "integrity": "sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=" - } - } -} diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index 14596e21..00000000 --- a/docs/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "docs", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "preserve": "./pre.sh", - "serve": "trap 'exit 0' SIGINT; vuepress dev --no-cache", - "postserve": "./post.sh", - "prebuild": "./pre.sh", - "build": "trap 'exit 0' SIGINT; vuepress build --no-cache", - "postbuild": "./post.sh" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "vuepress-theme-cosmos": "^1.0.168" - }, - "devDependencies": { - "watchpack": "^1.6.1" - } -} diff --git a/docs/post.sh b/docs/post.sh deleted file mode 100755 index d7de094c..00000000 --- a/docs/post.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -# Modules -rm -rf Modules - -# JavaScript SDK docs - rm -rf building - - # Kava Tools docs - rm -rf tools diff --git a/docs/pre.sh b/docs/pre.sh deleted file mode 100755 index 774cca6c..00000000 --- a/docs/pre.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash - -# Clone each module's markdown files -mkdir -p Modules - -for D in ../x/*; do - if [ -d "${D}" ]; then - rm -rf "Modules/$(echo $D | awk -F/ '{print $NF}')" - mkdir -p "Modules/$(echo $D | awk -F/ '{print $NF}')" && cp -r $D/spec/* "$_" - fi -done - -baseGitUrl="https://raw.githubusercontent.com/Kava-Labs" - -# Client docs (JavaScript SDK) -clientGitRepo="javascript-sdk" -clientDir="building" - -mkdir -p "./${clientDir}" -curl "${baseGitUrl}/${clientGitRepo}/master/README.md" -o "./${clientDir}/${clientGitRepo}.md" -echo "--- -parent: - order: false ----" > "./${clientDir}/readme.md" - -# Kava Tools docs -toolsGitRepo="kava-tools" -toolsDir="tools" -toolDocs=("auction" "oracle") - -mkdir -p "./${toolsDir}" -for T in ${toolDocs[@]}; do - curl "${baseGitUrl}/${toolsGitRepo}/master/${T}/README.md" -o "./${toolsDir}/${T}.md" -done - -# Add Go tools -goToolsGitRepo="go-tools" -goToolsDocs=("sentinel") - -for T in ${goToolsDocs[@]}; do - curl "${baseGitUrl}/${goToolsGitRepo}/master/${T}/README.md" -o "./${toolsDir}/${T}.md" -done - -# Copy the community tools -cp communitytools.md "./${toolsDir}/community.md" -echo "--- -parent: - order: false ----" > "./${toolsDir}/readme.md" diff --git a/docs/protodoc-markdown.tmpl b/docs/protodoc-markdown.tmpl deleted file mode 100644 index 52beade1..00000000 --- a/docs/protodoc-markdown.tmpl +++ /dev/null @@ -1,105 +0,0 @@ - -# Protobuf Documentation - - -## Table of Contents -{{range .Files}} -{{$file_name := .Name}}- [{{.Name}}](#{{.Name}}) - {{- if .Messages }} - {{range .Messages}} - [{{.LongName}}](#{{.FullName}}) - {{end}} - {{- end -}} - {{- if .Enums }} - {{range .Enums}} - [{{.LongName}}](#{{.FullName}}) - {{end}} - {{- end -}} - {{- if .Extensions }} - {{range .Extensions}} - [File-level Extensions](#{{$file_name}}-extensions) - {{end}} - {{- end -}} - {{- if .Services }} - {{range .Services}} - [{{.Name}}](#{{.FullName}}) - {{end}} - {{- end -}} -{{end}} -- [Scalar Value Types](#scalar-value-types) - -{{range .Files}} -{{$file_name := .Name}} - -

Top

- -## {{.Name}} -{{.Description}} - -{{range .Messages}} - - -### {{.LongName}} -{{.Description}} - -{{if .HasFields}} -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -{{range .Fields -}} - | `{{.Name}}` | [{{.LongType}}](#{{.FullType}}) | {{.Label}} | {{if (index .Options "deprecated"|default false)}}**Deprecated.** {{end}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | -{{end}} -{{end}} - -{{if .HasExtensions}} -| Extension | Type | Base | Number | Description | -| --------- | ---- | ---- | ------ | ----------- | -{{range .Extensions -}} - | `{{.Name}}` | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | -{{end}} -{{end}} - -{{end}} - -{{range .Enums}} - - -### {{.LongName}} -{{.Description}} - -| Name | Number | Description | -| ---- | ------ | ----------- | -{{range .Values -}} - | {{.Name}} | {{.Number}} | {{nobr .Description}} | -{{end}} - -{{end}} - -{{if .HasExtensions}} - - -### File-level Extensions -| Extension | Type | Base | Number | Description | -| --------- | ---- | ---- | ------ | ----------- | -{{range .Extensions -}} - | `{{.Name}}` | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{nobr .Description}}{{if .DefaultValue}} Default: `{{.DefaultValue}}`{{end}} | -{{end}} -{{end}} - -{{range .Services}} - - -### {{.Name}} -{{.Description}} - -| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | -| ----------- | ------------ | ------------- | ------------| ------- | -------- | -{{range .Methods -}} - | `{{.Name}}` | [{{.RequestLongType}}](#{{.RequestFullType}}){{if .RequestStreaming}} stream{{end}} | [{{.ResponseLongType}}](#{{.ResponseFullType}}){{if .ResponseStreaming}} stream{{end}} | {{nobr .Description}} | {{with (index .Options "google.api.http")}}{{range .Rules}}{{.Method}}|{{.Pattern}}{{end}}{{end}}| -{{end}} -{{end}} - -{{end}} - -## Scalar Value Types - -| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | -| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | -{{range .Scalars -}} - | {{.ProtoType}} | {{.Notes}} | {{.CppType}} | {{.JavaType}} | {{.PythonType}} | {{.GoType}} | {{.CSharp}} | {{.PhpType}} | {{.RubyType}} | -{{end}} diff --git a/docs/readme.md b/docs/readme.md deleted file mode 100644 index 117410b3..00000000 --- a/docs/readme.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Kava Documentation -description: The documentation of Kava. -footer: - newsletter: false -aside: true ---- - -# Kava - -## DeFi for Crypto. - -Reference implementation of Kava, a blockchain for cross-chain DeFi. Built using the [cosmos-sdk](https://github.com/cosmos/cosmos-sdk). - -## Mainnet - -The current recommended version of the software for mainnet is [v0.15.1](https://github.com/Kava-Labs/kava/releases/tag/v0.15.1). The master branch of this repository often contains considerable development work since the last mainnet release and is __not__ runnable on mainnet. - -### Installation - -```bash -git checkout v0.15.1 -make install -``` - -### Upgrade - -The scheduled mainnet upgrade to `kava-9` took place on January 19th, 2022 at 15:00 UTC. The current version of Kava for `kava-9` is [__v0.16.1__](https://github.com/Kava-Labs/kava/releases/tag/v0.16.1). - -The canonical genesis file can be found [here](https://github.com/Kava-Labs/launch/tree/master/kava-9) - -The canonical genesis file hash is - -``` -jq -S -c -M '' genesis.json | shasum -a 256 -5c688df5ae6cba9c9e5a9bab045eb367dd54ce9b7f5fab78cf3e636cf2e2b793 - -``` - -For additional information about upgrades: - -- Upgrading a [Validator](https://github.com/Kava-Labs/kava/blob/master/docs/kava-8/upgrade_validator.md) -- Upgrading a [Wallet](https://github.com/Kava-Labs/kava/blob/master/docs//kava-8/upgrade_wallet.md) -- Upgrading an [Oracle](https://github.com/Kava-Labs/kava/blob/master/docs//kava-8/upgrade_oracle.md) - -### Validator Guide - -Use this [guide](https://github.com/Kava-Labs/kava/blob/master/docs/validator_guide.md) to set up a mainnet validator. Note that this is a minimal guide and does not cover more advanced topics like [sentry node architecture](https://github.com/stakefish/cosmos-validator-design) and [double signing protection](https://github.com/tendermint/tmkms). It is strongly recommended that any parties considering validating do additional research. If you have questions, please join the active conversation in the #validators thread of the [__Kava Discord Channel__](https://discord.com/invite/kQzh3Uv). - -## Testnet - -For further information on joining the testnet, head over to the [testnet repo](https://github.com/Kava-Labs/kava-testnets). - -## License - -Copyright © Kava Labs, Inc. All rights reserved. - -Licensed under the [Apache v2 License](LICENSE.md). diff --git a/docs/validator_guide.md b/docs/validator_guide.md deleted file mode 100644 index 44a2ecc2..00000000 --- a/docs/validator_guide.md +++ /dev/null @@ -1,194 +0,0 @@ -# Validator Guide - -This is an updated guide on setting up a mainnet validator. Note that this is a minimal guide and does not cover more advanced topics like [sentry node architecture](https://github.com/stakefish/cosmos-validator-design) and [double signing protection](https://github.com/tendermint/tmkms). It is strongly recommended that any parties considering validating do additional research. If you have questions, please join the active conversation in the #validators thread of our [__Discord Channel__](https://discord.com/invite/kQzh3Uv). -## Installing Kava - -### Prerequisites -You should select an all-purpose server with at least 8GB of RAM, good connectivity, and a solid state drive with sufficient disk space. Storage requirements are discussed further in the section below. In addition, you’ll need to open **port 26656** to connect to the Kava peer-to-peer network. As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for updating your server as well. - -### Storage -The monthly storage requirements for a node are as follows. These are estimated values based on experience, but should serve as a good guide. - -- An archival node (`pruning = "nothing"`) grows at a rate of ~100 GB per month -- A fully pruning node (`pruning = "everything"`) grows at a rate of ~5 GB per month -- A default pruning node (`pruning = “default”`) grows at a rate of ~25 GB per month - -## Install Go -Kava is built using Go and requires Go version 1.17+. In this example, you will be installing Go on a fresh install of ubuntu 20.04. - -```bash -# Update ubuntu -sudo apt update -sudo apt upgrade -y - -# Install packages necessary to run go and jq for pretty formatting command line outputs -sudo apt install build-essential jq -y - -# Install git -sudo apt install git - -# Install go -wget https://dl.google.com/go/go1.17.6.linux-amd64.tar.gz (or latest version at https://golang.org/dl/) -sudo tar -xvf go1.17.6.linux-amd64.tar.gz -sudo mv go /usr/local - -# Updates environmental variables to include go -cat <> ~/.profile -export GOROOT=/usr/local/go -export GOPATH=$HOME/go -export GO111MODULE=on -export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin -EOF -source ~/.profile -``` -To verify that Go is installed: -```bash -go version -# Should return go version go1.17.6 linux/amd64 -``` - -## Install Kava -Install Kava using `git clone`. Note that version 0.16.1 is the correct version for mainnet. - -```bash -git clone https://github.com/kava-labs/kava -cd kava -git checkout v0.16.1 -make install -``` -To verify that kava is installed: -```bash -kava version --long -# name: kava -# server_name: kava -# version: 0.16.1 -# commit: c2257c409659e2a6c1c8907fe5ae596c5e46f19d - -# build_tags: netgo,ledger -# go: go version go1.17.6 linux/amd64 -``` - -## Configuring Your Node -Next, download the correct genesis file and sync your node with the Kava mainnet. To download the genesis file: -```bash -# First, initialize kava. Replace with the public name of your node -kava init --chain-id kava-9 -# Download the genesis file -wget https://kava-genesis-files.s3.amazonaws.com/kava-9/genesis.json -O ~/.kava/config/genesis.json -# Verify genesis hash -jq -S -c -M '' $HOME/.kava/config/genesis.json | shasum -a 256 -# 5c688df5ae6cba9c9e5a9bab045eb367dd54ce9b7f5fab78cf3e636cf2e2b793 -``` -Next, adjust some configurations. To open the config file: -```bash -vim $HOME/.kava/config/config.toml -``` -At line 212, add [seeds](https://docs.google.com/spreadsheets/d/1j-e1HTkskNRS6mlhxLLQa0loB-ShcVUjz8WVVZxvPaY). These are used to connect to the peer-to-peer network: - -At line 215, add some [persistent peers](https://docs.google.com/spreadsheets/d/1j-e1HTkskNRS6mlhxLLQa0loB-ShcVUjz8WVVZxvPaY), which help maintain a connection to the peer-to-peer network - - -Next, chose how much historical state you want to store. To open the application config file: -```bash -vim $HOME/.kava/config/app.toml -``` -In this file, choose between `default`, `nothing`, and `everything`. To reduce hard drive storage, choose `everything` or `default`. To run an archival node, chose `nothing`. -```bash -pruning = "default" -``` -In the same file, you will want to set minimum gas prices — setting a minimum prevents spam transactions: -```bash -minimum-gas-prices = "0.001ukava" -``` -### Syncing Your Node -To sync your node, you will use systemd, which manages the Kava daemon and automatically restarts it in case of failure. To use systemd, you will create a service file. Be sure to replace `` with the user on your server: -```bash -sudo tee /etc/systemd/system/kavad.service > /dev/null <<'EOF' -[Unit] -Description=Kava daemon -After=network-online.target - -[Service] -User= -ExecStart=/home//go/bin/kava start -Restart=on-failure -RestartSec=3 -LimitNOFILE=4096 - -[Install] -WantedBy=multi-user.target -EOF -``` -To start syncing: -```bash -# Start the node -sudo systemctl enable kavad -sudo systemctl start kavad -``` -To check on the status of syncing: -```bash -kava status --log_format json | jq '.sync_info' -``` -This will give output like: -```bash -{ - "latest_block_hash": "03BC172D991C3D66BAAA12A41CAA1A4718C63605B71FD9E0EF09EC38C2DA9F85", - "latest_app_hash": "FBC020AC8258C4854D2D3384E78929384B0BFBA462F948D493E7883AD315B38C", - "latest_block_height": "36", - "latest_block_time": "2022-01-19T16:22:18.54790946Z", - "earliest_block_hash": "C124499F70881EC71F41231DAB111F448558C5A7794D044F0613E1509FA4C8DF", - "earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855", - "earliest_block_height": "1", - "earliest_block_time": "2022-01-19T16:00:00Z", - "catching_up": true -} -``` -The main thing to watch is that the block height is increasing. Once you are caught up with the chain, `catching_up` will become false. At that point, you can start using your node to create a validator. If you need to sync using a snapshot, please use https://kava.quicksync.io/ - -To check the logs of the node: -```bash -sudo journalctl -u kavad -f -``` - -## Creating a Validator -First, create a wallet, which will give you a private key / public key pair for your node. -```bash -# Replace with a name for your key that you will remember -kava keys add -# To see a list of wallets on your node -kava keys list -``` -**Be sure to write down the mnemonic for your wallet and store it securely. Losing your mnemonic could result in the irrecoverable loss of KAVA tokens.** - -To see the options when creating a validator: -```bash -kava tx staking create-validator -h -``` -An example of creating a validator with 50KAVA self-delegation and 10% commission: -```bash -# Replace with the key you created previously -kava tx staking create-validator \ ---amount=50000000ukava \ ---pubkey=$(kava tendermint show-validator) \ ---moniker="choose moniker" \ ---website="optional website for your validator" \ ---details="optional details for your validator" \ ---commission-rate="0.10" \ ---commission-max-rate="0.20" \ ---commission-max-change-rate="0.01" \ ---min-self-delegation="1" \ ---from= \ ---chain-id=kava-9 \ ---gas=auto \ ---gas-adjustment=1.4 -``` -To check on the status of your validator: -```bash -kava status --log_format json | jq '.ValidatorInfo' -``` -After you have completed this guide, your validator should be up and ready to receive delegations. Note that only the top 100 validators by weighted stake (self-delegations + other delegations) are eligible for block rewards. To view the current validator list, checkout one of the Kava block explorers: -- https://www.mintscan.io/kava -- https://kava.bigdipper.live/ -- https://kavascan.com/ - -If you have questions, please join the active conversation in the #validators thread of the [__Kava Discord Channel__](https://discord.com/invite/kQzh3Uv).