From e880e1795010b472c7332b4e1746773cb84b0177 Mon Sep 17 00:00:00 2001 From: Ethan Date: Fri, 9 Aug 2019 20:10:46 -0600 Subject: [PATCH 01/39] Update testchain --- package.json | 2 +- .../contracts/abis/DssProxyActions.json | 2 +- .../dai-plugin-mcd/contracts/abis/Flippy.json | 2 +- .../contracts/addresses/testnet.json | 54 +++++++++---------- yarn.lock | 8 +-- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index cbd544ee3..86881bd8a 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "@babel/plugin-proposal-throw-expressions": "^7.2.0", "@babel/plugin-transform-runtime": "^7.3.4", "@babel/preset-env": "^7.4.5", - "@makerdao/testchain": "^0.2.10-4", + "@makerdao/testchain": "^0.2.11", "babel-eslint": "^10.0.1", "babel-jest": "^24.8.0", "babel-loader": "^8.0.5", diff --git a/packages/dai-plugin-mcd/contracts/abis/DssProxyActions.json b/packages/dai-plugin-mcd/contracts/abis/DssProxyActions.json index 6ad9f508a..970f69b3a 100644 --- a/packages/dai-plugin-mcd/contracts/abis/DssProxyActions.json +++ b/packages/dai-plugin-mcd/contracts/abis/DssProxyActions.json @@ -1 +1 @@ -[{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadD","type":"uint256"}],"name":"openLockETHAndDraw","outputs":[{"name":"cdp","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"flux","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"},{"name":"wad","type":"uint256"}],"name":"dsrJoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"guy","type":"address"}],"name":"give","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"lockGemAndDraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"rad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"}],"name":"dsrExitAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"lockGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"guy","type":"address"},{"name":"ok","type":"uint256"}],"name":"allow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"}],"name":"quit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"freeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"freeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"},{"name":"wad","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"gemJoin_join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ilk","type":"bytes32"}],"name":"open","outputs":[{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dink","type":"int256"},{"name":"dart","type":"int256"}],"name":"frob","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"obj","type":"address"},{"name":"guy","type":"address"}],"name":"nope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"}],"name":"ethJoin_join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"wipeAndFreeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"lockETHAndDraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"obj","type":"address"},{"name":"guy","type":"address"}],"name":"hope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"lockGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"wipeAndFreeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"lockGemAndDraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"},{"name":"wad","type":"uint256"}],"name":"dsrExit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"},{"name":"wad","type":"uint256"}],"name":"daiJoin_join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"openLockGemAndDraw","outputs":[{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"dink","type":"int256"},{"name":"dart","type":"int256"}],"name":"frob","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"cdp","type":"uint256"}],"name":"lockETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gemJoin","type":"address"}],"name":"makeGemBag","outputs":[{"name":"bag","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"openLockGemAndDraw","outputs":[{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file +[{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"safeLockGem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"flux","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"},{"name":"wad","type":"uint256"}],"name":"dsrJoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"lockETHAndDraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"guy","type":"address"}],"name":"give","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"rad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"}],"name":"dsrExitAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"lockGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"guy","type":"address"},{"name":"ok","type":"uint256"}],"name":"allow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"}],"name":"quit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"wipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"freeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"freeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"},{"name":"wad","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"gemJoin_join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ilk","type":"bytes32"}],"name":"open","outputs":[{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dink","type":"int256"},{"name":"dart","type":"int256"}],"name":"frob","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"obj","type":"address"},{"name":"guy","type":"address"}],"name":"nope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wad","type":"uint256"}],"name":"safeWipe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"}],"name":"ethJoin_join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"wipeAndFreeGem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"obj","type":"address"},{"name":"guy","type":"address"}],"name":"hope","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"wipeAndFreeETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"gem","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"gntJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"}],"name":"openLockGNTAndDraw","outputs":[{"name":"bag","type":"address"},{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"daiJoin","type":"address"},{"name":"pot","type":"address"},{"name":"wad","type":"uint256"}],"name":"dsrExit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"apt","type":"address"},{"name":"urn","type":"address"},{"name":"wad","type":"uint256"}],"name":"daiJoin_join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"cdp","type":"uint256"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"lockGemAndDraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"cdp","type":"uint256"},{"name":"dst","type":"address"},{"name":"dink","type":"int256"},{"name":"dart","type":"int256"}],"name":"frob","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"gemJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadC","type":"uint256"},{"name":"wadD","type":"uint256"},{"name":"transferFrom","type":"bool"}],"name":"openLockGemAndDraw","outputs":[{"name":"cdp","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"cdp","type":"uint256"}],"name":"lockETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"ethJoin","type":"address"},{"name":"cdp","type":"uint256"}],"name":"safeLockETH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"manager","type":"address"},{"name":"jug","type":"address"},{"name":"ethJoin","type":"address"},{"name":"daiJoin","type":"address"},{"name":"ilk","type":"bytes32"},{"name":"wadD","type":"uint256"}],"name":"openLockETHAndDraw","outputs":[{"name":"cdp","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"gemJoin","type":"address"}],"name":"makeGemBag","outputs":[{"name":"bag","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/packages/dai-plugin-mcd/contracts/abis/Flippy.json b/packages/dai-plugin-mcd/contracts/abis/Flippy.json index 52a859f67..a58c0b401 100644 --- a/packages/dai-plugin-mcd/contracts/abis/Flippy.json +++ b/packages/dai-plugin-mcd/contracts/abis/Flippy.json @@ -1 +1 @@ -[{"constant":false,"inputs":[{"name":"id","type":"uint256"}],"name":"yank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"bids","outputs":[{"components":[{"name":"bid","type":"uint256"},{"name":"lot","type":"uint256"},{"name":"guy","type":"address"},{"name":"tic","type":"uint48"},{"name":"end","type":"uint48"},{"name":"urn","type":"address"},{"name":"gal","type":"address"},{"name":"tab","type":"uint256"}],"name":"","type":"tuple"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file +[{"constant":false,"inputs":[{"name":"id","type":"uint256"}],"name":"yank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"bids","outputs":[{"components":[{"name":"bid","type":"uint256"},{"name":"lot","type":"uint256"},{"name":"guy","type":"address"},{"name":"tic","type":"uint48"},{"name":"end","type":"uint48"},{"name":"usr","type":"address"},{"name":"gal","type":"address"},{"name":"tab","type":"uint256"}],"name":"","type":"tuple"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/packages/dai-plugin-mcd/contracts/addresses/testnet.json b/packages/dai-plugin-mcd/contracts/addresses/testnet.json index ea67c24cf..49fd5f232 100644 --- a/packages/dai-plugin-mcd/contracts/addresses/testnet.json +++ b/packages/dai-plugin-mcd/contracts/addresses/testnet.json @@ -1,14 +1,14 @@ { - "BAT": "0x927f29f213c691ace67cbc9fdb6ebbfd04d07ec4", - "CDP_MANAGER": "0x6b09a5b5dc17eaa7d0b65ba898f58005a70736b5", + "BAT": "0x666866f71a978f119acec358543c1e72fc27637d", + "CDP_MANAGER": "0xdb8848ea69cce3f7f41949d274899641e558cdf4", "DEPLOYER": "0x16fb96a5fa0427af0c8f7cf1eb4870231c8154b6", - "DGD": "0xeb9d9336b4a89260bc4b94ee6a34e2faf46b0ca5", - "ETH": "0xc7c5e44358a77f7a8508fe35d5cb21c4a365a3bf", + "DGD": "0x8752bde45da8b2665cd36754a39fd5cc82f0ad05", + "ETH": "0x73bf2607f04822b6859e71457f5d8817aec7f0c3", "FAUCET": "0x2d3adfca1e6ad360a138cbcf2f286f70a5ff614a", - "GET_CDPS": "0xdb8848ea69cce3f7f41949d274899641e558cdf4", - "GNT": "0x4af6e9fa188161fd283dc8d51619615d00ef3f01", - "GOV_POLL_GEN": "0xe8f0f6067fa52572d6631517e9050c46769bebf3", - "MCD_ADM": "0x0e69131732c7700d5d598350504ba885d677cca8", + "GET_CDPS": "0x2a3a2f87403d675748eb11b6fce92a16a0084eb6", + "GNT": "0xb782cee543f1a9a0724f32731f53dcdd198c2695", + "GOV_POLL_GEN": "0x7861fef0437924c0c5e52d617312b058477db810", + "MCD_ADM": "0x5e6085775cd0b41fc70d1a6b48a0451bf7aca801", "MCD_CAT": "0x38d4aa5a17d3d15f0a6baa754b11cd3b6e97b8ed", "MCD_DAI": "0x11c8d156e1b5fd883e31e9091874f2af80b02775", "MCD_DEPLOY": "0x629ca18b145a870efb230cf89aa626a4b2d3b228", @@ -26,19 +26,19 @@ "MCD_FLIP_ZRX_A": "0xd97c629021ee39c94ea89230d4005629a253ca3f", "MCD_FLOP": "0xf2cba62837a52b0c1847f225438c82d050b4ac19", "MCD_GOV": "0x174666d4101f6294eba19d0846ec85176d28f2e6", - "MCD_GOV_ACTIONS": "0x7581e647b7b5d522b198ef44f51e1121b3d837b0", - "MCD_GOV_GUARD": "0xe0d81d47ac1e791dd2559013cf1ff005e619d733", - "MCD_IOU": "0xa805669da5d6c3851f383acc03a9a5fc45671c25", - "MCD_JOIN_BAT_A": "0x666866f71a978f119acec358543c1e72fc27637d", + "MCD_GOV_ACTIONS": "0x689e9dc3214ac88f312fdd148684bf199ccf596c", + "MCD_GUARD": "0xe0d81d47ac1e791dd2559013cf1ff005e619d733", + "MCD_IOU": "0xdf3b1a36ff07cccf5e61a60690fc0170e238f499", + "MCD_JOIN_BAT_A": "0xa8119bfc8565ce4640d0512d8656e54369e4cd79", "MCD_JOIN_DAI": "0x0e88266e5d517d6358ad6adabc15475ea2d277d1", - "MCD_JOIN_DGD_A": "0x8752bde45da8b2665cd36754a39fd5cc82f0ad05", - "MCD_JOIN_ETH_A": "0x73bf2607f04822b6859e71457f5d8817aec7f0c3", - "MCD_JOIN_ETH_B": "0x3ef50e4fe8d6668b701b5f7aaff95e442fd4dd78", - "MCD_JOIN_ETH_C": "0x71ce2f5a1ee392425b749956f9b58481a7c6b707", - "MCD_JOIN_GNT_A": "0xb782cee543f1a9a0724f32731f53dcdd198c2695", - "MCD_JOIN_OMG_A": "0x2a5f3e35aba017435b3c8a66f64da3509a6a71ec", - "MCD_JOIN_REP_A": "0xf2ea44b10d559c7bcbf156861effd3425fb5e5fb", - "MCD_JOIN_ZRX_A": "0xec93d8ea996da9ffe359778f3dae6134df0de016", + "MCD_JOIN_DGD_A": "0x1fd87e7ddf2a2f22ac5fb8f617a44214f17b883c", + "MCD_JOIN_ETH_A": "0x95ca251198d0d56e4acf6b22adc7e7a1f835fcdd", + "MCD_JOIN_ETH_B": "0xf7cbc73fe7d30c68ad7b64d293d4f52f76027261", + "MCD_JOIN_ETH_C": "0x6741a0fecce6ecbf7c1f338de624f63d970497ea", + "MCD_JOIN_GNT_A": "0xa87faa7500099368ba57a3a2f584f5197c05e37f", + "MCD_JOIN_OMG_A": "0x089af8e5dc55271a2ee4ca5d5bd1d8b37482ea19", + "MCD_JOIN_REP_A": "0xe9658d1356890e06987c2d769b7d76caedbcff4b", + "MCD_JOIN_ZRX_A": "0x5ab87e4729bfffe884c40a65c5bef55af105a99e", "MCD_JUG": "0x6a30d8cfaae0a79472e7e1e038f4a40ac2caff60", "MCD_PAUSE": "0x55320248dc50ef6dabc88ecbc294fd5e2e1f4ec6", "MCD_PAUSE_PROXY": "0x439d8e0ad339fdddfa79186b2f3697886d3faa7c", @@ -47,7 +47,7 @@ "MCD_VAT": "0xc94d704539002c68ff130efb177d201552bbfa90", "MCD_VOW": "0x6190cc9b0eff21ed385ac0c43dbb649cebb88b9a", "MULTICALL": "0x2b2fbfca02f8c29c750ed193828b40887e8bbb32", - "OMG": "0xc677d837a437c24db14e1225416d52bcc9b86e94", + "OMG": "0x2a5f3e35aba017435b3c8a66f64da3509a6a71ec", "PIP_BAT": "0x26ea0dd33aa37e15d95a9ae166092a139ad62013", "PIP_DGD": "0xb0ae8c0856259c6fe000f8e2c14507e5fc167d48", "PIP_ETH": "0x1d24598fa8b77811e68243a2746cc553e68ca03b", @@ -56,12 +56,12 @@ "PIP_REP": "0x7e430f637f3b844d09fc7f81e7fbbce520162092", "PIP_ZRX": "0x9a2810a12197cb844af4ba74a4b81bc1ca727130", "POLL_ID": "0", - "PROXY_ACTIONS": "0x689e9dc3214ac88f312fdd148684bf199ccf596c", + "PROXY_ACTIONS": "0x6b09a5b5dc17eaa7d0b65ba898f58005a70736b5", "PROXY_DEPLOYER": "0x0388cb1bd399d61e0516cb15d275c9f324e4b25d", "PROXY_FACTORY": "0xdd35201726c511474e7e1ee426b5c78b014addcc", - "PROXY_PAUSE_ACTIONS": "0x2a3a2f87403d675748eb11b6fce92a16a0084eb6", + "PROXY_PAUSE_ACTIONS": "0x6c0604d4b3ebb76dba48cc0b5a54bd0f260d962c", "PROXY_REGISTRY": "0xb564f1dc7d220f8e20de45547de71620543c0053", - "REP": "0x61afcbaddfeefe7155416248cb51511d73b94e42", + "REP": "0xf2ea44b10d559c7bcbf156861effd3425fb5e5fb", "VAL_BAT": "0x26ea0dd33aa37e15d95a9ae166092a139ad62013", "VAL_DGD": "0xb0ae8c0856259c6fe000f8e2c14507e5fc167d48", "VAL_ETH": "0x1d24598fa8b77811e68243a2746cc553e68ca03b", @@ -69,8 +69,8 @@ "VAL_OMG": "0xa9d33ce18803b0742460ffb1b33b6c40f95178bc", "VAL_REP": "0x7e430f637f3b844d09fc7f81e7fbbce520162092", "VAL_ZRX": "0x9a2810a12197cb844af4ba74a4b81bc1ca727130", - "VOTE_NO": "0xf1158bdefdceaf29413c4c0c81c8f450f273b976", + "VOTE_NO": "0x68f4649700dc5435d9a55d72612fee55bc0a0869", "VOTE_PROXY_FACTORY": "0x883c76966ea1d1afec54a1c20f84a57a287bb021", - "VOTE_YES": "0x22acb4ed65bc2617437c54b8d976592c2990ab2d", - "ZRX": "0xdc901a38a2ec3283556f039b115423049517b50c" + "VOTE_YES": "0x78e7a21580d12ade6aaea24ee8991e55c286f366", + "ZRX": "0xec93d8ea996da9ffe359778f3dae6134df0de016" } diff --git a/yarn.lock b/yarn.lock index 3b24e33a7..08f39ab3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1700,10 +1700,10 @@ lodash.values "^4.3.0" toposort "^2.0.2" -"@makerdao/testchain@^0.2.10-4": - version "0.2.10-4" - resolved "https://registry.yarnpkg.com/@makerdao/testchain/-/testchain-0.2.10-4.tgz#cd0656c159b3f40a739980baee1297ce7d9ca46b" - integrity sha512-vtr3j7aBKv0YpRKtfHnK2K/o+AWzukDUxGw6KirXrV6+k1WEirjohn0sly64b/0ecO6ivxuV7BugkHK4FB9voQ== +"@makerdao/testchain@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@makerdao/testchain/-/testchain-0.2.11.tgz#c7dac31b51656eada4085973dbf8a9291a764983" + integrity sha512-2l29gM+jjaRgo8v+7nQ61AuVq5eS65o7n9NmSIudV1tvVB4TN00VKr9TWJFOROeRIYW1oEX17J8EtYhw+ttoPA== dependencies: ganache-cli makerdao/ganache-cli#fix/gas-est-crash From b92f7663d605f48f05ba3bb7817e514459d553a8 Mon Sep 17 00:00:00 2001 From: Ethan Date: Mon, 12 Aug 2019 21:00:25 -0600 Subject: [PATCH 02/39] Add jug address to openLockAndDraw functions --- packages/dai-plugin-mcd/src/CdpManager.js | 6 ++- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 40 +++++++++---------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index dac027c0a..e2df6f0b4 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -105,11 +105,14 @@ export default class CdpManager extends LocalService { ); drawAmount = castAsCurrency(drawAmount, MDAI); const proxyAddress = await this.get('proxy').ensureProxy({ promise }); + const jugAddress = this.get('smartContract').getContractAddress('MCD_JUG'); + console.log(jugAddress); await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); const method = setMethod(isEth, id); const args = [ this._managerAddress, + jugAddress, this._adapterAddress(ilk), this._adapterAddress('DAI'), id || stringToBytes(ilk), @@ -149,6 +152,7 @@ export default class CdpManager extends LocalService { // Indicates if gem supports transferFrom if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); + // console.log(this.proxyActions[method]); return this.proxyActions[method](...args); } @@ -272,7 +276,7 @@ export function setMethod(isEth, id) { } else if (isEth) { return 'openLockETHAndDraw'; } else if (id) { - return 'lockGemAndDraw(address,address,address,uint256,uint256,uint256,bool)'; + return 'lockGemAndDraw'; } return 'openLockGemAndDraw'; } diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 714c2e6fd..096486aad 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -126,31 +126,31 @@ async function expectUtilValues(cdp, { val, ratio, isSafe, dai }) { // ZRX and BAT use the same adapter as ETH and REP, so they // don't need to be tested. describe.each([ - [ - 'ETH-A', - ETH, - async () => setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }) - ], + // [ + // 'ETH-A', + // ETH, + // async () => setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }) + // ], [ 'REP-A', REP, async () => setupCollateral(maker, 'REP-A', { price: 100, debtCeiling: 50 }) - ], - [ - 'GNT-A', - GNT, - async () => setupCollateral(maker, 'GNT-A', { price: 100, debtCeiling: 50 }) - ], - [ - 'OMG-A', - OMG, - async () => setupCollateral(maker, 'OMG-A', { price: 100, debtCeiling: 50 }) - ], - [ - 'DGD-A', - DGD, - async () => setupCollateral(maker, 'DGD-A', { price: 100, debtCeiling: 50 }) ] + // [ + // 'GNT-A', + // GNT, + // async () => setupCollateral(maker, 'GNT-A', { price: 100, debtCeiling: 50 }) + // ], + // [ + // 'OMG-A', + // OMG, + // async () => setupCollateral(maker, 'OMG-A', { price: 100, debtCeiling: 50 }) + // ], + // [ + // 'DGD-A', + // DGD, + // async () => setupCollateral(maker, 'DGD-A', { price: 100, debtCeiling: 50 }) + // ] ])('%s', (ilk, GEM, setup) => { let startingGemBalance, startingDaiBalance; From ec2ea29fb1daadbe6996ec388e1023f1a42906e5 Mon Sep 17 00:00:00 2001 From: Ethan Date: Mon, 12 Aug 2019 21:08:40 -0600 Subject: [PATCH 03/39] Fix manager spec --- packages/dai-plugin-mcd/src/CdpManager.js | 2 - .../dai-plugin-mcd/test/CdpManager.spec.js | 2 +- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 40 +++++++++---------- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index e2df6f0b4..0d48cce08 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -106,7 +106,6 @@ export default class CdpManager extends LocalService { drawAmount = castAsCurrency(drawAmount, MDAI); const proxyAddress = await this.get('proxy').ensureProxy({ promise }); const jugAddress = this.get('smartContract').getContractAddress('MCD_JUG'); - console.log(jugAddress); await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); const method = setMethod(isEth, id); @@ -152,7 +151,6 @@ export default class CdpManager extends LocalService { // Indicates if gem supports transferFrom if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); - // console.log(this.proxyActions[method]); return this.proxyActions[method](...args); } diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 2a95c3a74..336ff3f50 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -108,7 +108,7 @@ test('set method correctly', () => { expect(setMethod(true, 1)).toBe('lockETHAndDraw'); expect(setMethod(true)).toBe('openLockETHAndDraw'); expect(setMethod(false, 1)).toBe( - 'lockGemAndDraw(address,address,address,uint256,uint256,uint256,bool)' + 'lockGemAndDraw' ); expect(setMethod()).toBe('openLockGemAndDraw'); }); diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 096486aad..714c2e6fd 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -126,31 +126,31 @@ async function expectUtilValues(cdp, { val, ratio, isSafe, dai }) { // ZRX and BAT use the same adapter as ETH and REP, so they // don't need to be tested. describe.each([ - // [ - // 'ETH-A', - // ETH, - // async () => setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }) - // ], + [ + 'ETH-A', + ETH, + async () => setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }) + ], [ 'REP-A', REP, async () => setupCollateral(maker, 'REP-A', { price: 100, debtCeiling: 50 }) + ], + [ + 'GNT-A', + GNT, + async () => setupCollateral(maker, 'GNT-A', { price: 100, debtCeiling: 50 }) + ], + [ + 'OMG-A', + OMG, + async () => setupCollateral(maker, 'OMG-A', { price: 100, debtCeiling: 50 }) + ], + [ + 'DGD-A', + DGD, + async () => setupCollateral(maker, 'DGD-A', { price: 100, debtCeiling: 50 }) ] - // [ - // 'GNT-A', - // GNT, - // async () => setupCollateral(maker, 'GNT-A', { price: 100, debtCeiling: 50 }) - // ], - // [ - // 'OMG-A', - // OMG, - // async () => setupCollateral(maker, 'OMG-A', { price: 100, debtCeiling: 50 }) - // ], - // [ - // 'DGD-A', - // DGD, - // async () => setupCollateral(maker, 'DGD-A', { price: 100, debtCeiling: 50 }) - // ] ])('%s', (ilk, GEM, setup) => { let startingGemBalance, startingDaiBalance; From 7fadaf6540e6071fd86db82e018a87b5cb947877 Mon Sep 17 00:00:00 2001 From: Ethan Date: Mon, 12 Aug 2019 22:03:27 -0600 Subject: [PATCH 04/39] Adjust for drip in expected debt values: cdp manager --- packages/dai-plugin-mcd/test/CdpManager.spec.js | 4 +--- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 336ff3f50..6042fda56 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -107,9 +107,7 @@ test('set precision arguments according to decimals', () => { test('set method correctly', () => { expect(setMethod(true, 1)).toBe('lockETHAndDraw'); expect(setMethod(true)).toBe('openLockETHAndDraw'); - expect(setMethod(false, 1)).toBe( - 'lockGemAndDraw' - ); + expect(setMethod(false, 1)).toBe('lockGemAndDraw'); expect(setMethod()).toBe('openLockGemAndDraw'); }); diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 714c2e6fd..40fd43292 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -64,7 +64,7 @@ async function expectValues(cdp, { collateral, debt, myGem, myDai }) { expect(await cdp.getCollateralAmount()).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect(await cdp.getDebtValue()).toEqual(MDAI(debt)); + expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(MDAI(debt).toNumber()); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); From 51e73bd307338a92f63c9c51324f796a71a6c6e4 Mon Sep 17 00:00:00 2001 From: Ethan Date: Mon, 12 Aug 2019 22:11:00 -0600 Subject: [PATCH 05/39] Adjust for drip in expected debt values: type service, managed cdp --- packages/dai-plugin-mcd/test/CdpManager.spec.js | 2 +- packages/dai-plugin-mcd/test/CdpTypeService.spec.js | 8 ++++---- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 6042fda56..0d4776d5a 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -55,7 +55,7 @@ test('getCombinedDebtValue', async () => { cdpMgr.reset(); const currentProxy = await maker.currentProxy(); const totalDebt = await cdpMgr.getCombinedDebtValue(currentProxy); - expect(totalDebt).toEqual(MDAI(8)); + expect(totalDebt.toNumber()).toBeCloseTo(8); }); test('getCdp looks up ilk', async () => { diff --git a/packages/dai-plugin-mcd/test/CdpTypeService.spec.js b/packages/dai-plugin-mcd/test/CdpTypeService.spec.js index adf0992aa..cb1726ccf 100644 --- a/packages/dai-plugin-mcd/test/CdpTypeService.spec.js +++ b/packages/dai-plugin-mcd/test/CdpTypeService.spec.js @@ -17,9 +17,9 @@ const scenarios = [['ETH-A', ETH], ['ETH-B', ETH], ['REP-A', REP]]; liquidation penalty, annual stability fee] */ const systemValues = { - 'ETH-A': [2, '4', 100000, 1.5, 0.05, '5.0'], - 'ETH-B': [2, '4', 100000, 2, 0.05, '4.0'], - 'REP-A': [2, '4', 5000, 1.8, 0.08, '10.0'] + 'ETH-A': [2, 4, 100000, 1.5, 0.05, '5.0'], + 'ETH-B': [2, 4, 100000, 2, 0.05, '4.0'], + 'REP-A': [2, 4, 5000, 1.8, 0.08, '10.0'] }; beforeAll(async () => { @@ -82,7 +82,7 @@ describe.each(scenarios)('%s', (ilk, GEM) => { test('get total debt', async () => { const debt = await cdpType.getTotalDebt(); - expect(debt).toEqual(MDAI(systemValues[ilk][1])); + expect(debt.toNumber()).toBeCloseTo(systemValues[ilk][1]); }); test('get debt ceiling', async () => { diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 40fd43292..f41693960 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -64,7 +64,7 @@ async function expectValues(cdp, { collateral, debt, myGem, myDai }) { expect(await cdp.getCollateralAmount()).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(MDAI(debt).toNumber()); + expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(debt); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); From b119a63c4d4c6c589ecc89b1fd74fdf941b20ff0 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 20:20:09 -0600 Subject: [PATCH 06/39] Adjust for drip in expected debt values: new type service --- packages/dai-plugin-mcd/test/CdpType.spec.js | 8 +- yarn.lock | 2356 +++++++++--------- 2 files changed, 1136 insertions(+), 1228 deletions(-) diff --git a/packages/dai-plugin-mcd/test/CdpType.spec.js b/packages/dai-plugin-mcd/test/CdpType.spec.js index 234010d40..c39a55fc1 100644 --- a/packages/dai-plugin-mcd/test/CdpType.spec.js +++ b/packages/dai-plugin-mcd/test/CdpType.spec.js @@ -23,9 +23,9 @@ const scenarios = [['ETH-A', ETH], ['ETH-B', ETH], ['REP-A', REP]]; liquidation penalty, annual stability fee] */ const systemValues = { - 'ETH-A': [2, '4', 100000, 1.5, 0.05, '5.0'], - 'ETH-B': [2, '4', 100000, 2, 0.05, '4.0'], - 'REP-A': [2, '4', 5000, 1.8, 0.08, '10.0'] + 'ETH-A': [2, 4, 100000, 1.5, 0.05, '5.0'], + 'ETH-B': [2, 4, 100000, 2, 0.05, '4.0'], + 'REP-A': [2, 4, 5000, 1.8, 0.08, '10.0'] }; describe.each(scenarios)('%s', (ilk, GEM) => { @@ -69,7 +69,7 @@ describe.each(scenarios)('%s', (ilk, GEM) => { test('get total debt', async () => { const debt = await cdpType.getTotalDebt(); - expect(debt).toEqual(MDAI(systemValues[ilk][1])); + expect(debt.toNumber()).toBeCloseTo(systemValues[ilk][1]); }); test('get debt ceiling', async () => { diff --git a/yarn.lock b/yarn.lock index 99e0f7f3f..e819c796e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,15 +3,15 @@ "@babel/cli@^7.2.3": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.5.5.tgz#bdb6d9169e93e241a08f5f7b0265195bf38ef5ec" - integrity sha512-UHI+7pHv/tk9g6WXQKYz+kmXTI77YtuY3vqC59KIqcoWEjsJJSG6rAxKaLsgj3LDyadsPrCB929gVOKM6Hui0w== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.4.tgz#5454bb7112f29026a4069d8e6f0e1794e651966c" + integrity sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ== dependencies: commander "^2.8.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.11" mkdirp "^0.5.1" output-file-sync "^2.0.0" slash "^2.0.0" @@ -19,41 +19,41 @@ optionalDependencies: chokidar "^2.0.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" "@babel/core@^7.1.0", "@babel/core@^7.4.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" + integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" + "@babel/helpers" "^7.4.4" + "@babel/parser" "^7.4.5" "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.5" + "@babel/types" "^7.4.4" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" - lodash "^4.17.13" + lodash "^4.17.11" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== +"@babel/generator@^7.4.0", "@babel/generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" + integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.4.4" jsesc "^2.5.1" - lodash "^4.17.13" + lodash "^4.17.11" source-map "^0.5.0" trim-right "^1.0.1" @@ -81,26 +81,26 @@ "@babel/traverse" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4" - integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg== +"@babel/helper-create-class-features-plugin@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" + integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.4.4" "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-define-map@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" - integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== +"@babel/helper-define-map@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" + integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/types" "^7.4.4" + lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -133,12 +133,12 @@ dependencies: "@babel/types" "^7.4.4" -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== dependencies: - "@babel/types" "^7.5.5" + "@babel/types" "^7.0.0" "@babel/helper-module-imports@^7.0.0": version "7.0.0" @@ -148,16 +148,16 @@ "@babel/types" "^7.0.0" "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" + integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/types" "^7.4.4" + lodash "^4.17.11" "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" @@ -172,11 +172,11 @@ integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" + integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== dependencies: - lodash "^4.17.13" + lodash "^4.17.11" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" @@ -189,15 +189,15 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" + integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -224,40 +224,40 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.2.0" -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== +"@babel/helpers@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" + integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== dependencies: "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" "@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" "@babel/node@^7.2.2": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.5.5.tgz#5db48a3bcee64d9eda6474f2a0a55b235d0438b5" - integrity sha512-xsW6il+yY+lzXMsQuvIJNA7tU8ix/f4G6bDt4DrnCkVpsR6clk9XgEbp7QF+xGNDdoD7M7QYokCH83pm+UjD0w== + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.4.5.tgz#bce71bb44d902bfdd4da0b9c839a8a90fc084056" + integrity sha512-nDXPT0KwYMycDHhFG9wKlkipCR+iXzzoX9bD2aF2UABLhQ13AKhNi5Y61W8ASGPPll/7p9GrHesmlOgTUJVcfw== dependencies: "@babel/polyfill" "^7.0.0" - "@babel/register" "^7.5.5" + "@babel/register" "^7.0.0" commander "^2.8.1" - lodash "^4.17.13" + lodash "^4.17.11" node-environment-flags "^1.0.5" v8flags "^3.1.1" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" + integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew== "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" @@ -269,11 +269,11 @@ "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-proposal-class-properties@^7.3.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" - integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" + integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-create-class-features-plugin" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-decorators@^7.3.0": @@ -285,26 +285,18 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-decorators" "^7.2.0" -"@babel/plugin-proposal-dynamic-import@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" - integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-proposal-export-namespace-from@^7.2.0": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.5.2.tgz#ccd5ed05b06d700688ff1db01a9dd27155e0d2a0" - integrity sha512-TKUdOL07anjZEbR1iSxb5WFh810KyObdd29XLFLGo1IDsSuGrjH3ouWSbAxHNmrVKzr9X71UYl2dQ7oGGcRp0g== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.2.0.tgz#308fd4d04ff257fc3e4be090550840eeabad5dd9" + integrity sha512-DZUxbHYxQ5fUFIkMEnh75ogEdBLPfL+mQUqrO2hNY2LGm+tqFnxE924+mhAcCOh/8za8AaZsWHbq6bBoS3TAzA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-export-namespace-from" "^7.2.0" "@babel/plugin-proposal-function-sent@^7.2.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.5.0.tgz#39233aa801145e7d8072077cdb2d25f781c1ffd7" - integrity sha512-JXdfiQpKoC6UgQliZkp3NX7K3MVec1o1nfTWiCCIORE5ag/QZXhL0aSD8/Y2K+hIHonSTxuJF9rh9zsB6hBi2A== + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.2.0.tgz#f707d78551f49162e152d477fba32357341915d1" + integrity sha512-qQBDKRSCu1wGJi3jbngs18vrujVQA4F+OkSuIQYRhE6y19jcPzeEIGOc683mCQXDUR3BQCz8JyCupIwv+IRFmA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-wrap-function" "^7.2.0" @@ -326,10 +318,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-numeric-separator" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58" - integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw== +"@babel/plugin-proposal-object-rest-spread@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" + integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -373,13 +365,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-export-namespace-from@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.2.0.tgz#8d257838c6b3b779db52c0224443459bd27fb039" @@ -436,10 +421,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" - integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== +"@babel/plugin-transform-async-to-generator@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" + integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -452,25 +437,25 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-transform-block-scoping@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" + integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" + lodash "^4.17.11" -"@babel/plugin-transform-classes@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" - integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== +"@babel/plugin-transform-classes@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" + integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.5.5" + "@babel/helper-define-map" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.4.4" "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" @@ -481,10 +466,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-transform-destructuring@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" + integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -497,10 +482,10 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -541,33 +526,30 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" + integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" - babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" - integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== +"@babel/plugin-transform-modules-systemjs@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" + integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== dependencies: "@babel/helper-hoist-variables" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" "@babel/plugin-transform-modules-umd@^7.2.0": version "7.2.0" @@ -591,13 +573,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-replace-supers" "^7.1.0" "@babel/plugin-transform-parameters@^7.4.4": version "7.4.4" @@ -630,9 +612,9 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-runtime@^7.3.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc" - integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz#a50f5d16e9c3a4ac18a1a9f9803c107c380bce08" + integrity sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -694,44 +676,42 @@ regenerator-runtime "^0.13.2" "@babel/preset-env@^7.4.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" + integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-dynamic-import" "^7.5.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-proposal-object-rest-spread" "^7.4.4" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-async-to-generator" "^7.4.4" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" - "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.4.4" + "@babel/plugin-transform-classes" "^7.4.4" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-destructuring" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" "@babel/plugin-transform-for-of" "^7.4.4" "@babel/plugin-transform-function-name" "^7.4.4" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" - "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.4" + "@babel/plugin-transform-modules-systemjs" "^7.4.4" "@babel/plugin-transform-modules-umd" "^7.2.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-object-super" "^7.2.0" "@babel/plugin-transform-parameters" "^7.4.4" "@babel/plugin-transform-property-literals" "^7.2.0" "@babel/plugin-transform-regenerator" "^7.4.5" @@ -742,29 +722,29 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/types" "^7.4.4" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/register@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.5.5.tgz#40fe0d474c8c8587b28d6ae18a03eddad3dac3c1" - integrity sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ== +"@babel/register@^7.0.0": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23" + integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA== dependencies: core-js "^3.0.0" find-cache-dir "^2.0.0" - lodash "^4.17.13" + lodash "^4.17.11" mkdirp "^0.5.1" pirates "^4.0.0" source-map-support "^0.5.9" "@babel/runtime@^7.3.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" - integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" + integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ== dependencies: regenerator-runtime "^0.13.2" @@ -777,28 +757,28 @@ "@babel/parser" "^7.4.4" "@babel/types" "^7.4.4" -"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" + integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A== dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.4" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" + "@babel/parser" "^7.4.5" + "@babel/types" "^7.4.4" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.11" -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" + integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== dependencies: esutils "^2.0.2" - lodash "^4.17.13" + lodash "^4.17.11" to-fast-properties "^2.0.0" "@cnakazawa/watch@^1.0.3": @@ -809,23 +789,23 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@evocateur/libnpmaccess@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" - integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== +"@evocateur/libnpmaccess@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.0.tgz#e546ee4e4bedca54ed9303948ec54c985cec33e4" + integrity sha512-bfrqZ0v+Il5TJBsgF2oyepeJg34K2pBItapzP+UT1QMIGpUh/Zc1pQql4jrafamZTqP3ZvdJxaElat8B5K3ICA== dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/npm-registry-fetch" "^3.9.1" aproba "^2.0.0" figgy-pudding "^3.5.1" get-stream "^4.0.0" npm-package-arg "^6.1.0" -"@evocateur/libnpmpublish@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" - integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== +"@evocateur/libnpmpublish@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.0.tgz#3e0d79fdc0a75f212adabb7c7e341b017effeac2" + integrity sha512-sezhX9FSnPIyrBBvxVocVJVO1uIWPczf6rOmUZSntCWfQMraO8pWTFlDJbroFqPbEqFFHf3eyw8NQ0Eb7OLd1g== dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/npm-registry-fetch" "^3.9.1" aproba "^2.0.0" figgy-pudding "^3.5.1" get-stream "^4.0.0" @@ -835,49 +815,49 @@ semver "^5.5.1" ssri "^6.0.1" -"@evocateur/npm-registry-fetch@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" - integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== +"@evocateur/npm-registry-fetch@^3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz#75b3917320e559f6c91e26af17e62b085ec457a2" + integrity sha512-6v1bHbcAypQ+te/1RGSNL4JkK6mcMtcZrUusqo5iKRtYSAig9UJXlOaCcBR+eLywt2DQMNpEwAj24jwWDX5G/w== dependencies: JSONStream "^1.3.4" bluebird "^3.5.1" figgy-pudding "^3.4.1" - lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" + lru-cache "^4.1.3" + make-fetch-happen "^4.0.1" npm-package-arg "^6.1.0" safe-buffer "^5.1.2" -"@evocateur/pacote@^9.6.3": - version "9.6.3" - resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.3.tgz#bcd7adbd3c2ef303aa89bd24166f06dd9c080d89" - integrity sha512-ExqNqcbdHQprEgKnY/uQz7WRtyHRbQxRl4JnVkSkmtF8qffRrF9K+piZKNLNSkRMOT/3H0e3IP44QVCHaXMWOQ== +"@evocateur/pacote@^9.6.0": + version "9.6.0" + resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.0.tgz#3f0d08fb81c572289a2dfa981e7f97b6dd83cef2" + integrity sha512-nKx8EPxXhzqNfePbqC6603z7Kkf6GBS2q+SNGtBS/bCgS5Q+p3OVR6MXKOkpvC3WHse98W2WLu8QaV9axtfxyw== dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/npm-registry-fetch" "^3.9.1" bluebird "^3.5.3" - cacache "^12.0.0" + cacache "^11.3.2" figgy-pudding "^3.5.1" get-stream "^4.1.0" - glob "^7.1.4" + glob "^7.1.3" lru-cache "^5.1.1" - make-fetch-happen "^5.0.0" + make-fetch-happen "^4.0.1" minimatch "^3.0.4" minipass "^2.3.5" mississippi "^3.0.0" mkdirp "^0.5.1" - normalize-package-data "^2.5.0" + normalize-package-data "^2.4.0" npm-package-arg "^6.1.0" - npm-packlist "^1.4.4" + npm-packlist "^1.1.12" npm-pick-manifest "^2.2.3" osenv "^0.1.5" promise-inflight "^1.0.1" promise-retry "^1.1.1" protoduck "^5.0.1" - rimraf "^2.6.3" - safe-buffer "^5.2.0" - semver "^5.7.0" + rimraf "^2.6.2" + safe-buffer "^5.1.2" + semver "^5.6.0" ssri "^6.0.1" - tar "^4.4.10" + tar "^4.4.8" unique-filename "^1.1.1" which "^1.3.1" @@ -1027,70 +1007,70 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" -"@lerna/add@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.16.2.tgz#90ecc1be7051cfcec75496ce122f656295bd6e94" - integrity sha512-RAAaF8aODPogj2Ge9Wj3uxPFIBGpog9M+HwSuq03ZnkkO831AmasCTJDqV+GEpl1U2DvnhZQEwHpWmTT0uUeEw== - dependencies: - "@evocateur/pacote" "^9.6.3" - "@lerna/bootstrap" "3.16.2" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/npm-conf" "3.16.0" +"@lerna/add@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.15.0.tgz#10be562f43cde59b60f299083d54ac39520ec60a" + integrity sha512-+KrG4GFy/6FISZ+DwWf5Fj5YB4ESa4VTnSn/ujf3VEda6dxngHPN629j+TcPbsdOxUYVah+HuZbC/B8NnkrKpQ== + dependencies: + "@evocateur/pacote" "^9.6.0" + "@lerna/bootstrap" "3.15.0" + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" + "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" npm-package-arg "^6.1.0" - p-map "^2.1.0" - semver "^6.2.0" + p-map "^1.2.0" + semver "^5.5.0" -"@lerna/batch-packages@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.16.0.tgz#1c16cb697e7d718177db744cbcbdac4e30253c8c" - integrity sha512-7AdMkANpubY/FKFI01im01tlx6ygOBJ/0JcixMUWoWP/7Ds3SWQF22ID6fbBr38jUWptYLDs2fagtTDL7YUPuA== +"@lerna/batch-packages@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/batch-packages/-/batch-packages-3.14.0.tgz#0208663bab3ddbf57956b370aaec4c9ebee6c800" + integrity sha512-RlBkQVNTqk1qvn6PFWiWNiskllUHh6tXbTVm43mZRNd+vhAyvrQC8RWJxH0ECVvnFAt9rSNGRIVbEJ31WnNQLg== dependencies: - "@lerna/package-graph" "3.16.0" + "@lerna/package-graph" "3.14.0" npmlog "^4.1.2" -"@lerna/bootstrap@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.16.2.tgz#be268d940221d3c3270656b9b791b492559ad9d8" - integrity sha512-I+gs7eh6rv9Vyd+CwqL7sftRfOOsSzCle8cv/CGlMN7/p7EAVhxEdAw8SYoHIKHzipXszuqqy1Y3opyleD0qdA== - dependencies: - "@lerna/batch-packages" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/has-npm-version" "3.16.0" - "@lerna/npm-install" "3.16.0" - "@lerna/package-graph" "3.16.0" +"@lerna/bootstrap@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.15.0.tgz#f53e0bbbbfb8367e609a06378409bfc673ff2930" + integrity sha512-4AxsPKKbgj2Ju03qDddQTpOHvpqnwd0yaiEU/aCcWv/4tDTe79NqUne2Z3+P2WZY0Zzb8+nUKcskwYBMTeq+Mw== + dependencies: + "@lerna/batch-packages" "3.14.0" + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" + "@lerna/has-npm-version" "3.14.2" + "@lerna/npm-install" "3.14.2" + "@lerna/package-graph" "3.14.0" "@lerna/pulse-till-done" "3.13.0" "@lerna/rimraf-dir" "3.14.2" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-parallel-batches" "3.16.0" - "@lerna/symlink-binary" "3.16.2" - "@lerna/symlink-dependencies" "3.16.2" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-parallel-batches" "3.13.0" + "@lerna/symlink-binary" "3.14.2" + "@lerna/symlink-dependencies" "3.14.2" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" - get-port "^4.2.0" - multimatch "^3.0.0" + get-port "^3.2.0" + multimatch "^2.1.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" read-package-tree "^5.1.6" - semver "^6.2.0" + semver "^5.5.0" -"@lerna/changed@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.16.4.tgz#c3e727d01453513140eee32c94b695de577dc955" - integrity sha512-NCD7XkK744T23iW0wqKEgF4R9MYmReUbyHCZKopFnsNpQdqumc3SOIvQUAkKCP6hQJmYvxvOieoVgy/CVDpZ5g== +"@lerna/changed@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.15.0.tgz#20db9d992d697e4288c260aa38b989dcb93f4b40" + integrity sha512-Hns1ssI9T9xOTGVc7PT2jUaqzsSkxV3hV/Y7iFO0uKTk+fduyTwGTHU9A/ybQ/xi/9iaJbvaXyjxKiGoEnzmhg== dependencies: - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/listable" "3.16.0" + "@lerna/collect-updates" "3.14.2" + "@lerna/command" "3.15.0" + "@lerna/listable" "3.14.0" "@lerna/output" "3.13.0" - "@lerna/version" "3.16.4" + "@lerna/version" "3.15.0" "@lerna/check-working-tree@3.14.2": version "3.14.2" @@ -1110,17 +1090,17 @@ execa "^1.0.0" strong-log-transformer "^2.0.0" -"@lerna/clean@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.16.0.tgz#1c134334cacea1b1dbeacdc580e8b9240db8efa1" - integrity sha512-5P9U5Y19WmYZr7UAMGXBpY7xCRdlR7zhHy8MAPDKVx70rFIBS6nWXn5n7Kntv74g7Lm1gJ2rsiH5tj1OPcRJgg== +"@lerna/clean@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.15.0.tgz#a94da50908a80ba443a0a682706aca79ac2ecf27" + integrity sha512-D1BN7BnJk6YjrSR7E7RiCmWiFVWDo3L+OSe6zDq6rNNYexPBtSi2JOCeF/Dibi3jd2luVu0zkVpUtuEEdPiD+A== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" "@lerna/rimraf-dir" "3.14.2" - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" p-waterfall "^1.0.0" @@ -1144,79 +1124,78 @@ figgy-pudding "^3.5.1" npmlog "^4.1.2" -"@lerna/collect-updates@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.16.0.tgz#6db3ce8a740a4e2b972c033a63bdfb77f2553d8c" - integrity sha512-HwAIl815X2TNlmcp28zCrSdXfoZWNP7GJPEqNWYk7xDJTYLqQ+SrmKUePjb3AMGBwYAraZSEJLbHdBpJ5+cHmQ== +"@lerna/collect-updates@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.14.2.tgz#396201f6568ec5916bf2c11e7a29b0931fcd3e5b" + integrity sha512-+zSQ2ZovH8Uc0do5dR+sk8VvRJc6Xl+ZnJJGESIl17KSpEw/lVjcOyt6f3BP+WHn+iSOjMWcGvUVA601FIEdZw== dependencies: "@lerna/child-process" "3.14.2" "@lerna/describe-ref" "3.14.2" minimatch "^3.0.4" npmlog "^4.1.2" - slash "^2.0.0" + slash "^1.0.0" -"@lerna/command@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.16.0.tgz#ba3dba49cb5ce4d11b48269cf95becd86e30773f" - integrity sha512-u7tE4GC4/gfbPA9eQg+0ulnoJ+PMoMqomx033r/IxqZrHtmJR9+pF/37S0fsxJ2hX/RMFPC7c9Q/i8NEufSpdQ== +"@lerna/command@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.15.0.tgz#e1dc1319054f1cf0b135aa0c5730f3335641a0ca" + integrity sha512-dZqr4rKFN+veuXakIQ1DcGUpzBgcWKaYFNN4O6/skOdVQaEfGefzo1sZET+q7k/BkypxkhXHXpv5UqqSuL/EHQ== dependencies: "@lerna/child-process" "3.14.2" - "@lerna/package-graph" "3.16.0" - "@lerna/project" "3.16.0" + "@lerna/package-graph" "3.14.0" + "@lerna/project" "3.15.0" "@lerna/validation-error" "3.13.0" "@lerna/write-log-file" "3.13.0" dedent "^0.7.0" execa "^1.0.0" - is-ci "^2.0.0" - lodash "^4.17.14" + is-ci "^1.0.10" + lodash "^4.17.5" npmlog "^4.1.2" -"@lerna/conventional-commits@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.16.4.tgz#bf464f11b2f6534dad204db00430e1651b346a04" - integrity sha512-QSZJ0bC9n6FVaf+7KDIq5zMv8WnHXnwhyL5jG1Nyh3SgOg9q2uflqh7YsYB+G6FwaRfnPaKosh6obijpYg0llA== +"@lerna/conventional-commits@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.14.0.tgz#24f643550dc29d4f1249cc26d0eb453d7a1c513d" + integrity sha512-hGZ2qQZ9uEGf2eeIiIpEodSs9Qkkf/2uYEtNT7QN1RYISPUh6/lKGBssc5dpbCF64aEuxmemWLdlDf1ogG6++w== dependencies: "@lerna/validation-error" "3.13.0" conventional-changelog-angular "^5.0.3" conventional-changelog-core "^3.1.6" - conventional-recommended-bump "^5.0.0" - fs-extra "^8.1.0" + conventional-recommended-bump "^4.0.4" + fs-extra "^7.0.0" get-stream "^4.0.0" - lodash.template "^4.5.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" - pify "^4.0.1" - semver "^6.2.0" + pify "^3.0.0" + semver "^5.5.0" -"@lerna/create-symlink@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" - integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== +"@lerna/create-symlink@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.14.0.tgz#f40ae06e8cebe70c694368ebf9a4af5ab380fbea" + integrity sha512-Kw51HYOOi6UfCKncqkgEU1k/SYueSBXgkNL91FR8HAZH7EPSRTEtp9mnJo568g0+Hog5C+3cOaWySwhHpRG29A== dependencies: - "@zkochan/cmd-shim" "^3.1.0" - fs-extra "^8.1.0" + cmd-shim "^2.0.2" + fs-extra "^7.0.0" npmlog "^4.1.2" -"@lerna/create@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.16.0.tgz#4de841ec7d98b29bb19fb7d6ad982e65f7a150e8" - integrity sha512-OZApR1Iz7awutbmj4sAArwhqCyKgcrnw9rH0aWAUrkYWrD1w4TwkvAcYAsfx5GpQGbLQwoXhoyyPwPfZRRWz3Q== +"@lerna/create@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.15.0.tgz#27bfadcbdf71d34226aa82432293f5290f7ab1aa" + integrity sha512-doXGt0HTwTQl8GkC2tOrraA/5OWbz35hJqi7Dsl3Fl0bAxiv9XmF3LykHFJ+YTDHfGpdoJ8tKu66f/VKP16G0w== dependencies: - "@evocateur/pacote" "^9.6.3" + "@evocateur/pacote" "^9.6.0" "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - "@lerna/npm-conf" "3.16.0" + "@lerna/command" "3.15.0" + "@lerna/npm-conf" "3.13.0" "@lerna/validation-error" "3.13.0" camelcase "^5.0.0" dedent "^0.7.0" - fs-extra "^8.1.0" - globby "^9.2.0" + fs-extra "^7.0.0" + globby "^8.0.1" init-package-json "^1.10.3" npm-package-arg "^6.1.0" p-reduce "^1.0.0" - pify "^4.0.1" - semver "^6.2.0" - slash "^2.0.0" + pify "^3.0.0" + semver "^5.5.0" + slash "^1.0.0" validate-npm-package-license "^3.0.3" validate-npm-package-name "^3.0.0" whatwg-url "^7.0.0" @@ -1229,44 +1208,44 @@ "@lerna/child-process" "3.14.2" npmlog "^4.1.2" -"@lerna/diff@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.16.0.tgz#6d09a786f9f5b343a2fdc460eb0be08a05b420aa" - integrity sha512-QUpVs5TPl8vBIne10/vyjUxanQBQQp7Lk3iaB8MnCysKr0O+oy7trWeFVDPEkBTCD177By7yPGyW5Yey1nCBbA== +"@lerna/diff@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.15.0.tgz#573d6f58f6809d16752dcfab74c5e286b6678371" + integrity sha512-N1Pr0M554Bt+DlVoD+DXWGh92gcq6G9icn8sH5GSqfwi0XCpPNJ2i1BNEZpUQ6ulLWOMa1YHR4PypPxecRGBjA== dependencies: "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" + "@lerna/command" "3.15.0" "@lerna/validation-error" "3.13.0" npmlog "^4.1.2" -"@lerna/exec@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.16.0.tgz#2b6c033cee46181b6eede0eb12aad5c2c0181e89" - integrity sha512-mH3O5NXf/O88jBaBBTUf+d56CUkxpg782s3Jxy7HWbVuSUULt3iMRPTh+zEXO5/555etsIVVDDyUR76meklrJA== +"@lerna/exec@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.15.0.tgz#b31510f47255367eb0d3e4a4f7b6ef8f7e41b985" + integrity sha512-YuXPd64TNG9wbb3lRvyMARQbdlbMZ1bJZ+GCm0enivnIWUyg0qtBDcfPY2dWpIgOif04zx+K/gmOX4lCaGM4UQ== dependencies: "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/run-topologically" "3.16.0" + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" + p-map "^1.2.0" -"@lerna/filter-options@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.16.0.tgz#b1660b4480c02a5c6efa4d0cd98b9afde4ed0bba" - integrity sha512-InIi1fF8+PxpCwir9bIy+pGxrdE6hvN0enIs1eNGCVS1TTE8osNgiZXa838bMQ1yaEccdcnVX6Z03BNKd56kNg== +"@lerna/filter-options@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.14.2.tgz#7ba91cb54ff3fd9f4650ad8d7c40bc1075e44c2d" + integrity sha512-Ct8oYvRttbYB9JalngHhirb8o9ZVyLm5a9MpXNevXoHiu6j0vNhI19BQCwNnrL6wZvEHJnzPuUl/jO23tWxemg== dependencies: - "@lerna/collect-updates" "3.16.0" - "@lerna/filter-packages" "3.16.0" + "@lerna/collect-updates" "3.14.2" + "@lerna/filter-packages" "3.13.0" dedent "^0.7.0" -"@lerna/filter-packages@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.16.0.tgz#7d34dc8530c71016263d6f67dc65308ecf11c9fc" - integrity sha512-eGFzQTx0ogkGDCnbTuXqssryR6ilp8+dcXt6B+aq1MaqL/vOJRZyqMm4TY3CUOUnzZCi9S2WWyMw3PnAJOF+kg== +"@lerna/filter-packages@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.13.0.tgz#f5371249e7e1a15928e5e88c544a242e0162c21c" + integrity sha512-RWiZWyGy3Mp7GRVBn//CacSnE3Kw82PxE4+H6bQ3pDUw/9atXn7NRX+gkBVQIYeKamh7HyumJtyOKq3Pp9BADQ== dependencies: "@lerna/validation-error" "3.13.0" - multimatch "^3.0.0" + multimatch "^2.1.0" npmlog "^4.1.2" "@lerna/get-npm-exec-opts@3.13.0": @@ -1276,23 +1255,23 @@ dependencies: npmlog "^4.1.2" -"@lerna/get-packed@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" - integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== +"@lerna/get-packed@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.13.0.tgz#335e40d77f3c1855aa248587d3e0b2d8f4b06e16" + integrity sha512-EgSim24sjIjqQDC57bgXD9l22/HCS93uQBbGpkzEOzxAVzEgpZVm7Fm1t8BVlRcT2P2zwGnRadIvxTbpQuDPTg== dependencies: - fs-extra "^8.1.0" + fs-extra "^7.0.0" ssri "^6.0.1" tar "^4.4.8" -"@lerna/github-client@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.16.0.tgz#619874e461641d4f59ab1b3f1a7ba22dba88125d" - integrity sha512-IVJjcKjkYaUEPJsDyAblHGEFFNKCRyMagbIDm14L7Ab94ccN6i4TKOqAFEJn2SJHYvKKBdp3Zj2zNlASOMe3DA== +"@lerna/github-client@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.14.2.tgz#a743792b51cd9bdfb785186e429568827a6372eb" + integrity sha512-+2Xh7t4qVmXiXE2utPnh5T7YwSltG74JP7c+EiooRY5+3zjh9MpPOcTKxVY3xKclzpsyXMohk2KpTF4tzA5rrg== dependencies: "@lerna/child-process" "3.14.2" - "@octokit/plugin-enterprise-rest" "^3.6.1" - "@octokit/rest" "^16.28.4" + "@octokit/plugin-enterprise-rest" "^2.1.1" + "@octokit/rest" "^16.16.0" git-url-parse "^11.1.2" npmlog "^4.1.2" @@ -1310,124 +1289,124 @@ resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== -"@lerna/has-npm-version@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.0.tgz#55764a4ce792f0c8553cf996a17f554b9e843288" - integrity sha512-TIY036dA9J8OyTrZq9J+it2DVKifL65k7hK8HhkUPpitJkw6jwbMObA/8D40LOGgWNPweJWqmlrTbRSwsR7DrQ== +"@lerna/has-npm-version@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.14.2.tgz#ac17f7c68e92114b8332b95ae6cffec9c0d67a7b" + integrity sha512-cG+z5bB8JPd5f+nT2eLN2LmKg06O11AxlnUxgw2W7cLyc7cnsmMSp/rxt2JBMwW2r4Yn+CLLJIRwJZ2Es8jFSw== dependencies: "@lerna/child-process" "3.14.2" - semver "^6.2.0" + semver "^5.5.0" -"@lerna/import@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.16.0.tgz#b57cb453f4acfc60f6541fcbba10674055cb179d" - integrity sha512-trsOmGHzw0rL/f8BLNvd+9PjoTkXq2Dt4/V2UCha254hMQaYutbxcYu8iKPxz9x86jSPlH7FpbTkkHXDsoY7Yg== +"@lerna/import@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.15.0.tgz#47f2da52059a96bb08a4c09e18d985258fce9ce1" + integrity sha512-4GKQgeTXBTwMbZNkYyPdQIVA41HIISD7D6XRNrDaG0falUfvoPsknijQPCBmGqeh66u1Fcn2+4lkL3OCTj2FMg== dependencies: "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" + "@lerna/command" "3.15.0" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" "@lerna/validation-error" "3.13.0" dedent "^0.7.0" - fs-extra "^8.1.0" + fs-extra "^7.0.0" p-map-series "^1.0.0" -"@lerna/init@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.16.0.tgz#31e0d66bbededee603338b487a42674a072b7a7d" - integrity sha512-Ybol/x5xMtBgokx4j7/Y3u0ZmNh0NiSWzBFVaOs2NOJKvuqrWimF67DKVz7yYtTYEjtaMdug64ohFF4jcT/iag== +"@lerna/init@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.15.0.tgz#bda36de44c365972f87cbd287fe85b6fb7bb1070" + integrity sha512-VOqH6kFbFtfUbXxhSqXKY6bjnVp9nLuLRI6x9tVHOANX2LmSlXm17OUGBnNt+eM4uJLuiUsAR8nTlpCiz//lPQ== dependencies: "@lerna/child-process" "3.14.2" - "@lerna/command" "3.16.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - write-json-file "^3.2.0" - -"@lerna/link@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.16.2.tgz#6c3a5658f6448a64dddca93d9348ac756776f6f6" - integrity sha512-eCPg5Lo8HT525fIivNoYF3vWghO3UgEVFdbsiPmhzwI7IQyZro5HWYzLtywSAdEog5XZpd2Bbn0CsoHWBB3gww== - dependencies: - "@lerna/command" "3.16.0" - "@lerna/package-graph" "3.16.0" - "@lerna/symlink-dependencies" "3.16.2" - p-map "^2.1.0" - slash "^2.0.0" + "@lerna/command" "3.15.0" + fs-extra "^7.0.0" + p-map "^1.2.0" + write-json-file "^2.3.0" -"@lerna/list@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.16.0.tgz#883c00b2baf1e03c93e54391372f67a01b773c2f" - integrity sha512-TkvstoPsgKqqQ0KfRumpsdMXfRSEhdXqOLq519XyI5IRWYxhoqXqfi8gG37UoBPhBNoe64japn5OjphF3rOmQA== +"@lerna/link@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.15.0.tgz#718b4116a8eacb3fc73414ae8d97f8fdaf8125da" + integrity sha512-yKHuifADINobvDOLljBGkVGpVwy6J3mg5p9lQXBdOLXBoIKC8o/UKBR9JvZMFvT/Iy6zn6FPy1v5lz9iU1Ib0Q== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" - "@lerna/listable" "3.16.0" + "@lerna/command" "3.15.0" + "@lerna/package-graph" "3.14.0" + "@lerna/symlink-dependencies" "3.14.2" + p-map "^1.2.0" + slash "^1.0.0" + +"@lerna/list@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.15.0.tgz#4e401c1ad990bb12bd38298cb61d21136420ff68" + integrity sha512-8SvxnlfAnbEzQDf2NL0IxWyUuqWTykF9cHt5/f5TOzgESClpaOkDtqwh/UlE8nVTzWMnxnQUPQi3UTKyJD3i3g== + dependencies: + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" + "@lerna/listable" "3.14.0" "@lerna/output" "3.13.0" -"@lerna/listable@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.16.0.tgz#e6dc47a2d5a6295222663486f50e5cffc580f043" - integrity sha512-mtdAT2EEECqrJSDm/aXlOUFr1MRE4p6hppzY//Klp05CogQy6uGaKk+iKG5yyCLaOXFFZvG4HfO11CmoGSDWzw== +"@lerna/listable@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.14.0.tgz#08f4c78e0466568e8e8a57d4ad09537f2bb7bbb9" + integrity sha512-ZK44Mo8xf/N97eQZ236SPSq0ek6+gk4HqHIx05foEMZVV1iIDH4a/nblLsJNjGQVsIdMYFPaqNJ0z+ZQfiJazQ== dependencies: - "@lerna/query-graph" "3.16.0" + "@lerna/query-graph" "3.14.0" chalk "^2.3.1" columnify "^1.5.4" -"@lerna/log-packed@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" - integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== +"@lerna/log-packed@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.13.0.tgz#497b5f692a8d0e3f669125da97b0dadfd9e480f3" + integrity sha512-Rmjrcz+6aM6AEcEVWmurbo8+AnHOvYtDpoeMMJh9IZ9SmZr2ClXzmD7wSvjTQc8BwOaiWjjC/ukcT0UYA2m7wg== dependencies: - byte-size "^5.0.1" + byte-size "^4.0.3" columnify "^1.5.4" has-unicode "^2.0.1" npmlog "^4.1.2" -"@lerna/npm-conf@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" - integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== +"@lerna/npm-conf@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.13.0.tgz#6b434ed75ff757e8c14381b9bbfe5d5ddec134a7" + integrity sha512-Jg2kANsGnhg+fbPEzE0X9nX5oviEAvWj0nYyOkcE+cgWuT7W0zpnPXC4hA4C5IPQGhwhhh0IxhWNNHtjTuw53g== dependencies: config-chain "^1.1.11" - pify "^4.0.1" + pify "^3.0.0" -"@lerna/npm-dist-tag@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.16.0.tgz#b2184cee5e1f291277396854820e1117a544b7ee" - integrity sha512-MQrBkqJJB9+eNphuj9w90QPMOs4NQXMuSRk9NqzeFunOmdDopPCV0Q7IThSxEuWnhJ2n3B7G0vWUP7tNMPdqIQ== +"@lerna/npm-dist-tag@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.15.0.tgz#262dd1e67a4cf82ae78fadfe02622ebce4add078" + integrity sha512-lnbdwc4Ebs7/EI9fTIgbH3dxXnP+SuCcGhG7P5ZjOqo67SY09sRZGcygEzabpvIwXvKpBF8vCd4xxzjnF2u+PA== dependencies: - "@evocateur/npm-registry-fetch" "^4.0.0" - "@lerna/otplease" "3.16.0" + "@evocateur/npm-registry-fetch" "^3.9.1" + "@lerna/otplease" "3.14.0" figgy-pudding "^3.5.1" npm-package-arg "^6.1.0" npmlog "^4.1.2" -"@lerna/npm-install@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.0.tgz#8ec76a7a13b183bde438fd46296bf7a0d6f86017" - integrity sha512-APUOIilZCzDzce92uLEwzt1r7AEMKT/hWA1ThGJL+PO9Rn8A95Km3o2XZAYG4W0hR+P4O2nSVuKbsjQtz8CjFQ== +"@lerna/npm-install@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.14.2.tgz#fd22ff432f8b7cbe05bedfd36b0506482f1a4732" + integrity sha512-JYJJRtLETrGpcQZa8Rj16vbye399RqnaXmJlZuZ2twjJ2DYVYtwkfsGEOdvdaKw5KVOEpWcAxBA9OMmKQtCLQw== dependencies: "@lerna/child-process" "3.14.2" "@lerna/get-npm-exec-opts" "3.13.0" - fs-extra "^8.1.0" + fs-extra "^7.0.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" signal-exit "^3.0.2" write-pkg "^3.1.0" -"@lerna/npm-publish@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.16.2.tgz#a850b54739446c4aa766a0ceabfa9283bb0be676" - integrity sha512-tGMb9vfTxP57vUV5svkBQxd5Tzc+imZbu9ZYf8Mtwe0+HYfDjNiiHLIQw7G95w4YRdc5KsCE8sQ0uSj+f2soIg== +"@lerna/npm-publish@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.15.0.tgz#89126d74ec97186475767b852954a5f55b732a71" + integrity sha512-G7rcNcSGjG0La8eHPXDvCvoNXbwNnP6XJ+GPh3CH5xiR/nikfLOa+Bfm4ytdjVWWxnKfCT4qyMTCoV1rROlqQQ== dependencies: - "@evocateur/libnpmpublish" "^1.2.2" - "@lerna/otplease" "3.16.0" - "@lerna/run-lifecycle" "3.16.2" + "@evocateur/libnpmpublish" "^1.2.0" + "@lerna/otplease" "3.14.0" + "@lerna/run-lifecycle" "3.14.0" figgy-pudding "^3.5.1" - fs-extra "^8.1.0" + fs-extra "^7.0.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" - pify "^4.0.1" + pify "^3.0.0" read-package-json "^2.0.13" "@lerna/npm-run-script@3.14.2": @@ -1439,10 +1418,10 @@ "@lerna/get-npm-exec-opts" "3.13.0" npmlog "^4.1.2" -"@lerna/otplease@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.16.0.tgz#de66aec4f3e835a465d7bea84b58a4ab6590a0fa" - integrity sha512-uqZ15wYOHC+/V0WnD2iTLXARjvx3vNrpiIeyIvVlDB7rWse9mL4egex/QSgZ+lDx1OID7l2kgvcUD9cFpbqB7Q== +"@lerna/otplease@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.14.0.tgz#b539fd3e7a08452fc0db3b10010ca3cf0e4a73e7" + integrity sha512-rYAWzaYZ81bwnrmTkYWGgcc13bl/6DlG7pjWQWNGAJNLzO5zzj0xmXN5sMFJnNvDpSiS/ZS1sIuPvb4xnwLUkg== dependencies: "@lerna/prompt" "3.13.0" figgy-pudding "^3.5.1" @@ -1454,64 +1433,64 @@ dependencies: npmlog "^4.1.2" -"@lerna/pack-directory@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" - integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== +"@lerna/pack-directory@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.14.2.tgz#577b8ebf867c9b636a2e4659a27552ee24d83b9d" + integrity sha512-b3LnJEmIml3sDj94TQT8R+kVyrDlmE7Su0WwcBYZDySXPMSZ38WA2/2Xjy/EWhXlFxp/nUJKyUG78nDrZ/00Uw== dependencies: - "@lerna/get-packed" "3.16.0" - "@lerna/package" "3.16.0" - "@lerna/run-lifecycle" "3.16.2" + "@lerna/get-packed" "3.13.0" + "@lerna/package" "3.14.2" + "@lerna/run-lifecycle" "3.14.0" figgy-pudding "^3.5.1" - npm-packlist "^1.4.4" + npm-packlist "^1.4.1" npmlog "^4.1.2" - tar "^4.4.10" + tar "^4.4.8" temp-write "^3.4.0" -"@lerna/package-graph@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.16.0.tgz#909c90fb41e02f2c19387342d2a5eefc36d56836" - integrity sha512-A2mum/gNbv7zCtAwJqoxzqv89As73OQNK2MgSX1SHWya46qoxO9a9Z2c5lOFQ8UFN5ZxqWMfFYXRCz7qzwmFXw== +"@lerna/package-graph@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.14.0.tgz#4ccdf446dccedfbbeb4efff3eb720cb6fcb109fc" + integrity sha512-dNpA/64STD5YXhaSlg4gT6Z474WPJVCHoX1ibsVIFu0fVgH609Y69bsdmbvTRdI7r6Dcu4ZfGxdR636RTrH+Eg== dependencies: - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/validation-error" "3.13.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" - semver "^6.2.0" + semver "^5.5.0" -"@lerna/package@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" - integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== +"@lerna/package@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.14.2.tgz#f893cb42e26c869df272dafbe1dd5a3473b0bd4d" + integrity sha512-YR/+CzYdufJYfsUlrfuhTjA35iSZpXK7mVOZmeR9iRWhSaqesm4kq2zfxm9vCpZV2oAQQZOwi4eo5h0rQBtdiw== dependencies: - load-json-file "^5.3.0" + load-json-file "^4.0.0" npm-package-arg "^6.1.0" write-pkg "^3.1.0" -"@lerna/prerelease-id-from-version@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" - integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== +"@lerna/prerelease-id-from-version@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.14.0.tgz#d5da9c26ac4a0d0ecde09018f06e41ca4dd444c2" + integrity sha512-Ap3Z/dNhqQuSrKmK+JmzYvQYI2vowxHvUVxZJiDVilW8dyNnxkCsYFmkuZytk5sxVz4VeGLNPS2RSsU5eeSS+Q== dependencies: - semver "^6.2.0" + semver "^5.5.0" -"@lerna/project@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.16.0.tgz#2469a4e346e623fd922f38f5a12931dfb8f2a946" - integrity sha512-NrKcKK1EqXqhrGvslz6Q36+ZHuK3zlDhGdghRqnxDcHxMPT01NgLcmsnymmQ+gjMljuLRmvKYYCuHrknzX8VrA== +"@lerna/project@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.15.0.tgz#733b0993a849dcf5b68fcd0ec11d8f7de38a6999" + integrity sha512-eNGUWiMbQ9kh9kGkomtMnsLypS0rfLqxKgZP2+VnNVtIXjnLv4paeTm+1lkL+naNJUwhnpMk2NSLEeoxT/20QA== dependencies: - "@lerna/package" "3.16.0" + "@lerna/package" "3.14.2" "@lerna/validation-error" "3.13.0" cosmiconfig "^5.1.0" dedent "^0.7.0" dot-prop "^4.2.0" - glob-parent "^5.0.0" - globby "^9.2.0" - load-json-file "^5.3.0" + glob-parent "^3.1.0" + globby "^8.0.1" + load-json-file "^4.0.0" npmlog "^4.1.2" - p-map "^2.1.0" + p-map "^1.2.0" resolve-from "^4.0.0" - write-json-file "^3.2.0" + write-json-file "^2.3.0" "@lerna/prompt@3.13.0": version "3.13.0" @@ -1521,41 +1500,40 @@ inquirer "^6.2.0" npmlog "^4.1.2" -"@lerna/publish@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.16.4.tgz#4cd55d8be9943d9a68e316e930a90cda8590500e" - integrity sha512-XZY+gRuF7/v6PDQwl7lvZaGWs8CnX6WIPIu+OCcyFPSL/rdWegdN7HieKBHskgX798qRQc2GrveaY7bNoTKXAw== +"@lerna/publish@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.15.0.tgz#54f93f8f0820d2d419d0b65df1eb55d8277090c9" + integrity sha512-6tRRBJ8olLSXfrUsR4f7vSfx0cT1oPi6/v06yI3afDSsUX6eQ3ooZh7gMY4RWmd+nM/IJHTUzhlKF6WhTvo+9g== dependencies: - "@evocateur/libnpmaccess" "^3.1.2" - "@evocateur/npm-registry-fetch" "^4.0.0" - "@evocateur/pacote" "^9.6.3" + "@evocateur/libnpmaccess" "^3.1.0" + "@evocateur/npm-registry-fetch" "^3.9.1" + "@evocateur/pacote" "^9.6.0" "@lerna/check-working-tree" "3.14.2" "@lerna/child-process" "3.14.2" - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" + "@lerna/collect-updates" "3.14.2" + "@lerna/command" "3.15.0" "@lerna/describe-ref" "3.14.2" - "@lerna/log-packed" "3.16.0" - "@lerna/npm-conf" "3.16.0" - "@lerna/npm-dist-tag" "3.16.0" - "@lerna/npm-publish" "3.16.2" - "@lerna/otplease" "3.16.0" + "@lerna/log-packed" "3.13.0" + "@lerna/npm-conf" "3.13.0" + "@lerna/npm-dist-tag" "3.15.0" + "@lerna/npm-publish" "3.15.0" "@lerna/output" "3.13.0" - "@lerna/pack-directory" "3.16.4" - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/pack-directory" "3.14.2" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/prompt" "3.13.0" "@lerna/pulse-till-done" "3.13.0" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" - "@lerna/version" "3.16.4" + "@lerna/version" "3.15.0" figgy-pudding "^3.5.1" - fs-extra "^8.1.0" + fs-extra "^7.0.0" npm-package-arg "^6.1.0" npmlog "^4.1.2" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-pipe "^1.2.0" - semver "^6.2.0" + semver "^5.5.0" "@lerna/pulse-till-done@3.13.0": version "3.13.0" @@ -1564,20 +1542,20 @@ dependencies: npmlog "^4.1.2" -"@lerna/query-graph@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.16.0.tgz#e6a46ebcd9d5b03f018a06eca2b471735353953c" - integrity sha512-p0RO+xmHDO95ChJdWkcy9TNLysLkoDARXeRHzY5U54VCwl3Ot/2q8fMCVlA5UeGXDutEyyByl3URqEpcQCWI7Q== +"@lerna/query-graph@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.14.0.tgz#2abb36f445bd924d0f85ac7aec1445e9ef1e2c6c" + integrity sha512-6YTh3vDMW2hUxHdKeRvx4bosc9lZClKaN+DzC1XKTkwDbWrsjmEzLcemKL6QnyyeuryN2f/eto7P9iSe3z3pQQ== dependencies: - "@lerna/package-graph" "3.16.0" + "@lerna/package-graph" "3.14.0" figgy-pudding "^3.5.1" -"@lerna/resolve-symlink@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" - integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== +"@lerna/resolve-symlink@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.13.0.tgz#3e6809ef53b63fe914814bfa071cd68012e22fbb" + integrity sha512-Lc0USSFxwDxUs5JvIisS8JegjA6SHSAWJCMvi2osZx6wVRkEDlWG2B1JAfXUzCMNfHoZX0/XX9iYZ+4JIpjAtg== dependencies: - fs-extra "^8.1.0" + fs-extra "^7.0.0" npmlog "^4.1.2" read-cmd-shim "^1.0.1" @@ -1591,68 +1569,68 @@ path-exists "^3.0.0" rimraf "^2.6.2" -"@lerna/run-lifecycle@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" - integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== +"@lerna/run-lifecycle@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.14.0.tgz#0499eca0e7f393faf4e24e6c8737302a9059c22b" + integrity sha512-GUM3L9MzGRSW0WQ8wbLW1+SYStU1OFjW0GBzShhBnFrO4nGRrU7VchsLpcLu0hk2uCzyhsrDKzifEdOdUyMoEQ== dependencies: - "@lerna/npm-conf" "3.16.0" + "@lerna/npm-conf" "3.13.0" figgy-pudding "^3.5.1" - npm-lifecycle "^3.1.2" + npm-lifecycle "^2.1.1" npmlog "^4.1.2" -"@lerna/run-parallel-batches@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.16.0.tgz#5ace7911a2dd31dfd1e53c61356034e27df0e1fb" - integrity sha512-2J/Nyv+MvogmQEfC7VcS21ifk7w0HVvzo2yOZRPvkCzGRu/rducxtB4RTcr58XCZ8h/Bt1aqQYKExu3c/3GXwg== +"@lerna/run-parallel-batches@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/run-parallel-batches/-/run-parallel-batches-3.13.0.tgz#0276bb4e7cd0995297db82d134ca2bd08d63e311" + integrity sha512-bICFBR+cYVF1FFW+Tlm0EhWDioTUTM6dOiVziDEGE1UZha1dFkMYqzqdSf4bQzfLS31UW/KBd/2z8jy2OIjEjg== dependencies: - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" -"@lerna/run-topologically@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.16.0.tgz#39e29cfc628bbc8e736d8e0d0e984997ac01bbf5" - integrity sha512-4Hlpv4zDtKWa5Z0tPkeu0sK+bxZEKgkNESMGmWrUCNfj7xwvAJurcraK8+a2Y0TFYwf0qjSLY/MzX+ZbJA3Cgw== +"@lerna/run-topologically@3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.14.0.tgz#2a560cb657f0ef1565c680b6001b4b01b872dc07" + integrity sha512-y+KBpC1YExFzGynovt9MY4O/bc3RrJaKeuXieiPfKGKxrdtmZe/r33oj/xePTXZq65jnw3SaU3H8S5CrrdkwDg== dependencies: - "@lerna/query-graph" "3.16.0" + "@lerna/query-graph" "3.14.0" figgy-pudding "^3.5.1" p-queue "^4.0.0" -"@lerna/run@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.16.0.tgz#1ea568c6f303e47fa00b3403a457836d40738fd2" - integrity sha512-woTeLlB1OAAz4zzjdI6RyIxSGuxiUPHJZm89E1pDEPoWwtQV6HMdMgrsQd9ATsJ5Ez280HH4bF/LStAlqW8Ufg== +"@lerna/run@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.15.0.tgz#465028b5b561a050bd760924e4a0749de3f43172" + integrity sha512-KQBkzZYoEKmzILKjbjsm1KKVWFBXwAdwzqJWj/lfxxd3V5LRF8STASk8aiw8bSpB0bUL9TU/pbXakRxiNzjDwQ== dependencies: - "@lerna/command" "3.16.0" - "@lerna/filter-options" "3.16.0" + "@lerna/command" "3.15.0" + "@lerna/filter-options" "3.14.2" "@lerna/npm-run-script" "3.14.2" "@lerna/output" "3.13.0" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-topologically" "3.14.0" "@lerna/timer" "3.13.0" "@lerna/validation-error" "3.13.0" - p-map "^2.1.0" - -"@lerna/symlink-binary@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.16.2.tgz#f98a3d9da9e56f1d302dc0d5c2efeb951483ee66" - integrity sha512-kz9XVoFOGSF83gg4gBqH+mG6uxfJfTp8Uy+Cam40CvMiuzfODrGkjuBEFoM/uO2QOAwZvbQDYOBpKUa9ZxHS1Q== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/package" "3.16.0" - fs-extra "^8.1.0" - p-map "^2.1.0" - -"@lerna/symlink-dependencies@3.16.2": - version "3.16.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.16.2.tgz#91d9909d35897aebd76a03644a00cd03c4128240" - integrity sha512-wnZqGJQ+Jvr1I3inxrkffrFZfmQI7Ta8gySw/UWCy95QtZWF/f5yk8zVIocCAsjzD0wgb3jJE3CFJ9W5iwWk1A== - dependencies: - "@lerna/create-symlink" "3.16.2" - "@lerna/resolve-symlink" "3.16.0" - "@lerna/symlink-binary" "3.16.2" - fs-extra "^8.1.0" + p-map "^1.2.0" + +"@lerna/symlink-binary@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.14.2.tgz#a832fdc6c4b1e5aaf9e6ac9c7e6c322746965eb0" + integrity sha512-tqMwuWi6z1da0AFFbleWyu3H9fqayiV50rjj4anFTfayel9jSjlA1xPG+56sGIP6zUUNuUSc9kLh7oRRmlauoA== + dependencies: + "@lerna/create-symlink" "3.14.0" + "@lerna/package" "3.14.2" + fs-extra "^7.0.0" + p-map "^1.2.0" + +"@lerna/symlink-dependencies@3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.14.2.tgz#e6b2a9544ff26addc1f4324734595e2f71dfc795" + integrity sha512-Ox7WKXnHZ7IwWlejcCq3n0Hd/yMLv8AwIryhvWxM/RauAge+ML4wg578SsdCyKob8ecgm/R0ytHiU06j81iL1w== + dependencies: + "@lerna/create-symlink" "3.14.0" + "@lerna/resolve-symlink" "3.13.0" + "@lerna/symlink-binary" "3.14.2" + fs-extra "^7.0.0" p-finally "^1.0.0" - p-map "^2.1.0" + p-map "^1.2.0" p-map-series "^1.0.0" "@lerna/timer@3.13.0": @@ -1667,34 +1645,34 @@ dependencies: npmlog "^4.1.2" -"@lerna/version@3.16.4": - version "3.16.4" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.16.4.tgz#b5cc37f3ad98358d599c6196c30b6efc396d42bf" - integrity sha512-ikhbMeIn5ljCtWTlHDzO4YvTmpGTX1lWFFIZ79Vd1TNyOr+OUuKLo/+p06mCl2WEdZu0W2s5E9oxfAAQbyDxEg== +"@lerna/version@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.15.0.tgz#3c65d223d94f211312995266abb07ee6606d5f73" + integrity sha512-vReYX1NMXZ9PwzTZm97wAl/k3bmRnRZhnQi3mq/m49xTnDavq7p4sbUdFpvu8cVZNKnYS02pNIVGHrQw+K8ZCw== dependencies: "@lerna/check-working-tree" "3.14.2" "@lerna/child-process" "3.14.2" - "@lerna/collect-updates" "3.16.0" - "@lerna/command" "3.16.0" - "@lerna/conventional-commits" "3.16.4" - "@lerna/github-client" "3.16.0" + "@lerna/collect-updates" "3.14.2" + "@lerna/command" "3.15.0" + "@lerna/conventional-commits" "3.14.0" + "@lerna/github-client" "3.14.2" "@lerna/gitlab-client" "3.15.0" "@lerna/output" "3.13.0" - "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prerelease-id-from-version" "3.14.0" "@lerna/prompt" "3.13.0" - "@lerna/run-lifecycle" "3.16.2" - "@lerna/run-topologically" "3.16.0" + "@lerna/run-lifecycle" "3.14.0" + "@lerna/run-topologically" "3.14.0" "@lerna/validation-error" "3.13.0" chalk "^2.3.1" dedent "^0.7.0" minimatch "^3.0.4" npmlog "^4.1.2" - p-map "^2.1.0" + p-map "^1.2.0" p-pipe "^1.2.0" p-reduce "^1.0.0" p-waterfall "^1.0.0" - semver "^6.2.0" - slash "^2.0.0" + semver "^5.5.0" + slash "^1.0.0" temp-write "^3.4.0" "@lerna/write-log-file@3.13.0": @@ -1734,19 +1712,19 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@octokit/endpoint@^5.1.0": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.3.2.tgz#2deda2d869cac9ba7f370287d55667be2a808d4b" - integrity sha512-gRjteEM9I6f4D8vtwU2iGUTn9RX/AJ0SVXiqBUEuYEWVGGAVjSXdT0oNmghH5lvQNWs8mwt6ZaultuG6yXivNw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-5.2.0.tgz#acd569cb7152549998454aa5658532eb24a0987e" + integrity sha512-g4r1MKr8GJ8qubJQp3HP3JrxDY+ZeVqjYBTgtu1lPEDLhfQDY6rOhyZOoHKOw+gaIF6aAcmuvPPNZUro2OwmOg== dependencies: - deepmerge "4.0.0" + deepmerge "3.3.0" is-plain-object "^3.0.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.1.0" url-template "^2.0.8" -"@octokit/plugin-enterprise-rest@^3.6.1": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-3.6.2.tgz#74de25bef21e0182b4fa03a8678cd00a4e67e561" - integrity sha512-3wF5eueS5OHQYuAEudkpN+xVeUsg8vYEMMenEzLphUZ7PRZ8OJtDcsreL3ad9zxXmBbaFWzLmFcdob5CLyZftA== +"@octokit/plugin-enterprise-rest@^2.1.1": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.2.2.tgz#c0e22067a043e19f96ff9c7832e2a3019f9be75c" + integrity sha512-CTZr64jZYhGWNTDGlSJ2mvIlFsm9OEO3LqWn9I/gmoHI4jRBp4kpHoFYNemG4oA75zUAcmbuWblb7jjP877YZw== "@octokit/request-error@^1.0.1", "@octokit/request-error@^1.0.2": version "1.0.4" @@ -1756,10 +1734,10 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.0.2.tgz#59a920451f24811c016ddc507adcc41aafb2dca5" - integrity sha512-z1BQr43g4kOL4ZrIVBMHwi68Yg9VbkRUyuAgqCp1rU3vbYa69+2gIld/+gHclw15bJWQnhqqyEb7h5a5EqgZ0A== +"@octokit/request@^4.0.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-4.1.1.tgz#614262214f48417b4d3b14e047d09a9c8e2f7a09" + integrity sha512-LOyL0i3oxRo418EXRSJNk/3Q4I0/NKawTn6H/CQp+wnrG1UFLGu080gSsgnWobhPo5BpUNgSQ5BRk5FOOJhD1Q== dependencies: "@octokit/endpoint" "^5.1.0" "@octokit/request-error" "^1.0.1" @@ -1767,17 +1745,17 @@ is-plain-object "^3.0.0" node-fetch "^2.3.0" once "^1.4.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.1.0" -"@octokit/rest@^16.28.4": - version "16.28.7" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.7.tgz#a2c2db5b318da84144beba82d19c1a9dbdb1a1fa" - integrity sha512-cznFSLEhh22XD3XeqJw51OLSfyL2fcFKUO+v2Ep9MTAFfFLS1cK1Zwd1yEgQJmJoDnj4/vv3+fGGZweG+xsbIA== +"@octokit/rest@^16.16.0": + version "16.28.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.28.2.tgz#3fc3b8700046ab29ab1e2a4bdf49f89e94f7ba27" + integrity sha512-csuYiHvJ1P/GFDadVn0QhwO83R1+YREjcwCY7ZIezB6aJTRIEidJZj+R7gAkUhT687cqYb4cXTZsDVu9F+Fmug== dependencies: - "@octokit/request" "^5.0.0" + "@octokit/request" "^4.0.1" "@octokit/request-error" "^1.0.2" atob-lite "^2.0.0" - before-after-hook "^2.0.0" + before-after-hook "^1.4.0" btoa-lite "^1.0.0" deprecation "^2.0.0" lodash.get "^4.4.2" @@ -1785,7 +1763,7 @@ lodash.uniq "^4.5.0" octokit-pagination-methods "^1.1.0" once "^1.4.0" - universal-user-agent "^3.0.0" + universal-user-agent "^2.0.0" url-template "^2.0.8" "@samverschueren/stream-to-observable@^0.3.0": @@ -1828,20 +1806,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" @@ -1862,16 +1826,6 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "12.7.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.1.tgz#3b5c3a26393c19b400844ac422bd0f631a94d69d" - integrity sha512-aK9jxMypeSrhiYofWWBf/T7O+KwaiAHzM4sveCdWPn71lzUSMimRnKzhXDKfKwV1kWoBo2P1aGgaIYGLf9/ljw== - "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" @@ -1882,15 +1836,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== -"@zkochan/cmd-shim@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" - integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== - dependencies: - is-windows "^1.0.0" - mkdirp-promise "^5.0.1" - mz "^2.5.0" - JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -1939,9 +1884,9 @@ acorn-dynamic-import@^2.0.0: acorn "^4.0.3" acorn-globals@^4.1.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" - integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== + version "4.3.2" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== dependencies: acorn "^6.0.1" acorn-walk "^6.0.1" @@ -1952,9 +1897,9 @@ acorn-jsx@^5.0.0: integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== acorn-walk@^6.0.1, acorn-walk@^6.1.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== acorn@^4.0.3: version "4.0.13" @@ -1967,16 +1912,16 @@ acorn@^5.0.0, acorn@^5.5.3: integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.0.7: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= -agent-base@4, agent-base@^4.3.0: +agent-base@4, agent-base@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== @@ -1998,14 +1943,14 @@ agentkeepalive@^3.4.1: humanize-ms "^1.2.1" ajv-keywords@^3.1.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" + integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.1.0, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -2021,18 +1966,11 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" -ansi-escapes@^3.0.0: +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228" - integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q== - dependencies: - type-fest "^0.5.2" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -2118,10 +2056,10 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-differ@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" - integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= array-equal@^1.0.0: version "1.0.0" @@ -2143,7 +2081,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-union@^1.0.2: +array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -2158,9 +2096,8 @@ array-uniq@^1.0.1: array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -arrify@^1.0.1: +arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= @@ -2221,28 +2158,34 @@ async-eventemitter@^0.2.2: dependencies: async "^2.4.0" -"async-eventemitter@github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c": +async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c: version "0.2.3" resolved "https://codeload.github.com/ahultgren/async-eventemitter/tar.gz/fa06e39e56786ba541c180061dbf2c0a5bbf951c" dependencies: async "^2.4.0" async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== +async@^2.0.1, async@^2.1.2, async@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: - lodash "^4.17.14" + lodash "^4.17.11" + +async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + dependencies: + lodash "^4.17.10" asynckit@^0.4.0: version "0.4.0" @@ -2262,7 +2205,6 @@ atob@^2.1.1: aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: version "1.8.0" @@ -2479,19 +2421,11 @@ babel-plugin-check-es2015-constants@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== + version "5.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba" + integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" find-up "^3.0.0" istanbul-lib-instrument "^3.3.0" test-exclude "^5.2.3" @@ -2876,12 +2810,11 @@ backoff@^2.5.0: balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base@^0.11.1: version "0.11.2" @@ -2903,20 +2836,20 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== +before-after-hook@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-1.4.0.tgz#2b6bf23dca4f32e628fd2747c10a37c74a4b484d" + integrity sha512-l5r9ir56nda3qu14nAXIlyq1MmUSs0meCIaFAh8HwkFwP1F8eToOuS3ah2VAHHcY04jaYD7FpJC5JTXHYRbkzg== bfj@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" - integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + version "6.1.1" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" + integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ== dependencies: - bluebird "^3.5.5" - check-types "^8.0.3" - hoopy "^0.1.4" - tryer "^1.0.1" + bluebird "^3.5.1" + check-types "^7.3.0" + hoopy "^0.1.2" + tryer "^1.0.0" big.js@^3.1.3: version "3.2.0" @@ -2977,11 +2910,15 @@ bluebird@^2.9.34: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= -bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: +bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.3, bluebird@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== +bluebird@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + bn.js@4.11.6: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -3129,14 +3066,14 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.6.0, browserslist@^4.6.6: - version "4.6.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453" - integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA== +browserslist@^4.6.0, browserslist@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05" + integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ== dependencies: - caniuse-lite "^1.0.30000984" - electron-to-chromium "^1.3.191" - node-releases "^1.1.25" + caniuse-lite "^1.0.30000975" + electron-to-chromium "^1.3.164" + node-releases "^1.1.23" bser@^2.0.0: version "2.1.0" @@ -3198,9 +3135,9 @@ buffer@^4.3.0: isarray "^1.0.0" buffer@^5.0.5, buffer@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.3.0.tgz#5f9fa5fefe3939888d0fdbf7d964e2a8531fd69c" - integrity sha512-XykNc84nIOC32vZ9euOKbmGAP69JUkXDtBQfLq88c8/6J/gZi/t14A+l/p/9EM2TcT5xNC1MKPCrvO3LVUpVPw== + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -3220,10 +3157,10 @@ byline@^5.0.0: resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= -byte-size@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" - integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +byte-size@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz#29d381709f41aae0d89c631f1c81aec88cd40b23" + integrity sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw== bytes@3.1.0: version "3.1.0" @@ -3249,17 +3186,16 @@ cacache@^10.0.4: unique-filename "^1.1.0" y18n "^4.0.0" -cacache@^12.0.0: - version "12.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c" - integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg== +cacache@^11.0.1, cacache@^11.3.2: + version "11.3.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" + integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== dependencies: 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" @@ -3360,14 +3296,13 @@ camelcase@^4.1.0: integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + version "5.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" -caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000984: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== +caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000975: + version "1.0.30000978" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000978.tgz#1e3346c27fc46bce9ac1ccd77863153a263dde56" + integrity sha512-H6gK6kxUzG6oAwg/Jal279z8pHw0BzrpZfwo/CA9FFm/vA0l8IhDfkZtepyJNE2Y4V6Dp3P3ubz6czby1/Mgsw== capture-exit@^2.0.0: version "2.0.0" @@ -3400,7 +3335,7 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -3409,15 +3344,23 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-types@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" - integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +check-types@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" + integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== checkpoint-store@^1.1.0: version "1.1.0" @@ -3446,9 +3389,9 @@ chokidar@^2.0.2, chokidar@^2.0.4: fsevents "^1.2.7" chownr@^1.0.1, chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== ci-info@^1.5.0: version "1.6.0" @@ -3492,13 +3435,6 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -3539,15 +3475,6 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -3558,6 +3485,14 @@ clone@^2.0.0: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= +cmd-shim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb" + integrity sha1-b8vamUg6j9FdfTChlspp1oii79s= + dependencies: + graceful-fs "^4.1.2" + mkdirp "~0.5.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -3596,10 +3531,9 @@ columnify@^1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== +combined-stream@1.0.6, combined-stream@~1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" @@ -3727,17 +3661,17 @@ conventional-changelog-angular@^5.0.3: q "^1.5.1" conventional-changelog-core@^3.1.6: - version "3.2.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" - integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + version "3.2.2" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz#de41e6b4a71011a18bcee58e744f6f8f0e7c29c0" + integrity sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g== dependencies: - conventional-changelog-writer "^4.0.6" - conventional-commits-parser "^3.0.3" + conventional-changelog-writer "^4.0.5" + conventional-commits-parser "^3.0.2" dateformat "^3.0.0" get-pkg-repo "^1.0.0" git-raw-commits "2.0.0" git-remote-origin-url "^2.0.0" - git-semver-tags "^2.0.3" + git-semver-tags "^2.0.2" lodash "^4.2.1" normalize-package-data "^2.3.5" q "^1.5.1" @@ -3746,19 +3680,19 @@ conventional-changelog-core@^3.1.6: through2 "^3.0.0" conventional-changelog-preset-loader@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz#571e2b3d7b53d65587bea9eedf6e37faa5db4fcc" - integrity sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz#65bb600547c56d5627d23135154bcd9a907668c4" + integrity sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA== -conventional-changelog-writer@^4.0.6: - version "4.0.7" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz#e4b7d9cbea902394ad671f67108a71fa90c7095f" - integrity sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw== +conventional-changelog-writer@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.6.tgz#24db578ac8e7c89a409ef9bba12cf3c095990148" + integrity sha512-ou/sbrplJMM6KQpR5rKFYNVQYesFjN7WpNGdudQSWNi6X+RgyFUcSv871YBYkrUYV9EX8ijMohYVzn9RUb+4ag== dependencies: compare-func "^1.3.1" conventional-commits-filter "^2.0.2" dateformat "^3.0.0" - handlebars "^4.1.2" + handlebars "^4.1.0" json-stringify-safe "^5.0.1" lodash "^4.2.1" meow "^4.0.0" @@ -3774,7 +3708,7 @@ conventional-commits-filter@^2.0.2: lodash.ismatch "^4.4.0" modify-values "^1.0.0" -conventional-commits-parser@^3.0.3: +conventional-commits-parser@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz#c3f972fd4e056aa8b9b4f5f3d0e540da18bf396d" integrity sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg== @@ -3787,17 +3721,17 @@ conventional-commits-parser@^3.0.3: through2 "^3.0.0" trim-off-newlines "^1.0.0" -conventional-recommended-bump@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" - integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== +conventional-recommended-bump@^4.0.4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-4.1.1.tgz#37014fadeda267d0607e2fc81124da840a585127" + integrity sha512-JT2vKfSP9kR18RXXf55BRY1O3AHG8FPg5btP3l7LYfcWJsiXI6MCf30DepQ98E8Qhowvgv7a8iev0J1bEDkTFA== dependencies: concat-stream "^2.0.0" conventional-changelog-preset-loader "^2.1.1" conventional-commits-filter "^2.0.2" - conventional-commits-parser "^3.0.3" + conventional-commits-parser "^3.0.2" git-raw-commits "2.0.0" - git-semver-tags "^2.0.3" + git-semver-tags "^2.0.2" meow "^4.0.0" q "^1.5.1" @@ -3836,24 +3770,30 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copyfiles@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.1.1.tgz#d430e122d7880f92c45d372208b0af03b0c39db6" - integrity sha512-y6DZHve80whydXzBal7r70TBgKMPKesVRR1Sn/raUu7Jh/i7iSLSyGvYaq0eMJ/3Y/CKghwzjY32q1WzEnpp3Q== + version "2.1.0" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.1.0.tgz#0e2a4188162d6b2f3c5adfe34e9c0bd564d23164" + integrity sha512-cAeDE0vL/koE9WSEGxqPpSyvU638Kgfu6wfrnj7kqp9FWa1CWsU54Coo6sdYZP4GstWa39tL/wIVJWfXcujgNA== dependencies: glob "^7.0.5" minimatch "^3.0.3" mkdirp "^0.5.1" noms "0.0.0" through2 "^2.0.1" - yargs "^13.2.4" + yargs "^11.0.0" core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" + integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== dependencies: - browserslist "^4.6.6" - semver "^6.3.0" + browserslist "^4.6.2" + core-js-pure "3.1.4" + semver "^6.1.1" + +core-js-pure@3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" + integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: version "2.6.9" @@ -3861,9 +3801,9 @@ core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== core-js@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.2.1.tgz#cd41f38534da6cc59f7db050fe67307de9868b09" - integrity sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw== + version "3.1.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" + integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -3984,7 +3924,12 @@ cssom@0.2.x: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.2.5.tgz#2682709b5902e7212df529116ff788cd5b254894" integrity sha1-JoJwm1kC5yEt9SkRb/eIzVslSJQ= -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.6" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" + integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== + +cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== @@ -3997,9 +3942,9 @@ cssstyle@>=0.2.3: cssom "~0.3.6" cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + version "1.2.2" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" + integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== dependencies: cssom "0.3.x" @@ -4068,14 +4013,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: dependencies: ms "2.0.0" -debug@3.1.0: +debug@3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== dependencies: ms "2.0.0" -debug@^3.1.0, debug@^3.2.6: +debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -4192,10 +4136,10 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -deepmerge@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz#3e3110ca29205f120d7cb064960a39c3d2087c09" - integrity sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww== +deepmerge@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" + integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== defaults@^1.0.3: version "1.0.3" @@ -4211,7 +4155,7 @@ deferred-leveldown@~1.2.1: dependencies: abstract-leveldown "~2.6.0" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -4322,11 +4266,12 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: + arrify "^1.0.1" path-type "^3.0.0" doctrine@^3.0.0: @@ -4344,12 +4289,12 @@ dom-converter@^0.2: utila "~0.4" dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" + domelementtype "^1.3.0" + entities "^1.1.1" dom-walk@^0.1.0: version "0.1.1" @@ -4361,16 +4306,11 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.1: +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== - domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -4462,10 +4402,10 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6" integrity sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q== -electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.47: - version "1.3.225" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.225.tgz#c6786475b5eb5f491ade01a78b82ba2c5bfdf72b" - integrity sha512-7W/L3jw7HYE+tUPbcVOGBmnSrlUmyZ/Uyg24QS7Vx0a9KodtNrN0r0Q/LyGHrcYMtw2rv7E49F/vTXwlV/fuaA== +electron-to-chromium@^1.3.164, electron-to-chromium@^1.3.47: + version "1.3.174" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.174.tgz#011c68d4130e995cbb69c533e147d7f4856e9f39" + integrity sha512-OEh3EARo2B07ZRtxB0u9GqWyWmTeNS+diMp5bjw4kqMjgpzqM0w1zUOyErDsyWxTdArbvZ79T/w5n3WsBVHLfA== elegant-spinner@^1.0.1: version "1.0.1" @@ -4500,11 +4440,6 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -4544,16 +4479,6 @@ entities@^1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== - -env-paths@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" - integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= - err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" @@ -4573,7 +4498,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.13.0, es-abstract@^1.5.0, es-abstract@^1.5.1: +es-abstract@^1.5.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -4585,7 +4510,17 @@ es-abstract@^1.13.0, es-abstract@^1.5.0, es-abstract@^1.5.1: is-regex "^1.0.4" object-keys "^1.0.12" -es-to-primitive@^1.2.0: +es-abstract@^1.5.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1, es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== @@ -4676,9 +4611,9 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.11.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -4698,9 +4633,9 @@ escope@^3.6.0: estraverse "^4.1.1" eslint-loader@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" - integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== + version "2.1.2" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.2.tgz#453542a1230d6ffac90e4e7cb9cadba9d851be68" + integrity sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg== dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -4725,11 +4660,9 @@ eslint-scope@^4.0.3: estraverse "^4.1.1" eslint-utils@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.0.tgz#e2c3c8dba768425f897cf0f9e51fe2e241485d4c" - integrity sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ== - dependencies: - eslint-visitor-keys "^1.0.0" + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== eslint-visitor-keys@^1.0.0: version "1.0.0" @@ -4817,9 +4750,9 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= etag@~1.8.1: version "1.8.1" @@ -4936,7 +4869,7 @@ ethereum-common@^0.0.18: "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.7" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#d700d091f79c06f4e27872f4a1d7b153986cc3dd" + resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb" dependencies: bn.js "^4.11.8" ethereumjs-util "^6.0.0" @@ -4973,9 +4906,9 @@ ethereumjs-block@~2.2.0: merkle-patricia-tree "^2.1.2" ethereumjs-common@^1.1.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.3.1.tgz#a5cffac41beb7ad393283b2e5aa71fadf8a9cc73" - integrity sha512-kexqNgM2q29RKoZPPjehPREeqbr/vhYfT9Ho8FVeH3f7USjBuYp1iZ1qjqklk8FSMvEKPpMJFYSOunikw30Prw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.3.0.tgz#ca7d152b615d5e1851fcf184d062bf14c62c18e6" + integrity sha512-/jdFHyHOIS3FiAnunwRZ+oNulFtNNSHyWii3PaNHReOUmBAxij7KMyZLKh0tE16JEsJtXOVz1ceYuq++ILzv+g== ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: version "1.3.7" @@ -5254,9 +5187,9 @@ extend@~3.0.2: integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" @@ -5298,7 +5231,7 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-glob@^2.2.6: +fast-glob@^2.0.2: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -5361,13 +5294,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9" - integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -5525,12 +5451,11 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" + combined-stream "1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: @@ -5582,12 +5507,12 @@ fs-extra@^2.0.0, fs-extra@^2.1.2: graceful-fs "^4.1.2" jsonfile "^2.1.0" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== dependencies: - graceful-fs "^4.2.0" + graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" @@ -5626,7 +5551,6 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.9" @@ -5688,11 +5612,6 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-own-enumerable-property-symbols@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" @@ -5709,10 +5628,10 @@ get-pkg-repo@^1.0.0: parse-github-repo-url "^1.3.0" through2 "^2.0.0" -get-port@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" - integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= get-stdin@^4.0.1: version "4.0.1" @@ -5770,13 +5689,13 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" - integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== +git-semver-tags@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.2.tgz#f506ec07caade191ac0c8d5a21bdb8131b4934e3" + integrity sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w== dependencies: meow "^4.0.0" - semver "^6.0.0" + semver "^5.5.0" git-up@^4.0.0: version "4.0.1" @@ -5808,19 +5727,12 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== - dependencies: - is-glob "^4.0.1" - glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.4: +glob@^7.0.0, glob@^7.0.3, glob@^7.1.4, glob@~7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -5832,6 +5744,28 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, gl once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global@~4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" @@ -5850,19 +5784,18 @@ globals@^9.18.0: resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== +globby@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== dependencies: - "@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" + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" got@7.1.0, got@^7.1.0: version "7.1.0" @@ -5884,10 +5817,18 @@ got@7.1.0, got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d" - integrity sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw== +graceful-fs@^4.1.10, graceful-fs@^4.1.9: + version "4.2.0" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" + integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@^4.1.15: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" "graceful-readlink@>= 1.0.0": version "1.0.1" @@ -5907,7 +5848,7 @@ gzip-size@^5.0.0: duplexer "^0.1.1" pify "^4.0.1" -handlebars@^4.1.2: +handlebars@^4.1.0, handlebars@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== @@ -5921,7 +5862,6 @@ handlebars@^4.1.2: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: version "5.1.3" @@ -6053,15 +5993,15 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hoopy@^0.1.4: +hoopy@^0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== html-encoding-sniffer@^1.0.2: version "1.0.2" @@ -6167,11 +6107,11 @@ https-browserify@^1.0.0: integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= https-proxy-agent@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz#271ea8e90f836ac9f119daccd39c19ff7dfb0793" - integrity sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== dependencies: - agent-base "^4.3.0" + agent-base "^4.1.0" debug "^3.1.0" humanize-ms@^1.2.1: @@ -6190,10 +6130,15 @@ husky@^0.14.3: normalize-path "^1.0.0" strip-indent "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@~0.4.13: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" dependencies: safer-buffer ">= 2.1.2 < 3" @@ -6214,7 +6159,12 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.3, ignore@^4.0.6: +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== @@ -6233,13 +6183,21 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" + integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -6251,7 +6209,6 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^2.1.0: version "2.1.0" @@ -6263,12 +6220,6 @@ indent-string@^2.1.0: indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" @@ -6278,20 +6229,19 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +inherits@2.0.4, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.5" @@ -6313,21 +6263,21 @@ init-package-json@^1.10.3: validate-npm-package-name "^3.0.0" inquirer@^6.2.0, inquirer@^6.2.2: - version "6.5.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.1.tgz#8bfb7a5ac02dac6ff641ac4c5ff17da112fcdb42" - integrity sha512-uxNHBeQhRXIoHWTSNYUFhQVrHYFThIt6IVo2fFmSe8aBwdR3/w6b58hJpiL/fMukFkvGzjg+hSxFtwvVmKZmXw== + version "6.4.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.4.1.tgz#7bd9e5ab0567cd23b41b0180b68e0cfa82fc3c0b" + integrity sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw== dependencies: - ansi-escapes "^4.2.1" + ansi-escapes "^3.2.0" chalk "^2.4.2" - cli-cursor "^3.1.0" + cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" run-async "^2.2.0" rxjs "^6.4.0" - string-width "^4.1.0" + string-width "^2.1.0" strip-ansi "^5.1.0" through "^2.3.6" @@ -6496,11 +6446,6 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-function@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -6518,7 +6463,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -6636,7 +6581,7 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= -is-windows@^1.0.0, is-windows@^1.0.2: +is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -7379,7 +7324,7 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -kleur@^3.0.3: +kleur@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== @@ -7409,26 +7354,26 @@ left-pad@^1.3.0: integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== lerna@^3.15.0: - version "3.16.4" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.16.4.tgz#158cb4f478b680f46f871d5891f531f3a2cb31ec" - integrity sha512-0HfwXIkqe72lBLZcNO9NMRfylh5Ng1l8tETgYQ260ZdHRbPuaLKE3Wqnd2YYRRkWfwPyEyZO8mZweBR+slVe1A== - dependencies: - "@lerna/add" "3.16.2" - "@lerna/bootstrap" "3.16.2" - "@lerna/changed" "3.16.4" - "@lerna/clean" "3.16.0" + version "3.15.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.15.0.tgz#b044dba8138d7a1a8dd48ac1d80e7541bdde0d1f" + integrity sha512-kRIQ3bgzkmew5/WZQ0C9WjH0IUf3ZmTNnBwTHfXgLkVY7td0lbwMQFD7zehflUn0zG4ou54o/gn+IfjF0ti/5A== + dependencies: + "@lerna/add" "3.15.0" + "@lerna/bootstrap" "3.15.0" + "@lerna/changed" "3.15.0" + "@lerna/clean" "3.15.0" "@lerna/cli" "3.13.0" - "@lerna/create" "3.16.0" - "@lerna/diff" "3.16.0" - "@lerna/exec" "3.16.0" - "@lerna/import" "3.16.0" - "@lerna/init" "3.16.0" - "@lerna/link" "3.16.2" - "@lerna/list" "3.16.0" - "@lerna/publish" "3.16.4" - "@lerna/run" "3.16.0" - "@lerna/version" "3.16.4" - import-local "^2.0.0" + "@lerna/create" "3.15.0" + "@lerna/diff" "3.15.0" + "@lerna/exec" "3.15.0" + "@lerna/import" "3.15.0" + "@lerna/init" "3.15.0" + "@lerna/link" "3.15.0" + "@lerna/list" "3.15.0" + "@lerna/publish" "3.15.0" + "@lerna/run" "3.15.0" + "@lerna/version" "3.15.0" + import-local "^1.0.0" npmlog "^4.1.2" level-codec@~7.0.0: @@ -7597,17 +7542,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -load-json-file@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - loader-fs-cache@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" @@ -7691,7 +7625,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.0.2, lodash.template@^4.5.0: +lodash.template@^4.0.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -7711,7 +7645,12 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: + version "4.17.13" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.13.tgz#0bdc3a6adc873d2f4e0c4bac285df91b64fc7b93" + integrity sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA== + +lodash@^4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -7769,7 +7708,7 @@ lowercase-keys@^1.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== -lru-cache@^4.0.1, lru-cache@^4.1.1: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.3: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== @@ -7809,17 +7748,17 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-fetch-happen@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.0.tgz#a8e3fe41d3415dd656fe7b8e8172e1fb4458b38d" - integrity sha512-nFr/vpL1Jc60etMVKeaLOqfGjMMb3tAHFVJWxHOFCFS04Zmd7kGlMxo0l1tzfhoQje0/UPnd0X8OeGUiXXnfPA== +make-fetch-happen@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" + integrity sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ== dependencies: agentkeepalive "^3.4.1" - cacache "^12.0.0" + cacache "^11.0.1" http-cache-semantics "^3.8.1" http-proxy-agent "^2.1.0" https-proxy-agent "^2.2.1" - lru-cache "^5.1.1" + lru-cache "^4.1.2" mississippi "^3.0.0" node-fetch-npm "^2.0.2" promise-retry "^1.1.1" @@ -7961,9 +7900,9 @@ merge-stream@^1.0.1: readable-stream "^2.0.1" merge2@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3" - integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A== + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: version "2.3.2" @@ -8016,13 +7955,34 @@ mime-db@1.40.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" + integrity sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg== + +mime-types@^2.1.12: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mime-types@^2.1.16, mime-types@~2.1.24: version "2.1.24" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: mime-db "1.40.0" +mime-types@~2.1.19: + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" + dependencies: + mime-db "~1.35.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -8033,7 +7993,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -8060,7 +8020,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -8090,7 +8050,14 @@ minimist@~0.0.1: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -minipass@^2.2.1, minipass@^2.3.5: +minipass@^2.2.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minipass@^2.3.5: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== @@ -8201,22 +8168,27 @@ ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multimatch@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" - integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== +multimatch@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= dependencies: - array-differ "^2.0.3" - array-union "^1.0.2" - arrify "^1.0.1" - minimatch "^3.0.4" + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -mute-stream@0.0.8, mute-stream@~0.0.4: +mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.5.0, mz@^2.6.0: +mz@^2.6.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -8333,17 +8305,17 @@ node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-gyp@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.0.3.tgz#80d64c23790244991b6d44532f0a351bedd3dd45" - integrity sha512-z/JdtkFGUm0QaQUusvloyYuGDub3nUbOo5de1Fz57cM++osBTvQatBUSTlF1k/w8vFHPxxXW6zxGvkxXSpaBkQ== +node-gyp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" + integrity sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA== dependencies: - env-paths "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" request "^2.87.0" rimraf "2" semver "~5.3.0" @@ -8390,9 +8362,9 @@ node-modules-regexp@^1.0.0: integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^5.2.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.1.tgz#7c0192cc63aedb25cd99619174daa27902b10903" - integrity sha512-p52B+onAEHKW1OF9MGO/S7k/ahGEHfhP5/tvwYzog/5XLYOd8ZuD6vdNZdUuWMONRnKPneXV43v3s6Snx1wsCQ== + version "5.4.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" + integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== dependencies: growly "^1.3.0" is-wsl "^1.1.0" @@ -8416,10 +8388,10 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.25: - version "1.1.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.27.tgz#b19ec8add2afe9a826a99dceccc516104c1edaf4" - integrity sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA== +node-releases@^1.1.23: + version "1.1.23" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.23.tgz#de7409f72de044a2fa59c097f436ba89c39997f0" + integrity sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w== dependencies: semver "^5.3.0" @@ -8446,7 +8418,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -8483,14 +8455,14 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== -npm-lifecycle@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.3.tgz#09e9b0b6686e85fd53bab82364386222d97a3730" - integrity sha512-M0QmmqbEHBXxDrmc6X3+eKjW9+F7Edg1ENau92WkYw1sox6wojHzEZJIRm1ItljEiaigZlKL8mXni/4ylAy1Dg== +npm-lifecycle@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.1.tgz#0027c09646f0fd346c5c93377bdaba59c6748fdf" + integrity sha512-+Vg6I60Z75V/09pdcH5iUo/99Q/vop35PaI99elvxk56azSVVsdsSsS/sXqKDNwbRRNN1qSxkcO45ZOu0yOWew== dependencies: byline "^5.0.0" graceful-fs "^4.1.15" - node-gyp "^5.0.2" + node-gyp "^4.0.0" resolve-from "^4.0.0" slide "^1.1.6" uid-number "0.0.6" @@ -8507,10 +8479,10 @@ npm-lifecycle@^3.1.2: semver "^5.5.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== +npm-packlist@^1.1.12, npm-packlist@^1.1.6, npm-packlist@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -8611,7 +8583,7 @@ object-inspect@~1.6.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== -object-keys@^1.0.11, object-keys@^1.0.12: +object-keys@^1.0.12: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -8628,16 +8600,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -8686,13 +8648,6 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -8766,7 +8721,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4, osenv@^0.1.5: +osenv@0, osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -8845,12 +8800,12 @@ p-map-series@^1.0.0: dependencies: p-reduce "^1.0.0" -p-map@^1.1.1: +p-map@^1.1.1, p-map@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^2.0.0, p-map@^2.1.0: +p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== @@ -9037,7 +8992,6 @@ path-is-inside@^1.0.2: path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.6: version "1.0.6" @@ -9156,9 +9110,9 @@ pkg-up@^2.0.0: find-up "^2.1.0" please-upgrade-node@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== dependencies: semver-compare "^1.0.0" @@ -9270,12 +9224,12 @@ promise-to-callback@^1.0.0: set-immediate-shim "^1.0.1" prompts@^2.0.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.2.1.tgz#f901dd2a2dfee080359c0e20059b24188d75ad35" - integrity sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" + integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg== dependencies: - kleur "^3.0.3" - sisteransi "^1.0.3" + kleur "^3.0.2" + sisteransi "^1.0.0" promzard@^0.3.0: version "0.3.0" @@ -9320,9 +9274,9 @@ pseudomap@^1.0.2: integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24, psl@^1.1.28: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== + version "1.1.33" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.33.tgz#5533d9384ca7aab86425198e10e8053ebfeab661" + integrity sha512-LTDP2uSrsc7XCb5lO7A8BI1qYxRe/8EqlRvMeEl6rsnYAqDOl8xHR+8lSAIVfrNaSAlTPTNOCgNjWcoUL3AZsw== public-encrypt@^4.0.0: version "4.0.3" @@ -9461,9 +9415,9 @@ rc@^1.2.7: strip-json-comments "~2.0.1" react-is@^16.8.4: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== + version "16.8.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== read-cmd-shim@^1.0.1: version "1.0.1" @@ -9485,9 +9439,9 @@ read-cmd-shim@^1.0.1: graceful-fs "^4.1.2" read-package-tree@^5.1.6: - version "5.3.1" - resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" - integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + version "5.3.0" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.0.tgz#4f95472e45e7145fb77f4069d12844b139f5ea12" + integrity sha512-Gi64+EWmi4515E1rPR77ae/Ip8cjFQTlsWytSYJj974U0tSnxm67pyXltbDjB1lvLw4dc85HbtidGL1K2c/oxw== dependencies: read-package-json "^2.0.0" readdir-scoped-modules "^1.0.0" @@ -9602,9 +9556,9 @@ readable-stream@~1.0.15, readable-stream@~1.0.31: string_decoder "~0.10.x" readdir-scoped-modules@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + integrity sha1-n6+jfShr5dksuuve4DDcm19AZ0c= dependencies: debuglog "^1.0.1" dezalgo "^1.0.0" @@ -9643,7 +9597,7 @@ redent@^2.0.0: indent-string "^3.0.0" strip-indent "^2.0.0" -regenerate-unicode-properties@^8.1.0: +regenerate-unicode-properties@^8.0.2: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== @@ -9661,9 +9615,9 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== regenerator-transform@^0.10.0: version "0.10.1" @@ -9675,9 +9629,9 @@ regenerator-transform@^0.10.0: private "^0.1.6" regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" + integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w== dependencies: private "^0.1.6" @@ -9690,9 +9644,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp-tree@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz#c9c7f00fcf722e0a56c7390983a7a63dd6c272f3" - integrity sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg== + version "0.1.10" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc" + integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ== regexpp@^2.0.1: version "2.0.1" @@ -9709,12 +9663,12 @@ regexpu-core@^2.0.0: regjsparser "^0.1.4" regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" + regenerate-unicode-properties "^8.0.2" regjsgen "^0.5.0" regjsparser "^0.6.0" unicode-match-property-ecmascript "^1.0.4" @@ -9877,19 +9831,19 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -resolve@~1.11.1: version "1.11.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== dependencies: path-parse "^1.0.6" +resolve@~1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" + integrity sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -9898,14 +9852,6 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - resumer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" @@ -9930,7 +9876,13 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== @@ -9977,23 +9929,24 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@^6.3.3, rxjs@^6.4.0: +rxjs@^6.3.3: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +rxjs@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" @@ -10099,15 +10052,27 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +"semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +semver@^5.5.1: + version "5.5.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + +semver@^6.0.0, semver@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318" + integrity sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ== semver@~5.3.0: version "5.3.0" @@ -10250,10 +10215,10 @@ simple-get@^2.7.0: once "^1.3.1" simple-concat "^1.0.0" -sisteransi@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb" - integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg== +sisteransi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" + integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== slash@^1.0.0: version "1.0.0" @@ -10385,9 +10350,9 @@ source-map-support@^0.4.15: source-map "^0.5.6" source-map-support@^0.5.6, source-map-support@^0.5.9: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -10429,9 +10394,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -10575,7 +10540,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -10583,7 +10548,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -10592,25 +10557,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz#ba846d1daa97c3c596155308063e075ed1c99aff" - integrity sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^5.2.0" - -string.prototype.trim@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz#75a729b10cfc1be439543dae442129459ce61e3d" - integrity sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.13.0" - function-bind "^1.1.1" - -string.prototype.trim@~1.1.2: +string.prototype.trim@^1.1.2, string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= @@ -10620,11 +10567,11 @@ string.prototype.trim@~1.1.2: function-bind "^1.0.2" string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: - safe-buffer "~5.2.0" + safe-buffer "~5.1.0" string_decoder@~0.10.x: version "0.10.31" @@ -10634,7 +10581,6 @@ string_decoder@~0.10.x: string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" @@ -10661,13 +10607,19 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" +strip-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.1.0.tgz#55aaa54e33b4c0649a7338a43437b1887d153ec4" + dependencies: + ansi-regex "^4.1.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -10781,12 +10733,12 @@ symbol-tree@^3.2.2: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== table@^5.2.3: - version "5.4.5" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42" - integrity sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA== + version "5.4.1" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" + integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" + ajv "^6.9.1" + lodash "^4.17.11" slice-ansi "^2.1.0" string-width "^3.0.0" @@ -10796,9 +10748,9 @@ tapable@^0.2.7: integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== tape@^4.4.0, tape@^4.6.3, tape@^4.8.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.11.0.tgz#63d41accd95e45a23a874473051c57fdbc58edc1" - integrity sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA== + version "4.10.2" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.2.tgz#129fcf62f86df92687036a52cce7b8ddcaffd7a6" + integrity sha512-mgl23h7W2yuk3N85FOYrin2OvThTYWdwbk6XQ1pr2PMJieyW2FM/4Bu/+kD/wecb3aZ0Enm+Syinyq467OPq2w== dependencies: deep-equal "~1.0.1" defined "~1.0.0" @@ -10806,10 +10758,10 @@ tape@^4.4.0, tape@^4.6.3, tape@^4.8.0: function-bind "~1.1.1" glob "~7.1.4" has "~1.0.3" - inherits "~2.0.4" + inherits "~2.0.3" minimist "~1.2.0" object-inspect "~1.6.0" - resolve "~1.11.1" + resolve "~1.10.1" resumer "~0.0.0" string.prototype.trim "~1.1.2" through "~2.3.8" @@ -10847,7 +10799,7 @@ tar@^2.1.1: fstream "^1.0.12" inherits "2" -tar@^4, tar@^4.4.10, tar@^4.4.8: +tar@^4, tar@^4.4.8: version "4.4.10" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== @@ -10916,7 +10868,14 @@ throat@^4.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -10942,9 +10901,9 @@ timed-out@^4.0.0, timed-out@^4.0.1: integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" @@ -11063,7 +11022,7 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -tryer@^1.0.1: +tryer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== @@ -11097,16 +11056,6 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2" - integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw== - type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -11116,9 +11065,9 @@ type-is@~1.6.17, type-is@~1.6.18: mime-types "~2.1.24" type@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179" - integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/type/-/type-1.0.1.tgz#084c9a17fcc9151a2cdb1459905c2e45e4bb7d61" + integrity sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw== typedarray-to-buffer@^3.1.2: version "3.1.5" @@ -11269,10 +11218,10 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -universal-user-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-3.0.0.tgz#4cc88d68097bffd7ac42e3b7c903e7481424b4b9" - integrity sha512-T3siHThqoj5X0benA5H0qcDnrKGXzU8TKoX15x/tQHw1hQBvIEBHjxQ2klizYsqBOO/Q+WuxoQUihadeeqDnoA== +universal-user-agent@^2.0.0, universal-user-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-2.1.0.tgz#5abfbcc036a1ba490cb941f8fd68c46d3669e8e4" + integrity sha512-8itiX7G05Tu3mGDTdNY2fB4KJ8MgZLS54RdG6PkkfwMAavrXu1mV/lls/GABx9O3Rw4PnTtasxrvbMQoBYY92Q== dependencies: os-name "^3.0.0" @@ -11728,9 +11677,9 @@ webidl-conversions@^4.0.2: integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-bundle-analyzer@^3.3.2: - version "3.4.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.4.1.tgz#430544c7ba1631baccf673475ca8300cb74a3c47" - integrity sha512-Bs8D/1zF+17lhqj2OYmzi7HEVYqEVxu7lCO9Ff8BwajenOU0vAwEoV8e4ICCPNZAcqR1PCR/7o2SkW+cnCmF0A== + version "3.3.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz#3da733a900f515914e729fcebcd4c40dde71fc6f" + integrity sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA== dependencies: acorn "^6.0.7" acorn-walk "^6.1.1" @@ -11741,15 +11690,15 @@ webpack-bundle-analyzer@^3.3.2: express "^4.16.3" filesize "^3.6.1" gzip-size "^5.0.0" - lodash "^4.17.15" + lodash "^4.17.10" mkdirp "^0.5.1" opener "^1.5.1" ws "^6.0.0" webpack-sources@^1.0.1, webpack-sources@^1.1.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" @@ -11910,15 +11859,6 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11933,7 +11873,7 @@ write-file-atomic@2.4.1: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== @@ -11942,7 +11882,7 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-json-file@^2.2.0: +write-json-file@^2.2.0, write-json-file@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= @@ -11954,18 +11894,6 @@ write-json-file@^2.2.0: sort-keys "^2.0.0" write-file-atomic "^2.0.0" -write-json-file@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" - integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.15" - make-dir "^2.1.0" - pify "^4.0.1" - sort-keys "^2.0.0" - write-file-atomic "^2.4.2" - write-pkg@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" @@ -12055,9 +11983,9 @@ xmlhttprequest@1.8.0: integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= xtend@~2.1.1: version "2.1.2" @@ -12086,7 +12014,11 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + +yallist@^3.0.2, yallist@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== @@ -12099,14 +12031,6 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -12129,7 +12053,7 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" -yargs@11.1.0: +yargs@11.1.0, yargs@^11.0.0: version "11.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== @@ -12165,22 +12089,6 @@ yargs@^12.0.1, yargs@^12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.2.4: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - yargs@^4.7.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" From 7d326df3e4e71709f7f8d3388ef257e7f27caecf Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 20:22:22 -0600 Subject: [PATCH 07/39] Add builds for dai and services-core in 'getting started' readme section --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index e2cb92520..92faafb39 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ code on commit. ``` yarn yarn lerna bootstrap // Installs dependencies & links all local dependencies together +cd packages/dai +yarn build:backend // Builds the dai package for use in the other plugins +cd ../services-core +yarn build // Builds the services-core package for use in the other plugins ``` ### Running the testchain From 3132bfd129259b3221c7b95742965b6d6e600d6f Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 20:52:46 -0600 Subject: [PATCH 08/39] Replace wipe with safeWipe --- packages/dai-plugin-mcd/src/CdpManager.js | 2 +- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 0d48cce08..f39022430 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -173,7 +173,7 @@ export default class CdpManager extends LocalService { @tracksTransactions async wipe(id, wipeAmount, { promise }) { - return this.proxyActions.wipe( + return this.proxyActions.safeWipe( ...[ this._managerAddress, this._adapterAddress('DAI'), diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index f41693960..fd93115d3 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -247,7 +247,7 @@ describe.each([ const wipe = cdp.wipeDai(0.5); const wipeHandler = jest.fn((tx, state) => { - expect(tx.metadata.method).toBe('wipe'); + expect(tx.metadata.method).toBe('safeWipe'); expect(state).toBe(txStates[wipeHandler.mock.calls.length - 1]); }); txMgr.listen(wipe, wipeHandler); From ff8c146a93832a06be387eccb5fe27cdd15ddd67 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 21:01:05 -0600 Subject: [PATCH 09/39] Adjust precision on testing post-drip values --- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index fd93115d3..c97027e10 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -64,7 +64,7 @@ async function expectValues(cdp, { collateral, debt, myGem, myDai }) { expect(await cdp.getCollateralAmount()).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(debt); + expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(debt, 1); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); From b1e9b909125a8460dc234444f9188c551e371c8a Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 21:05:01 -0600 Subject: [PATCH 10/39] Replace lock with safeLock --- packages/dai-plugin-mcd/src/CdpManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index f39022430..9103ca1d2 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -135,7 +135,7 @@ export default class CdpManager extends LocalService { const proxyAddress = await this.get('proxy').ensureProxy({ promise }); await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); - const method = `lock${isEth ? 'ETH' : 'Gem'}`; + const method = `safeLock${isEth ? 'ETH' : 'Gem'}`; const args = [ this._managerAddress, this._adapterAddress(ilk), From 908c71476895c9a469e62160783488c4dcc08b04 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 22:41:39 -0600 Subject: [PATCH 11/39] Integrate openLockGNTAndDraw with cdp manager --- packages/dai-plugin-mcd/src/CdpManager.js | 53 +++++------------ .../dai-plugin-mcd/test/CdpManager.spec.js | 59 ++++--------------- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 3 +- 3 files changed, 31 insertions(+), 84 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 9103ca1d2..db2abeb5e 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -95,20 +95,20 @@ export default class CdpManager extends LocalService { }); return ManagedCdp.create(await op, type.ilk, this); } - + @tracksTransactionsWithOptions({ numArguments: 5 }) async lockAndDraw(id, ilk, lockAmount, drawAmount = MDAI(0), { promise }) { assert(lockAmount && drawAmount, 'both amounts must be specified'); assert( lockAmount instanceof Currency, 'lockAmount must be a Currency value' - ); + ); drawAmount = castAsCurrency(drawAmount, MDAI); const proxyAddress = await this.get('proxy').ensureProxy({ promise }); const jugAddress = this.get('smartContract').getContractAddress('MCD_JUG'); - await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); - const method = setMethod(isEth, id); + const isGnt = GNT.isInstance(lockAmount); + const method = setMethod(isEth, isGnt, id); const args = [ this._managerAddress, jugAddress, @@ -123,9 +123,11 @@ export default class CdpManager extends LocalService { promise } ].filter(x => x); - + + // Transfers to bag if locking GNT in existing CDP + if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom - if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); + if (!isEth && method !== 'openLockGNTAndDraw') args.splice(-1, 0, !GNT.isInstance(lockAmount)); return await this.proxyActions[method](...args); } @@ -133,8 +135,8 @@ export default class CdpManager extends LocalService { @tracksTransactions async lock(id, ilk, lockAmount, { promise }) { const proxyAddress = await this.get('proxy').ensureProxy({ promise }); - await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); + const isGnt = GNT.isInstance(lockAmount); const method = `safeLock${isEth ? 'ETH' : 'Gem'}`; const args = [ this._managerAddress, @@ -148,6 +150,8 @@ export default class CdpManager extends LocalService { } ].filter(x => x); + // Transfers to bag if locking GNT in existing CDP + if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); @@ -268,48 +272,23 @@ export default class CdpManager extends LocalService { } } -export function setMethod(isEth, id) { +export function setMethod(isEth, isGnt, id) { if (id && isEth) { return 'lockETHAndDraw'; } else if (isEth) { return 'openLockETHAndDraw'; + } else if (!id && isGnt) { + return 'openLockGNTAndDraw'; } else if (id) { return 'lockGemAndDraw'; } return 'openLockGemAndDraw'; } -// The following functions are only required for GNT -export async function setupGnt(lockAmount, proxyAddress, cdpMgr) { - if (GNT.isInstance(lockAmount)) { - await transferToBag(lockAmount, proxyAddress, cdpMgr); - } -} - export async function transferToBag(lockAmount, proxyAddress, cdpMgr) { const gntToken = cdpMgr.get('token').getToken(GNT); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); + const gntAdapter = cdpMgr.get('smartContract').getContractByName('MCD_JOIN_GNT_A'); + const bagAddress = await gntAdapter.bags(proxyAddress); return gntToken.transfer(bagAddress, lockAmount); } - -export async function ensureBag(proxyAddress, cdpMgr) { - const gntAdapter = cdpMgr.get('smartContract').getContract('MCD_JOIN_GNT_A'); - - let bagAddress = await getBagAddress(proxyAddress, gntAdapter); - if (!bagAddress) { - await gntAdapter.make(proxyAddress); - bagAddress = await getBagAddress(proxyAddress, gntAdapter); - } - - return bagAddress; -} - -export async function getBagAddress(proxyAddress, gntAdapter) { - let bagAddress = await gntAdapter.bags(proxyAddress); - if (bagAddress === '0x0000000000000000000000000000000000000000') { - bagAddress = null; - } - - return bagAddress; -} diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 0d4776d5a..c5b4293ce 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -4,12 +4,7 @@ import { takeSnapshot, restoreSnapshot } from './helpers'; -import { - setMethod, - transferToBag, - ensureBag, - getBagAddress -} from '../src/CdpManager'; +import { setMethod, transferToBag } from '../src/CdpManager'; import { ServiceRoles } from '../src/constants'; import { ETH, MDAI, GNT, DGD } from '../src'; import { dummyEventData, formattedDummyEventData } from './fixtures'; @@ -105,52 +100,24 @@ test('set precision arguments according to decimals', () => { }); test('set method correctly', () => { - expect(setMethod(true, 1)).toBe('lockETHAndDraw'); + expect(setMethod(true, false, 1)).toBe('lockETHAndDraw'); expect(setMethod(true)).toBe('openLockETHAndDraw'); - expect(setMethod(false, 1)).toBe('lockGemAndDraw'); + expect(setMethod(false, false, 1)).toBe('lockGemAndDraw'); expect(setMethod()).toBe('openLockGemAndDraw'); + expect(setMethod(false, true)).toBe('openLockGNTAndDraw'); }); -describe('GNT-specific functionality', () => { - let proxyAddress, gntAdapter; +test('transferToBag for GNT CDPs', async () => { + const gntToken = maker.service('token').getToken(GNT); + const proxyAddress = await maker.service('proxy').currentProxy(); + const bagAddress = await maker.service('smartContract').getContractByName('MCD_JOIN_GNT_A').bags(proxyAddress); - beforeAll(async () => { - proxyAddress = await maker.service('proxy').ensureProxy(); - gntAdapter = maker.service('smartContract').getContract('MCD_JOIN_GNT_A'); - }); + const startingBalance = await gntToken.balanceOf(bagAddress); + await transferToBag(GNT(1), proxyAddress, cdpMgr); + const endingBalance = await gntToken.balanceOf(bagAddress); - test('getBagAddress returns null when no bag exists', async () => { - expect(await getBagAddress(proxyAddress, gntAdapter)).toBeNull(); - }); - - test('ensureBag creates a bag when none exists', async () => { - const bagAddressBeforeEnsure = await getBagAddress( - proxyAddress, - gntAdapter - ); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); - - expect(bagAddressBeforeEnsure).toBeNull(); - expect(bagAddress).toMatch(/^0x[A-Fa-f0-9]{40}$/); - }); - - test('getBagAddress returns real address when one exists', async () => { - expect(await ensureBag(proxyAddress, cdpMgr)).toMatch( - /^0x[A-Fa-f0-9]{40}$/ - ); - }); - - test('transferToBag transfers...to bag', async () => { - const gntToken = maker.service('token').getToken(GNT); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); - - const startingBalance = await gntToken.balanceOf(bagAddress); - await transferToBag(GNT(1), proxyAddress, cdpMgr); - const endingBalance = await gntToken.balanceOf(bagAddress); - - expect(startingBalance.toNumber()).toEqual(0); - expect(endingBalance.toNumber()).toEqual(1); - }); + expect(startingBalance.toNumber()).toEqual(0); + expect(endingBalance.toNumber()).toEqual(1); }); describe('using a different account', () => { diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index c97027e10..6876a4997 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -179,6 +179,7 @@ describe.each([ expect(events).toEqual(formattedDummyEventData(GEM, ilk)); }); + test('openLock, lock, lockAndDraw, free', async () => { const cdp = await maker.service(CDP_MANAGER).openLockAndDraw(ilk, GEM(1)); await expectValues(cdp, { @@ -186,7 +187,7 @@ describe.each([ debt: 0, myGem: startingGemBalance.minus(1) }); - + await cdp.lockCollateral(1); await expectValues(cdp, { collateral: 2, From e7b4c1435c787eb9acd3411327697aec05645eff Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 22:41:39 -0600 Subject: [PATCH 12/39] Integrate openLockGNTAndDraw with cdp manager --- packages/dai-plugin-mcd/src/CdpManager.js | 50 +++++---------- .../dai-plugin-mcd/test/CdpManager.spec.js | 62 +++++-------------- 2 files changed, 32 insertions(+), 80 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 9103ca1d2..9ebc6d817 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -106,9 +106,9 @@ export default class CdpManager extends LocalService { drawAmount = castAsCurrency(drawAmount, MDAI); const proxyAddress = await this.get('proxy').ensureProxy({ promise }); const jugAddress = this.get('smartContract').getContractAddress('MCD_JUG'); - await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); - const method = setMethod(isEth, id); + const isGnt = GNT.isInstance(lockAmount); + const method = setMethod(isEth, isGnt, id); const args = [ this._managerAddress, jugAddress, @@ -124,8 +124,11 @@ export default class CdpManager extends LocalService { } ].filter(x => x); + // Transfers to bag if locking GNT in existing CDP + if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom - if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); + if (!isEth && method !== 'openLockGNTAndDraw') + args.splice(-1, 0, !GNT.isInstance(lockAmount)); return await this.proxyActions[method](...args); } @@ -133,8 +136,8 @@ export default class CdpManager extends LocalService { @tracksTransactions async lock(id, ilk, lockAmount, { promise }) { const proxyAddress = await this.get('proxy').ensureProxy({ promise }); - await setupGnt(lockAmount, proxyAddress, this); const isEth = ETH.isInstance(lockAmount); + const isGnt = GNT.isInstance(lockAmount); const method = `safeLock${isEth ? 'ETH' : 'Gem'}`; const args = [ this._managerAddress, @@ -148,6 +151,8 @@ export default class CdpManager extends LocalService { } ].filter(x => x); + // Transfers to bag if locking GNT in existing CDP + if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom if (!isEth) args.splice(-1, 0, !GNT.isInstance(lockAmount)); @@ -268,48 +273,25 @@ export default class CdpManager extends LocalService { } } -export function setMethod(isEth, id) { +export function setMethod(isEth, isGnt, id) { if (id && isEth) { return 'lockETHAndDraw'; } else if (isEth) { return 'openLockETHAndDraw'; + } else if (!id && isGnt) { + return 'openLockGNTAndDraw'; } else if (id) { return 'lockGemAndDraw'; } return 'openLockGemAndDraw'; } -// The following functions are only required for GNT -export async function setupGnt(lockAmount, proxyAddress, cdpMgr) { - if (GNT.isInstance(lockAmount)) { - await transferToBag(lockAmount, proxyAddress, cdpMgr); - } -} - export async function transferToBag(lockAmount, proxyAddress, cdpMgr) { const gntToken = cdpMgr.get('token').getToken(GNT); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); + const gntAdapter = cdpMgr + .get('smartContract') + .getContractByName('MCD_JOIN_GNT_A'); + const bagAddress = await gntAdapter.bags(proxyAddress); return gntToken.transfer(bagAddress, lockAmount); } - -export async function ensureBag(proxyAddress, cdpMgr) { - const gntAdapter = cdpMgr.get('smartContract').getContract('MCD_JOIN_GNT_A'); - - let bagAddress = await getBagAddress(proxyAddress, gntAdapter); - if (!bagAddress) { - await gntAdapter.make(proxyAddress); - bagAddress = await getBagAddress(proxyAddress, gntAdapter); - } - - return bagAddress; -} - -export async function getBagAddress(proxyAddress, gntAdapter) { - let bagAddress = await gntAdapter.bags(proxyAddress); - if (bagAddress === '0x0000000000000000000000000000000000000000') { - bagAddress = null; - } - - return bagAddress; -} diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 0d4776d5a..622f69c9d 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -4,12 +4,7 @@ import { takeSnapshot, restoreSnapshot } from './helpers'; -import { - setMethod, - transferToBag, - ensureBag, - getBagAddress -} from '../src/CdpManager'; +import { setMethod, transferToBag } from '../src/CdpManager'; import { ServiceRoles } from '../src/constants'; import { ETH, MDAI, GNT, DGD } from '../src'; import { dummyEventData, formattedDummyEventData } from './fixtures'; @@ -105,52 +100,27 @@ test('set precision arguments according to decimals', () => { }); test('set method correctly', () => { - expect(setMethod(true, 1)).toBe('lockETHAndDraw'); + expect(setMethod(true, false, 1)).toBe('lockETHAndDraw'); expect(setMethod(true)).toBe('openLockETHAndDraw'); - expect(setMethod(false, 1)).toBe('lockGemAndDraw'); + expect(setMethod(false, false, 1)).toBe('lockGemAndDraw'); expect(setMethod()).toBe('openLockGemAndDraw'); + expect(setMethod(false, true)).toBe('openLockGNTAndDraw'); }); -describe('GNT-specific functionality', () => { - let proxyAddress, gntAdapter; +test('transferToBag for GNT CDPs', async () => { + const gntToken = maker.service('token').getToken(GNT); + const proxyAddress = await maker.service('proxy').currentProxy(); + const bagAddress = await maker + .service('smartContract') + .getContractByName('MCD_JOIN_GNT_A') + .bags(proxyAddress); - beforeAll(async () => { - proxyAddress = await maker.service('proxy').ensureProxy(); - gntAdapter = maker.service('smartContract').getContract('MCD_JOIN_GNT_A'); - }); + const startingBalance = await gntToken.balanceOf(bagAddress); + await transferToBag(GNT(1), proxyAddress, cdpMgr); + const endingBalance = await gntToken.balanceOf(bagAddress); - test('getBagAddress returns null when no bag exists', async () => { - expect(await getBagAddress(proxyAddress, gntAdapter)).toBeNull(); - }); - - test('ensureBag creates a bag when none exists', async () => { - const bagAddressBeforeEnsure = await getBagAddress( - proxyAddress, - gntAdapter - ); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); - - expect(bagAddressBeforeEnsure).toBeNull(); - expect(bagAddress).toMatch(/^0x[A-Fa-f0-9]{40}$/); - }); - - test('getBagAddress returns real address when one exists', async () => { - expect(await ensureBag(proxyAddress, cdpMgr)).toMatch( - /^0x[A-Fa-f0-9]{40}$/ - ); - }); - - test('transferToBag transfers...to bag', async () => { - const gntToken = maker.service('token').getToken(GNT); - const bagAddress = await ensureBag(proxyAddress, cdpMgr); - - const startingBalance = await gntToken.balanceOf(bagAddress); - await transferToBag(GNT(1), proxyAddress, cdpMgr); - const endingBalance = await gntToken.balanceOf(bagAddress); - - expect(startingBalance.toNumber()).toEqual(0); - expect(endingBalance.toNumber()).toEqual(1); - }); + expect(startingBalance.toNumber()).toEqual(0); + expect(endingBalance.toNumber()).toEqual(1); }); describe('using a different account', () => { From 48323e7d305faf1f2d9f4b3e467f5bd804648c10 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 13 Aug 2019 11:02:19 -0700 Subject: [PATCH 13/39] simplify dsproxy setup a bit --- packages/dai/src/eth/DSProxyService.js | 20 +++++--------------- packages/dai/test/eth/DSProxyService.spec.js | 6 ------ 2 files changed, 5 insertions(+), 21 deletions(-) diff --git a/packages/dai/src/eth/DSProxyService.js b/packages/dai/src/eth/DSProxyService.js index 072c621ec..b4fd8dc57 100644 --- a/packages/dai/src/eth/DSProxyService.js +++ b/packages/dai/src/eth/DSProxyService.js @@ -37,16 +37,11 @@ export default class DSProxyService extends PrivateService { @tracksTransactions async ensureProxy({ promise }) { - let proxy = await this.currentProxy(); - if (!proxy) { - this.get('web3') - .get('event') - .on('dsproxy/BUILD', obj => { - proxy = obj.payload.address; - }); - await this.build({ promise }); - } - return proxy; + const proxy = await this.currentProxy(); + if (proxy) return proxy; + + await this.build({ promise }); + return this._currentProxy; } @tracksTransactions @@ -57,11 +52,6 @@ export default class DSProxyService extends PrivateService { } const txo = await this._proxyRegistry().build({ promise }); this._currentProxy = txo.receipt.logs[0].address; - this.get('web3') - .get('event') - .emit('dsproxy/BUILD', { - address: this._currentProxy - }); return txo; } diff --git a/packages/dai/test/eth/DSProxyService.spec.js b/packages/dai/test/eth/DSProxyService.spec.js index 3274545ec..bc5be7a5b 100644 --- a/packages/dai/test/eth/DSProxyService.spec.js +++ b/packages/dai/test/eth/DSProxyService.spec.js @@ -18,12 +18,6 @@ test('should find the proxy registry', () => { }); test('should build new proxies', async () => { - service - .get('web3') - .get('event') - .on('dsproxy/BUILD', eventObj => { - expect(eventObj.payload.address).toEqual(service._currentProxy); - }); await service.build(); const newAddress = await service.currentProxy(); expect(newAddress).not.toBeNull(); From 0c8b424021575130b41d89626b4e4fe8bb9f9d66 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 13 Aug 2019 12:02:25 -0700 Subject: [PATCH 14/39] dai: yarn build => build:backend so that we can run `yarn build` at monorepo root to set everything up --- packages/dai/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dai/package.json b/packages/dai/package.json index e08bfcd1c..3391ee326 100644 --- a/packages/dai/package.json +++ b/packages/dai/package.json @@ -34,7 +34,7 @@ "module": "dist/src/index.js", "main": "dist/src/index.js", "scripts": { - "build": "yarn build:frontend", + "build": "yarn build:backend", "testchain": "../../scripts/run-testchain.sh", "coverage": "yarn test --coverage", "test": "yarn testchain --ci jest --runInBand", @@ -47,7 +47,7 @@ "test:mainnet": "export NETWORK='mainnet' && jest --runInBand --config ./test/config/jestIntegrationConfig.json", "test:kovan": "export NETWORK='kovan' && jest --runInBand --config ./test/config/jestIntegrationConfig.json", "test:integration": "export NETWORK='test' && yarn test --config ./test/config/jestIntegrationConfig.json", - "test:build": "yarn build:backend && yarn test --config ./test/config/jestBuildConfig.json" + "test:build": "yarn test --config ./test/config/jestBuildConfig.json" }, "dependencies": { "@babel/runtime": "^7.3.4", From 9462223f10b44fdfb409b53e014fd61c318cf3df Mon Sep 17 00:00:00 2001 From: Tyler Sorensen Date: Tue, 13 Aug 2019 21:48:10 +0200 Subject: [PATCH 15/39] add test:kovan --- packages/dai-plugin-mcd/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/dai-plugin-mcd/package.json b/packages/dai-plugin-mcd/package.json index 3413d307e..7f434f8c2 100644 --- a/packages/dai-plugin-mcd/package.json +++ b/packages/dai-plugin-mcd/package.json @@ -10,7 +10,8 @@ "testchain": "../../scripts/run-testchain.sh", "coverage": "yarn test --coverage", "test": "yarn testchain --ci jest --runInBand", - "test:integration": "yarn test --config ./test/config/jestIntegrationConfig.json" + "test:kovan": "export NETWORK='kovan' && yarn test --config ./test/config/jestIntegrationConfig.json", + "test:integration": "export NETWORK='test' && yarn test --config ./test/config/jestIntegrationConfig.json" }, "peerDependencies": { "@makerdao/dai": ">0.16.5" From e84b1bf95ee0798e7fd8cc02aa619487877f3cff Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 30 Jul 2019 17:17:44 -0700 Subject: [PATCH 16/39] use getters for sync values --- packages/dai-plugin-mcd/src/CdpType.js | 62 +++++------ packages/dai-plugin-mcd/src/ManagedCdp.js | 103 ++++++++---------- .../dai-plugin-mcd/test/CdpManager.spec.js | 6 + .../dai-plugin-mcd/test/ManagedCdp.spec.js | 40 ++----- 4 files changed, 91 insertions(+), 120 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpType.js b/packages/dai-plugin-mcd/src/CdpType.js index b445d43ec..eb513ee03 100644 --- a/packages/dai-plugin-mcd/src/CdpType.js +++ b/packages/dai-plugin-mcd/src/CdpType.js @@ -2,13 +2,7 @@ import assert from 'assert'; import { ServiceRoles } from './constants'; import { stringToBytes } from './utils'; import { MDAI, USD, ETH, MWETH } from './index'; -import { - annualStabilityFee, - debtCeiling, - liquidationPenalty, - liquidationRatio, - price -} from './math'; +import * as math from './math'; export default class CdpType { constructor( @@ -25,13 +19,7 @@ export default class CdpType { this.ilk = ilk; this._ilkBytes = stringToBytes(this.ilk); this.cache = {}; - if (options.prefetch) { - this._getPar(); - this._getVatInfo(); - this._getCatInfo(); - this._getSpotInfo(); - this._getJugInfo(); - } + if (options.prefetch) this.prefetch(); } async getTotalCollateral(unit = this.currency) { @@ -58,10 +46,10 @@ export default class CdpType { async getTotalDebt() { await this._getVatInfo(); - return this.getTotalDebtSync(); + return this.totalDebt; } - getTotalDebtSync() { + get totalDebt() { const { Art, rate } = this._getCached('vatInfo'); return MDAI.wei(Art) .times(rate) @@ -70,20 +58,20 @@ export default class CdpType { async getDebtCeiling() { await this._getVatInfo(); - return this.getDebtCeilingSync(); + return this.debtCeiling; } - getDebtCeilingSync() { - return debtCeiling(this._getCached('vatInfo').line); + get debtCeiling() { + return math.debtCeiling(this._getCached('vatInfo').line); } async getLiquidationRatio() { await this._getSpotInfo(); - return this.getLiquidationRatioSync(); + return this.liquidationRatio; } - getLiquidationRatioSync() { - return liquidationRatio(this._getCached('spotInfo').mat); + get liquidationRatio() { + return math.liquidationRatio(this._getCached('spotInfo').mat); } async getPrice() { @@ -92,34 +80,34 @@ export default class CdpType { this._getSpotInfo(), this._getPar() ]); - return this.getPriceSync(); + return this.price; } - getPriceSync() { - return price( + get price() { + return math.price( this.currency, this._getCached('par'), this._getCached('vatInfo').spot, - this.getLiquidationRatioSync() + this.liquidationRatio ); } async getLiquidationPenalty() { await this._getCatInfo(); - return this.getLiquidationPenaltySync(); + return this.liquidationPenalty; } - getLiquidationPenaltySync() { - return liquidationPenalty(this._getCached('catInfo').chop); + get liquidationPenalty() { + return math.liquidationPenalty(this._getCached('catInfo').chop); } async getAnnualStabilityFee() { await this._getJugInfo(); - return this.getAnnualStabilityFeeSync(); + return this.annualStabilityFee; } - getAnnualStabilityFeeSync() { - return annualStabilityFee(this._getCached('jugInfo').duty); + get annualStabilityFee() { + return math.annualStabilityFee(this._getCached('jugInfo').duty); } async getPriceHistory(num = 100) { @@ -187,6 +175,16 @@ export default class CdpType { }); } + async prefetch() { + // TODO allow passing in a multicall instance to use that instead of making + // separate calls + this._getPar(); + this._getVatInfo(); + this._getCatInfo(); + this._getSpotInfo(); + this._getJugInfo(); + } + async reset() { this._parPromise = null; this._vatInfoPromise = null; diff --git a/packages/dai-plugin-mcd/src/ManagedCdp.js b/packages/dai-plugin-mcd/src/ManagedCdp.js index 8e0db45dc..c1b0e2d86 100644 --- a/packages/dai-plugin-mcd/src/ManagedCdp.js +++ b/packages/dai-plugin-mcd/src/ManagedCdp.js @@ -4,15 +4,7 @@ import { ServiceRoles } from './constants'; import ethAbi from 'web3-eth-abi'; import assert from 'assert'; import { MDAI } from './index'; -import { - collateralAmount, - collateralValue, - collateralizationRatio, - daiAvailable, - debtValue, - liquidationPrice, - minSafeCollateralAmount -} from './math'; +import * as math from './math'; export default class ManagedCdp { constructor(id, ilk, cdpManager, options = { prefetch: true }) { @@ -25,39 +17,34 @@ export default class ManagedCdp { this.type = cdpManager.get(ServiceRoles.CDP_TYPE).getCdpType(null, ilk); this.currency = this.type.currency; this.cache = {}; - if (options.prefetch) { - this._getUrnInfo(); - } + if (options.prefetch) this.prefetch(); } async getCollateralAmount() { await this._getUrnInfo(); - return this.getCollateralAmountSync(); + return this.collateralAmount; } - getCollateralAmountSync() { - return collateralAmount(this.currency, this._getCached('urnInfo').ink); + get collateralAmount() { + return math.collateralAmount(this.currency, this._getCached('urnInfo').ink); } async getCollateralValue() { await Promise.all([this._getUrnInfo(), this.type.getPrice()]); - return this.getCollateralValueSync(); + return this.collateralValue; } - getCollateralValueSync() { - return collateralValue( - this.getCollateralAmountSync(), - this.type.getPriceSync() - ); + get collateralValue() { + return math.collateralValue(this.collateralAmount, this.type.price); } async getDebtValue() { await Promise.all([this.type.ilkInfo(), this._getUrnInfo()]); - return this.getDebtValueSync(); + return this.debtValue; } - getDebtValueSync() { - return debtValue( + get debtValue() { + return math.debtValue( this._getCached('urnInfo').art, this.type._getCached('vatInfo').rate ); @@ -65,14 +52,11 @@ export default class ManagedCdp { async getCollateralizationRatio() { await Promise.all([this.getCollateralValue(), this.getDebtValue()]); - return this.getCollateralizationRatioSync(); + return this.collateralizationRatio; } - getCollateralizationRatioSync() { - return collateralizationRatio( - this.getCollateralValueSync(), - this.getDebtValueSync() - ); + get collateralizationRatio() { + return math.collateralizationRatio(this.collateralValue, this.debtValue); } async getLiquidationPrice() { @@ -81,24 +65,24 @@ export default class ManagedCdp { this.getDebtValue(), this.getCollateralAmount() ]); - return this.getLiquidationPriceSync(); + return this.liquidationPrice; } - getLiquidationPriceSync() { - return liquidationPrice( - this.getCollateralAmountSync(), - this.getDebtValueSync(), - this.type.getLiquidationRatioSync() + get liquidationPrice() { + return math.liquidationPrice( + this.collateralAmount, + this.debtValue, + this.type.liquidationRatio ); } - async isSafe() { + async getIsSafe() { await Promise.all([this.getLiquidationPrice(), this.type.getPrice()]); - return this.isSafeSync(); + return this.isSafe; } - isSafeSync() { - return this.type.getPriceSync().gte(this.getLiquidationPriceSync()); + get isSafe() { + return this.type.price.gte(this.liquidationPrice); } async getMinSafeCollateralAmount() { @@ -107,14 +91,14 @@ export default class ManagedCdp { this.type.getLiquidationRatio(), this.type.getPrice() ]); - return this.getMinSafeCollateralAmountSync(); + return this.minSafeCollateralAmount; } - getMinSafeCollateralAmountSync() { - return minSafeCollateralAmount( - this.getDebtValueSync(), - this.type.getLiquidationRatioSync(), - this.type.getPriceSync() + get minSafeCollateralAmount() { + return math.minSafeCollateralAmount( + this.debtValue, + this.type.liquidationRatio, + this.type.price ); } @@ -123,13 +107,11 @@ export default class ManagedCdp { this.getCollateralAmount(), this.getMinSafeCollateralAmount() ]); - return this.getCollateralAvailableSync(); + return this.collateralAvailable; } - getCollateralAvailableSync() { - return this.getCollateralAmountSync().minus( - this.getMinSafeCollateralAmountSync() - ); + get collateralAvailable() { + return this.collateralAmount.minus(this.minSafeCollateralAmount); } async getDaiAvailable() { @@ -138,14 +120,14 @@ export default class ManagedCdp { this.type.getLiquidationRatio(), this.getDebtValue() ]); - return this.getDaiAvailableSync(); + return this.daiAvailable; } - getDaiAvailableSync() { - return daiAvailable( - this.getCollateralValueSync(), - this.getDebtValueSync(), - this.type.getLiquidationRatioSync() + get daiAvailable() { + return math.daiAvailable( + this.collateralValue, + this.debtValue, + this.type.liquidationRatio ); } @@ -236,6 +218,13 @@ export default class ManagedCdp { return this.cache[name]; } + async prefetch() { + // TODO allow passing in a multicall instance to use that instead of making + // separate calls + this._getUrnInfo(); + this.type.prefetch(); + } + async reset() { this._urnInfoPromise = null; this.cache = {}; diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index 622f69c9d..c96e634f1 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -59,6 +59,12 @@ test('getCdp looks up ilk', async () => { expect(sameCdp.ilk).toEqual(cdp.ilk); }); +test('getCdp can disable prefetch', async () => { + const cdp = await cdpMgr.open('ETH-A'); + const sameCdp = await cdpMgr.getCdp(cdp.id, { prefetch: false }); + expect(sameCdp._urnInfoPromise).toBeUndefined(); +}); + test('getCombinedEventHistory', async () => { const proxy = await maker.currentProxy(); const mockFn = jest.fn(async () => dummyEventData('ETH-A')); diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index c97027e10..a2958c97e 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -82,44 +82,22 @@ async function expectValues(cdp, { collateral, debt, myGem, myDai }) { } async function expectUtilValues(cdp, { val, ratio, isSafe, dai }) { - const [ - debtValue, - collateralValue, - collateralAmount, - collateralizationRatio, - safe, - minCollateral, - availCollateral, - daiAvailable, - liquidationRatio - ] = await Promise.all([ - cdp.getDebtValue(), - cdp.getCollateralValue(), - cdp.getCollateralAmount(), - cdp.getCollateralizationRatio(), - cdp.isSafe(), - cdp.getMinSafeCollateralAmount(), - cdp.getCollateralAvailable(), - cdp.getDaiAvailable(), - cdp.type.getLiquidationRatio() - ]); - const minVal = debtValue.times(liquidationRatio).div(val); - if (val !== undefined) { - expect(collateralValue.toNumber()).toBe(val); - expect(minCollateral.toNumber()).toBe(minVal.toNumber()); - expect(availCollateral.toNumber()).toBe( - collateralAmount.minus(minVal.toNumber()).toNumber() + const minVal = cdp.debtValue.times(cdp.type.liquidationRatio).div(val); + expect(cdp.collateralValue.toNumber()).toBe(val); + expect(cdp.minSafeCollateralAmount.toNumber()).toBe(minVal.toNumber()); + expect(cdp.collateralAvailable.toNumber()).toBe( + cdp.collateralAmount.minus(minVal.toNumber()).toNumber() ); } if (ratio !== undefined) { - expect(collateralizationRatio.toNumber()).toBe(ratio); + expect(cdp.collateralizationRatio.toNumber()).toBe(ratio); } - if (safe !== undefined) { - expect(safe).toBe(isSafe); + if (isSafe !== undefined) { + expect(cdp.isSafe).toBe(isSafe); } if (dai !== undefined) { - daiAvailable.eq(MDAI(dai)); + cdp.daiAvailable.eq(MDAI(dai)); } } From ea5c49c424ff468d017b685a82db94304f93a6cf Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 30 Jul 2019 17:26:56 -0700 Subject: [PATCH 17/39] make prefetch await completion --- packages/dai-plugin-mcd/src/CdpType.js | 12 +++++++----- packages/dai-plugin-mcd/src/ManagedCdp.js | 6 ++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpType.js b/packages/dai-plugin-mcd/src/CdpType.js index eb513ee03..923a273b1 100644 --- a/packages/dai-plugin-mcd/src/CdpType.js +++ b/packages/dai-plugin-mcd/src/CdpType.js @@ -178,11 +178,13 @@ export default class CdpType { async prefetch() { // TODO allow passing in a multicall instance to use that instead of making // separate calls - this._getPar(); - this._getVatInfo(); - this._getCatInfo(); - this._getSpotInfo(); - this._getJugInfo(); + return Promise.all([ + this._getPar(), + this._getVatInfo(), + this._getCatInfo(), + this._getSpotInfo(), + this._getJugInfo() + ]); } async reset() { diff --git a/packages/dai-plugin-mcd/src/ManagedCdp.js b/packages/dai-plugin-mcd/src/ManagedCdp.js index c1b0e2d86..94f9f5587 100644 --- a/packages/dai-plugin-mcd/src/ManagedCdp.js +++ b/packages/dai-plugin-mcd/src/ManagedCdp.js @@ -221,8 +221,10 @@ export default class ManagedCdp { async prefetch() { // TODO allow passing in a multicall instance to use that instead of making // separate calls - this._getUrnInfo(); - this.type.prefetch(); + return Promise.all([ + this._getUrnInfo(), + this.type.prefetch() + ]); } async reset() { From 4a534581287cb5fca670d2ceab8eab964ce96e70 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 30 Jul 2019 17:40:23 -0700 Subject: [PATCH 18/39] better support for sync getters in ManagedCdp make sure prefetch is completed by the time CdpManager.open/getCdp completes --- packages/dai-plugin-mcd/src/CdpManager.js | 5 +- packages/dai-plugin-mcd/src/ManagedCdp.js | 6 +- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 59 ++++++++++++++----- 3 files changed, 51 insertions(+), 19 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 9ebc6d817..dfc8c2a74 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -7,6 +7,7 @@ import { ServiceRoles } from './constants'; import assert from 'assert'; import ManagedCdp from './ManagedCdp'; import { castAsCurrency, stringToBytes, bytesToString } from './utils'; +import has from 'lodash/has'; import padStart from 'lodash/padStart'; import { MDAI, ETH, GNT } from './index'; const { CDP_MANAGER, CDP_TYPE, SYSTEM_DATA, QUERY_API } = ServiceRoles; @@ -45,7 +46,9 @@ export default class CdpManager extends LocalService { async getCdp(id, options) { const ilk = bytesToString(await this._manager.ilks(id)); - return new ManagedCdp(id, ilk, this, options); + const cdp = new ManagedCdp(id, ilk, this, options); + if (!has(options, 'prefetch') || options.prefetch) await cdp.prefetch(); + return cdp; } async getCombinedDebtValue(proxyAddress, descending = true) { diff --git a/packages/dai-plugin-mcd/src/ManagedCdp.js b/packages/dai-plugin-mcd/src/ManagedCdp.js index 94f9f5587..8f85d4ec2 100644 --- a/packages/dai-plugin-mcd/src/ManagedCdp.js +++ b/packages/dai-plugin-mcd/src/ManagedCdp.js @@ -233,10 +233,12 @@ export default class ManagedCdp { } } -ManagedCdp.create = function(createTxo, ilk, cdpManager) { +ManagedCdp.create = async function(createTxo, ilk, cdpManager) { const sig = ethAbi.encodeEventSignature('NewCdp(address,address,uint256)'); const log = createTxo.receipt.logs.find(l => l.topics[0] === sig); assert(log, 'could not find log for NewCdp event'); const id = parseInt(log.data, 16); - return new ManagedCdp(id, ilk, cdpManager); + const cdp = new ManagedCdp(id, ilk, cdpManager); + await cdp.prefetch(); + return cdp; }; diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index a2958c97e..083e87bff 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -58,13 +58,29 @@ test('getLiquidationPrice and getCollateralizationRatio returns infinity with 0 expect(collateralization).toBe(Infinity); }); -async function expectValues(cdp, { collateral, debt, myGem, myDai }) { - cdp.reset(); +async function expectValues( + cdp, + { + reset, + collateral, + debt, + myGem, + myDai, + collateralValue, + ratio, + isSafe, + daiAvailable + } +) { + if (reset) { + cdp.reset(); + await cdp.prefetch(); + } if (collateral !== undefined) { - expect(await cdp.getCollateralAmount()).toEqual(cdp.currency(collateral)); + expect(cdp.collateralAmount).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect((await cdp.getDebtValue()).toNumber()).toBeCloseTo(debt, 1); + expect(cdp.debtValue).toEqual(MDAI(debt)); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); @@ -79,12 +95,11 @@ async function expectValues(cdp, { collateral, debt, myGem, myDai }) { if (myDai !== undefined) { expect(await dai.balance()).toEqual(myDai); } -} - -async function expectUtilValues(cdp, { val, ratio, isSafe, dai }) { - if (val !== undefined) { - const minVal = cdp.debtValue.times(cdp.type.liquidationRatio).div(val); - expect(cdp.collateralValue.toNumber()).toBe(val); + if (collateralValue !== undefined) { + const minVal = cdp.debtValue + .times(cdp.type.liquidationRatio) + .div(collateralValue); + expect(cdp.collateralValue.toNumber()).toBe(collateralValue); expect(cdp.minSafeCollateralAmount.toNumber()).toBe(minVal.toNumber()); expect(cdp.collateralAvailable.toNumber()).toBe( cdp.collateralAmount.minus(minVal.toNumber()).toNumber() @@ -96,8 +111,8 @@ async function expectUtilValues(cdp, { val, ratio, isSafe, dai }) { if (isSafe !== undefined) { expect(cdp.isSafe).toBe(isSafe); } - if (dai !== undefined) { - cdp.daiAvailable.eq(MDAI(dai)); + if (daiAvailable !== undefined) { + cdp.daiAvailable.eq(MDAI(daiAvailable)); } } @@ -167,12 +182,14 @@ describe.each([ await cdp.lockCollateral(1); await expectValues(cdp, { + reset: true, collateral: 2, myGem: startingGemBalance.minus(2) }); await cdp.lockAndDraw(1, 5); await expectValues(cdp, { + reset: true, collateral: 3, debt: 5, myDai: startingDaiBalance.plus(5), @@ -181,6 +198,7 @@ describe.each([ await cdp.freeCollateral(0.8); await expectValues(cdp, { + reset: true, collateral: 2.2, myGem: startingGemBalance.minus(2.2) }); @@ -198,11 +216,11 @@ describe.each([ }); cdp.type.reset(); const price = await cdp.type.getPrice(); - await expectUtilValues(cdp, { + await expectValues(cdp, { val: price.toNumber(), ratio: price.toNumber(), isSafe: true, - dai: '149' + daiAvailable: '149' }); const sameCdp = await mgr.getCdp(cdp.id); @@ -221,7 +239,11 @@ describe.each([ txMgr.listen(draw, drawHandler); await draw; expect(drawHandler.mock.calls.length).toBe(2); - await expectValues(cdp, { debt: 2, myDai: startingDaiBalance.plus(2) }); + await expectValues(cdp, { + reset: true, + debt: 2, + myDai: startingDaiBalance.plus(2) + }); const wipe = cdp.wipeDai(0.5); const wipeHandler = jest.fn((tx, state) => { @@ -231,10 +253,15 @@ describe.each([ txMgr.listen(wipe, wipeHandler); await wipe; expect(wipeHandler.mock.calls.length).toBe(2); - await expectValues(cdp, { debt: 1.5, myDai: startingDaiBalance.plus(1.5) }); + await expectValues(cdp, { + reset: true, + debt: 1.5, + myDai: startingDaiBalance.plus(1.5) + }); await cdp.wipeAndFree(MDAI(1), GEM(0.5)); await expectValues(cdp, { + reset: true, collateral: 0.5, debt: 0.5, myDai: startingDaiBalance.plus(0.5), From 0e271b65133d50e44be59f317bbd26262a1a8826 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Fri, 2 Aug 2019 15:02:31 -0700 Subject: [PATCH 19/39] add multicall dependency staying with 0.7.x because the testchain snapshot does not have the updated version of the Multicall contract that 0.8.x works with --- packages/dai-plugin-mcd/package.json | 1 + yarn.lock | 76 ++++++++++++++++++++++++---- 2 files changed, 67 insertions(+), 10 deletions(-) diff --git a/packages/dai-plugin-mcd/package.json b/packages/dai-plugin-mcd/package.json index 7f434f8c2..677ba4276 100644 --- a/packages/dai-plugin-mcd/package.json +++ b/packages/dai-plugin-mcd/package.json @@ -18,6 +18,7 @@ }, "dependencies": { "@makerdao/currency": "^0.9.5", + "@makerdao/multicall": "^0.7.0", "@makerdao/services-core": "^0.9.5", "bignumber.js": "^8.1.1" } diff --git a/yarn.lock b/yarn.lock index e819c796e..fc94c1bb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1691,10 +1691,19 @@ babel-runtime "^6.26.0" bignumber.js "^8.1.1" -"@makerdao/testchain@^0.2.11": - version "0.2.11" - resolved "https://registry.yarnpkg.com/@makerdao/testchain/-/testchain-0.2.11.tgz#c7dac31b51656eada4085973dbf8a9291a764983" - integrity sha512-2l29gM+jjaRgo8v+7nQ61AuVq5eS65o7n9NmSIudV1tvVB4TN00VKr9TWJFOROeRIYW1oEX17J8EtYhw+ttoPA== +"@makerdao/multicall@^0.7.0": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@makerdao/multicall/-/multicall-0.7.1.tgz#b15cc00b792608b92b20425cc1c889c94c64cc66" + integrity sha512-CSGLCSLkqpqZcyQuAOlCh3+ZE5IYS0vbN+FawlIs9Yod9uHcHn1sCvnEhlhVbRDfZqdx1upKe/ifraM1Dw+riQ== + dependencies: + cross-fetch "^3.0.1" + ethers "^4.0.6" + js-sha3 "^0.8.0" + +"@makerdao/services-core@^0.9.5", "@makerdao/services-core@^0.9.8": + version "0.9.8" + resolved "https://registry.yarnpkg.com/@makerdao/services-core/-/services-core-0.9.8.tgz#14481d59267afc5fd1a6576a783d370eb80a47e3" + integrity sha512-Qp/kkiKzqhJCuZ2YZT0cYo2oAyCM05PaJK69AkJ0FS21ETC6/n1oSQWwEpnkuKhutnM4ZO9/uuLWke47wC+ojA== dependencies: ganache-cli makerdao/ganache-cli#fix/gas-est-crash @@ -1826,6 +1835,11 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" +"@types/node@^10.3.2": + version "10.14.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.14.tgz#a47955df2acf76ba7f0ac3b205d325da193dc9ad" + integrity sha512-xXD08vZsvpv4xptQXj1+ky22f7ZoKu5ZNI/4l+/BXG3X+XaeZsmaFbbTKuhSE3NjjvRuZFxFf9sQBMXIcZNFMQ== + "@types/stack-utils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" @@ -3867,6 +3881,14 @@ cross-fetch@^2.1.0, cross-fetch@^2.1.1: node-fetch "2.1.2" whatwg-fetch "2.0.4" +cross-fetch@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz#7bef7020207e684a7638ef5f2f698e24d9eb283c" + integrity sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw== + dependencies: + node-fetch "2.6.0" + whatwg-fetch "3.0.0" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -5004,6 +5026,22 @@ ethers@^3.0.15: uuid "2.0.1" xmlhttprequest "1.8.0" +ethers@^4.0.6: + version "4.0.33" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.33.tgz#f7b88d2419d731a39aefc37843a3f293e396f918" + integrity sha512-lAHkSPzBe0Vj+JrhmkEHLtUEKEheVktIjGDyE9gbzF4zf1vibjYgB57LraDHu4/ItqWVkztgsm8GWqcDMN+6vQ== + dependencies: + "@types/node" "^10.3.2" + aes-js "3.0.0" + bn.js "^4.4.0" + elliptic "6.3.3" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -5956,6 +5994,14 @@ hash-base@^3.0.0: inherits "^2.0.1" safe-buffer "^5.0.1" +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -7079,6 +7125,11 @@ js-sha3@^0.6.1: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -8292,6 +8343,11 @@ node-fetch@2.1.2: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= +node-fetch@2.6.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-fetch@^1.0.1, node-fetch@~1.7.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -8300,11 +8356,6 @@ node-fetch@^1.0.1, node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== - node-gyp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-4.0.0.tgz#972654af4e5dd0cd2a19081b4b46fe0442ba6f45" @@ -9999,6 +10050,11 @@ scrypt-js@2.0.3: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" integrity sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q= +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + scrypt.js@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" @@ -11752,7 +11808,7 @@ whatwg-fetch@2.0.4: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== -whatwg-fetch@>=0.10.0: +whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q== From 4f1e0b5cae62fb5167e846c0a5fa9cf76ac1a97b Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Fri, 2 Aug 2019 16:30:49 -0700 Subject: [PATCH 20/39] CdpTypeService.useMulticall --- packages/dai-plugin-mcd/src/CdpTypeService.js | 86 +++++++++++++++++++ packages/dai-plugin-mcd/src/utils/ethereum.js | 15 ++++ packages/dai-plugin-mcd/test/helpers.js | 6 +- .../dai-plugin-mcd/test/multicall.spec.js | 68 +++++++++++++++ 4 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 packages/dai-plugin-mcd/src/utils/ethereum.js create mode 100644 packages/dai-plugin-mcd/test/multicall.spec.js diff --git a/packages/dai-plugin-mcd/src/CdpTypeService.js b/packages/dai-plugin-mcd/src/CdpTypeService.js index 1e97bded6..8d2afcaac 100644 --- a/packages/dai-plugin-mcd/src/CdpTypeService.js +++ b/packages/dai-plugin-mcd/src/CdpTypeService.js @@ -2,6 +2,10 @@ import { PublicService } from '@makerdao/services-core'; import CdpType from './CdpType'; import { ServiceRoles } from './constants'; import assert from 'assert'; +import { toHex } from './utils/ethereum'; +import isEqual from 'lodash/isEqual'; +import set from 'lodash/set'; +import uniqWith from 'lodash/uniqWith'; const { CDP_TYPE, SYSTEM_DATA, QUERY_API } = ServiceRoles; export default class CdpTypeService extends PublicService { @@ -32,4 +36,86 @@ export default class CdpTypeService extends PublicService { assert(types.length <= 1, `${label} matches more than one cdp type`); assert(types.length > 0, `${label} matches no cdp type`); } + + useMulticall(watcher) { + this.cdpTypes.forEach(type => this.useMulticallForType(watcher, type)); + } + + useMulticallForType(watcher, cdpType) { + const { ilk } = cdpType; + const systemData = this.get(SYSTEM_DATA); + const scs = systemData.get('smartContract'); + const schema = [ + { + target: scs.getContractAddress('MCD_JUG'), + call: ['ilks(bytes32)(uint256,uint48)', toHex(ilk)], + returns: [[`ilk.${ilk}.jug.duty`], [`ilk.${ilk}.jug.rho`]] + }, + { + target: scs.getContractAddress('MCD_VAT'), + call: [ + 'ilks(bytes32)(uint256,uint256,uint256,uint256,uint256)', + toHex(ilk) + ], + returns: [ + [`ilk.${ilk}.vat.Art`], + [`ilk.${ilk}.vat.rate`], + [`ilk.${ilk}.vat.spot`], + [`ilk.${ilk}.vat.line`], + [] + ] + }, + { + target: scs.getContractAddress('MCD_SPOT'), + call: ['ilks(bytes32)(address,uint256)', toHex(ilk)], + returns: [[`ilk.${ilk}.spot.pip`], [`ilk.${ilk}.spot.mat`]] + }, + { + target: scs.getContractAddress('MCD_CAT'), + call: ['ilks(bytes32)(address,uint256,uint256)', toHex(ilk)], + returns: [ + [`ilk.${ilk}.cat.flip`], + [`ilk.${ilk}.cat.chop`], + [`ilk.${ilk}.cat.lump`] + ] + }, + { + target: scs.getContractAddress(cdpType.currency.symbol), + call: [ + 'balanceOf(address)(uint256)', + systemData.adapterAddress(cdpType.ilk) + ], + returns: [[`ilk.${ilk}.adapterBalance`]] + }, + { + target: scs.getContractAddress('MCD_SPOT'), + call: ['par()(uint256)'], + returns: [['system.par']] + } + ]; + + watcher.batch().subscribe(updates => { + const ilkUpdates = updates.filter(u => u.type.startsWith(`ilk.${ilk}.`)); + for (let update of ilkUpdates) { + const [, , group, key] = update.type.split('.'); + + if (key) { + set(cdpType.cache, [group + 'Info', key], update.value); + } else { + switch (group) { + case 'adapterBalance': + cdpType.cache[group] = update.value; + break; + default: + throw new Error(`Don't know how to handle "${group}"`); + } + } + } + + const parUpdate = updates.find(u => u.type === 'system.par'); + if (parUpdate) cdpType.cache.par = parUpdate.value; + }); + + watcher.tap(model => uniqWith(model.concat(schema), isEqual)); + } } diff --git a/packages/dai-plugin-mcd/src/utils/ethereum.js b/packages/dai-plugin-mcd/src/utils/ethereum.js new file mode 100644 index 000000000..b9cd8aaa3 --- /dev/null +++ b/packages/dai-plugin-mcd/src/utils/ethereum.js @@ -0,0 +1,15 @@ +// FIXME these were just copied from mcd-cdp-portal; +// should use a standard library for this sort of thing + +export function toHex(str, { with0x = true, rightPadding = 64 } = {}) { + let result = ''; + for (let i = 0; i < str.length; i++) { + result += str.charCodeAt(i).toString(16); + } + if (rightPadding > 0) result = padRight(result, rightPadding); + return with0x ? '0x' + result : result; +} + +export function padRight(string, chars, sign) { + return string + new Array(chars - string.length + 1).join(sign ? sign : '0'); +} diff --git a/packages/dai-plugin-mcd/test/helpers.js b/packages/dai-plugin-mcd/test/helpers.js index e63a39cbb..8c3596051 100644 --- a/packages/dai-plugin-mcd/test/helpers.js +++ b/packages/dai-plugin-mcd/test/helpers.js @@ -12,12 +12,14 @@ import { callGanache } from 'test-helpers'; export async function mcdMaker({ preset = 'test', network = 'testnet', + prefetch = true, + log = false, addressOverrides, ...settings } = {}) { const maker = await Maker.create(preset, { - plugins: [[McdPlugin, { addressOverrides, network }]], - log: false, + plugins: [[McdPlugin, { addressOverrides, network, prefetch }]], + log, ...settings }); await maker.authenticate(); diff --git a/packages/dai-plugin-mcd/test/multicall.spec.js b/packages/dai-plugin-mcd/test/multicall.spec.js new file mode 100644 index 000000000..751ef90d0 --- /dev/null +++ b/packages/dai-plugin-mcd/test/multicall.spec.js @@ -0,0 +1,68 @@ +import { createWatcher } from '@makerdao/multicall'; +import { mcdMaker } from './helpers'; +import { ServiceRoles } from '../src/constants'; +import { ETH, USD } from '@makerdao/dai'; + +describe('CdpType integration', () => { + let watcher, maker, scs; + + beforeAll(async () => { + maker = await mcdMaker({ + prefetch: false, + web3: { pollingInterval: 20 } + }); + + scs = maker.service('smartContract'); + watcher = createWatcher([], { + rpcUrl: maker.service('web3').rpcUrl, + multicallAddress: scs.getContractAddress('MULTICALL'), + config: { interval: 50 } + }); + }); + + test('populate CdpType cache', async () => { + const cts = maker.service(ServiceRoles.CDP_TYPE); + const ethA = cts.getCdpType(null, 'ETH-A'); + expect(ethA.cache).toEqual({}); + + cts.useMulticall(watcher); + watcher.start(); + await watcher.awaitInitialFetch(); + + // TODO don't hardcode all these values + expect(ethA.cache).toEqual({ + adapterBalance: '0', + par: '1000000000000000000000000000', + jugInfo: { + duty: '1000000001547125957863212448', + rho: '1563241233' + }, + vatInfo: { + Art: '0', + rate: '1000000000000000000000000000', + spot: '100000000000000000000000000000', + line: '100000000000000000000000000000000000000000000000000' + }, + spotInfo: { + pip: expect.any(String), + mat: '1500000000000000000000000000' + }, + catInfo: { + flip: expect.any(String), + chop: '1050000000000000000000000000', + lump: '1500000000000000000' + } + }); + + // testing these separately because they're EIP55 checksum addresses + expect(ethA.cache.spotInfo.pip.toLowerCase()).toEqual( + scs.getContractAddress('PIP_ETH') + ); + expect(ethA.cache.catInfo.flip.toLowerCase()).toEqual( + scs.getContractAddress('MCD_FLIP_ETH_A') + ); + + const expectedPrice = USD(150).div(ETH(1)); + expect(ethA.price.eq(expectedPrice)).toBeTruthy(); + }); +}); From 16986e895494fc1d1991dbf65db083b3dfeaa0d9 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 17:59:47 -0700 Subject: [PATCH 21/39] subscribe for all cdp types at once --- packages/dai-plugin-mcd/src/CdpTypeService.js | 68 +++---------------- .../src/CdpTypeService/multicall.js | 56 +++++++++++++++ .../dai-plugin-mcd/test/multicall.spec.js | 34 ++++++++++ 3 files changed, 100 insertions(+), 58 deletions(-) create mode 100644 packages/dai-plugin-mcd/src/CdpTypeService/multicall.js diff --git a/packages/dai-plugin-mcd/src/CdpTypeService.js b/packages/dai-plugin-mcd/src/CdpTypeService.js index 8d2afcaac..af4477ad3 100644 --- a/packages/dai-plugin-mcd/src/CdpTypeService.js +++ b/packages/dai-plugin-mcd/src/CdpTypeService.js @@ -7,6 +7,7 @@ import isEqual from 'lodash/isEqual'; import set from 'lodash/set'; import uniqWith from 'lodash/uniqWith'; const { CDP_TYPE, SYSTEM_DATA, QUERY_API } = ServiceRoles; +import { createSchema } from './CdpTypeService/multicall'; export default class CdpTypeService extends PublicService { constructor(name = CDP_TYPE) { @@ -38,66 +39,13 @@ export default class CdpTypeService extends PublicService { } useMulticall(watcher) { - this.cdpTypes.forEach(type => this.useMulticallForType(watcher, type)); - } - - useMulticallForType(watcher, cdpType) { - const { ilk } = cdpType; - const systemData = this.get(SYSTEM_DATA); - const scs = systemData.get('smartContract'); - const schema = [ - { - target: scs.getContractAddress('MCD_JUG'), - call: ['ilks(bytes32)(uint256,uint48)', toHex(ilk)], - returns: [[`ilk.${ilk}.jug.duty`], [`ilk.${ilk}.jug.rho`]] - }, - { - target: scs.getContractAddress('MCD_VAT'), - call: [ - 'ilks(bytes32)(uint256,uint256,uint256,uint256,uint256)', - toHex(ilk) - ], - returns: [ - [`ilk.${ilk}.vat.Art`], - [`ilk.${ilk}.vat.rate`], - [`ilk.${ilk}.vat.spot`], - [`ilk.${ilk}.vat.line`], - [] - ] - }, - { - target: scs.getContractAddress('MCD_SPOT'), - call: ['ilks(bytes32)(address,uint256)', toHex(ilk)], - returns: [[`ilk.${ilk}.spot.pip`], [`ilk.${ilk}.spot.mat`]] - }, - { - target: scs.getContractAddress('MCD_CAT'), - call: ['ilks(bytes32)(address,uint256,uint256)', toHex(ilk)], - returns: [ - [`ilk.${ilk}.cat.flip`], - [`ilk.${ilk}.cat.chop`], - [`ilk.${ilk}.cat.lump`] - ] - }, - { - target: scs.getContractAddress(cdpType.currency.symbol), - call: [ - 'balanceOf(address)(uint256)', - systemData.adapterAddress(cdpType.ilk) - ], - returns: [[`ilk.${ilk}.adapterBalance`]] - }, - { - target: scs.getContractAddress('MCD_SPOT'), - call: ['par()(uint256)'], - returns: [['system.par']] - } - ]; + const schema = createSchema(this); watcher.batch().subscribe(updates => { - const ilkUpdates = updates.filter(u => u.type.startsWith(`ilk.${ilk}.`)); + const ilkUpdates = updates.filter(u => u.type.startsWith('ilk.')); for (let update of ilkUpdates) { - const [, , group, key] = update.type.split('.'); + const [, ilk, group, key] = update.type.split('.'); + const cdpType = this.getCdpType(null, ilk); if (key) { set(cdpType.cache, [group + 'Info', key], update.value); @@ -113,7 +61,11 @@ export default class CdpTypeService extends PublicService { } const parUpdate = updates.find(u => u.type === 'system.par'); - if (parUpdate) cdpType.cache.par = parUpdate.value; + if (parUpdate) { + this.cdpTypes.forEach(type => { + type.cache.par = parUpdate.value; + }); + } }); watcher.tap(model => uniqWith(model.concat(schema), isEqual)); diff --git a/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js b/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js new file mode 100644 index 000000000..2bc2b1da0 --- /dev/null +++ b/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js @@ -0,0 +1,56 @@ +import { ServiceRoles } from '../constants'; +import { toHex } from '../utils/ethereum'; + +export function createSchema(cdpTypeService) { + const systemData = cdpTypeService.get(ServiceRoles.SYSTEM_DATA); + const contracts = systemData.get('smartContract'); + return cdpTypeService.cdpTypes + .map(type => createSchemaForType(type, contracts, systemData)) + .flat() + .concat({ + target: contracts.getContractAddress('MCD_SPOT'), + call: ['par()(uint256)'], + returns: [['system.par']] + }); +} + +const createSchemaForType = ({ ilk, currency }, contracts, systemData) => [ + { + target: contracts.getContractAddress('MCD_JUG'), + call: ['ilks(bytes32)(uint256,uint48)', toHex(ilk)], + returns: [[`ilk.${ilk}.jug.duty`], [`ilk.${ilk}.jug.rho`]] + }, + { + target: contracts.getContractAddress('MCD_VAT'), + call: [ + 'ilks(bytes32)(uint256,uint256,uint256,uint256,uint256)', + toHex(ilk) + ], + returns: [ + [`ilk.${ilk}.vat.Art`], + [`ilk.${ilk}.vat.rate`], + [`ilk.${ilk}.vat.spot`], + [`ilk.${ilk}.vat.line`], + [] + ] + }, + { + target: contracts.getContractAddress('MCD_SPOT'), + call: ['ilks(bytes32)(address,uint256)', toHex(ilk)], + returns: [[`ilk.${ilk}.spot.pip`], [`ilk.${ilk}.spot.mat`]] + }, + { + target: contracts.getContractAddress('MCD_CAT'), + call: ['ilks(bytes32)(address,uint256,uint256)', toHex(ilk)], + returns: [ + [`ilk.${ilk}.cat.flip`], + [`ilk.${ilk}.cat.chop`], + [`ilk.${ilk}.cat.lump`] + ] + }, + { + target: contracts.getContractAddress(currency.symbol), + call: ['balanceOf(address)(uint256)', systemData.adapterAddress(ilk)], + returns: [[`ilk.${ilk}.adapterBalance`]] + } +]; diff --git a/packages/dai-plugin-mcd/test/multicall.spec.js b/packages/dai-plugin-mcd/test/multicall.spec.js index 751ef90d0..c05ea12e5 100644 --- a/packages/dai-plugin-mcd/test/multicall.spec.js +++ b/packages/dai-plugin-mcd/test/multicall.spec.js @@ -64,5 +64,39 @@ describe('CdpType integration', () => { const expectedPrice = USD(150).div(ETH(1)); expect(ethA.price.eq(expectedPrice)).toBeTruthy(); + + const repA = cts.getCdpType(null, 'REP-A'); + expect(repA.cache).toEqual({ + adapterBalance: '0', + catInfo: { + chop: '1080000000000000000000000000', + flip: expect.any(String), + lump: '1500000000000000000000' + }, + jugInfo: { + duty: '1000000003022265980097387650', + rho: '1563241298' + }, + par: '1000000000000000000000000000', + spotInfo: { + mat: '1800000000000000000000000000', + pip: expect.any(String) + }, + vatInfo: { + Art: '0', + line: '5000000000000000000000000000000000000000000000000', + rate: '1000000000000000000000000000', + spot: '11111111111111111111111111111' + } + }); + + // testing these separately because they're EIP55 checksum addresses + expect(repA.cache.spotInfo.pip.toLowerCase()).toEqual( + scs.getContractAddress('PIP_REP') + ); + expect(repA.cache.catInfo.flip.toLowerCase()).toEqual( + scs.getContractAddress('MCD_FLIP_REP_A') + ); + }); }); From d3d902961fca79e8dbaa9c6af02883f3c897f2a7 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 18:30:01 -0700 Subject: [PATCH 22/39] stub out MulticallService --- packages/dai-plugin-mcd/package.json | 1 - packages/dai-plugin-mcd/src/CdpTypeService.js | 6 ++--- packages/dai/package.json | 3 ++- .../dai/src/config/DefaultServiceProvider.js | 3 +++ packages/dai/src/eth/MulticallService.js | 26 +++++++++++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 packages/dai/src/eth/MulticallService.js diff --git a/packages/dai-plugin-mcd/package.json b/packages/dai-plugin-mcd/package.json index 677ba4276..7f434f8c2 100644 --- a/packages/dai-plugin-mcd/package.json +++ b/packages/dai-plugin-mcd/package.json @@ -18,7 +18,6 @@ }, "dependencies": { "@makerdao/currency": "^0.9.5", - "@makerdao/multicall": "^0.7.0", "@makerdao/services-core": "^0.9.5", "bignumber.js": "^8.1.1" } diff --git a/packages/dai-plugin-mcd/src/CdpTypeService.js b/packages/dai-plugin-mcd/src/CdpTypeService.js index af4477ad3..20d109894 100644 --- a/packages/dai-plugin-mcd/src/CdpTypeService.js +++ b/packages/dai-plugin-mcd/src/CdpTypeService.js @@ -2,7 +2,6 @@ import { PublicService } from '@makerdao/services-core'; import CdpType from './CdpType'; import { ServiceRoles } from './constants'; import assert from 'assert'; -import { toHex } from './utils/ethereum'; import isEqual from 'lodash/isEqual'; import set from 'lodash/set'; import uniqWith from 'lodash/uniqWith'; @@ -11,7 +10,7 @@ import { createSchema } from './CdpTypeService/multicall'; export default class CdpTypeService extends PublicService { constructor(name = CDP_TYPE) { - super(name, [SYSTEM_DATA, QUERY_API]); + super(name, [SYSTEM_DATA, QUERY_API, 'multicall']); } initialize(settings = {}) { @@ -38,8 +37,9 @@ export default class CdpTypeService extends PublicService { assert(types.length > 0, `${label} matches no cdp type`); } - useMulticall(watcher) { + useMulticall() { const schema = createSchema(this); + const { watcher } = this.get('multicall'); watcher.batch().subscribe(updates => { const ilkUpdates = updates.filter(u => u.type.startsWith('ilk.')); diff --git a/packages/dai/package.json b/packages/dai/package.json index 3391ee326..84a14a1ef 100644 --- a/packages/dai/package.json +++ b/packages/dai/package.json @@ -52,7 +52,8 @@ "dependencies": { "@babel/runtime": "^7.3.4", "@makerdao/currency": "^0.9.5", - "@makerdao/services-core": "^0.9.9", + "@makerdao/multicall": "^0.7.0", + "@makerdao/services-core": "^0.9.8", "assert": "^1.4.1", "bignumber.js": "^7.2.1", "chalk": "^2.4.1", diff --git a/packages/dai/src/config/DefaultServiceProvider.js b/packages/dai/src/config/DefaultServiceProvider.js index 6a53dc27f..f7063aac3 100644 --- a/packages/dai/src/config/DefaultServiceProvider.js +++ b/packages/dai/src/config/DefaultServiceProvider.js @@ -8,6 +8,7 @@ import EthereumCdpService from '../eth/EthereumCdpService'; import EthereumTokenService from '../eth/EthereumTokenService'; import EventService from '../utils/events/EventService'; import GasService from '../eth/GasService'; +import MulticallService from '../eth/MulticallService'; import NonceService from '../eth/NonceService'; import NullEventService from '../utils/events/NullEventService'; import NullLogger from '../utils/loggers/NullLogger'; @@ -29,6 +30,7 @@ export const resolver = { event: 'EventService', gas: 'GasService', log: 'ConsoleLogger', + multicall: 'MulticallService', nonce: 'NonceService', price: 'PriceService', proxy: 'DSProxyService', @@ -67,6 +69,7 @@ export default class DefaultServiceProvider extends ServiceProvider { EthereumTokenService, EventService, GasService, + MulticallService, NonceService, NullEventService, NullLogger, diff --git a/packages/dai/src/eth/MulticallService.js b/packages/dai/src/eth/MulticallService.js new file mode 100644 index 000000000..811f94d86 --- /dev/null +++ b/packages/dai/src/eth/MulticallService.js @@ -0,0 +1,26 @@ +import { PublicService } from '@makerdao/services-core'; +import { createWatcher } from '@makerdao/multicall'; + +export default class MulticallService extends PublicService { + constructor(name = 'multicall') { + super(name, ['web3', 'smartContract']); + } + + connect() { + const { rpcUrl } = this.get('web3'); + const multicallAddress = this.get('smartContract').getContractAddress( + 'MULTICALL' + ); + this._watcher = createWatcher([], { rpcUrl, multicallAddress }); + } + + disconnect() { + // TODO + } + + get watcher() { + return this._watcher; + } + + // TODO handle rpc url changes +} From 3c5da88360ced9ca37a938ae7a379b43cc5678dc Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 18:44:10 -0700 Subject: [PATCH 23/39] update test --- packages/dai-plugin-mcd/test/multicall.spec.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/dai-plugin-mcd/test/multicall.spec.js b/packages/dai-plugin-mcd/test/multicall.spec.js index c05ea12e5..11d0637b9 100644 --- a/packages/dai-plugin-mcd/test/multicall.spec.js +++ b/packages/dai-plugin-mcd/test/multicall.spec.js @@ -1,4 +1,3 @@ -import { createWatcher } from '@makerdao/multicall'; import { mcdMaker } from './helpers'; import { ServiceRoles } from '../src/constants'; import { ETH, USD } from '@makerdao/dai'; @@ -13,11 +12,7 @@ describe('CdpType integration', () => { }); scs = maker.service('smartContract'); - watcher = createWatcher([], { - rpcUrl: maker.service('web3').rpcUrl, - multicallAddress: scs.getContractAddress('MULTICALL'), - config: { interval: 50 } - }); + watcher = maker.service('multicall').watcher; }); test('populate CdpType cache', async () => { @@ -25,7 +20,7 @@ describe('CdpType integration', () => { const ethA = cts.getCdpType(null, 'ETH-A'); expect(ethA.cache).toEqual({}); - cts.useMulticall(watcher); + cts.useMulticall(); watcher.start(); await watcher.awaitInitialFetch(); From af2933e1ce101bd5a146b7f8df3104c9bec37b67 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 18:59:40 -0700 Subject: [PATCH 24/39] remove async methods from ManagedCdp --- packages/dai-plugin-mcd/src/CdpManager.js | 2 +- packages/dai-plugin-mcd/src/ManagedCdp.js | 60 ------------------- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 11 ++-- 3 files changed, 5 insertions(+), 68 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index dfc8c2a74..20fef267a 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -56,7 +56,7 @@ export default class CdpManager extends LocalService { const debts = await Promise.all( ids.map(c => { const cdp = new ManagedCdp(c.id, c.ilk, this); - return cdp.getDebtValue(); + return cdp.prefetch().then(() => cdp.debtValue); }) ); return debts.reduce((a, b) => a.plus(b)); diff --git a/packages/dai-plugin-mcd/src/ManagedCdp.js b/packages/dai-plugin-mcd/src/ManagedCdp.js index 8f85d4ec2..1fe674f12 100644 --- a/packages/dai-plugin-mcd/src/ManagedCdp.js +++ b/packages/dai-plugin-mcd/src/ManagedCdp.js @@ -20,29 +20,14 @@ export default class ManagedCdp { if (options.prefetch) this.prefetch(); } - async getCollateralAmount() { - await this._getUrnInfo(); - return this.collateralAmount; - } - get collateralAmount() { return math.collateralAmount(this.currency, this._getCached('urnInfo').ink); } - async getCollateralValue() { - await Promise.all([this._getUrnInfo(), this.type.getPrice()]); - return this.collateralValue; - } - get collateralValue() { return math.collateralValue(this.collateralAmount, this.type.price); } - async getDebtValue() { - await Promise.all([this.type.ilkInfo(), this._getUrnInfo()]); - return this.debtValue; - } - get debtValue() { return math.debtValue( this._getCached('urnInfo').art, @@ -50,24 +35,10 @@ export default class ManagedCdp { ); } - async getCollateralizationRatio() { - await Promise.all([this.getCollateralValue(), this.getDebtValue()]); - return this.collateralizationRatio; - } - get collateralizationRatio() { return math.collateralizationRatio(this.collateralValue, this.debtValue); } - async getLiquidationPrice() { - await Promise.all([ - this.type.getLiquidationRatio(), - this.getDebtValue(), - this.getCollateralAmount() - ]); - return this.liquidationPrice; - } - get liquidationPrice() { return math.liquidationPrice( this.collateralAmount, @@ -76,24 +47,10 @@ export default class ManagedCdp { ); } - async getIsSafe() { - await Promise.all([this.getLiquidationPrice(), this.type.getPrice()]); - return this.isSafe; - } - get isSafe() { return this.type.price.gte(this.liquidationPrice); } - async getMinSafeCollateralAmount() { - await Promise.all([ - this.getDebtValue(), - this.type.getLiquidationRatio(), - this.type.getPrice() - ]); - return this.minSafeCollateralAmount; - } - get minSafeCollateralAmount() { return math.minSafeCollateralAmount( this.debtValue, @@ -102,27 +59,10 @@ export default class ManagedCdp { ); } - async getCollateralAvailable() { - await Promise.all([ - this.getCollateralAmount(), - this.getMinSafeCollateralAmount() - ]); - return this.collateralAvailable; - } - get collateralAvailable() { return this.collateralAmount.minus(this.minSafeCollateralAmount); } - async getDaiAvailable() { - await Promise.all([ - this.getCollateralValue(), - this.type.getLiquidationRatio(), - this.getDebtValue() - ]); - return this.daiAvailable; - } - get daiAvailable() { return math.daiAvailable( this.collateralValue, diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 083e87bff..f42f39d20 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -47,15 +47,12 @@ test('prevent freeing the wrong collateral type', async () => { } }); -test('getLiquidationPrice and getCollateralizationRatio returns infinity with 0 collateral and 0 debt', async () => { +test('liquidationPrice and collateralizationRatio are infinite with 0 collateral and 0 debt', async () => { const cdp = await maker.service(CDP_MANAGER).open('REP-A'); - const [price, collateralization] = await Promise.all([ - cdp.getLiquidationPrice(), - cdp.getCollateralizationRatio() - ]); + await cdp.prefetch(); const ratio = createCurrencyRatio(USD, REP); - expect(price).toEqual(ratio(Infinity)); - expect(collateralization).toBe(Infinity); + expect(cdp.liquidationPrice).toEqual(ratio(Infinity)); + expect(cdp.collateralizationRatio).toEqual(Infinity); }); async function expectValues( From 05e354e2ab4f21cd9dccfbe7e33b6ae0b5339ef1 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 19:04:49 -0700 Subject: [PATCH 25/39] expectValuesAfterReset --- packages/dai-plugin-mcd/src/ManagedCdp.js | 3 ++ .../dai-plugin-mcd/test/ManagedCdp.spec.js | 29 ++++++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/packages/dai-plugin-mcd/src/ManagedCdp.js b/packages/dai-plugin-mcd/src/ManagedCdp.js index 1fe674f12..76e40dc78 100644 --- a/packages/dai-plugin-mcd/src/ManagedCdp.js +++ b/packages/dai-plugin-mcd/src/ManagedCdp.js @@ -87,6 +87,9 @@ export default class ManagedCdp { return this._cdpManager.getUrn(this.id); } + // TODO: after these operations complete, update the cache. once that's done, + // update ManagedCdp.spec to use expectValues instead of + // expectValuesAfterReset in more places lockCollateral(amount, { promise } = {}) { amount = castAsCurrency(amount, this.currency); return this._cdpManager.lock(this.id, this.ilk, amount, { promise }); diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index f42f39d20..30fd4865f 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -55,10 +55,15 @@ test('liquidationPrice and collateralizationRatio are infinite with 0 collateral expect(cdp.collateralizationRatio).toEqual(Infinity); }); +async function expectValuesAfterReset(cdp, values) { + cdp.reset(); + await cdp.prefetch(); + return expectValues(cdp, values); +} + async function expectValues( cdp, { - reset, collateral, debt, myGem, @@ -69,10 +74,6 @@ async function expectValues( daiAvailable } ) { - if (reset) { - cdp.reset(); - await cdp.prefetch(); - } if (collateral !== undefined) { expect(cdp.collateralAmount).toEqual(cdp.currency(collateral)); } @@ -178,15 +179,13 @@ describe.each([ }); await cdp.lockCollateral(1); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { collateral: 2, myGem: startingGemBalance.minus(2) }); await cdp.lockAndDraw(1, 5); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { collateral: 3, debt: 5, myDai: startingDaiBalance.plus(5), @@ -194,8 +193,7 @@ describe.each([ }); await cdp.freeCollateral(0.8); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { collateral: 2.2, myGem: startingGemBalance.minus(2.2) }); @@ -236,8 +234,7 @@ describe.each([ txMgr.listen(draw, drawHandler); await draw; expect(drawHandler.mock.calls.length).toBe(2); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { debt: 2, myDai: startingDaiBalance.plus(2) }); @@ -250,15 +247,13 @@ describe.each([ txMgr.listen(wipe, wipeHandler); await wipe; expect(wipeHandler.mock.calls.length).toBe(2); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { debt: 1.5, myDai: startingDaiBalance.plus(1.5) }); await cdp.wipeAndFree(MDAI(1), GEM(0.5)); - await expectValues(cdp, { - reset: true, + await expectValuesAfterReset(cdp, { collateral: 0.5, debt: 0.5, myDai: startingDaiBalance.plus(0.5), From 99b9f6bb642f71d779d0c7a55b7827fb2d5b5e50 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Thu, 8 Aug 2019 20:21:39 -0700 Subject: [PATCH 26/39] remove async getters from CdpType --- packages/dai-plugin-mcd/src/CdpType.js | 129 +++--------------- packages/dai-plugin-mcd/src/CdpTypeService.js | 6 + packages/dai-plugin-mcd/test/CdpType.spec.js | 63 +++------ .../dai-plugin-mcd/test/ManagedCdp.spec.js | 6 +- packages/dai-plugin-mcd/test/index.spec.js | 5 +- packages/dai/src/eth/MulticallService.js | 3 + 6 files changed, 59 insertions(+), 153 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpType.js b/packages/dai-plugin-mcd/src/CdpType.js index 923a273b1..faf269cf1 100644 --- a/packages/dai-plugin-mcd/src/CdpType.js +++ b/packages/dai-plugin-mcd/src/CdpType.js @@ -1,7 +1,7 @@ import assert from 'assert'; import { ServiceRoles } from './constants'; import { stringToBytes } from './utils'; -import { MDAI, USD, ETH, MWETH } from './index'; +import { MDAI, ETH, MWETH } from './index'; import * as math from './math'; export default class CdpType { @@ -22,31 +22,8 @@ export default class CdpType { if (options.prefetch) this.prefetch(); } - async getTotalCollateral(unit = this.currency) { - let { symbol } = this.currency; - - // we handle ETH ilks differently because their adapters are GemJoins which - // convert the ETH to WETH, so we need to check the WETH balance - if (this.currency === ETH) symbol = MWETH.symbol; - - const token = this._systemData.get('token').getToken(symbol); - const adapterAddress = this._systemData.adapterAddress(this.ilk); - let value = await token.balanceOf(adapterAddress); - - if (this.currency === ETH) value = ETH(value); - if (unit === this.currency) return value; - if (unit === USD) return value.times(await this.getPrice()); - - throw new Error( - `Don't know how to get total collateral in ${ - unit.symbol ? unit.symbol : unit - }` - ); - } - - async getTotalDebt() { - await this._getVatInfo(); - return this.totalDebt; + get totalCollateral() { + return this.currency(this._getCached('adapterBalance')); } get totalDebt() { @@ -56,33 +33,14 @@ export default class CdpType { .shiftedBy(-27); } - async getDebtCeiling() { - await this._getVatInfo(); - return this.debtCeiling; - } - get debtCeiling() { return math.debtCeiling(this._getCached('vatInfo').line); } - async getLiquidationRatio() { - await this._getSpotInfo(); - return this.liquidationRatio; - } - get liquidationRatio() { return math.liquidationRatio(this._getCached('spotInfo').mat); } - async getPrice() { - await Promise.all([ - this._getVatInfo(), - this._getSpotInfo(), - this._getPar() - ]); - return this.price; - } - get price() { return math.price( this.currency, @@ -92,20 +50,10 @@ export default class CdpType { ); } - async getLiquidationPenalty() { - await this._getCatInfo(); - return this.liquidationPenalty; - } - get liquidationPenalty() { return math.liquidationPenalty(this._getCached('catInfo').chop); } - async getAnnualStabilityFee() { - await this._getJugInfo(); - return this.annualStabilityFee; - } - get annualStabilityFee() { return math.annualStabilityFee(this._getCached('jugInfo').duty); } @@ -135,64 +83,31 @@ export default class CdpType { return this._systemData.get('smartContract').getContractAddress(contract); } - async _getPar() { - if (!this._parPromise) this._parPromise = this._systemData.spot.par(); - return this._parPromise.then(value => { - this.cache.par = value; - return value; - }); - } - - async _getVatInfo() { - if (!this._vatInfoPromise) this._vatInfoPromise = this.ilkInfo(); - return this._vatInfoPromise.then(value => { - this.cache.vatInfo = value; - return value; - }); - } - - async _getCatInfo() { - if (!this._catInfoPromise) this._catInfoPromise = this.ilkInfo('cat'); - return this._catInfoPromise.then(value => { - this.cache.catInfo = value; - return value; - }); - } - - async _getSpotInfo() { - if (!this._spotInfoPromise) this._spotInfoPromise = this.ilkInfo('spot'); - return this._spotInfoPromise.then(value => { - this.cache.spotInfo = value; - return value; - }); - } - - async _getJugInfo() { - if (!this._jugInfoPromise) this._jugInfoPromise = this.ilkInfo('jug'); - return this._jugInfoPromise.then(value => { - this.cache.jugInfo = value; - return value; - }); - } - async prefetch() { // TODO allow passing in a multicall instance to use that instead of making // separate calls - return Promise.all([ - this._getPar(), - this._getVatInfo(), - this._getCatInfo(), - this._getSpotInfo(), - this._getJugInfo() - ]); + if (!this._prefetchPromise) { + const adapterAddress = this._systemData.adapterAddress(this.ilk); + const { symbol } = this.currency === ETH ? MWETH : this.currency; + + this._prefetchPromise = Promise.all([ + this._systemData + .get('token') + .getToken(symbol) + .balanceOf(adapterAddress) + .then(x => (this.cache.adapterBalance = x)), + this.ilkInfo().then(x => (this.cache.vatInfo = x)), + this.ilkInfo('cat').then(x => (this.cache.catInfo = x)), + this.ilkInfo('jug').then(x => (this.cache.jugInfo = x)), + this.ilkInfo('spot').then(x => (this.cache.spotInfo = x)), + this._systemData.spot.par().then(x => (this.cache.par = x)) + ]); + } + return this._prefetchPromise; } async reset() { - this._parPromise = null; - this._vatInfoPromise = null; - this._catInfoPromise = null; - this._spotInfoPromise = null; - this._jugInfoPromise = null; + this._prefetchPromise = null; this.cache = {}; } diff --git a/packages/dai-plugin-mcd/src/CdpTypeService.js b/packages/dai-plugin-mcd/src/CdpTypeService.js index 20d109894..9d6518ae1 100644 --- a/packages/dai-plugin-mcd/src/CdpTypeService.js +++ b/packages/dai-plugin-mcd/src/CdpTypeService.js @@ -20,6 +20,12 @@ export default class CdpTypeService extends PublicService { ); } + async connect() { + if (this.settings.prefetch) { + await Promise.all(this.cdpTypes.map(type => type.prefetch())); + } + } + getCdpType(currency, ilk) { const types = this.cdpTypes.filter( t => (!currency || t.currency === currency) && (!ilk || ilk === t.ilk) diff --git a/packages/dai-plugin-mcd/test/CdpType.spec.js b/packages/dai-plugin-mcd/test/CdpType.spec.js index c39a55fc1..090a5fc24 100644 --- a/packages/dai-plugin-mcd/test/CdpType.spec.js +++ b/packages/dai-plugin-mcd/test/CdpType.spec.js @@ -1,7 +1,7 @@ import { createCurrencyRatio } from '@makerdao/currency'; import { mcdMaker, setupCollateral } from './helpers'; import { ServiceRoles } from '../src/constants'; -import { ETH, MDAI, MKR, USD, REP } from '../src'; +import { ETH, MDAI, USD, REP } from '../src'; const { CDP_MANAGER, CDP_TYPE, QUERY_API } = ServiceRoles; let maker, service; @@ -29,72 +29,53 @@ const systemValues = { }; describe.each(scenarios)('%s', (ilk, GEM) => { + const price = 10; let cdpType, ratio; beforeAll(async () => { - service = maker.service(CDP_TYPE); - cdpType = service.getCdpType(GEM, ilk); - cdpType.reset(); ratio = createCurrencyRatio(USD, GEM); - - await setupCollateral(maker, ilk, { price: 10, debtCeiling: 111 }); + await setupCollateral(maker, ilk, { price, debtCeiling: 111 }); for (let i = 0; i < 2; i++) { await maker.service(CDP_MANAGER).openLockAndDraw(ilk, GEM(1), 2); } - }); - test('get total collateral', async () => { - const total = await cdpType.getTotalCollateral(); - expect(total).toEqual(GEM(systemValues[ilk][0])); + cdpType = service.getCdpType(GEM, ilk); + cdpType.reset(); + await cdpType.prefetch(); }); - test('get total collateral in USD', async () => { - const collateral = await cdpType.getTotalCollateral(USD); - expect(collateral.toNumber()).toEqual( - USD(systemValues[ilk][0] * 10).toNumber() + test('get total collateral', () => { + expect(cdpType.totalCollateral).toEqual(GEM(systemValues[ilk][0])); + expect(cdpType.totalCollateral.times(cdpType.price).toNumber()).toEqual( + USD(systemValues[ilk][0] * price).toNumber() ); }); - test('throw error for invalid collateral type', async () => { - expect.assertions(1); - try { - await cdpType.getTotalCollateral(MKR); - } catch (err) { - expect(err.message).toMatch( - /Don't know how to get total collateral in MKR/ - ); - } + test('get total debt', () => { + expect(cdpType.totalDebt).toEqual(MDAI(systemValues[ilk][1])); }); - test('get total debt', async () => { - const debt = await cdpType.getTotalDebt(); - expect(debt.toNumber()).toBeCloseTo(systemValues[ilk][1]); + test('get debt ceiling', () => { + expect(cdpType.debtCeiling).toEqual(MDAI(systemValues[ilk][2])); }); - test('get debt ceiling', async () => { - const ceiling = await cdpType.getDebtCeiling(); - expect(ceiling).toEqual(MDAI(systemValues[ilk][2])); + test('get liquidation ratio', () => { + expect(cdpType.liquidationRatio.toNumber()).toBe(systemValues[ilk][3]); }); - test('get liquidation ratio', async () => { - const ratio = await cdpType.getLiquidationRatio(); - expect(ratio.toNumber()).toBe(systemValues[ilk][3]); - }); - - test('get price', async () => { - const price = await cdpType.getPrice(); - expect(price.toNumber()).toBe(ratio(10).toNumber()); + test('get price', () => { + expect(cdpType.price.toNumber()).toBe(ratio(price).toNumber()); }); test('get liquidation penalty', async () => { - const penalty = await cdpType.getLiquidationPenalty(); - expect(penalty).toBe(systemValues[ilk][4]); + expect(cdpType.liquidationPenalty).toBe(systemValues[ilk][4]); }); test('get annual stability fee', async () => { - const penalty = await cdpType.getAnnualStabilityFee(); - expect((penalty * 100).toFixed(1)).toBe(systemValues[ilk][5]); + expect((cdpType.annualStabilityFee * 100).toFixed(1)).toBe( + systemValues[ilk][5] + ); }); test('get price history', async () => { diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 30fd4865f..0a639673f 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -210,10 +210,10 @@ describe.each([ myGem: startingGemBalance.minus(1) }); cdp.type.reset(); - const price = await cdp.type.getPrice(); + await cdp.type.prefetch(); await expectValues(cdp, { - val: price.toNumber(), - ratio: price.toNumber(), + val: cdp.type.price.toNumber(), + ratio: cdp.type.price.toNumber(), isSafe: true, daiAvailable: '149' }); diff --git a/packages/dai-plugin-mcd/test/index.spec.js b/packages/dai-plugin-mcd/test/index.spec.js index bc793c11a..cbc5fd894 100644 --- a/packages/dai-plugin-mcd/test/index.spec.js +++ b/packages/dai-plugin-mcd/test/index.spec.js @@ -5,7 +5,7 @@ import addresses from '../contracts/addresses/testnet.json'; let maker; beforeAll(async () => { - maker = await mcdMaker(); + maker = await mcdMaker({ prefetch: false }); }); test('contract address mapping', async () => { @@ -20,7 +20,8 @@ test('contract address overrides', async () => { const addr2 = '0xa0b85e616f0e7997982d57b2d5984a994f657a8d'; const maker2 = await mcdMaker({ - addressOverrides: { PIP_ETH: addr1, REP: addr2 } + addressOverrides: { PIP_ETH: addr1, REP: addr2 }, + prefetch: false }); const scs = maker2.service('smartContract'); diff --git a/packages/dai/src/eth/MulticallService.js b/packages/dai/src/eth/MulticallService.js index 811f94d86..ce5ce76ab 100644 --- a/packages/dai/src/eth/MulticallService.js +++ b/packages/dai/src/eth/MulticallService.js @@ -6,6 +6,9 @@ export default class MulticallService extends PublicService { super(name, ['web3', 'smartContract']); } + // TODO allow disabling multicall + // initialize(settings = {}) { } + connect() { const { rpcUrl } = this.get('web3'); const multicallAddress = this.get('smartContract').getContractAddress( From 8d0fc69fecf15fa074f961a2beef1343a54d0521 Mon Sep 17 00:00:00 2001 From: Lawrence Wang Date: Tue, 13 Aug 2019 12:55:13 -0700 Subject: [PATCH 27/39] revert multicall-related changes --- packages/dai-plugin-mcd/src/CdpTypeService.js | 40 +------- .../src/CdpTypeService/multicall.js | 56 ----------- packages/dai-plugin-mcd/src/utils/ethereum.js | 15 --- .../dai-plugin-mcd/test/ManagedCdp.spec.js | 4 +- .../dai-plugin-mcd/test/multicall.spec.js | 97 ------------------- .../dai/src/config/DefaultServiceProvider.js | 3 - packages/dai/src/eth/MulticallService.js | 29 ------ 7 files changed, 4 insertions(+), 240 deletions(-) delete mode 100644 packages/dai-plugin-mcd/src/CdpTypeService/multicall.js delete mode 100644 packages/dai-plugin-mcd/src/utils/ethereum.js delete mode 100644 packages/dai-plugin-mcd/test/multicall.spec.js delete mode 100644 packages/dai/src/eth/MulticallService.js diff --git a/packages/dai-plugin-mcd/src/CdpTypeService.js b/packages/dai-plugin-mcd/src/CdpTypeService.js index 9d6518ae1..e1047226f 100644 --- a/packages/dai-plugin-mcd/src/CdpTypeService.js +++ b/packages/dai-plugin-mcd/src/CdpTypeService.js @@ -2,15 +2,11 @@ import { PublicService } from '@makerdao/services-core'; import CdpType from './CdpType'; import { ServiceRoles } from './constants'; import assert from 'assert'; -import isEqual from 'lodash/isEqual'; -import set from 'lodash/set'; -import uniqWith from 'lodash/uniqWith'; const { CDP_TYPE, SYSTEM_DATA, QUERY_API } = ServiceRoles; -import { createSchema } from './CdpTypeService/multicall'; export default class CdpTypeService extends PublicService { constructor(name = CDP_TYPE) { - super(name, [SYSTEM_DATA, QUERY_API, 'multicall']); + super(name, [SYSTEM_DATA, QUERY_API]); } initialize(settings = {}) { @@ -42,38 +38,4 @@ export default class CdpTypeService extends PublicService { assert(types.length <= 1, `${label} matches more than one cdp type`); assert(types.length > 0, `${label} matches no cdp type`); } - - useMulticall() { - const schema = createSchema(this); - const { watcher } = this.get('multicall'); - - watcher.batch().subscribe(updates => { - const ilkUpdates = updates.filter(u => u.type.startsWith('ilk.')); - for (let update of ilkUpdates) { - const [, ilk, group, key] = update.type.split('.'); - const cdpType = this.getCdpType(null, ilk); - - if (key) { - set(cdpType.cache, [group + 'Info', key], update.value); - } else { - switch (group) { - case 'adapterBalance': - cdpType.cache[group] = update.value; - break; - default: - throw new Error(`Don't know how to handle "${group}"`); - } - } - } - - const parUpdate = updates.find(u => u.type === 'system.par'); - if (parUpdate) { - this.cdpTypes.forEach(type => { - type.cache.par = parUpdate.value; - }); - } - }); - - watcher.tap(model => uniqWith(model.concat(schema), isEqual)); - } } diff --git a/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js b/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js deleted file mode 100644 index 2bc2b1da0..000000000 --- a/packages/dai-plugin-mcd/src/CdpTypeService/multicall.js +++ /dev/null @@ -1,56 +0,0 @@ -import { ServiceRoles } from '../constants'; -import { toHex } from '../utils/ethereum'; - -export function createSchema(cdpTypeService) { - const systemData = cdpTypeService.get(ServiceRoles.SYSTEM_DATA); - const contracts = systemData.get('smartContract'); - return cdpTypeService.cdpTypes - .map(type => createSchemaForType(type, contracts, systemData)) - .flat() - .concat({ - target: contracts.getContractAddress('MCD_SPOT'), - call: ['par()(uint256)'], - returns: [['system.par']] - }); -} - -const createSchemaForType = ({ ilk, currency }, contracts, systemData) => [ - { - target: contracts.getContractAddress('MCD_JUG'), - call: ['ilks(bytes32)(uint256,uint48)', toHex(ilk)], - returns: [[`ilk.${ilk}.jug.duty`], [`ilk.${ilk}.jug.rho`]] - }, - { - target: contracts.getContractAddress('MCD_VAT'), - call: [ - 'ilks(bytes32)(uint256,uint256,uint256,uint256,uint256)', - toHex(ilk) - ], - returns: [ - [`ilk.${ilk}.vat.Art`], - [`ilk.${ilk}.vat.rate`], - [`ilk.${ilk}.vat.spot`], - [`ilk.${ilk}.vat.line`], - [] - ] - }, - { - target: contracts.getContractAddress('MCD_SPOT'), - call: ['ilks(bytes32)(address,uint256)', toHex(ilk)], - returns: [[`ilk.${ilk}.spot.pip`], [`ilk.${ilk}.spot.mat`]] - }, - { - target: contracts.getContractAddress('MCD_CAT'), - call: ['ilks(bytes32)(address,uint256,uint256)', toHex(ilk)], - returns: [ - [`ilk.${ilk}.cat.flip`], - [`ilk.${ilk}.cat.chop`], - [`ilk.${ilk}.cat.lump`] - ] - }, - { - target: contracts.getContractAddress(currency.symbol), - call: ['balanceOf(address)(uint256)', systemData.adapterAddress(ilk)], - returns: [[`ilk.${ilk}.adapterBalance`]] - } -]; diff --git a/packages/dai-plugin-mcd/src/utils/ethereum.js b/packages/dai-plugin-mcd/src/utils/ethereum.js deleted file mode 100644 index b9cd8aaa3..000000000 --- a/packages/dai-plugin-mcd/src/utils/ethereum.js +++ /dev/null @@ -1,15 +0,0 @@ -// FIXME these were just copied from mcd-cdp-portal; -// should use a standard library for this sort of thing - -export function toHex(str, { with0x = true, rightPadding = 64 } = {}) { - let result = ''; - for (let i = 0; i < str.length; i++) { - result += str.charCodeAt(i).toString(16); - } - if (rightPadding > 0) result = padRight(result, rightPadding); - return with0x ? '0x' + result : result; -} - -export function padRight(string, chars, sign) { - return string + new Array(chars - string.length + 1).join(sign ? sign : '0'); -} diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 0a639673f..1f9fd8895 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -78,7 +78,9 @@ async function expectValues( expect(cdp.collateralAmount).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect(cdp.debtValue).toEqual(MDAI(debt)); + expect(cdp.debtValue) + .toNumber() + .toBeCloseTo(debt, 1); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); diff --git a/packages/dai-plugin-mcd/test/multicall.spec.js b/packages/dai-plugin-mcd/test/multicall.spec.js deleted file mode 100644 index 11d0637b9..000000000 --- a/packages/dai-plugin-mcd/test/multicall.spec.js +++ /dev/null @@ -1,97 +0,0 @@ -import { mcdMaker } from './helpers'; -import { ServiceRoles } from '../src/constants'; -import { ETH, USD } from '@makerdao/dai'; - -describe('CdpType integration', () => { - let watcher, maker, scs; - - beforeAll(async () => { - maker = await mcdMaker({ - prefetch: false, - web3: { pollingInterval: 20 } - }); - - scs = maker.service('smartContract'); - watcher = maker.service('multicall').watcher; - }); - - test('populate CdpType cache', async () => { - const cts = maker.service(ServiceRoles.CDP_TYPE); - const ethA = cts.getCdpType(null, 'ETH-A'); - expect(ethA.cache).toEqual({}); - - cts.useMulticall(); - watcher.start(); - await watcher.awaitInitialFetch(); - - // TODO don't hardcode all these values - expect(ethA.cache).toEqual({ - adapterBalance: '0', - par: '1000000000000000000000000000', - jugInfo: { - duty: '1000000001547125957863212448', - rho: '1563241233' - }, - vatInfo: { - Art: '0', - rate: '1000000000000000000000000000', - spot: '100000000000000000000000000000', - line: '100000000000000000000000000000000000000000000000000' - }, - spotInfo: { - pip: expect.any(String), - mat: '1500000000000000000000000000' - }, - catInfo: { - flip: expect.any(String), - chop: '1050000000000000000000000000', - lump: '1500000000000000000' - } - }); - - // testing these separately because they're EIP55 checksum addresses - expect(ethA.cache.spotInfo.pip.toLowerCase()).toEqual( - scs.getContractAddress('PIP_ETH') - ); - expect(ethA.cache.catInfo.flip.toLowerCase()).toEqual( - scs.getContractAddress('MCD_FLIP_ETH_A') - ); - - const expectedPrice = USD(150).div(ETH(1)); - expect(ethA.price.eq(expectedPrice)).toBeTruthy(); - - const repA = cts.getCdpType(null, 'REP-A'); - expect(repA.cache).toEqual({ - adapterBalance: '0', - catInfo: { - chop: '1080000000000000000000000000', - flip: expect.any(String), - lump: '1500000000000000000000' - }, - jugInfo: { - duty: '1000000003022265980097387650', - rho: '1563241298' - }, - par: '1000000000000000000000000000', - spotInfo: { - mat: '1800000000000000000000000000', - pip: expect.any(String) - }, - vatInfo: { - Art: '0', - line: '5000000000000000000000000000000000000000000000000', - rate: '1000000000000000000000000000', - spot: '11111111111111111111111111111' - } - }); - - // testing these separately because they're EIP55 checksum addresses - expect(repA.cache.spotInfo.pip.toLowerCase()).toEqual( - scs.getContractAddress('PIP_REP') - ); - expect(repA.cache.catInfo.flip.toLowerCase()).toEqual( - scs.getContractAddress('MCD_FLIP_REP_A') - ); - - }); -}); diff --git a/packages/dai/src/config/DefaultServiceProvider.js b/packages/dai/src/config/DefaultServiceProvider.js index f7063aac3..6a53dc27f 100644 --- a/packages/dai/src/config/DefaultServiceProvider.js +++ b/packages/dai/src/config/DefaultServiceProvider.js @@ -8,7 +8,6 @@ import EthereumCdpService from '../eth/EthereumCdpService'; import EthereumTokenService from '../eth/EthereumTokenService'; import EventService from '../utils/events/EventService'; import GasService from '../eth/GasService'; -import MulticallService from '../eth/MulticallService'; import NonceService from '../eth/NonceService'; import NullEventService from '../utils/events/NullEventService'; import NullLogger from '../utils/loggers/NullLogger'; @@ -30,7 +29,6 @@ export const resolver = { event: 'EventService', gas: 'GasService', log: 'ConsoleLogger', - multicall: 'MulticallService', nonce: 'NonceService', price: 'PriceService', proxy: 'DSProxyService', @@ -69,7 +67,6 @@ export default class DefaultServiceProvider extends ServiceProvider { EthereumTokenService, EventService, GasService, - MulticallService, NonceService, NullEventService, NullLogger, diff --git a/packages/dai/src/eth/MulticallService.js b/packages/dai/src/eth/MulticallService.js deleted file mode 100644 index ce5ce76ab..000000000 --- a/packages/dai/src/eth/MulticallService.js +++ /dev/null @@ -1,29 +0,0 @@ -import { PublicService } from '@makerdao/services-core'; -import { createWatcher } from '@makerdao/multicall'; - -export default class MulticallService extends PublicService { - constructor(name = 'multicall') { - super(name, ['web3', 'smartContract']); - } - - // TODO allow disabling multicall - // initialize(settings = {}) { } - - connect() { - const { rpcUrl } = this.get('web3'); - const multicallAddress = this.get('smartContract').getContractAddress( - 'MULTICALL' - ); - this._watcher = createWatcher([], { rpcUrl, multicallAddress }); - } - - disconnect() { - // TODO - } - - get watcher() { - return this._watcher; - } - - // TODO handle rpc url changes -} From 97dbaf84cf539c8aaeb9b8216bb077be624b1bbf Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 23:31:06 -0600 Subject: [PATCH 28/39] Fix conflicts with dev --- packages/dai-plugin-mcd/test/CdpType.spec.js | 2 +- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/dai-plugin-mcd/test/CdpType.spec.js b/packages/dai-plugin-mcd/test/CdpType.spec.js index 090a5fc24..734a4d53b 100644 --- a/packages/dai-plugin-mcd/test/CdpType.spec.js +++ b/packages/dai-plugin-mcd/test/CdpType.spec.js @@ -53,7 +53,7 @@ describe.each(scenarios)('%s', (ilk, GEM) => { }); test('get total debt', () => { - expect(cdpType.totalDebt).toEqual(MDAI(systemValues[ilk][1])); + expect(cdpType.totalDebt.toNumber()).toBeCloseTo(systemValues[ilk][1]); }); test('get debt ceiling', () => { diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 1f9fd8895..3161f6f42 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -78,9 +78,7 @@ async function expectValues( expect(cdp.collateralAmount).toEqual(cdp.currency(collateral)); } if (debt !== undefined) { - expect(cdp.debtValue) - .toNumber() - .toBeCloseTo(debt, 1); + expect(cdp.debtValue.toNumber()).toBeCloseTo(debt, 1); } if (myGem !== undefined) { const balance = await maker.getToken(cdp.currency).balance(); From 6d6c04a05aac7d69c7d6c59e310bd88e81fcb595 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 13 Aug 2019 23:34:54 -0600 Subject: [PATCH 29/39] Prettier --- packages/dai-plugin-mcd/src/CdpManager.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index fae017e03..20fef267a 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -98,14 +98,14 @@ export default class CdpManager extends LocalService { }); return ManagedCdp.create(await op, type.ilk, this); } - + @tracksTransactionsWithOptions({ numArguments: 5 }) async lockAndDraw(id, ilk, lockAmount, drawAmount = MDAI(0), { promise }) { assert(lockAmount && drawAmount, 'both amounts must be specified'); assert( lockAmount instanceof Currency, 'lockAmount must be a Currency value' - ); + ); drawAmount = castAsCurrency(drawAmount, MDAI); const proxyAddress = await this.get('proxy').ensureProxy({ promise }); const jugAddress = this.get('smartContract').getContractAddress('MCD_JUG'); From 2f130f640180e4a78ba4cd638c6a2c935c3586b7 Mon Sep 17 00:00:00 2001 From: Ethan Date: Wed, 14 Aug 2019 15:17:17 -0600 Subject: [PATCH 30/39] Transfer GNT to proxy before openLock transactions --- packages/dai-plugin-mcd/src/CdpManager.js | 4 ++++ packages/dai-plugin-mcd/test/CdpManager.spec.js | 2 +- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 5 ++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 20fef267a..5b7de60ce 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -127,6 +127,10 @@ export default class CdpManager extends LocalService { } ].filter(x => x); + // If opening a new GNT CDP, GNT must first be transferred + // to the proxy (so it can be transferred to the new bag) + if (method === 'openLockGNTAndDraw') + await this.get('token').getToken('GNT').transfer(proxyAddress, lockAmount); // Transfers to bag if locking GNT in existing CDP if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom diff --git a/packages/dai-plugin-mcd/test/CdpManager.spec.js b/packages/dai-plugin-mcd/test/CdpManager.spec.js index c96e634f1..3a77a2441 100644 --- a/packages/dai-plugin-mcd/test/CdpManager.spec.js +++ b/packages/dai-plugin-mcd/test/CdpManager.spec.js @@ -50,7 +50,7 @@ test('getCombinedDebtValue', async () => { cdpMgr.reset(); const currentProxy = await maker.currentProxy(); const totalDebt = await cdpMgr.getCombinedDebtValue(currentProxy); - expect(totalDebt.toNumber()).toBeCloseTo(8); + expect(totalDebt.toNumber()).toBeCloseTo(8, 1); }); test('getCdp looks up ilk', async () => { diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index 3161f6f42..c6c5e09ea 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -177,13 +177,12 @@ describe.each([ debt: 0, myGem: startingGemBalance.minus(1) }); - await cdp.lockCollateral(1); await expectValuesAfterReset(cdp, { collateral: 2, myGem: startingGemBalance.minus(2) }); - + await cdp.lockAndDraw(1, 5); await expectValuesAfterReset(cdp, { collateral: 3, @@ -191,7 +190,7 @@ describe.each([ myDai: startingDaiBalance.plus(5), myGem: startingGemBalance.minus(3) }); - + await cdp.freeCollateral(0.8); await expectValuesAfterReset(cdp, { collateral: 2.2, From e037708b742547b25b3efc227c34a255e190d306 Mon Sep 17 00:00:00 2001 From: Ethan Date: Wed, 14 Aug 2019 15:17:59 -0600 Subject: [PATCH 31/39] Prettier --- packages/dai-plugin-mcd/src/CdpManager.js | 4 +++- packages/dai-plugin-mcd/test/ManagedCdp.spec.js | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/dai-plugin-mcd/src/CdpManager.js b/packages/dai-plugin-mcd/src/CdpManager.js index 5b7de60ce..8461f40d5 100644 --- a/packages/dai-plugin-mcd/src/CdpManager.js +++ b/packages/dai-plugin-mcd/src/CdpManager.js @@ -130,7 +130,9 @@ export default class CdpManager extends LocalService { // If opening a new GNT CDP, GNT must first be transferred // to the proxy (so it can be transferred to the new bag) if (method === 'openLockGNTAndDraw') - await this.get('token').getToken('GNT').transfer(proxyAddress, lockAmount); + await this.get('token') + .getToken('GNT') + .transfer(proxyAddress, lockAmount); // Transfers to bag if locking GNT in existing CDP if (id && isGnt) await transferToBag(lockAmount, proxyAddress, this); // Indicates if gem supports transferFrom diff --git a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js index c6c5e09ea..b811185d6 100644 --- a/packages/dai-plugin-mcd/test/ManagedCdp.spec.js +++ b/packages/dai-plugin-mcd/test/ManagedCdp.spec.js @@ -182,7 +182,7 @@ describe.each([ collateral: 2, myGem: startingGemBalance.minus(2) }); - + await cdp.lockAndDraw(1, 5); await expectValuesAfterReset(cdp, { collateral: 3, @@ -190,7 +190,7 @@ describe.each([ myDai: startingDaiBalance.plus(5), myGem: startingGemBalance.minus(3) }); - + await cdp.freeCollateral(0.8); await expectValuesAfterReset(cdp, { collateral: 2.2, From 32148e017d0967a073748833b1684bf052ff65d8 Mon Sep 17 00:00:00 2001 From: Ethan Date: Wed, 14 Aug 2019 15:33:19 -0600 Subject: [PATCH 32/39] Update kovan addresses --- .../contracts/addresses/kovan.json | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/dai-plugin-mcd/contracts/addresses/kovan.json b/packages/dai-plugin-mcd/contracts/addresses/kovan.json index 5bf318f1c..11a3c35c7 100644 --- a/packages/dai-plugin-mcd/contracts/addresses/kovan.json +++ b/packages/dai-plugin-mcd/contracts/addresses/kovan.json @@ -1,76 +1,76 @@ { "DEPLOYER": "0x61de44946D6b809a30D8e6A236157966659f9640", - "MULTICALL": "0x36b468a9cf4a7a00188731257582dfe5c2141896", + "MULTICALL": "0x34b5bd422b27a8c8eaf3f80b940367d975c8f6e1", "FAUCET": "0x94598157fcf0715c3bc9b4a35450cce82ac57b20", - "MCD_DEPLOY": "0x8600f5b33aebc97202ccec04eb36a5a233dabe18", + "MCD_DEPLOY": "0x6146433a8ec1ac6cf100acf2ab09a81912393ed2", "MCD_GOV": "0xaaf64bfcc32d0f15873a02163e7e500671a4ffcd", - "MCD_GOV_GUARD": "0x1d2f30363fb30c6ba3a26f5c0ab9f3e77197aefc", - "MCD_IOU": "0x52d54e192d1d2eff3319427bbfede0b79855e2aa", - "MCD_ADM": "0x03358a3959247ae8de50a52c7919b88ab5989b85", - "VOTE_PROXY_FACTORY": "0xe743525d0653bdf291f835a19e493bb3d1026ab9", - "MCD_VAT": "0x5ce1e3c8ba1363c7a87f5e9118aac0db4b0f0691", - "MCD_JUG": "0x1ff7cb4126d7690daaa1c0f1ba58bab06d53d4b8", - "MCD_CAT": "0xfd5db7bd95c6a53f805dc2c631e62803e17de609", - "MCD_VOW": "0x43d3fa1c52933c4ff13628e43279f17d97cbbe9a", - "MCD_JOIN_DAI": "0xe70a5307f5132ee3a6a056c5efb7d5a53f3cdbd7", - "MCD_FLAP": "0xec9f745bfd0835dbea3c0c61a0cc6a15f68c5a31", - "MCD_FLOP": "0xeedcbe2ecec652617f5757688a73745a3905cc14", - "MCD_PAUSE": "0x8fe4f004ed32c0d11d00de9f7aa65a37815211ae", - "MCD_PAUSE_PROXY": "0xd8439f40a308964666800c03fb746e32901eb0e8", - "MCD_GOV_ACTIONS": "0x7e6c691559395329149aefd4bfaed2689130bb3b", - "MCD_DAI": "0x5944413037920674d39049ec4844117a031eaa74", - "MCD_SPOT": "0xcf68a9dc1e17a0d56ffedfb7e96ed6bf7e84458a", - "MCD_POT": "0x570d432df425937d0b83077dafe16a728c1c3438", - "MCD_END": "0xc6cd35939523d258d5c28febf6017635a4ea858d", - "MCD_ESM": "0xb4a9e253cb9b13109ac89fea50f2b33f6eafe825", - "PROXY_ACTIONS": "0xc8c1351cadc005390fd1afa1eaf25c679d8b599c", - "CDP_MANAGER": "0x772ff99b5aae3d51512d73c04f763c73adc7a86a", - "GET_CDPS": "0xda50a754d77e5a4432acc01b55625d58a3821fb9", - "PROXY_FACTORY": "0xff8f45417d818dc4e070389ad2b876f132605a2f", - "PROXY_REGISTRY": "0x1935399ecbeefbfe23b58213c5acddfbcb2ed4d9", + "MCD_GUARD": "0x0de879766490e497025738ae29bb8cc533eb355d", + "MCD_ADM": "0x3d434d7625721aa31ddbf9f98825aca6ba4b685f", + "MCD_IOU": "0xc52362382417f56e85e7e030b786972a1a2edd0b", + "VOTE_PROXY_FACTORY": "0x984c18e3f8a8582cedaa5b96e2c7399f0a2b022b", + "MCD_VAT": "0x04c67ea772ebb467383772cb1b64c7a9b1e02bca", + "MCD_JUG": "0xeffb135cf2e4911de9e478679d358c9df246424a", + "MCD_CAT": "0x505795bd482f24da52bba25c072a833696d8c6ee", + "MCD_VOW": "0x5fd6598a1f6a3b5fe78627fa72107d4a9fadf348", + "MCD_JOIN_DAI": "0xcf20652c7e9ff777fcb3772b594e852d1154174d", + "MCD_FLAP": "0x43920251323f05139c76bd75771fd3ab8e5a6dad", + "MCD_FLOP": "0xd5f64f76ce8047e8978707a00fa4c143405e9e37", + "MCD_PAUSE": "0xb5bb144eb951a8060d6ac186aee694187e2d037d", + "MCD_PAUSE_PROXY": "0xd16ba625e0b981c73fba249db64b523eade884a4", + "MCD_GOV_ACTIONS": "0xed0150fc2eb6f280af552fbdf3cbd5f66d3c7d1f", + "MCD_DAI": "0xdb6a55a94e0dd324292f3d05cf504c751b31cee2", + "MCD_SPOT": "0x2403ddca8715427fdb04f9e70d8989cddab06b67", + "MCD_POT": "0xe019a058adcd42e34a456f3b86466ddd103027e4", + "MCD_END": "0xdf72153215205ae87b4cf388866064ce234b35a5", + "MCD_ESM": "0xce1db78a9d5ff7520430421f8fa5f7744021dd3e", + "PROXY_ACTIONS": "0x4e8fa882ce2127b50e508d3abfa6be12911b0c05", + "CDP_MANAGER": "0x7a4991c6bd1053c31f1678955ce839999d9841b1", + "GET_CDPS": "0xcc1ba3ee9cd1e06765ae41a195723bbe97de4ed1", + "PROXY_FACTORY": "0xe11e3b391f7e8bc47247866af32af67dd58dc800", + "PROXY_REGISTRY": "0x64a436ae831c1672ae81f674cab8b6775df3475c", "ETH": "0xd0a1e359811322d97991e03f863a0c30c2cf029c", "VAL_ETH": "0x75dd74e8afe8110c8320ed397cccff3b8134d981", "PIP_ETH": "0x75dd74e8afe8110c8320ed397cccff3b8134d981", - "MCD_JOIN_ETH_A": "0xca512f193650db9a55aba9e61a7ec0b0b5aea0b7", - "MCD_FLIP_ETH_A": "0x9d18e462b23ffc45ce6136a76dff82c4c55702be", - "MCD_JOIN_ETH_B": "0x9f5611179d416f977fe85896ce15816fd3d152ee", - "MCD_FLIP_ETH_B": "0xdcdf9f7504727aa2b7299c3f0d9fb661a2febfcd", - "MCD_JOIN_ETH_C": "0xc7a0aa2565a2081636697e4e40f300e74e77c3a0", - "MCD_FLIP_ETH_C": "0xc387636fe80a031f48839be73727d52985bf3f41", + "MCD_JOIN_ETH_A": "0x004ddbf22b90cc5ce715be6096ac2fd89b514bf6", + "MCD_FLIP_ETH_A": "0xe8b1439bbcc5a4da4a8e938257aea3a8d18f78ad", + "MCD_JOIN_ETH_B": "0xb3acc117e70e9f2cb8afa66c80ed5ffc09df9c70", + "MCD_FLIP_ETH_B": "0xd4b18bbc581fa6f7a019c7c8f2245430f865c14e", + "MCD_JOIN_ETH_C": "0xade09cccddbacfdd69741c97a45d742460e9ec23", + "MCD_FLIP_ETH_C": "0x965875bddaa6011a8af54cb952798473bc0f086b", "REP": "0xc7aa227823789e363f29679f23f7e8f6d9904a9b", "VAL_REP": "0x5debc8c4124db0c1d3bad99e69287a576c7b2ccc", "PIP_REP": "0x5debc8c4124db0c1d3bad99e69287a576c7b2ccc", - "MCD_JOIN_REP_A": "0x7d9d701e87920a1a7396438769b571fb55b6ffdc", - "MCD_FLIP_REP_A": "0x7558ae09e94e27424f2a02d1fa46ea8284d0c8eb", + "MCD_JOIN_REP_A": "0x91f4e07be74445a3897b6d4e70393b5ad7b8e4b0", + "MCD_FLIP_REP_A": "0x01d7735e4a4cadadb1f1ec5e7fe08f676ec17ed2", "ZRX": "0x18392097549390502069c17700d21403ea3c721a", "VAL_ZRX": "0xc010f1bbde279a5bb05c93f5fc902293d5a9f7a9", "PIP_ZRX": "0xc010f1bbde279a5bb05c93f5fc902293d5a9f7a9", - "MCD_JOIN_ZRX_A": "0x6d10ff4eb87484c55d9fc2907a11ae26fa6c859f", - "MCD_FLIP_ZRX_A": "0x976b340267b77f02b443d9a5ea34681f31796ed6", + "MCD_JOIN_ZRX_A": "0x4a48d3e3ee832575f70efb980c9a62ddce5c263a", + "MCD_FLIP_ZRX_A": "0x5ce206c55d6c13fe9293a947b43a0dcd3e6ef137", "OMG": "0x441b1a74c69ee6e631834b626b29801d42076d38", "VAL_OMG": "0x1e9740f61e80650a60ba70f2d0b477fb85db2b03", "PIP_OMG": "0x1e9740f61e80650a60ba70f2d0b477fb85db2b03", - "MCD_JOIN_OMG_A": "0x46024f1bace6b2e93b622cffc12a4cd43a23aa76", - "MCD_FLIP_OMG_A": "0xcd03d1147d14e06fa31ed5b85eca1e95ccdc6de6", + "MCD_JOIN_OMG_A": "0x606fcf8eb5bbe1dd17d52d853c7d346c594109fe", + "MCD_FLIP_OMG_A": "0xc967ff09e407ec029cb98f42f8e628116407085b", "BAT": "0x9f8cfb61d3b2af62864408dd703f9c3beb55dff7", "VAL_BAT": "0x5c40c9eb35c76069fa4c3a00ea59fac6ffa9c113", "PIP_BAT": "0x5c40c9eb35c76069fa4c3a00ea59fac6ffa9c113", - "MCD_JOIN_BAT_A": "0x277cd249711a5895353d48ae5254271c1004cb0d", - "MCD_FLIP_BAT_A": "0x6a8f77412029523a21cfb35960ebe062418b91b8", + "MCD_JOIN_BAT_A": "0x635716849a7f6ae57211bb2f9564b10551a8f166", + "MCD_FLIP_BAT_A": "0x5bc5be4775eb6c61bff9717e1f35d887fb54142c", "DGD": "0x62aeec5fb140bb233b1c5612a8747ca1dc56dc1b", "VAL_DGD": "0x112bf99e873317643fbfcc22d197e3e01b825cb0", "PIP_DGD": "0x112bf99e873317643fbfcc22d197e3e01b825cb0", - "MCD_JOIN_DGD_A": "0x3689d9885a998ea4615f82000f8491bf773b2642", - "MCD_FLIP_DGD_A": "0xc39447dda044cd02d1a8c2f935e14376ff6276ea", + "MCD_JOIN_DGD_A": "0xf07b0cbe6fad45bb3576de92e063639ad951987f", + "MCD_FLIP_DGD_A": "0x034f2c3e4e8db8f8469493bb38d8885e06f8ab54", "GNT": "0xc81ba844f451d4452a01bbb2104c1c4f89252907", "VAL_GNT": "0xf46e96a6f23fdcb5870f0ac0dbe9d2c605485ddc", "PIP_GNT": "0xf46e96a6f23fdcb5870f0ac0dbe9d2c605485ddc", - "MCD_JOIN_GNT_A": "0x64d1f7e7702f914b0fc13ce56d7a022b2a8449b0", - "MCD_FLIP_GNT_A": "0x3d8b0106e5f28e6611cdfd3940a973e7b7fc6ff7", - "PROXY_PAUSE_ACTIONS": "0xcd958d3cb7d6b394dbdc38259952d79dc2b55cf8", - "PROXY_DEPLOYER": "0x7c3b871d79d3de3c7e80c5e8393bb6477bec3004", - "GOV_POLL_GEN": "0x08acfcb03118b31fd945f9d5bd8cb61581c06b42", + "MCD_JOIN_GNT_A": "0x4e22282bb7304c6c07aa4404b3a9a2f7afe1958a", + "MCD_FLIP_GNT_A": "0xa1a4cc927091a3c9f10e55a161869b3cad58ef1b", + "PROXY_PAUSE_ACTIONS": "0x640457c680d75dae73450a642c41cd178d34ac65", + "PROXY_DEPLOYER": "0x818a81dd914e89a4698869ee54c8e2c056bfda03", + "GOV_POLL_GEN": "0xd247195403963d7b81ff0028d1036d7ed0ed61a3", "POLL_ID": "0", - "VOTE_YES": "0x4a04b03901feccec8f4d795e2387e54d1a6b6d8d", - "VOTE_NO": "0x0d0a1ddc1103c4c891917a7a6320bc7632cf7724" + "VOTE_YES": "0x6e1c3b0334ef4231dd739d1e0e2f9cf2ec0fdb4a", + "VOTE_NO": "0x80ba5974a57033ccb1a4e6982ae32a255cd24f5f" } \ No newline at end of file From 132453913cd22f7720a0e1c20af6e169585c62ab Mon Sep 17 00:00:00 2001 From: Ethan Date: Thu, 15 Aug 2019 00:57:00 -0600 Subject: [PATCH 33/39] Add new contracts to migrations installation script --- .../contracts/abis/GetCdps.json | 2 +- .../contracts/addresses/testnet.json | 4 ++-- .../scripts/install-testchain-outputs.sh | 18 ++++++++++++++++++ .../GlobalSettlementDaiRedeemer.spec.js | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/dai-plugin-migrations/contracts/abis/GetCdps.json b/packages/dai-plugin-migrations/contracts/abis/GetCdps.json index d1574f1f2..aa65949e8 100644 --- a/packages/dai-plugin-migrations/contracts/abis/GetCdps.json +++ b/packages/dai-plugin-migrations/contracts/abis/GetCdps.json @@ -1 +1 @@ -[{"constant":true,"inputs":[{"name":"manager","type":"address"},{"name":"guy","type":"address"}],"name":"getCdpsAsc","outputs":[{"name":"ids","type":"uint256[]"},{"name":"urns","type":"address[]"},{"name":"ilks","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"manager","type":"address"},{"name":"guy","type":"address"}],"name":"getCdpsDesc","outputs":[{"name":"ids","type":"uint256[]"},{"name":"urns","type":"address[]"},{"name":"ilks","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"}] +[{"constant":true,"inputs":[{"name":"manager","type":"address"},{"name":"guy","type":"address"}],"name":"getCdpsAsc","outputs":[{"name":"ids","type":"uint256[]"},{"name":"urns","type":"address[]"},{"name":"ilks","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"manager","type":"address"},{"name":"guy","type":"address"}],"name":"getCdpsDesc","outputs":[{"name":"ids","type":"uint256[]"},{"name":"urns","type":"address[]"},{"name":"ilks","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/packages/dai-plugin-migrations/contracts/addresses/testnet.json b/packages/dai-plugin-migrations/contracts/addresses/testnet.json index 065a1f604..04b20dae4 100644 --- a/packages/dai-plugin-migrations/contracts/addresses/testnet.json +++ b/packages/dai-plugin-migrations/contracts/addresses/testnet.json @@ -1,7 +1,7 @@ { "TUB": "0xe82ce3d6bf40f2f9414c8d01a35e3d9eb16a1761", - "GET_CDPS_1": "0xdb8848ea69cce3f7f41949d274899641e558cdf4", - "CDP_MANAGER_1": "0x6b09a5b5dc17eaa7d0b65ba898f58005a70736b5", + "GET_CDPS_1": "0x2a3a2f87403d675748eb11b6fce92a16a0084eb6", + "CDP_MANAGER_1": "0xdb8848ea69cce3f7f41949d274899641e558cdf4", "MCD_END_1": "0x88015f50fb5b2bb1abf8a9c3e1db231e267b5c4f", "MCD_VAT_1": "0xc94d704539002c68ff130efb177d201552bbfa90", "MCD_DAI_1": "0x11c8d156e1b5fd883e31e9091874f2af80b02775", diff --git a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh index 04e0ffafe..2fc91178f 100755 --- a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh +++ b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh @@ -10,11 +10,29 @@ SOURCE=${1:-$CWD/../../../node_modules/@makerdao/testchain} TUB_ADDRESS=`jq ".TUB" $SOURCE/out/addresses.json` REDEEMER_ADDRESS=`jq ".REDEEMER" $SOURCE/out/addresses.json` OLD_MKR_ADDRESS=`jq ".OLD_MKR" $SOURCE/out/addresses.json` +MCD_END_ADDRESS=`jq ".MCD_END" $SOURCE/out/addresses-mcd.json` +MCD_VAT_ADDRESS=`jq ".MCD_VAT" $SOURCE/out/addresses-mcd.json` +GET_CDPS_ADDRESS=`jq ".GET_CDPS" $SOURCE/out/addresses-mcd.json` +CDP_MANAGER_ADDRESS=`jq ".CDP_MANAGER" $SOURCE/out/addresses-mcd.json` +MCD_DAI_ADDRESS=`jq ".MCD_DAI" $SOURCE/out/addresses-mcd.json` +MCD_POT_ADDRESS=`jq ".MCD_POT" $SOURCE/out/addresses-mcd.json` jq ".TUB=$TUB_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json jq ".REDEEMER=$REDEEMER_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json jq ".OLD_MKR=$OLD_MKR_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".MCD_END_1=$MCD_END_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".MCD_VAT_1=$MCD_VAT_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".GET_CDPS_1=$GET_CDPS_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".CDP_MANAGER_1=$CDP_MANAGER_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".MCD_DAI_1=$MCD_DAI_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +jq ".MCD_POT_1=$MCD_POT_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json cp $SOURCE/out/SaiTub.abi $CONTRACTS/abis/SaiTub.json cp $SOURCE/out/Redeemer.abi $CONTRACTS/abis/Redeemer.json cp $SOURCE/out/ERC20.abi $CONTRACTS/abis/ERC20.json +cp $SOURCE/out/mcd/End.abi $CONTRACTS/abis/End.json +cp $SOURCE/out/mcd/Vat.abi $CONTRACTS/abis/Vat.json +cp $SOURCE/out/mcd/GetCdps.abi $CONTRACTS/abis/GetCdps.json +cp $SOURCE/out/mcd/DssCdpManager.abi $CONTRACTS/abis/DssCdpManager.json +cp $SOURCE/out/mcd/Dai.abi $CONTRACTS/abis/Dai.json +cp $SOURCE/out/mcd/Pot.abi $CONTRACTS/abis/Pot.json diff --git a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js index 4da5da1fa..0af839e6a 100644 --- a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js +++ b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js @@ -59,7 +59,7 @@ describe('Global Settlement Dai Redeemer migration', () => { expect(await migration.check()).toBeFalsy(); }); - test('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, and the user has locked collateral, return true', async () => { + test.only('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, and the user has locked collateral, return true', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); From c1bc12c081c951c7aaefb344148a073e3de53ff8 Mon Sep 17 00:00:00 2001 From: Ethan Date: Thu, 15 Aug 2019 01:19:50 -0600 Subject: [PATCH 34/39] Refactor migrations installation script --- .../scripts/install-testchain-outputs.sh | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh index 2fc91178f..5f766604f 100755 --- a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh +++ b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh @@ -7,32 +7,27 @@ CWD=`dirname $0` CONTRACTS=$CWD/../contracts SOURCE=${1:-$CWD/../../../node_modules/@makerdao/testchain} -TUB_ADDRESS=`jq ".TUB" $SOURCE/out/addresses.json` -REDEEMER_ADDRESS=`jq ".REDEEMER" $SOURCE/out/addresses.json` -OLD_MKR_ADDRESS=`jq ".OLD_MKR" $SOURCE/out/addresses.json` -MCD_END_ADDRESS=`jq ".MCD_END" $SOURCE/out/addresses-mcd.json` -MCD_VAT_ADDRESS=`jq ".MCD_VAT" $SOURCE/out/addresses-mcd.json` -GET_CDPS_ADDRESS=`jq ".GET_CDPS" $SOURCE/out/addresses-mcd.json` -CDP_MANAGER_ADDRESS=`jq ".CDP_MANAGER" $SOURCE/out/addresses-mcd.json` -MCD_DAI_ADDRESS=`jq ".MCD_DAI" $SOURCE/out/addresses-mcd.json` -MCD_POT_ADDRESS=`jq ".MCD_POT" $SOURCE/out/addresses-mcd.json` +# Relevant contracts from SCD: +for CONTRACT in "TUB" "REDEEMER" "OLD_MKR" +do + ADDRESS=`jq ".$CONTRACT" "$SOURCE/out/addresses.json"` + jq ".$CONTRACT=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +done -jq ".TUB=$TUB_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".REDEEMER=$REDEEMER_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".OLD_MKR=$OLD_MKR_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".MCD_END_1=$MCD_END_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".MCD_VAT_1=$MCD_VAT_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".GET_CDPS_1=$GET_CDPS_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".CDP_MANAGER_1=$CDP_MANAGER_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".MCD_DAI_1=$MCD_DAI_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -jq ".MCD_POT_1=$MCD_POT_ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +for CONTRACT in "SaiTub" "Redeemer" "ERC20" +do + cp $SOURCE/out/$CONTRACT.abi $CONTRACTS/abis/$CONTRACT.json +done -cp $SOURCE/out/SaiTub.abi $CONTRACTS/abis/SaiTub.json -cp $SOURCE/out/Redeemer.abi $CONTRACTS/abis/Redeemer.json -cp $SOURCE/out/ERC20.abi $CONTRACTS/abis/ERC20.json -cp $SOURCE/out/mcd/End.abi $CONTRACTS/abis/End.json -cp $SOURCE/out/mcd/Vat.abi $CONTRACTS/abis/Vat.json -cp $SOURCE/out/mcd/GetCdps.abi $CONTRACTS/abis/GetCdps.json -cp $SOURCE/out/mcd/DssCdpManager.abi $CONTRACTS/abis/DssCdpManager.json -cp $SOURCE/out/mcd/Dai.abi $CONTRACTS/abis/Dai.json -cp $SOURCE/out/mcd/Pot.abi $CONTRACTS/abis/Pot.json +# Relevant contracts from MCD: +for CONTRACT in "MCD_END" "MCD_VAT" "GET_CDPS" "CDP_MANAGER" "MCD_DAI" "MCD_POT" +do + ADDRESS=`jq ".$CONTRACT" "$SOURCE/out/addresses-mcd.json"` + SUFFIX="_1" + jq ".$CONTRACT$SUFFIX=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json +done + +for CONTRACT in "End" "Vat" "GetCdps" "DssCdpManager" "Dai" "Pot" +do + cp $SOURCE/out/mcd/$CONTRACT.abi $CONTRACTS/abis/$CONTRACT.json +done From 64eca7c7cc4624679221f2d8b50427b5436a7acf Mon Sep 17 00:00:00 2001 From: Ethan Date: Thu, 15 Aug 2019 02:51:30 -0600 Subject: [PATCH 35/39] More script refactoring --- README.md | 2 ++ .../scripts/install-testchain-outputs.sh | 26 +++++++------------ .../GlobalSettlementDaiRedeemer.spec.js | 2 +- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 92faafb39..a4f8867fb 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ cd packages/dai yarn build:backend // Builds the dai package for use in the other plugins cd ../services-core yarn build // Builds the services-core package for use in the other plugins +cd ../dai-plugin-mcd +yarn build // Builds the MCD package for use in other plugins ``` ### Running the testchain diff --git a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh index 5f766604f..6f4d32e54 100755 --- a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh +++ b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh @@ -8,26 +8,20 @@ CONTRACTS=$CWD/../contracts SOURCE=${1:-$CWD/../../../node_modules/@makerdao/testchain} # Relevant contracts from SCD: -for CONTRACT in "TUB" "REDEEMER" "OLD_MKR" +for CONTRACT in "TUB","SaiTub" "REDEEMER","Redeemer" "OLD_MKR","ERC20" do - ADDRESS=`jq ".$CONTRACT" "$SOURCE/out/addresses.json"` - jq ".$CONTRACT=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -done - -for CONTRACT in "SaiTub" "Redeemer" "ERC20" -do - cp $SOURCE/out/$CONTRACT.abi $CONTRACTS/abis/$CONTRACT.json + IFS=',' read NAME ABI <<< "${CONTRACT}" + ADDRESS=`jq ".$NAME" "$SOURCE/out/addresses.json"` + jq ".$NAME=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json + cp $SOURCE/out/$ABI.abi $CONTRACTS/abis/$ABI.json done # Relevant contracts from MCD: -for CONTRACT in "MCD_END" "MCD_VAT" "GET_CDPS" "CDP_MANAGER" "MCD_DAI" "MCD_POT" +for CONTRACT in "MCD_END","END" "MCD_VAT","VAT" "GET_CDPS","GetCdps" "CDP_MANAGER","DssCdpManager" "MCD_DAI","Dai" "MCD_POT","Pot" do - ADDRESS=`jq ".$CONTRACT" "$SOURCE/out/addresses-mcd.json"` + IFS=',' read NAME ABI <<< "${CONTRACT}" + ADDRESS=`jq ".$NAME" "$SOURCE/out/addresses-mcd.json"` SUFFIX="_1" - jq ".$CONTRACT$SUFFIX=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json -done - -for CONTRACT in "End" "Vat" "GetCdps" "DssCdpManager" "Dai" "Pot" -do - cp $SOURCE/out/mcd/$CONTRACT.abi $CONTRACTS/abis/$CONTRACT.json + jq ".$NAME$SUFFIX=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json + cp $SOURCE/out/mcd/$ABI.abi $CONTRACTS/abis/$ABI.json done diff --git a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js index 0af839e6a..4da5da1fa 100644 --- a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js +++ b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js @@ -59,7 +59,7 @@ describe('Global Settlement Dai Redeemer migration', () => { expect(await migration.check()).toBeFalsy(); }); - test.only('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, and the user has locked collateral, return true', async () => { + test('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, and the user has locked collateral, return true', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); From 126f8a2f6603574cf9716e606a6bebd4410f529d Mon Sep 17 00:00:00 2001 From: Ethan Date: Thu, 15 Aug 2019 22:53:37 -0600 Subject: [PATCH 36/39] Add kovan addresses to migrations script --- .../contracts/addresses/kovan.json | 12 ++++++------ .../scripts/install-testchain-outputs.sh | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/dai-plugin-migrations/contracts/addresses/kovan.json b/packages/dai-plugin-migrations/contracts/addresses/kovan.json index 0c930e0b8..295165dda 100644 --- a/packages/dai-plugin-migrations/contracts/addresses/kovan.json +++ b/packages/dai-plugin-migrations/contracts/addresses/kovan.json @@ -1,11 +1,11 @@ { "TUB": "0xa71937147b55Deb8a530C7229C442Fd3F31b7db2", - "GET_CDPS_1": "0xda50a754d77e5a4432acc01b55625d58a3821fb9", - "CDP_MANAGER_1": "0x772ff99b5aae3d51512d73c04f763c73adc7a86a", - "MCD_END_1": "0xc6cd35939523d258d5c28febf6017635a4ea858d", - "MCD_VAT_1": "0x5ce1e3c8ba1363c7a87f5e9118aac0db4b0f0691", - "MCD_DAI_1": "0x5944413037920674d39049ec4844117a031eaa74", - "MCD_POT_1": "0x570d432df425937d0b83077dafe16a728c1c3438", + "GET_CDPS_1": "0x2a3a2f87403d675748eb11b6fce92a16a0084eb6", + "CDP_MANAGER_1": "0xdb8848ea69cce3f7f41949d274899641e558cdf4", + "MCD_END_1": "0x88015f50fb5b2bb1abf8a9c3e1db231e267b5c4f", + "MCD_VAT_1": "0xc94d704539002c68ff130efb177d201552bbfa90", + "MCD_DAI_1": "0x11c8d156e1b5fd883e31e9091874f2af80b02775", + "MCD_POT_1": "0x36fdda9b5dabdda030598116d09f1e1c6bb1deab", "REDEEMER": "0x2c0f31271673cc29927be725104642aad65a253e", "OLD_MKR": "0x4bb514a7f83fbb13c2b41448208e89fabbcfe2fb" } diff --git a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh index 6f4d32e54..ce1100ac3 100755 --- a/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh +++ b/packages/dai-plugin-migrations/scripts/install-testchain-outputs.sh @@ -23,5 +23,6 @@ do ADDRESS=`jq ".$NAME" "$SOURCE/out/addresses-mcd.json"` SUFFIX="_1" jq ".$NAME$SUFFIX=$ADDRESS" $CONTRACTS/addresses/testnet.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/testnet.json + jq ".$NAME$SUFFIX=$ADDRESS" $CONTRACTS/addresses/kovan.json > testnet.tmp && mv testnet.tmp $CONTRACTS/addresses/kovan.json cp $SOURCE/out/mcd/$ABI.abi $CONTRACTS/abis/$ABI.json done From 47dbbe1c322e3ea057d138716cc560f5f0666db2 Mon Sep 17 00:00:00 2001 From: Ethan Date: Thu, 15 Aug 2019 23:56:09 -0600 Subject: [PATCH 37/39] Account for drip in migrations tests --- .../GlobalSettlementCollateralClaims.spec.js | 4 ++-- .../migrations/GlobalSettlementDaiRedeemer.spec.js | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementCollateralClaims.spec.js b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementCollateralClaims.spec.js index 3fe76a666..4ca57dd80 100644 --- a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementCollateralClaims.spec.js +++ b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementCollateralClaims.spec.js @@ -67,10 +67,10 @@ describe('Global Settlement Collateral Claims migration', () => { test('if the system IS in global settlement and collateral is caged, and there is NO collateral to skim, return false', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); - await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); + await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(9)); mockContracts(smartContract, { - MCD_END_1: globalSettlement.afterCageCollateral({ 'ETH-A': 100 }) + MCD_END_1: globalSettlement.afterCageCollateral({ 'ETH-A': 80 }) }); expect(await migration.check()).toBeFalsy(); diff --git a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js index 4da5da1fa..256d1c863 100644 --- a/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js +++ b/packages/dai-plugin-migrations/test/migrations/GlobalSettlementDaiRedeemer.spec.js @@ -42,7 +42,7 @@ describe('Global Settlement Dai Redeemer migration', () => { test('if the system is in global settlement, user owns some DAI, but collateral price has not been fixed, return false', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); - await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); + await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(9)); mockContracts(smartContract, { MCD_END_1: globalSettlement.afterCage() }); @@ -61,7 +61,7 @@ describe('Global Settlement Dai Redeemer migration', () => { test('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, and the user has locked collateral, return true', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); - await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); + await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(9)); mockContracts(smartContract, { MCD_END_1: globalSettlement.afterFlow({ @@ -74,16 +74,16 @@ describe('Global Settlement Dai Redeemer migration', () => { test('if the system IS in global settlement, collateral price has been fixed, the user owns DAI, but the user does NOT have locked collateral, return false', async () => { await setupCollateral(maker, 'ETH-A', { price: 150, debtCeiling: 50 }); - await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(10)); + await cdpManager.openLockAndDraw('ETH-A', ETH(0.1), MDAI(9)); const account2 = TestAccountProvider.nextAccount(); const mdai = maker.service('token').getToken(MDAI); - await mdai.transfer(account2.address, 10); + await mdai.transfer(account2.address, 9); await maker.addAccount({ ...account2, type: 'privateKey' }); maker.useAccount(account2.address); - expect((await mdai.balance()).toNumber()).toBe(10); + expect((await mdai.balance()).toNumber()).toBe(9); mockContracts(smartContract, { MCD_END_1: globalSettlement.afterFlow({ From b255b7cd858a2ce25c92354de2a386a71fb4053b Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 20 Aug 2019 09:01:33 +0200 Subject: [PATCH 38/39] Fix readme --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index a4f8867fb..edb65b6ab 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,7 @@ code on commit. ``` yarn yarn lerna bootstrap // Installs dependencies & links all local dependencies together -cd packages/dai -yarn build:backend // Builds the dai package for use in the other plugins -cd ../services-core -yarn build // Builds the services-core package for use in the other plugins -cd ../dai-plugin-mcd -yarn build // Builds the MCD package for use in other plugins +yarn build // builds each plugin for local use ``` ### Running the testchain From 6453f3473be97a02037359b9275065e92d80bb99 Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 20 Aug 2019 09:23:47 +0200 Subject: [PATCH 39/39] Update expected gas station api --- packages/dai/test/eth/GasService.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/dai/test/eth/GasService.spec.js b/packages/dai/test/eth/GasService.spec.js index 65a9d4ab7..e040336c9 100644 --- a/packages/dai/test/eth/GasService.spec.js +++ b/packages/dai/test/eth/GasService.spec.js @@ -112,7 +112,8 @@ test('fetches gas station data', async () => { 'safeLowWait', 'avgWait', 'fastWait', - 'fastestWait' + 'fastestWait', + 'gasPriceRange' ]; expect(Object.keys(await gasService._gasStationDataPromise)).toEqual(keys);