{"_id":"@dashevo/dp-services-ctl","_rev":"54-8d16d1569da56f9c1759aeadb25791c7","name":"@dashevo/dp-services-ctl","dist-tags":{"dev":"0.11.0-dev.3","0.13-dev":"0.13.0-dev.1","0.14-dev":"0.14.0-dev.1","latest":"0.15.0"},"versions":{"0.5.0":{"name":"@dashevo/dp-services-ctl","version":"0.5.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.5.0","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"snogcel","email":"ledniknoj@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"5ba2ca7dc8931167692027076f224f96ff85ca64","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.5.0.tgz","fileCount":92,"integrity":"sha512-aml8GLUla4uq1N9FhsTUoXld0yU9cfRYMnKlIbmUdHxnAUSznDQnyaXaHGn5nOF21iGU5jfKC0I3Z4+A4riiPQ==","signatures":[{"sig":"MEQCIEAz2w83SAeoo+O7i+nSjNKQ2kQw5QxpwGFTcXbwLh5BAiB4r0ePcdXpizw7en+UaOEypyZjdbkvzjkevnBV+owX/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJch3xiCRA9TVsSAnZWagAAV7wQAIEcVojgNOusJR3OQsXA\nnKyxrGfMuUvEmoSKmBo35MM1zq02lZgdR2x1DMDtV/tDtYO5eLJAqMlpAD44\n5LhH/6cYbX5FUxgVfqDcGTDi/nshCSa7LsiikxXSJNlJZewVUm/yVHB7Xyux\nIcsTq8RCu9WQ2dQMtU1XzIdOrRs4CAQHlOoW0iIG1Sf16C+dWyx2oabHi7FI\nwTO8YS2DhLAbSy4o3zFWaWUt37OMIZHF6D2n49kpeEWYZQvhV19LTDkMyiS/\n51jCQurPwFEFWaDvn1V1lxJvfx3UkbGE7wkgRkvkyDhbKLUqC35p1sypA7JK\na5QsLqFSXOcXlP0oIcWFrxxUT7erp7LcsW+R+1T95GR/M2WhWtLT9ef5uIus\nJ9c0fWxt9/b9bNbAWCcGeN+AdVtPC1w4lcjhZrhzUpk6tCKZ/M65w5uuDani\nw+k2fXzyZO+ZUGJcPZfXABYwF8tSYioWraotdkCo2weemrIWcuTzyHCUnmTv\nKSr3tY4NyiQUEDSnMv4AuN/mpzeaPLJ1fbNPlhxAMSQccWNBz4qpPjLZmI60\niD+fDbhilD93vy8koADxL4dnx2Fk3Ad3hk9nEdXvmTkkcPUjks6ppyBw8dRu\nGfbJlFiPMO15vLuwZMOJOWl4lsAZEHiUC4IAcHc+vGunTkY6uVcMBpH2HrLQ\niiXl\r\n=HjvV\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"10b2dd4a5af29379a175b0dc1a7d204fa4c50eb0","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.15.1","dependencies":{"cbor":"^4.1.4","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","@dashevo/dashd-rpc":"^1.2.1","@dashevo/dapi-client":"git+ssh://git@github.com/dashevo/dapi-client.git#v0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.5.0_1552383074190_0.059846856627175926","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@dashevo/dp-services-ctl","version":"0.6.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.6.1","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"84bd97f56b6f6d245d156e02523a36b13f00c3dd","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.6.1.tgz","fileCount":92,"integrity":"sha512-8CT98zCECnFCVn2RpBTK7FE+0TnNJ83Y/9JlRQN1WD7DHkku3wemqbgXIMPtiylkJneIHp30nIO/4tQ42pj8tw==","signatures":[{"sig":"MEUCIQDFyZlZHvmiMAkJmsNmx7BpAQWVP+wh/WhGf9YVYMjB4wIgbg4rIb+SnrBA7QvToY4xDneZDneGpKhbU+CP0PZHZhI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnMdiCRA9TVsSAnZWagAA5rkP/jmD69gmaAr6+PV4Y5BL\nq7A1ii5YPQAzFs2yxPJ3+JwlrfofT3W5TehvcgNeeq5XYduVJP7cvvav7AhQ\nZ18enA6ab9BqgsZa3/ZayA0+DMS2SlLJSVk0wRc5yzyfj4qgE4AEWLh0PDX1\n2MfE90st4Bh7mesNHAYQ8HtZAmfoUaULNViNXLytA2k6o48lP2BezZ6DSLD/\nLZJZWwchbGNGRycHYtsyfAsaW2G06mDyv/75LT32b0Osn/JQqRCHq0aX37EK\ngqaKwU8rGiLckKe4r1q5p3GaN05bHFdnBTPWAaMI/v+LejumypTdvPoKfI71\naBtp+WjmJEpYazS0mdloZ36Z5zEwoFQrADNY9lUisgEAFHdSgIlHNOn0XzfY\nxWZJ5Ha/vbqQl+wrlSwgQkFu3+stUOCObLpaKBvvgFMc0GkhORAV8gbwZnms\nOmM8z0FJWR7L3M9rV19xoEHgfBShIqdQBcn6AW92SYArLxPCxhR5Aj7EOdMn\nqb9pPIJfc3HI2mSsy/bQksPjbg1pTajLm89zxPCesQ/8ksRhLZ8NwpfwEpWN\nl9jPk4q0WeH5ROATr1I5r75OqFjV+ujepm3lgAmce9T4H0Sn2xi/lmK1G+h6\nTugeQOVtmqHDBas9neIcqSvd4TJRbr8CYjV195eALbgGw1Oo3uoiJK06HX/c\nLwvP\r\n=23i1\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"31f10271e0c7400d62db387523b972a65f660647","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.15.1","dependencies":{"cbor":"^4.1.4","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","@dashevo/dashd-rpc":"^1.2.1","@dashevo/dapi-client":"^v0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.6.1_1553778529555_0.6569641291151513","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"@dashevo/dp-services-ctl","version":"0.6.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.6.2","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"a5007e254cc9975bc0dc12760f6b7ff145e1a796","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.6.2.tgz","fileCount":92,"integrity":"sha512-fSpJESioGx/rVEyro8KsCMmE4bgl1WEkMqaoXJaeoQzbK1UAQYtr71WE+b21qctsp3sKWNBbvD4vpEDrR7E4UQ==","signatures":[{"sig":"MEUCIE//umnKT1q3oGkeJDb93w3SGv0EMXGR/DwOawf08uA0AiEAz/FZXj4A4LN4NEvQC2XXcSR+AbX/PDwSmYPW67m6thk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167256,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcvbyHCRA9TVsSAnZWagAAbDwP/RswzA4hdu890gU5HBx/\nojds/TNK2KhFKKk799IlNiLBax6BlXnPtVVs/+Ln+mECKqTTDU+XDaLCNENl\nrn+2n8Uj3Xi1JuCHBDJR3dcXh4XKPYLB9SDIXCJCOcoKC3FtLk9MjRfOcTSm\nodruTSuYhc3ZjzB3Cbw1mWTT/Eb2ZM3kit4MCsFmj86b06P4l2Kr93X8RFjL\nrcX4bzt9xcvGHw+XK+sb/+jqUHGKJyoXz8XrBYIaGaFkrjAk8eTZuBPb+0q5\nctT9DYwI/tLNtIJtxtl4fVMyVRzPS2nNSf7V7aRGmh0Plx7E9BFSphpF5HfB\nxG5uffYOpORkuNbEULgYtcpjz6y6sahUOmmS9W7qjkJRexnCFWLD8uMs+rE/\nP87nTnmTAbv7l/qq89N/72CWdY6shH2EpV12vBxvb6cLDp9kx0jqNfr0y33V\nvtPq9dE3r0LJMOO0u3HVfn8QMs92zT1HFq/vsR+T+ULI80+VTsF+Ky2WuZ5/\nt63+wbPph0HSORNQ4s0IW+x0kvaEnzctT3LA7eb5b9sf0qQmhlD00Wo5o++0\nuKqF4G/d0vWc/+E2Ufv2aaufH2sROqdm1tkrrlLXR2HmaX4wbPcrWkXCwHJY\nl4paPlBVzjU94SekMnRCtaOXHOQZ/kW7vqzgBaf3gAUYaEv5oV38QfgDuXC1\nSlb1\r\n=30Ed\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"e223c4ab7a6e8fdb9a0fa40ce393eb2082767669","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","@dashevo/dashd-rpc":"^1.2.1","@dashevo/dapi-client":"^v0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.6.2_1555938438631_0.9409369267839782","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@dashevo/dp-services-ctl","version":"0.7.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.7.0","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"6783a19e96b6ec5bdf56918861a99e9cacc99984","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.7.0.tgz","fileCount":95,"integrity":"sha512-Cb4K/uWJha+ajNW8m/f+DjX5Dk6OAwjm3JfyrVbsx0Fu5mkfcFzl0uLFxKjdt1DzOtOODoBYXmJlGYdjSklfgw==","signatures":[{"sig":"MEYCIQCSdF8ZPtQhgHLLiM13gYra9G2FRa1fHW4RpfPhcbrVAQIhAOjG+3Ajz9HxB/DZflohx1UdlMNJjlydcDEh1bi04caF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":176856,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwbMLCRA9TVsSAnZWagAAiwEP/iriL2zf5RrkTPD9mSHW\nytduPPIiKsPVC+Ko1+5ENY50Cf9utAJg0amn7jgOEXzFPNTHBI20iv2ZTql1\nas0YTRmkR3nuPrRqZorB386OU2DaK11/AHxhmB1LcQbDXLq108VaETcSq/oy\nkFKzqH0+x9XBiAv4Yb/YOUPgOWYZBPhWCmcBWDzkJXT3fQ8E7qWQ3lqyffJP\n5ERDwQl6CJjhz5lr3fkfSCARhGZ/rF36lNJXT+wYsYDW9cvfjmTCsX9arCq/\n0io42lqmQ0UQvF9AquJZpQQoXQ95HswkDswURv4xxpnSSqnE1B9+9+oBSPXk\n0hiDL3hHXs1oPYuGhy7MCDzDgBjJQ466wQ5xG3AmkH3gMwmCADFrUWILZHK8\n1x8SQqPAKJan7YC3mCcyvgP3WFcIG1lyvq/jG2olPfIhaMRF2qSQTyM/P2Do\nhARG4eiDG1lAoWGYdwjyKqkC4O3WPNPFr0VuUWWfqPLg43tQYIK2CmcIBJRl\nKCPJd/JRx7TWU0lRM9+Rb1r6LYKXrvcuKcPN0UG8xcY+9GbNoyA05B3WOAJ/\ngHfIljnhWGHqwGMgNTyHJ2yMPWtDwaTUCmnhpWT18h5KDuyDyiuodej9pd5Z\nk3hO4TjrfUecM4bRpJPNVowisSMjBzL1QudNXxrDF8XVAyH1oo6VWSNCVz94\n07ys\r\n=cfOL\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"ea24082306d7508f362778ded975612043c51cba","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","grpc-health-check":"^1.6.6","@dashevo/dashd-rpc":"^1.2.1","@dashevo/dapi-client":"^v0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.7.0_1556198154967_0.16065944486486172","host":"s3://npm-registry-packages"}},"0.7.1":{"name":"@dashevo/dp-services-ctl","version":"0.7.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.7.1","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"be4f4b4f16ef015838e9eeae3c8bd05f35ee2135","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.7.1.tgz","fileCount":95,"integrity":"sha512-4FjlGVJWaNuwNLcmNUQmH0PiKUJBLgdIuBJLqVEyy+cfTabhy5lNGc/PJmZIveXefTAvVIhZgbJ6WSJUyaruuw==","signatures":[{"sig":"MEUCIDaPUy++0P7KvJsK2pfgFa7Let5JwLzzKufvIudi+S7BAiEA/HjuLlw6Kmnhn8APqNHM/+nD8j411o6AP4MOBNlRQ3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxIDICRA9TVsSAnZWagAACqoP/2AcbS0M+TQb2ElMf1av\n7d+4ytLKzV1Hx3z3s7tRlCDeLjx2Fg43RO927U18emohKt10SvoF6MtA/ZES\nso5Z+myxR+7NxaBXmSrKZoYh5fuqWIUEpuWogsPbMGgy1AK3u9WsN+wg6gOo\nfdAWMr9NqIIqUqeYOkXsoN+ctk+568wofklIEOggO4D6OkejFGuhlXl3At90\nwqYjjdf0s3f+VxAuRNaJqv22+b1DUd9Mz6xeKgEGFeQJxQdU7WM3Dl7fyke1\nlWI5Gqmu5aJaEe3Subt1lAD55tzd+j2I7rX1XxogLGzQ7NHsMMLjKBdlkkzz\nI1vgDkkJgERIiKgYGCdPKRMtUzbcZBpggB/s7FbFxXEuJjiIc6+GTI847aDb\niTePs9tWL4xTHKGUVxzLNib3P5umwmT8/4ondOP0RFKH6iTzCpcNAen/FCo5\n7I0AD6KVSzG3NQtIMbD0/tXndtX7iVU97pGRkMCzF5NE6OfYf3Cov7Pm33/B\nQmaPvJweB3mHBORk/5zIs7Ii7ObtKPt6jS0gjoBk7//T4/PvGVn+q1Op9jxI\n4DRv0EJn37SBJCkHRHjZ0OVZU0S29J8InptG2BKnkBLZSmJT44ZFyVGmTQMc\nozgo3igh+N8Kis2JYMWPy2v+6Ij+t0aCmxRzVQrJ5F6fGjtU8e95XrJLlI3i\nDx50\r\n=E1eO\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"d48423ef407d75afcb7bf629af498b041fad911d","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.18.0","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","grpc-health-check":"^1.6.6","@dashevo/dashd-rpc":"^1.2.1","@dashevo/dapi-client":"^0.4.3"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.7.1_1556381896004_0.44004647651575124","host":"s3://npm-registry-packages"}},"0.7.2":{"name":"@dashevo/dp-services-ctl","version":"0.7.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.7.2","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"9541f2847b2c28c0e6c4af1263c6642f850b4c83","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.7.2.tgz","fileCount":98,"integrity":"sha512-UrIazsCSA5E10zFh4L7mGwP8lyffXxkOhdUY+mG7PxeD6t1pDSaT7JL5NyPrNbFHyumiHO/xx0JMTEU82n7P6w==","signatures":[{"sig":"MEUCIBEusGG8AxaomM/nOkUb9r5wiJBFzP+Xij3CN2CEcq0+AiEA/ffRtO9Wv+evWytAbsIBI4FrpP0qU3BywwPFMdH86mI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":180468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHDZPCRA9TVsSAnZWagAATNkP+QAN94YcgWsLpdBFxLPv\nschq5yxJaya4G1AGSg880iQFW2J73xHZrtOv/jalyCpUFX9l0SGS7G9iwKWa\nxbI9k/HB5Lw08ij+TM6qJ3l3shNSNd5tkVjvvP4SPJz91jm5mpeABzsFjtX+\nqBq4YnPl8nYYQWvjuxZHDd3kezim0xDqcHB3yJgkT2gtXVVcB4PHATvS5Bxc\nTc1TJEpk0xUNb7mddPDRzDB17uDwHe8tmjFSBMoe/AxgGMYrPanu8AkzzsE0\n/objqw4bVaMRX3mGvQzbFgmDJWQunHLC+W60YBok2/mSIWonWn+uJXwuwDNJ\nnJG/cmCcYvzvPXNyMNH5ZZJVxgNLCGXU1m6wDKI2PyuOATmgRuAKSw55G1jK\np8ssizvYs4CQ7A934BQ2Q/iiphD2MzOoHrHpB1p9yVn3i8Zd5m/0v2kxgYdM\n6gal7dxRMkQ/B4altClTWZfN28EA8/9XuFBg3YnQmOMAhdaHuQ/XZGmqhSws\noklkaMetCVBbWeEuhDTlt2KwEniww+fsEjw5+eqmWlw7rIBvMjf6TADj074h\ns/YzPPbdI/DtW1Rq0UZWwXQ2lUIrIo79WNj13+Xm9tMvWM+KwuHSfoEqerkH\nWXZ+RKc4I6uftQjlJo9XuQVloBIi0B5ky7oG7eYvh7+VwM6FET3M8TU03LEf\np4vk\r\n=UoP+\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"0f79a382c24a783fba2f1ba2b12ed7da7caf0456","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","grpc-health-check":"^1.6.6","@dashevo/dashd-rpc":"^1.3.1","@dashevo/dapi-client":"^0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.7.2_1562129998181_0.20510825572414704","host":"s3://npm-registry-packages"}},"0.7.3":{"name":"@dashevo/dp-services-ctl","version":"0.7.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.7.3","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"andyfreer","email":"andy@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"736ad4af8098d32698324db07cd6bb1024bfa783","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.7.3.tgz","fileCount":98,"integrity":"sha512-6+z2IuE/QNCt+IbFzOXfl+Kb50TSVt3jyLnQJ5OTBlmR/NvXis7JlV2G8ER0q03lkPyZvYjNVs7/SZKXDomenQ==","signatures":[{"sig":"MEUCIHsnF7xWNdXFKuYmTm++SuVIClzlHovnUkvM76lN5iAPAiEAzV5DjQpNeJ5WSjAXvLxaoCNUv9mh2t8GRYrJ5g7g5Jk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":180468,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLD5iCRA9TVsSAnZWagAACCkQAJVVopJSPi4HdIvY13NJ\nAGPARKGmC+IS1SJEHvAhw0NvaT+ZP+6ZI5Pzg1zsTxCK2zOck5Cj0bIE3OXF\nHwl+FRTTi1dQ32LlP7qsbVna8/YLI6TGedQa2hlT57Y1lD5firFC8C8iCdmj\nzaLE+UkdBzcUCYAGLe+CLdOZz/Jlm3mzwCgsGuj1F3Z2/ZM5PAeJ54A4poyd\nkWojEsp9yrrLsX15x96jy8nToPp3wsC2qNlRLnlwJwCZgJLOrZXmFw1OKYRn\nLLF3jKsBxUaFqW9udFNNzBeqjS8Yi8uFGqlA3TmuGyPG2IN39xEzNlXpFMgY\n6RCyMAPPtTfhRvAjMeYK9hKDYuMNosScwpsjTx9gYOPDOxSfzBi5GA4xzWcD\ncxBg76GdfTue7qo79340NSv4HRsI1638xpO/X975Ozzn+5AccA/JL5IS2nd3\nJ2JUMHEUpaA+mLIcXYoJuhv8Uuy3Z8Y7zLbiPvaQ6zKawN3t5ODRZ4b2he1f\n5OY6F4K0npfemY7eI+fEO0JMCVSBw6OAFUoCYMwpOOO/Ny2uRZwIuYk2csU3\nZMP+e9K2dOgHbj70SqUNWKfZLpjyIZVeQCeAkUVQzvkhGdavhE45mwKXuAMA\nnFZH7i8GQqizquhbFmVY2cMtuClt8BWxDXmU1e0QuN116kRmB3sPeJXmtv4p\nOZ07\r\n=ZSTP\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"81ded54045bc3ffd538cc29597841735cf2b6335","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.11","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","grpc-health-check":"^1.6.6","@dashevo/dashd-rpc":"^1.3.1","@dashevo/dapi-client":"^0.6.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.7.3_1563180641728_0.07288161114817115","host":"s3://npm-registry-packages"}},"0.7.4":{"name":"@dashevo/dp-services-ctl","version":"0.7.4","license":"MIT","_id":"@dashevo/dp-services-ctl@0.7.4","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"a950c4e739b9ce99e2ad85a8d7483222cab59143","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.7.4.tgz","fileCount":98,"integrity":"sha512-4lOAdE+rIUEaH/f11UJ1PqO80i3+DyswbC9Swi7telRVvE7hDmquWNzvccB9/Ck/U6f/gf02WdIDmjcSj7kcmw==","signatures":[{"sig":"MEUCIEqyws76EXkj03LziHwBPhFx4OLu+l90V2giMQhgt+DZAiEA8ecLXKHVxv/QKrUOjkbtLfElsbMB5l1QXtUsHC1K5Qs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":180454,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOfM/CRA9TVsSAnZWagAARBEP/1PhhvZJmJF3H4imYlb6\ngxLdtsOKLVL1juEZkC/5yBXaSmGQAf091W9S1znbUIreVCd/L2LcGLPYOWd6\nNy91rQO76RAYExTtacgOydeNnfQTDv1jGEvDNz62ZRPqlEtU9Qmz99Lal2vy\nCA0fyjNaSzX0jbuqWktb35m0RhljY4n30QE5DctcthAQRzV1y8DZa/+ih59E\naQjw9xus2hZZMiMDZ/wnRjF9iOfDgTV0a/c24dZ7kvkAvi8yvPJvW/2rDDRB\nhEUbO/+sc+m8fcYr4mitclrWWCbzCiDcJfR3bR69aTlq/y+zeViWzjKDVzqu\neOPo2/IWWkbUrbGH/HGi+Jco6HDCSq87gYcPDl7/SwadnQMvw/Fl7W78jd81\n2F6Zi8R5KOcTuDaRaZJzCh47HJB1w9xc8cozeYzvBC3JUFxYUIW7nRBHowi1\nj1GXELCg2CBNfUh62J6ciAF5i3P1updnsAzGpdWXjF5Omss6TpdUHlH1b88t\nI6DN0vLqGCPETYKlamqvB1DyS600DEanGiiiPR6lbMvcbpXjgg5lxwO5F6uQ\nnw5CNPcxzc7WZDcmdfEBZ+A5n/yWoQtnDpEvoDg6Z3w2W3LJmbgCG4sh35q9\n6eEuPsGg5AyCWouns12C8itSFm5DUm93le+nUE5OeESThU6VjV+UVu6+yPMa\n6Cuw\r\n=d06O\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"afd93f0b27b95735149324ed9f83a161a196e401","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.4.1","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"8.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.1.10","dockerode":"^2.5.7","ipfs-http-client":"^29.0.1","grpc-health-check":"^1.6.6","@dashevo/dashd-rpc":"^1.3.1","@dashevo/dapi-client":"^0.6.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.7.4_1564078911076_0.1876489424207426","host":"s3://npm-registry-packages"}},"0.8.0-dev.3":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.3","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"dadd772b3a5406e1bdb2eea5c03082742789008f","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.3.tgz","fileCount":94,"integrity":"sha512-iXqnbfw8uBNfqn+8TrDk7V9CIDJNaY524HeRwgOB5hHqjF3nDZ6rNsDeJKWfHYEbnlMbSV8C1Brh2HJDAFp2Yg==","signatures":[{"sig":"MEUCIDZ8Fg5oKeeDLm62iyGTV860n1XP2SOA8LritVsSW1U0AiEAslzWyDUbZ/iUmD2BRrBtfjzHJcYBQ+3mBhvyLtO2p4w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":169214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeQWvCRA9TVsSAnZWagAAhkQQAJ4BKuqUkWNNbgClxKB3\nJpkkRLkk/Q8jWm1uwX7KOpmSYs9xkaf/sj7HjzLZNE3EvC2/VdaDB45sZyBT\n1pWS2iCmjPPke1/7jCwIje2RLIQfC560I8uwNx/Sox+VH20XNvcQDHuYv7pu\nQrzMoG4XCyGQlQSJ1gHSxXlvmnceynpoCfc+feE3cfznGP/oev/5udgOgnp5\nUD9DFgOpifD7tYjM85x4f7aaisdEWzMfusISFlR1WJWc/chaWFyPHgzZvnTT\nNtQX15tDMt9/6E9MSPFK0iKW5ZVlrYfQ2NSNjqOUMq1dnLHQE9Bz29wwntJZ\nHZty2CQOC+M6JnYzHl7Bo3EQaddCHo2BSz29Pi3wBUUBvdhpB7WZlHh0KQCu\nlwNJiFuaG0G4gQ2YLtuH6sVEozzPHOidckZcKtPauV0Sr1r4yJ6oiIDXlKdE\nSGh8lw9xf/V2bWq0mYYc7SAQfac1hV901iG1j+xR03mkPvJl+YjdYS3CGxAY\noBkhlQraUn8m+/6r5xbHqZASXgY0A8MokG+SsO3HGwBaQxsTDTkAteKstrR9\nK3aNqcxdaCRVbex+41xJMWN0BHYN4zzIBxkd9XHpGbEf2P6Su9HGJJMchmtB\naH0NxpbyfcJiivkkVCoR8Zjmj95nsSYX8GgV6GgI22o5Cc2+OHQy1j7HsGse\nfhQK\r\n=Q2fn\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"8cb3fcc875db83710eb78894d34facc8c6bf8f0b","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/dapi-client":"^0.6.5"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.3_1568212398320_0.9725878562372683","host":"s3://npm-registry-packages"}},"0.8.0-dev.4":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.4","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.4","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"da928a61cf8006315eba4108cbec2ca44444084d","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.4.tgz","fileCount":100,"integrity":"sha512-UbOAo/6/DfdbG2zQsoY4b8B64bkpE5prjhY5fFuUsYdsv9JyFV58Bs38fg/15fg/UbzzX1kaei2AhqbvkEe+Ug==","signatures":[{"sig":"MEQCIAD4rquQWUOn4+IUbrGII+iKvCs9AWAyzSDSBNtJY1wfAiAREANLLX+5VS/XpBBbI/xemJp1x9l6WBD+dYZhxkuoAA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":179500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoGZYCRA9TVsSAnZWagAAzK4QAJE7/yTRsRKIH5xaKff3\nMeJskKDcbDSiamnvx4A1TIYo0i/adTi7bk26FodQNz62HplSk3FhfvvZQrbH\nDDiMKSI2z+fqtjecfv0T+iMmRoaN9WiTvNkJkCqqBDFdkhbTqm5A7L1O2EXA\nKJka6CNC4zfuHc0xgQXnI/XduOAxuDCU6LNUVBUhuY3/lGVTdK4qOwKbMaj4\nrP3qhgzwN8InyMhXsxiFg+qz7Ki1pMktV0FBacVSOD2WOeHSUe9IIp3FVkmm\nnekKFjNpk9mA4zQ/gx9b57kYsyPuxsN1TFTPOGygfjxlLvD4CwLHrDljdBbK\nOF+u+xXFF0zniG3sEGqoRyxoba5VKRhEgek+101zlrE9pHrR2DMBe4JZjxi5\nLGZx8E0jAx6Y0P0hcWAf9sFq2m9pyE6Z6RYZftO2lrQTStED5QjYDlQ5HOcz\nKVORABLietdUHeDZDYjfsDWiG4uPJK/EJ9aujGVeO3Lbc7VhLrn5ZDQhOfsB\nPa7WcHwDaQ0AIlVTsYdDHd+D0OqqBj6MHmYShOCBduh5zQRPNR3WUcIaLOMo\n/XGiFbTm/9P22NlKpKkVpo6o/gEsQ7BXxrjEehuzH5i0f3mlqk6RXoGODNsm\nBgnXHe/FhGnlU6AE+G5nTxefdw8B40fPlzYZM5LffvhPs1F2JL4l2YLAT2Zi\ngRkE\r\n=LeqT\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"9e4b8492cff10cade17436300dee3b85fbdeccd1","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.1.2","@dashevo/dapi-client":"^0.6.5"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.4_1570793047709_0.4416372674439244","host":"s3://npm-registry-packages"}},"0.8.0-dev.5":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.5","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.5","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"3fe59c5cf613991deeaf873daf6d24b425ad8265","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.5.tgz","fileCount":105,"integrity":"sha512-keG/HrnrLC1rb7DKidgSMll58YpMxZ3MU8B3+QkO2SO4OP+GTpr2w7Sw0kxkX7BrNSs7h0V5rqxNG12OQ3rCPg==","signatures":[{"sig":"MEQCIBWZ2EUNCnMofokf7y6Yj7PBfJuqpfOUbwqgo2BGj+rqAiA8nKPAej6dScfiqxt1PSyMCPbJqM3Sjy5NG1Mn+uB/5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpXH/CRA9TVsSAnZWagAAvOwP/jsIdw9kWbUiXCtaeszO\nHd2c3aRq/H3kgZMTQJy/NqoMq9Iv+s7RYH5dTfRct7tdZOQ+JrJPOL/p02zh\nNks13Tsy9SV+CkwByzjdpuaqxTfDUZFrV0woqxGH4INFcmNOHjrd+y51Qi2L\nUD8Y2qTghzrY9S9J+V1VzeHLWTtkasB9MbHEIwsloAiKRk+PZKO6klryaS8H\nvdpuv0gnMGny0JMJFhUHIJvi6LzhLp51buVZ+aemBEhzA2iA4cbK9QQ1zzrL\nsOl8zA/cPfueoO5MwktWEFBdD0Ac7BjWP34Fybiv0KKca/18uyR5XHckYCJ8\nJ13BZ9dXmTURbGarj9/y2BwqKc7xJN1uLZIVS9d/owRGuD2RHjwTX7llP7Ow\nt7SfLBciLTszx7tvCXKXBwOkuGTtcoelbzUFoiJ4XMwcNLNm+V57zuJsVk99\nKCjAUfbwJTDlO4NZe5x6XQ3fuYxzkjwXYfGMh+mJ21IhmGswimoBtea7YRr5\ntb7q0vdaKrvfC3UK8YDYWtn4lM97JjbB9Ypb2R5jDlxYPu/OQ4wGDCCFNoWd\n8FSwYQgD8aC9UN7S0Zj+Q07AfkXBRCH+ipTqy1zDH+HQBhfWav8SUciISC8m\nffBwKE/C+w+Vorw5CP5hqu0urso6K/kzHgm8VdXjJxW/FkU8+6i1Bwjy9no3\nTlo/\r\n=Ck87\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"1af3c38477e267a2240253b68be2b0d9b87cd443","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.20.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.1.2","@dashevo/dapi-client":"^0.6.5"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.5_1571123711181_0.5321017371837511","host":"s3://npm-registry-packages"}},"0.8.0-dev.6":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.6","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.6","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"b4441391da53590f5f3550bfc82ea72deeda1ee5","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.6.tgz","fileCount":105,"integrity":"sha512-Hy6AeIy9jfapnQ2EhpDRznreKmdZxWI95oIC11mTrfCExGQXfA8SdRs/caz1n6wIo6Prj7qa9gzAQIo2pSjQhg==","signatures":[{"sig":"MEUCIBgzCJFf0PTacB2BPlTzHUMVXxxoQmpiNWtePQC7iTNPAiEAhjr4FyHARUCfxmh90Tsi03vTMOzEi/IwvMtO4p7Kvhk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpa8XCRA9TVsSAnZWagAA2ZoP/R64/GfrJgNL2HC/8NHy\nifHXromA08HEF7rJgYuyBQVOnanjEB98hKuW0KK41yqhwazARsc+GKOlvXRk\nat1x56nS5HijONO0d7zSmpjBbyW8MQURZmO8w8Zlr0PkpFD0SSueqQcz/zWb\nOICNPoQqJQtxoC+oNZRdnEZK9uJ+l8KQODko/oOGmLGxmekf/TjqE2LGhce+\nMKG4rekTNxzdPURS/a1+yJ8XDijqQUNk/9q15noEvb9cCmgdo/qGQjenp8sA\nnG1JRYzXf/OdPkC5bz5IvSH432St+/+Am0eNcdCdqhuFO4ZrqHw8r0LaOFUg\nbpf1YvoMqXZCKv1RBAGCMd0i9+Koo0ECmmqUr+ZeojCCGPiFqtzM5NplfzmW\nao17+iSNxRuH+xjG1lTsv5clslcFWoyNhSlMgrO+Ys93JMR2ejdkYxjY1YmG\n1SOeIVJZcePhGdqKjtatyDy6tAHqlRx7EKRyVe+N/29gbsckrnX1K/g40pQa\nV2fU+Ge9tXbQ8LIUOOR5bT4piL/HCW7/8QSe00T5PI53Sso0GysLiEhtiSqx\ndjIe1ciE92uIoDXPujkRBfxTSg74Skze8BYMWSWGw1rxAcsfWDlD3OclqQbr\nsUZT5rYxRhujt2Fuqa8pvoXXWWrECDteSU0q82828DUfCNPHwwrM9JSb4vCt\nDjoP\r\n=UR2Y\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"3ffbb4479a414da8c245c696fb40f6e4a4ac90fb","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.1","@dashevo/dapi-client":"^0.6.5"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.6_1571139350533_0.6374052531886143","host":"s3://npm-registry-packages"}},"0.8.0-dev.7":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.7","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.7","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"93ae102f18a90f5ef0f0abbcf178c2f01450a7eb","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.7.tgz","fileCount":105,"integrity":"sha512-yU//8sh1WU7BiwcZ0d1ztGPIkhloGnTrPyzYuts9nbIC2X13HG3M04koJcUkW/gEbfgyS7WMM5UtJqdDrmmjXQ==","signatures":[{"sig":"MEQCICFvXQYhAr54rNrjLLZg8d3Y/QrA/U7Dk3gZFeOsKE1VAiApcuOftBGHRxl3TQxTxzlPloWJCHzLSG88BV7cS/Xlbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdpxQzCRA9TVsSAnZWagAAXpkP/1ofMp9JU/OlSO6ClgV5\n5y/NsDoHrao9ngoJNIRmr3kzrAJ6kxJQbkIn7G//2Q3kUOic5pkZrZnS8g7q\n4hC/px/uEJcg986/N0DWFREzInDNEFxl6SLH6tEJSuoVyjeUVqH4kXXZ9GsB\nDjtLi154tkG4y21E1HCQwr6RlarapN1pmWTZOaHqFfNEIOymzxsCiPpKMumf\ngt7pvgqQLk4w1c4IiUvXBP6Lc+H66dQ65CyToGgl2qLQ0at6ALHphWIjjS5p\nlCAK+dJxOZMiCIL/8rcDwNpg6eOUQg0kn6P/J5+G5wnxdQDua9K33Jwt8H1S\ne7E4ajrQtFt2/P+JYD21cFtfPxcCzeaC2Axh9rN+gw2cR4ApFeFw7XyRFpZD\n+8Sed5U6+QC17J2BcTbfuegn5bTnfBB8dHX6tB+6+7HA0eMaJEcZqtWk3Evk\nwE4czkeTDVQzWNPoa89ImJF1Cr1ulxSoeV9Ke0AtNniKzu6akuVAZNPthSvM\nHEk3J9qFfdEIuoyyXxVXuqXKz7vhZU5dbmb+DNc7tZRNdHLPjUP7D6RZ1p29\nJGYkvUpbdWd/TCcwxXUSP1/LjWfL7MNeKGC8Qetpf1pd9Nq1oIm6B2HuwEBE\nHB5F3CPlOf3dqgqHyNy6GruQ8mi6Q+m1lS1HaSk12JVwX1WIuDOcThhv93Pb\naeqV\r\n=P/C4\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"5fa4defacdbba9d6282fab6a81c39e37ee124efe","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.12.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.9.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.5"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.7_1571230771006_0.7685133398229298","host":"s3://npm-registry-packages"}},"0.8.0-dev.8":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.8","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.8","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"45609d9ecfad9d8f39c3d20197f5513f467a6e60","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.8.tgz","fileCount":105,"integrity":"sha512-lKobidKgbSsc60Hp8N//mYs1xb6yT/JCg5mHsK/+G6eeOqXmHDqpMTtUBZWGiZTw4gWVaqvfJJes3QIAaIE9RA==","signatures":[{"sig":"MEQCIHPI/sdZFHPLGbLSWZxt5Id4IhS7pARRBMxqhNxC/UmBAiAGCNtGwsXfhP/ZToo7DmEh6vAmB4bbPeBGy3K5vPkBMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqGRvCRA9TVsSAnZWagAAu3sP/1tWudGF4eTJQz5jnMP+\nBBjP5g4Khpjj1to697XeEdv8psT2c3FDcQCF7Up35GRVfdkgTq/yWqjPrlGd\nEb25n75/bHlWO9aJhNuRiC4k42ywzIEyjp3Lbs8Us9RjAOe+rK8VPvUR6Yka\nYMAheaD72f7G5KCHFGOZdC3+s73g5ZUu5UAkynnui2MFuT8xLzv+eot/3Npp\noVhTOvKUQyFrbDQ80BJ/RDgQRG5yWzC4lr+ylz54gC58QFpHXZtS5nFbM8B4\n3GXk18gef8BJZ+5IIUZ98hUaf8axhy+1yZVqPBHLoYVa0iNbIOn5TL0zsJDo\nnV6LO0suoea1TM2K9vJItwlqZZgswRAUv8QqvOnp+qOyhHfT8Q/sbYjydYeX\nPVK4KQXV0+b4EoxFIRVc4rH1YU4u2Kszz1QOF+dcQ+Lvc+zJOmpuJirGbCHz\n6JfCKxrBIKwwNECr/NF+RqHLpRIdSMgKCWBeoV9Jj5dElTHiKMHrAwks7tv7\nRgGDTec9P37545oD/igyy7WKGlof2n8qIvJnCYHaHevuNpUBIv/dy1UxO9kD\ny1jwFhNby71DzKC96UaQEDGnfTQc/zR3/izjeTph5DDF6ooZOMmS1N4/Gf0s\ncVIVw9RWBjMvcFpNJ72tiiWOcklJTTIABjk6WcFRn0b0+nT95TpPOmRfPtWU\ntiVr\r\n=fMCx\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"439fac28199c6580aff099d1a40724be08bd8d0f","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.8"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.8_1571316846826_0.10668513257035594","host":"s3://npm-registry-packages"}},"0.8.0-dev.9":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.9","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.9","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"0f1aea1cd835b17bc1f4d721eac9b1a62dcb612e","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.9.tgz","fileCount":105,"integrity":"sha512-KOHAViwvJ6HTCD6v3VLTmMdF3Va8NizudldAoeFaL0Db9cvEQQtpPrGSwqq1krm4JbnVXpAZqDwexaX/9npLQQ==","signatures":[{"sig":"MEUCIQDPaYuKV/07pVj5Y3GJvndZOXrdgItBvQQMeDSDKiProwIgEjRpQ65FTaOj5yVHbegVJ9GekKgrnWLdiRe7UhdFNyU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqLG0CRA9TVsSAnZWagAAgDUP/3vAac6eXUIoRDmKRjcv\naHFC8WDXmv78oBh/HptpuNc78Y4XXsZ6sXZVrYm3enwSycg/v6dtSOo26NqH\nGDZYL9PFs3T+edW1r1IKm82SzXCDb4P7ILQ4aU4yj0p2ofOCxVmcTuJ8IQKQ\nfhgIj/4nJzR6AA728MyQH/MVGhj2vU/5wkysdbwDY3EJeoDk6ve+x0cn3INu\nuVLRIlDGd0ZgGmiTHHvI8Se+LeCRr1UgXb0QFWHMgSXbvn7IhI+mfAMnveAP\ne+gn1W+JGjq/tu7Rd5MWJ/um/zckp8EUhvYBkIVzjj7uSDpRGHpq33sabEhJ\napEmMkzsYhWgEyAAk7snIxfN7qL5ujgDcc1VbRdcZ+06jue6wks5LTR7ZJpq\nJIrtj+hHsAF8XlGZN2Nv7YXm+blm3d5+VCRpBR+HpwEZvYFZA7Ac4c303Def\nAr2RK9U+jc3QAUddOwbOkZyUBnKq+1HUyjYjNBTewzoTN12Y3jePf7YxODN1\n05zpbWmZ10DtHf4Wz6yIbj0hQfujSfnWO6/BebkYMQuGr7m8M0qTvtCceY9f\n9TSYPddDByhLjqaCSYhm7njm7gLD5MyqPCOrRLEExeMEVjUobTDEAKAXtpZg\nV+pV+WK4I/hZf2GCQnsJsr8J3zdB4lEoxV9+4bbzuE/6rzakbuoPpDeSgToD\naGnT\r\n=H6+b\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"970a9e4ed12afa735b65c42682cf783188e1076a","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.9"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.9_1571336627894_0.9228072371055906","host":"s3://npm-registry-packages"}},"0.8.0-dev.10":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.10","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.10","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"90354965c6759d8e5b80548902107dba5da6d15f","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.10.tgz","fileCount":105,"integrity":"sha512-G1UNkBoVNhRO18MDSJxTUZZNz6p4I1phq02+BpsEPQffwLV2Jc82WBn+QZCFzu8xemDka+RMY9yckzjLC3cn7A==","signatures":[{"sig":"MEQCIDR27+N25uUmWL/jMeR+PhIiTl0SatybL/abtiFOiiCnAiA+8KOd3oqOxX5uLM/wshOQnvIDdFfqkHrhQ7yU0xQhxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqYonCRA9TVsSAnZWagAA1jcQAIOaS1B04aPdweTwW5ki\nihdvOAXTQp2vj6+jdMpgrnW8XJKRnwkXMsDBRhD+IT9BrvceZktgXk34uwQe\nSJGlnURARjhTK2m3nXttERCjMH6Q/ArVroz3DaH9EnkNVr3vIXeDAaTUHm3A\nK0BrFYhkUhS7Z/+ZZo422Q3so2WlGTuVbba9ssCtu6QgTyuZmAg6lDM0W/Ta\nndYfgY5BRkHfE2IlByRLEFn99V303RUAOJCG+lmNJGHITPIk76i4Arxo6xZw\nQxQtUe43xwaLswi15i6TioG15CiDGxuTRIrpskNYKqhQL/882Ru8DTmEmBlr\neVhyiCGfghk8IT+c2wHDn/1AtV4lWMSEiSYZleRyN9OoSn5llUhEEh4rnZf7\nxzIjIx/idp+1vnHikPM+NyDdzrYdzz7Vk+Hl+7iKicjAt0r06MwsfC0e2gMr\nsfDVyAIfXBf2pdC0lAoFOruxmDSXV3i82mO1P7EiBBxzxBkZyvjsPW+SbY8L\nRVrTnvZt6wwzN3nYG9MM9N/Qj+Pl54Rl5WUJjLGSsmm8vf22+NOY/jVRQUCL\neGNuqauujxCsbM/SBfctdGpmt2k31Gy6LMvkaHer0MfKKRS9EZg2A+U5dEsf\n5XvghHUBoNou480s5qXj7UqXrS3FmapjASNgcXByffZXtfTGjQobVEt2wA/f\n7rxq\r\n=Jp12\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"2508288de99bef6293e41eea3b93bb88b7591beb","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.10"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.10_1571392039248_0.4678688087794671","host":"s3://npm-registry-packages"}},"0.8.0-dev.11":{"name":"@dashevo/dp-services-ctl","version":"0.8.0-dev.11","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0-dev.11","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"6239e0f769e6c76c8846ee8756fe680390ae71cf","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0-dev.11.tgz","fileCount":105,"integrity":"sha512-fpyje4bKtpeTKlu3o4EUV/vZ4T7INMwcDxqxZeja5ufASFVmbZ36/xBxv09nXzTbJ1cFjUxjj4iLbcHMr2/gBQ==","signatures":[{"sig":"MEUCIQDfif3aMpRHipsSNlGNVb9lMrx0beRM2DLTfYJlKj5u1gIgNfhF0bfDHDYj2YG42HKcmM9RsZ6g3NZBoKVfxLJRbN8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrbHXCRA9TVsSAnZWagAABIUP/io9slknGG9xKJ11Llzm\nJx7jpIxAIDjtMsoK9RI1e8GlSHHlUmflDp3S2xeY4BBUuj+n5AqxFYVr5IMD\nBdy7LzZte0WhjKZmWmxJ6b1uvwgUst86p+9t5cl43Js2mmnSCfRshWxb1BMT\nDYbaLhp1e1G8PhJ58eag6ffDY0OWSS4Wg+7UOqSw9BOjjZI3J4e1ORQAHfPU\nye4oHKzEHenDQvJi1QScIRd9eNC1qz3xpogDiuNKrZEmSfKauBave5zkLQMQ\n76lImB3taZc+NKFm3dk0SNVj3pdD0IrqfsxHpeQtT6lekxTOt6gSjnGBB25r\nDerU3RxaqSNZL7DnupQWv/yIvaWEffU2HpwnMz5f0ExPLYdqU4h9ji6Qpaeu\n9q9+wmCEirxj4u6wXYKOsQpfCXt9S/EEXftE/SW/TsVt5Vo6yHNQbiChNKo4\nQlDJT2RlkoPtlbWuXDZ2rJ+QS1ab4DuQ//Gu4ZtQDUcTyqqYCmvUmv7qP6hQ\n5Y/rSeXYxY1FXIkmrntSRLFVUlgFadkjfJsasJG+7AFlWVmjiYldQyXFTgLC\nt5M7hQpwG0IQneVAkhdmhR8HV9vj+0jv8v6XpjLpC4xF/9drh9d6uEqBtPT5\nAMNaOE4w1LlFYktRDvnsVaZ/toQJQjsUTHt/Y5AIsa6FstvkH4/2cH0jI0Y9\nUClA\r\n=S2Zg\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"a8875dbf276c46a0f29b1541be88d2b43995f865","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.10"},"publishConfig":{"tag":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0-dev.11_1571664342322_0.28364515163791726","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"@dashevo/dp-services-ctl","version":"0.8.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.8.0","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"2359336318bbec0941dd9d255d06aac57fac8743","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.8.0.tgz","fileCount":105,"integrity":"sha512-5/LA8wt58ZdVnfHyfR5DJqyIbLXQBLLqDCTOQURn821BM7FHSYBnpnU10R0LqYWYg8z7Or4HfNvvZmLsE0cMoQ==","signatures":[{"sig":"MEUCIAwtlbXGEeBrTk5CZclVzhvO2j1Cp/xLVgbwNI9rd3K+AiEA2FWx62xvZpAX7LgJFkyCvY2lfwQ/Ym5Eiu4fcHeNeCU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrvOhCRA9TVsSAnZWagAA9nQP/0arbOo2Mihkkps2tXEH\nVA4FgPJSghnWffg4xaawkU+nGXGax7/4FohiFdsz9E/GmS8/6j8H/mVEcSyi\nEYnxfqYIQfwqLVlUEouuYbbv4AxpVLzwXxwwkkjtlDFW9lwvFKzMZGeQc1OK\n3dLi9RMO4XWvpMJM4zekeY9gIiISb30+psEIYaK4NQTigrLcpJGsSfhE3QBQ\nEY5CuK6pSDZD05WTKyHUufLTxR4YYkJ53MD66qYsVmXtiW0szXqB12VrsNNw\nXTwt/oUmDgBzooG+FUbjz8AYsZt7be52x4Lw5Vsp+1EVumnHHmSM3CZBtWxv\nLWWxOOduTzqorCMXXUGAa8FgbPGR+9qY8LOYVHUmgKEAeKA3MnjEalmXXjgn\nnTTNXdbQdt3XHELkJx4lZt7QSWBhMNuHT6/N2bNxtsOZ/dQ8JVbMb60kveEZ\nmiC0Pi8QgSUP6NuaUyNHI2cdVZGbAOKb/VWS72uWiAJIpBuuKRVe23QiHTlj\nc6LXjL1K54Nw8hhBu7WaUZ/TeDwEUNFOQft2uqGuVDgHrKJ//p3FvxvewoVa\nowAkBbjQpSL26i4kGnVNjzgJRePThoPqsrnJpCkjyldxt1E3JqK4fTx1tOov\nkHQAKVfaws38lLQcQoiv9TXeqLp6MaRhqCvSZk4j+N0pbSBSdN5ZjC6xVq85\n5BK/\r\n=lOF5\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"4a3aa878e2fee8ca9391d6b426736e2beda05cde","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.2.2","@dashevo/dapi-client":"^0.6.10"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.8.0_1571746720546_0.3526965042688439","host":"s3://npm-registry-packages"}},"0.9.0-dev.2":{"name":"@dashevo/dp-services-ctl","version":"0.9.0-dev.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.0-dev.2","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"46c069534b2d3d554a003e98d18735d59dd671f0","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.0-dev.2.tgz","fileCount":105,"integrity":"sha512-9Cg3UOowevYZUijrrEhvmnGt+G2eHXf1u1gOduwLutQ5SyW73rFyX1lyT1IjLIROmSM2mxs3mYHDCTdJs52Pzg==","signatures":[{"sig":"MEYCIQDsntbWBHttRW+YmK8CdJ3rzabgfTq+JKs23O6p8esHZgIhAPID+EHohcaTIZj3jn9kcg73/LQHwvt898kxMISqLY/7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduD3CCRA9TVsSAnZWagAA/2YP/R2wZyvDIP1cX+uSDLUv\nCyLpFnbvOYTkesLIXDelf1fSqGKgt5gRfRScN6daZ8UiGgv+PeR4f/AviN1i\nhkemI/7xTG1T6QZ02j1lywvGp5dd5Xdk5dQfOS2rn3ovNmR5w0TE6lB5tVbq\na2KPMv6El6swGCV+DflPyoDbMkalw8DdF6CGWdZgNgrxVpmIzSGIqCZ7WmLK\nK8iwZUvm7mkZtogMmNspKdo9IfDQtHaYvieusqBMjQWokbh3qxgmcETqDy2d\nNfCri5WXgrUtclm8s1T1uWGkhaMDYbKUK4+u2KdQW/Wyvw/rPX2ewebrntdA\nqT21f70oD1G4uksk+gmRMhCJ+lKmw3wyA5guOuKOuuctTirH7Ty3aDYQWj5y\nh8yE3/cxYZ57jfvPQQf4ZeOKpVpSe7XhdzJvKDI7aIF94KHYGx+IV0g5vN4u\n3X1vXc29VG1qLpYHLuByfiuYax2BGvb22zovCKocWr837sn7+gBgbwl4ib4j\nd1bAIF1bo5WUVnSFxUifvEGjgXoysnZ2Py7ogVQCUF+CBoPx5Qc/YxogrQ2E\nDKS7+U40lF2suw8+C8XL1wI3JsRggGI0gTcjUvc9crbs6AuQUoQroy+awUbs\nl0JrVP/Yle3/xxrpvj9Fdz6WfCk6ERUOa+Ak0JMk4+iR1rkYmdPX/tcudOGw\nlZkI\r\n=zQI1\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"f49bbe38a20165ab05fe485de53f55b6fe1d71b8","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.6.10"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.0-dev.2_1572355521910_0.9600590151410431","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"@dashevo/dp-services-ctl","version":"0.9.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.0","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"06640fd273b0a68a91537dbc6e60f03ea7ce2824","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.0.tgz","fileCount":105,"integrity":"sha512-AV06G3zZ4M1dHZntI0mDgzi3C+xUw/50TgfESlixyKhdecCOONVUBtQje6LZURiWz+aBJtAkxxfM7aw8PTv4gA==","signatures":[{"sig":"MEYCIQCqcvTnSBFCCLXgxSFQ41d6VFFw91Hpl+hMXDAoQ7QAcQIhALHlPF6xCUbLMouQMUspUUyOeUrzqML8HO6MksHu6UoR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxBGcCRA9TVsSAnZWagAAb9kP/2ughxSSPx3BUHLwrgvd\nE7cmlSYLc0oJWi4CRXlyzb6kE6oC40NtodgzJlqk1RMJAcZ2lnNycKa8p14L\nUAdAQALOxx1rciN+84qexxCjipZs5x0D6rVZVGsVEpN3Leaj597Y0/SzzVyp\nuLF8ln7WfYhPWGKp0bhWvBi341ZaEVdhgH2KPX/nehcL+/7qlvFmulmJxnz/\nlGKPACHTLMHRecLAPCdTNM6fE58hA0dG8jP+ImoO2yj+OMESs9bYup8wtMYs\nsM8hpm+Bn8JRC7QFjYXDJho4WHPmvBqxjZEv29sZB7TI7ZaL4+SWRZxmFFkD\n8DIYP+K7B7KlItJdmrQJ0cepWXrTzF6yG9VcTE8JIskTlAJTGyaQgbuAuXu1\nleWcDOccqfIvAO0WB1uzvMVekM4D/KPJY44q5ObjOHo2RStOoxZw6DvccSvU\nuEwhIrW5X5qi78UFjr6G85DovIhUdWZUM9T58/J3QA5nHAGtu5OaPNqQznAE\n3VBZpdpxh0dmScYpxtvd9VERf3bKjbOrdsRbEqgYBVLm9Ams9dgOlPJ8HYyk\nNt9/efEPr60wA6cmFLk4T1KARb7k+ctVOfoWDAg2a/uveRl5soQJdOgWbkc8\nfomIZdB9H46BZ0PNaYiv4mUf4fAXsrQYH9e/UT9RgcMKKBfnbgBBKsY91UsH\nv1yD\r\n=lvZZ\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"ea96653d43620e8e2348d73bd0c1e8379f2f3c13","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.6.10"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.0_1573130652053_0.6650190759218195","host":"s3://npm-registry-packages"}},"0.9.1":{"name":"@dashevo/dp-services-ctl","version":"0.9.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.1","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"e47a403064ed9aef92293354c0f1b122f1cde0e1","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.1.tgz","fileCount":105,"integrity":"sha512-+slwUAUUId8MH/3RaNYLpfMObcPpi4PwlwIlMPu7aSeMeD2Hjk76LQofkEqVGL8APTdvtvTfRvtRiGst9NmlMQ==","signatures":[{"sig":"MEUCIFEHn/hb1m97Xr38pgHARVgXbV+tJ78i2EmmxOtR0c26AiEApMYPlUg+jwBXJUa7ZILG6BDXkrDqvWmZfp/WbNE5NZk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":189929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxWkHCRA9TVsSAnZWagAA974P/jWdMGCizo0ZMFrydasT\nKyXL/XESHoPK21kkWcZR8jMKjoV0H2GxKGDpeZK3JVk2Sw8jbukfxPE1hdWc\nm0t/DCJKdNO8RCKvvdCsmgMMl4EGFPST8ZsXZDNfZwY7tS8Tf0AW26Qe535J\ndLj0c5YK2k/rrbQWW9cn4IANh2aYdov4B9u4SJPKbgk6/vU3wNbhoTnPc18H\nVottG61TyFVa7HRU0SPRSU2/0LX6WUJUEy8K9EbDsEnjgt5G81g8gODH1UMo\nqRZaeUAc9W/Cvd4H3PbFsuLD9o0G5VRm7lBrQTQ7Z/aO0Yx2lOLX8QiQOFFb\nazDcf1okzSZYxdd8hC9Iiny70uO6l+R+lbzRwSfnoD3td60toVwbbp+XerNl\n3MhOsRh2oRypmxzRqt+Ur5J7Y5NJsWwCgTPgWfguo+A7GG5uWXaO7DgGIlyo\ndYbKZTH4xmhWhSEhczDgQEVV3fzemM82hyWJuVvqWrsYRVKLJ1wqOc5BqrGr\nOT9FocbujmYJ4/eM3xwdR3zA0p5anJPEuNUoNHWAB3Uyytfp3pFeKhT4D5ok\nSKg/BO8xSOWybulXVAWT9Dd7QxnuxTOML2YXVltbEUBQz6VfkbI6nw1rDhhw\nmf8KG1hKJFMVuoGoI0D4tLS7sgvxI5/+oh5JzLby+tr9OWOgrdkiTrrI2g0K\nc8Er\r\n=sQMG\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"93a7feba296702342f4e4d94a3cad8ee76f853de","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.1_1573218567510_0.9050482899027148","host":"s3://npm-registry-packages"}},"0.9.2":{"name":"@dashevo/dp-services-ctl","version":"0.9.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.2","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"e86ae70ff9edf439ee7d06b893f3566036f0e7d6","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.2.tgz","fileCount":105,"integrity":"sha512-3fk11pks1q/dqDkkjwhLQU2gRhcDpyxdR7ywCmaWU1FDwpe8RvtllDJmA1XExj+xzrSY6SCYQeutBY7WaxaAdw==","signatures":[{"sig":"MEQCICz+B+wpvJ8mopffLc8o0FusvodA8qgEVtni0i4tNL3wAiBI3WFx1wiTF47ZC1PvqnpqsxyVXPR1mLhQ6MoDhkXCVw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0vsKCRA9TVsSAnZWagAAXN0P/0IdrYmT8QtJ2oy8+b41\n1w7W18HE1YO4F9ymNIUy/df6wbLTagUIviAGPkiDQiU5zM6Xx51Ddd7WbARg\nSr1FpIc6cGa3gMtXpkoLR9ZlW8ioSgh5kuXr3gm5jqvUl2Yl2bHGmqUrH9Xj\ngefOiVeJrK0zTG/JJw4Y9RnfrqrQ1WC7P8EerfKirkArS18pH54ldBwJXotx\nu/PW2J7h5HIGwVWx3m+NfMwpt8en8ux6yj7fLjpvGYHvex6bkRTQLZzb7rG2\n5zGVbkeW1YjjS2OlES09TZFcVP/Dls7lcx/OnJ5TouWUHDHP++Bkih2V/94t\nXGVTbyyN+qikGl7WkcTka3TSF1Pjh3dsTHfm0NEt6rsT/wr6u05cB8hQw553\n9HCf2am0mAkuYygCwCVcKUKyneFLLSrrdKwgjsPutHLsb/1FFzQ8qZ7TBS2p\nrUIEu0MgY+t6e+v3zOAlsh+80r/TriFStGiwB2rB04QlzLqxaZ6jZp7IOXk3\nUHbF/tXI38HOgXbercC6qpJdGOiC/0tfq8SsKxvXQTo9oO4bxpwLvNyxRQ3G\nwRoB3iXa6bhkqMm75rVW8pty6oygpFjqoc8g+UrjibEeM+qhcO2IlcVt5z/d\ne3y+62u7dw7MEF3WcuHATAXVzksvAxk8u3dya0o+c012JCPR7mJDC6xwIOY9\nsfWK\r\n=he/8\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"5535a3fc0b85c7ef2ac8cb34904140f217cc01c0","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.2_1574107913435_0.15815544884436084","host":"s3://npm-registry-packages"}},"0.9.3":{"name":"@dashevo/dp-services-ctl","version":"0.9.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.3","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"d02a80b7b506368bee085b8cea0dd7dda9437aea","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.3.tgz","fileCount":105,"integrity":"sha512-0BafK586+KcZSQBSKt9/LnhnamY48rmYM+yUBEb1ZIGzIWfPV/oHAZmQH6FP4zgi9pzH4NQPIJ320UgGzPTC9w==","signatures":[{"sig":"MEQCIARIDWXCrjGr/TlXogl3mTOuUT2mTN1AQLzV0N5ewAswAiBRXPzEl16vh8sW27ARaCjs5rzcRqVJRp7X5DHtfziyjQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1VywCRA9TVsSAnZWagAAgMwP/1IcTg921TNl3S/2YLNy\n0gvjyd8XIyAMUZ3IMZSd28nopEnN94dZ5/Tx7k+nZD5IP+39A7GgWvVMZ0UX\nW6LQQag/06WoFC6Pc5mPuqeO9089ooCGw7lxFzbcNEkvGBe/BZA3jW9j6dtQ\npUn1sdpWv2eHzK/lwSnVX17BFElOaJvLMxltdB/fEnHv9ykoNR5+GQaIQR8N\ncCzELLzfENONV0HjwVjripkgdLv8Uy5hFifsAqeKz3nyJh+hinnfqXv0vLJx\nDzyZjQq2nJ5f03CVp0/b7R1LLmXxSjEhqs8aisg95AN0QC7G9miNEkk4lTbo\nAQbeal4TFKLzzdw2Um98EQtxErV0HjZiIEoiQVWMc32xy2QqtOOR8Y06Qb0f\nSb3RkfSRj2AqFVM+G+N5VWpvqwa1+zy+ot6Co0nMJianf3IeJS6K7s3kUHaj\nnb7YQu26luUfhpgPvJU0E+3w55BcnfZeCZdLfB/U0aIgCal/oK1TloZeC/zh\ncQ7yNym3du/HfB3xvfNiCgBGoMNp7qbP35BzUDYW5y7m5rX1dg/rg+k9Kma1\nCPqKoAYafo2X6mNeCnTfAp1s12jfnHDwfL8BCqfGRlABlevAMPa7ozmZmUQ0\nLTTOoIlTlMI/bw8SrWEhdgp77VJJ0Q7WiT38cDatW4EKAEjt6LQn8NrLrlht\nqusK\r\n=jcUn\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"36bb97ade6239491c07aac2ab405214fc7acb7d9","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.3_1574263983894_0.7553119227705061","host":"s3://npm-registry-packages"}},"0.9.0-dev.3":{"name":"@dashevo/dp-services-ctl","version":"0.9.0-dev.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.0-dev.3","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"d90ebc3bd1bdd53396285c4f24d7cdfa649c1528","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.0-dev.3.tgz","fileCount":105,"integrity":"sha512-b3qxUdSe+OlXLDieM7DZU0xORQ4jYmbt7ucoFvmX79AKFp6p2eIsdBfSNQaol7NcKKjG5NHSZomkIm5myaBTWQ==","signatures":[{"sig":"MEUCIEwdqfxFMkw0yvpnY9YXhW2Vvk+IX7G7OQ7qbgnDI5DcAiEAoqHPP04sfgBvWfnIFZb1Cgvh7o7zFQTiDxH9q0JUYCY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5OeKCRA9TVsSAnZWagAA84QP/2BBIxzMTKdqiiaFlYZE\niPRb7LB4RP9C3YD9rNGkUUkFsciqE9PbhYOlw+fJpc1tzYLK0hnF2SmXCmzH\n0kY4HlLaup9licYOry53SiaQJgCv9re0E5GDodMRqh6webM5LpdTkK28abHU\nB0ohYE+6i6wLVbz2Mvfs+so/g+3tJngKtPt5pQGWrRslbuoMUZcLwrKKqgqG\nJCAdLbboHC3dUDN58htTepE1waWKM2vFikK8OZM5J+TUZvl7DeGvg/g7k4B2\nYyauoVDipqocagBSXW2ilDb/ST0lUn0oO6aDhUPpGhToAP0k5c8JkSGE1Ai1\nJuc+ejdD5QcjmS30BuZcDWuzmSf7P7zfGZmgyXL7IpoOvCrJ0hI9XqwX96hD\ntDedPyNCs8SIKt4lD97nIX5Lg/2OWQVLsJn8saT4aAvN4hiuH39Me5bmmTvQ\nFcXZFUvQZOI8wn+Kc3hE80fsx8OV/k22aNHX9s2ycriBCEnAWQP9BhUQvBM0\npV+4BFH6bPRCR6bsL6doU1UImQHBk6mNzFhARFt11IXPN+HW+MWclW1AShwz\ngO+R9O8iiYCybS7m2m+Mu9foF+lG0qavkUOLOpmd0An5qkkrF04CpEkxI+FL\nRZ0OEMSInTJqmDwlWRRC168Prqq+N+K6KjxgLZ0kOfwuleS7/fyfpkSkgHke\n+Q/7\r\n=K4Gh\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"10268967fcc88bcfe8b27bfd5b5deacd078526bd","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.0-dev.3_1575282570502_0.10054376586515934","host":"s3://npm-registry-packages"}},"0.9.0-dev.4":{"name":"@dashevo/dp-services-ctl","version":"0.9.0-dev.4","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.0-dev.4","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"6c2be455472b06b7b305e0dc93d12118e6b5d189","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.0-dev.4.tgz","fileCount":105,"integrity":"sha512-H7z2wyFItUQd8ePHnrZGWa/1CdUPUg/+K8VbAmLR4/em4p0iFhtkiSJVIaGzJpBXmVDxJOuvkxYUkmpzc39Pbg==","signatures":[{"sig":"MEQCIGWoeUiPZSbF1Fywr/qygFxKXyjMrR8Lddvr+Nj0hjG3AiA65Q6c8oS1O5eJ0T0WB2lyMuAOxX+baSH3bUundMC+tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5VLgCRA9TVsSAnZWagAATX0P/A99rPyXjJd0mq4aMKki\n0k3cF8c965LN0m6CRfwAyYJFker/sbtjHip+BJqfgrwZdB5YZOQjoNtEmMkZ\nKrM6CNJCT0A2DOHDTJKv0zH+JGG571ViSTn7ZrH3VSYrEFn055VN5VCoAH4U\nSw3OYp6aIzUmDK5A6uWh9H5yqp3xT7hiPVXqOE8fWxEOQ2IjU/fIROUn7vIK\nQbo2huq6MeZtNNzi599wKd/XDY7+e/paODnXMcoVR7+D83zgKrqRYYslUVYP\nQyVimKwQZ4/r7CxOczaz5wHrRX3S30tUPuU1Vrng+INcoondu+N2AgN58SoH\nNa3AuaBOHBDyWCfjvOdj6WuWYWw0vu9qt4RuKj8PEQ2iWjWU0FU3ByyqZZCd\nEqMvpASL1OE152cDlI03uwEsLT0Rm9n5wbGIX5v0x02yWM+sAzB/6SFCzIvb\nhKekZ9cGolupKN7+9imoggop/afD5HYZ0bRH4A7nZ/HIexo44ogTwWFjPQIk\nkT8SmiBnYmddvCWfTXviGh0/+XYpv58VUF73pdxHRQgIbdpeMoERH326Y8q6\n9yiNQGQlbjWHkdT2WHsW5t5Jxo4X7ggDiZ9SggKqkklQ37aKsH6ukcEIga+t\nNVkPzYCZWmSwVpu0ZFJcFmatnz+hi7UHmcrhQTI2cLLyCXz85ShyszXsoDuu\nhQSc\r\n=mQQw\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"6296caa3290aa8e4d4954ddc6ce5984388e91bcf","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.0-dev.4_1575310048394_0.770404914379268","host":"s3://npm-registry-packages"}},"0.9.4-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.9.4-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.9.4-dev.1","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"ab2fdcadabcfd8af172bb3317d934c8c7bb18ab0","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.9.4-dev.1.tgz","fileCount":105,"integrity":"sha512-/cPtCI0azYwKI0xAQ3bBi1t4EoJhNq4cK7gXw2sZ9+pcfSejxTkGi/UM3Oyv/aMmTua3TQ2INJjNKs/g4yc4Yg==","signatures":[{"sig":"MEQCIHMV/DlnDPY3xAghcTY126mockkf2WR/E+EHItP4mouTAiBLggLHhda9/3RLiz7m272bKKLAeKiuuiLCUAJr5oEkcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":190227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5izRCRA9TVsSAnZWagAAFIYP/3JwuAEjVg/+bq7k9i52\n/gI8yT490RNxjJhFYxvMQsryhZb7ZBj5LbW47iulyzSYP6wo2WlgOAk4K7M0\no34rQW/3pDwRfH6WGpqxQiD8WioyOZ4uqOimbXvfhrft5qaOOlaOo10F/wRg\nVMnNtPtBw7ilsOFLzskOMVQycbeX+SrttdblZiEctJc3UsPpgP3o0NTAHiOo\nzEmsM1RKoyo3sHmlvvfTOGrAGNF1eGaWFIpwIYPJNutQgeQLTzNALO43UrpZ\nl6IZRk1uIxqdghQKncIo92DctdnaAIayA/UYRIW8XGvH7ztGnBYb7dP5YawR\nhbSdz7kMpLGj3f6rKqDtaQsqikFtm7EarKG0jocsTtHnhbX59ycc5PmsDHfR\n9GbSdqqj+UUj5WgwczrHOlhtwNo7Oiu9H7zmw4O6wPogWi/5xsyMd/eWf+3x\noAEPCaNVrSP9otL1Bszkg5M0sgQTlkCYCgnE9296kjOR5Nhy5cf29SQKPjpb\ni2DDytfI/rqJS+wfBDuW24rzEtB3ECQfx/fDFKijAPFV7tt83a2a4VBsPcO7\n+qyPPiEEcHNOZ06Y1DGpy1RbajwqYYQxWMJgigKYKPJsmju49rKKzPoQz28J\n3yeE+KQhUpDdHOnKzqAYszaOFanwVB9gwWpdukbGZYkZ2oCCI7vDon++ObaA\n+y67\r\n=oeEZ\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"bd9e70b38fa518bc5230ce238dd6aa30653a6766","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"^0.8.0-dev.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.9.4-dev.1_1575365841133_0.28024396973239596","host":"s3://npm-registry-packages"}},"0.10.0-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.1","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"f450305b920fc7eb70c167091b0a944b258a239c","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.1.tgz","fileCount":105,"integrity":"sha512-wCaj2/nPB70OVLuLn63QDRNNM76vrxyVWxK/fczY6HS6/ISRkyMje5Kaq5tmBfd8WRujKTTkJmfxHyAp8vbDLA==","signatures":[{"sig":"MEUCIC5Y1wOlnBchR3d76uhX8sofmZcn0b3qWSpftCoflnS3AiEA5oSAUabnuBzpsuX9fhDHxBxdwR+3n8qVO7TEAF9cBpg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6TY5CRA9TVsSAnZWagAAmiMP/2+ApYe+FF6fNgmNCbkv\nu0ddqXwFENNlNJCZ8E8xZCjG4ag9F9QgbjTx/3u1p53P3HwdZR+VJou8O0kT\nR5q/YRAYXFElHObc9ET4P2imY9fUDTkCstGBbxK4gUuAHBbVsZeQ2EzABZ1N\n21gw4Ru/KIAxpbwr4+FmHwgfu93MDJABbdHxQEadZHi/apIJxEoKrITi7VGh\nLJ+jx+HNJRZeGlUB5TBHeneixnBjwPJh+4h18wucjbjj53pzlPwMYEOmUESl\n9nkmsQOV2RBVpu/4SbQVLqjr2KWWLpkeiXXTEsxCwpb1YKF+zz/1JdeQITaU\nHYVh0QZNBM3P/ngbrjmulFS7PNE8SjstNJDRR7i1HUhUbjX+/wMTzZ0Q479C\nHVMoyOqGNViO6Ijzh/1ohlvxhXRsX5fUx2iAyUq+sleOXpkYcGc8dnD5y6Qr\nRtFmqMG8lXdpCFbmzos77qO0t7Wb5M2Uf8Vf/Lpo+BgnqkvdMhvS8Q1DT8s4\na5OhN/uWXGB355NSf8SBBhd72F4ilVrQGTORyQnu4/HcHbW5Q+SqmCKIT9lP\nuRvDAyoKubMeyAkd7jZBowXvS14uCaVcyEfJNiUNvHxXo6xsOag4cowOMb6s\nFKagrzz2tkAg2bu/F4mf2fh0veFDQtPbEuTc4OIkE5nHmSK908+qrCWBLjoa\nNESD\r\n=TtMh\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"ac4782d0780c27976b5c56723ea3aeda1733ab64","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.1_1575564856587_0.638230921551715","host":"s3://npm-registry-packages"}},"0.10.0-dev.2":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.2","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"1fa430d474d15202798b1155be471db10ac87e0d","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.2.tgz","fileCount":105,"integrity":"sha512-QKXWWX5ynv6HB6cEuxBAyCVuuFZ8xz9tVMBRCF8WNaFzKMyxz3/5FAkEn4oeq/qoP81I4j36w9AEdDvJdMeZSg==","signatures":[{"sig":"MEUCIQDcJemV4Z5Kd8tWpqk99lq15eV5z2lv2dfHzVoY9dyybAIgUcZ/HDMnwSXbaOWoOLiQBTBygS0EiQ9sSX52ZNO1oIg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6k4DCRA9TVsSAnZWagAAtFgP/0vCk2xb5Kd+M+C+uz6S\nJrZzB28hHQ0esfQm7t5bD69fKVssDnNxVyLnUSkrS2JqIKDc8jDAc1h+DRN2\naHk6M7lif5vmpNczpKBjZxRyFXFsW3CM9QSlQ9frz2Qqnm9RPmc25sXtAkyZ\nN8Kx1fjd8cMTNEPaUm+3VsvAimQ2NcsWfOcSW59qxo3u3vWugQ1eRee3wMzz\n6s+uLaOrY/lzeCDCoA7/VXGGjzuMSEWp3HbDPbIfcnRb/AcvK1ApTo74csFe\n4NT99N4IOMwUtN+3OZPBr+v3MA0qa7RdYH6ILrO4JU03xq9Gpy1VS8nSmImi\nIMFS/q4lE1Lm449WbGCri7DySNg49etalKeoFLaAJCl+OZjJ5f3vhC3dE41F\nRhzJyLXQSvFbmaR184nj9dS/TPcQ/6V/nlOUIU11fU5qfQ9ggdEwRXPAbpYY\nsGk0dsYTZYCeF5OqM3xfAPjwErfEz/hiX1glCZXB6mJugRRbbdsfMaN2QqJH\nLwZPij5Lr12QBl/RuS7FJhW9FEAJUnv55lMZCGSZg6zOTXy4xSWX7cEsrYFa\ntvcamDWZcdeM1vC4lsvdGvd6fIPQnnZb56B5+WRsEQpvVGEI0eFnNalOKC2A\nyA5apOj4Fj9zBOnRNFlrlzkKMJjnLR0X6Yr03Vxy1ilTYKjPYVogf4GrLWln\nBFwX\r\n=WUn3\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"1ccd90771b2f87c19fd1897f756d93c304c0e60c","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"dev"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.2_1575636482219_0.22048968299728133","host":"s3://npm-registry-packages"}},"0.10.0-dev.3":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.3","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"195d7f2fe99c9315369af89221d53d3c4aecec7f","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.3.tgz","fileCount":105,"integrity":"sha512-PqSjwmOQXUvQV8WWTwLvs4iDYR53GeRjUb73L2HIyPtQM1dy55ax3JTtdbyO6PJwvF8ntGEQeJNorKO0XT0okw==","signatures":[{"sig":"MEYCIQC12GxJki8uOTwgR2D33BvbZObr8tYS3OCLRSbhpG485gIhAJshNI3UjrhdSqgKM6vMYjYM56hwsoCSP2Ru1OEPag/V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd97MPCRA9TVsSAnZWagAAPCkP+QF/CkXtx1if3dheFp7W\nNxYbGtPw2TI79zE0oqtcmA5xpW0mDSKHBLScBPp+UZ4DG950l/ttaeYPImuL\nH8nj7t2wzgTTovPV2KzndRC7l9vxh8Ozbiu43SBPe7V7bxkLMMbZmdAECoOI\nF2gduvIhk2D7NYK1fIkMWIU6tJc3xcBV5yvYUDxuDlz2FkxZwlXh50Xg4Wkr\nJMbXYk1MCmeWwZJJMp+SkqUbXmCMuN42LRCf5oBad5E5YX6IGFzxEk98genR\nSwxKgh0GPMK3LSB/0gXjKlU6LQBLlNvFPo3zzGufhAuQa4UESm0AsJI3ECJ1\nDT7e4aP5wi84lfXsu3TEzQosZNTtx8oRiNdANNMaOf30fJJjqvWylV0nk9i1\n1+1dOMbMlPeVF398QW9xYDTRkFv0Mv9sZQBv+cw6XoF0sX86qtwm8jdhx6Sd\n6P8tpyvutiDEkX/atGECeg2jUuY7f9eCtTRXharYKbM5QpWf9FB1lQIDOz5q\n3dZ8Lndczhe20/o4X7j6Qs9b6/DD4wl5OFshrpXO4EpEmabwH6Np2EIAMJO2\nVI+3D1U5PdxZy5MD7h1EiVM9u/NfgRLCYFctkTQFrNnxj9ycTpZePIe+r7M8\nCnxqva3PSQjTs7kCNIIcyHptuWN2OGPkhOmScWLqbXe2Qdt5sz2yUaIO2hdj\nbvy9\r\n=sTdA\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n    \n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"3d57cdd30cc4232d6ad3affc9b3fc1e576c371ee","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.11.3","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.9"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.3_1576514319204_0.2219167840955525","host":"s3://npm-registry-packages"}},"0.10.0-dev.4":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.4","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.4","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"bf18fbb46ab666fc3ef012c3404e229cffb8e63e","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.4.tgz","fileCount":105,"integrity":"sha512-XbVP62rNhyZnyQiy1UaqjfgzRMzNmhSZjjpr+xMa9JKFPV3+LoAc2l7M/jtwF7Bt/GjVZoUlj8FcYjvlfVqZWQ==","signatures":[{"sig":"MEUCIG50OT1LED7tYy1qfnEaVr5i7IkKlPkcfXqkORPgtUWIAiEAyqKBqmwe+/+7J6FILihjJId6idVJdWMNNgPmpxd31c4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+1bBCRA9TVsSAnZWagAAggwP/1ykgSGEmOaR8Ivk3IdX\nQs1nfrKOlFS/YwbSLIOUjNAZDVEwxbaZXaBNhDRGRAUhmoXYKVHkIi13X2hD\nPMzD2jwi4ygwoVYRZDgvHbfqJ2i21X16ajpwSmamhBHJQLuthZdeE4q+1riZ\nusl4RhvJKZe+fgOPm9xgw9jC/eWr6RtYWyu1NDyhthir2ol3i3AN+VShUrPD\nqQsz2Z109UXWCJukpcFMDVM7PmVxz597LM5wudvqScq+qYFpd1wOmxIPAfNo\nt7I55omOwjmVuzS5v2Hs92rHESgHb/MXr2QTVfx+Pfg4vmBI9eX7ZjrH06DE\nxKu9NXR52MBiT2pLSN4WNiwK083sUUkeI5QYjPDrwtrCPGbwnug26VzDH/2u\nvSlLwQEiD5t3K6sGFijdaFC8feisQh+lt7CYqYa58EvcXUkbjlsKdkUZx5hz\n3bbnfiv7wXQbNRBAtf8LhCLZWPpJqRUHDSFNS/0FkHfGhykikpV4QgjFdyEl\n+88/QUhpVdBQzv4YbSDmLtx2giK/IHP9fHixERk/YagLdpNw1tsxL88IezIL\nzW1C/eV03FIMCEd2AoCc4KwImdBGCLu8p90xN/QynWdRYPMdAuIWlJcFH4jp\nUtpxAMiCyOKFKBdYrJ5vXi+yZ+4tPfnRclHOUu05X/ay6+LPc3pCmRbDzPct\nAE/T\r\n=JhkA\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"a57261b356b1dc2af8aff15ab9757fa267a82093","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"antouhou","email":"antouhou@gmail.com"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.3.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.11"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.4_1576752832820_0.044009978764601554","host":"s3://npm-registry-packages"}},"0.10.0-dev.5":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.5","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.5","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"f5026bd116d42b7d3931c0d63f094b17012d2f38","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.5.tgz","fileCount":105,"integrity":"sha512-DjzHbuKiLQnHLcwZDO+TbojQWZ7U48beejuu+Of6BE7Lq9u3WFpY2Wi0b9qATJrr1kRhg8+pLfufRSFTVi+V9w==","signatures":[{"sig":"MEQCIB3qRPLc6wSLD9qSmKSiFp96wGBMHMilZ8x2a5GVX1iXAiBTwWIxh7PU4v6k+lUm/02M4LNSyD+wvuk4Kvq3ln0UGg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAIzhCRA9TVsSAnZWagAAXvIP/jnQwKX8P5MjyXCjYyPL\nhFWO0J9nEdLzOSccjMjOhhAd4rlnC8oG5O3FAeseFUTXPWdIghet6yeYUh2O\neDMKHCZMKHclva+jHa+L9I70v4G+PvEj3H1czcKf8e6izjguZ/nnszHwaphk\nvX50jIW1UpW00EZkxaQ5daxbAmkNcnpuJ8rHz2Y7kpWlZdsBMxhMWXcINSUW\nK+U1lgXU9hFdpQuSbiX1MBilxSDGFJFnl1eqycbgv5qwbDKTONf458zLrGHw\n80dACz/kSF3sDaZJ5yt35+IglJfsqissiu/A9whOCzJv+Pw1TLOdgP3RP1sI\nF5EH0Mg3y1Nw/pFbz+EReRQniFNhPbpUSJNBFm5spXecLmbTEDP6fiqsODWm\nV6JpNq6iEX/RSy4M8l/CmrYoFTPCyGzyLg6/XQ5ovJGdEXpwzCvVwv6jXHQ9\nC6U1zebo+Pyw6agOYce9cxHFXjbnWE9/8oIlEvktNXP9YOLsQs9XTGOJm7pO\npqbFFMXj4vDQrsm6s8mZe991XxUK5YgHaQMwdM7VkTFXVHgdjKnSOvVOWpUC\nGDHbqfinGD5w8lgG1Ore+Y6LMnSjQFo7VORkJAhhCry7irqTo6wRDijFY+Pz\n5hoPCsPDciBcgZtVahQ0HLn588s9LECbWJ8KVJzoPSF6Cnw0ToFRttAJqHh1\nZVck\r\n=wTYz\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"4161cb8e3581c23a64b74202eb281d674007fa91","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"antouhou","email":"antouhou@gmail.com"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.9.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.3.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.12"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.5_1577094368520_0.2522083390722418","host":"s3://npm-registry-packages"}},"0.10.0-dev.6":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.6","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.6","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"87696815b1dfebfe930b79a8220583af0991cd28","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.6.tgz","fileCount":105,"integrity":"sha512-9Viqb4tn9teKFbsM0YWrFUpCMo2MhttJTY564SYDPzSzmwrb61MSjIHvSNtrUwpWCqdFi5NXAixcM0OK90QMxw==","signatures":[{"sig":"MEYCIQCChHN3UDHSpUImuiTeQ1Bi82OR3FOpS7pde9R3GnOxiAIhALiHgOH1JVLK55yE9PiJJrWqESLXrOu5nMwwLDQ7bd8n","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAPRoCRA9TVsSAnZWagAA65cP/jZukSz9WGN0xcSwfHNU\nRP7l+NtwOpL5xldrmNcrJA6gHKgqKrF5z18RwLNjVKfW03OgKOQn61upiTnT\nqKSWsrxuvQqmEJkqpFYfZUY6Nksd6uCS6YtHVSbdpSgD+S0bW8WVzQpkhGd/\nZIu4e+7t/CDw4Z3cV/Ef2hUGYLwcCg4Nn+VtgL8MgJyrCovMkzf4yKtwqJjX\nvWvnfCzXztn5/3c7vOXHQxBWRUJISR1bV98LEdJZhXW/DjoekhKnXOy6kyAZ\nF5R7GiVaq4y9JbGWafxd/CH4BDGsT5T0je9DJxUqdu4cNMK5sAypNx7VzLiH\n3v3OJk+Au0lqW1A2Q/6/Bcer+7yin25SU8/5Hq3b1TzvTggNbrK7jxOjE1Mq\nS9afoNUtuUfO5u4FZDdupHoQjbOmHfha4bmwftucHdth0vCOYAojbs5FjKBS\n/zHS8uJ56nIFo5ORsKv1Ll05+2H+DS67XRvgm4hI8WcNkUZ5MnLz/naxcLtl\n0O23sLZRTGn002UV5yM/HHof0iUCnfUHZGZT5AedcJWdJOg9z5T+ogcbJgOq\nhmBGSAziL73PNDc0WvHvJhfkItfhg54k5p0+5MLLaU4EbE3sY6fbhorGqMy4\n5RsMv5nm0B70UWpxWElhiIJ4cTVbR4xy+MakpEl+lmY7ENZ1gwb8LChUy03U\nENtw\r\n=ev0J\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"ae303fd6e6edc1b14ae93c0e5d1572e3e5807d9f","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.18.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.14"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.6_1577120872401_0.043546814658054656","host":"s3://npm-registry-packages"}},"0.10.0-dev.7":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.7","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.7","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"dd202138fc8650f2a866d70e0042808e0c405f73","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.7.tgz","fileCount":105,"integrity":"sha512-8yQq2CSIlCHVE9KtnGXDxKVJufwXWeCpjOB1P2QB8FG8U4swtpy+6F9cO0G0bwtstZ07ccdDfR0mwtKgXn8XEA==","signatures":[{"sig":"MEUCIHCBwgBhRKLDrGfHrnHNFV35DKisCBh5U+al4l8+vEnEAiEAs8/dD7lzrF2CR4JhLyxH8QlmnHI386I+UWHCmQYjzN4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAd4FCRA9TVsSAnZWagAAIPgP/2TLK6/HL9X712Zn5ojH\nAPO1z3y08fAE1j6k690AdS2z/rBjLY9uZBfGNqiEzgW8qB7MqWoaKWPCmT5r\nbOuJLvOD5L8irP+6d3WjzYamdSQ2yCUpMwxv+MfShrCPUSLeaxWyItxSfUSv\n8c4QV/78eY/PS+Iu1s9TXcPzL68IpKVxWoseEaGmD/Kmc4GuEbkLhTVQ93yB\nKOV4/83OfNJZ9J7QgsxLmGl3c57BZWEDCAUdCN9sBvQsftHh6A0QAEmG/PF8\n1uinywGNxyggbSkIVr7/7+dmWAD5faQAfM18rfpCl6Y+oPRytSlEnYuw2Iel\nh+CgQWDDpHIyK0F5sfll80x0NvzOLT0jlPxHm7/v1ESsyLL9CAdU+8jP6G4Z\nrdpK7Q+p/xhq0iZShgnnK1JGve1DrDVRhUWcnza2TjOBIC9yRrUtQxPQoD2M\nDK4hRAFjV3iA6F3RtkWo+q4DJ5/PCkoMzcCjJb+VRXMJO0bOGi4V86wJvzEe\nSFjIin2BAjZ8MKHeJD4fZfFp/6B4BLmhdRTg5Ipypeplskv6/FZDGmMuf2U0\npd9aQDwcT+fkYPYPKe/B1mYHi43Prm5bhB4hzDGAxCbQ5hxM//TGUiCVu61+\noYDxIHlGTfJxPnNmTgpVA67a/7GGMqI5X9+UVZDfCkQaQvMvjNGDB7KwLCnO\n9pD5\r\n=nb8o\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"587aff81eb6f7870ac9479399b2623502f9b4438","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.18.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.14"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.7_1577180677234_0.14302158273646137","host":"s3://npm-registry-packages"}},"0.10.0-dev.8":{"name":"@dashevo/dp-services-ctl","version":"0.10.0-dev.8","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0-dev.8","maintainers":[{"name":"abvgedeika","email":"abvgedeika@gmail.com"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dana.alibrandi@dash.org"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"seigler","email":"joshua@seigler.net"},{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"snogcel","email":"ledniknoj@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"ad0d2a80894e2271a05f48bae064c36d1d1353ee","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0-dev.8.tgz","fileCount":105,"integrity":"sha512-sAEutojpRhGxkfVEi0cezcygUoLqGGk+L01nVQOsJGUA14It+wIzl68uHwC2nCrc3/AIDK4qiiMdqkoA8IbfKQ==","signatures":[{"sig":"MEYCIQDJ5Vui8eT6lxNq05itLpA827V/mNPEUdjMyTaneIxSrQIhAOpywOH2eOzes6sqr05k2aODszE+/1AIjgO0nXZKBVqL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeA0h7CRA9TVsSAnZWagAAbyMP/1IdFauYDTvZIaJLTG4U\nd3CF9DExf5A6b0ml7TbP9Z+dx7saSzDCiNWWq4oL426dtPbDGCdQLmfxWuUE\nOPdiRMvETQsBZWURpuuF7Mx2fA/Cq+7TpR4z2ApSSBJX1ROx5jnT7iHfmDNu\nbeJuufKfaQXieXlw1oVgY4WFn0+ofjC0LCJ3iKf5ETp0kJ7rkdQZmjHY9pBH\ngLSj9D6C9qtTQk4qoQhLzeAwptMToB58P3q4FxtQU4Lx0lOJdwKUTJVtdJEp\nzslZ8F5RIMpdgpl+rVpDZFm41LT2uuMU5pco37aEvHKSuOPytgEHgs1ilUpp\nz9cbJG3eKqOmREihy1dx3SVlX+cQnjJdVsXvF//+10e8sTg4IdkRb/ogFG3e\nazyquJ4iNMF3FVGmH9OZcHGG+e+DstxVcDDDAKQcXqtr0JArRT9zecbTH4w2\nEdjJcFyZKAyaCe+XSOMkdRZtBOXjUkUc6oHt6dzOAN/s8oucM8YhArPY95bf\noTk3HOvbC41q6bROUc6P9xSLqIspFSKWcogNq40lk7DOKnLG0H5LrQs51WLY\nIfhHahFl0BlchjaXzn/PhR7EAXXYdnDl5iGGQrGlxJkpFI93YHJ3zM7883vs\n5qy0firHfaUAZvWHVA/W/rFll7tNRsGhYSblE0ps2b6O32WKOKdeQITWupSt\nPbQu\r\n=VLN8\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"c4fadf9db96987cc7cd948325d8f3110588634e9","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"10.18.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.2","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"0.3.0","@dashevo/dapi-client":"0.8.0-dev.14"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0-dev.8_1577273466762_0.6698207551831059","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"@dashevo/dp-services-ctl","version":"0.10.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.10.0","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"887f6c311ccdc02ea966d3a439e07e5cfd69e931","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.10.0.tgz","fileCount":105,"integrity":"sha512-4S3TbkPr+z4ZlM7JiNYeQD+GA7cjLNgo3cEUMeA2yV8tHq/KSyeD3vJ7vbzY/uXc8HdLpOV2mgGUFsyJ0plXQA==","signatures":[{"sig":"MEUCID7VE5Wu8HVJE96bAdeVe42W4nSTpuj8WANcI7AlTFkPAiEA3sg8XSgKs1bylU2TP2bpMGQq8SJ8L5VRy2D3CMDkRng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRDG0CRA9TVsSAnZWagAAUDMP/0BMpdU46UC6jtZVsJG8\nplr/FYIW+293q6FjrCd5Ucj1QuXlh9qrkMVXjT35GjnVOVp0Nov64GG+UdTW\n2svHmgSw0i1DyGexzJHnVCj5pYHibIY/W+3+JvflBI2HxygC4QtgE/1mKnFW\nTyJG/04umuECxVRrGvtsLFXJPb1p/SGYnWuNON0tqlVy6cB80oPq5mjIr33c\niLabRTWdrOrS2j7twcP6YLI4JtKk//mFLGf1idG1Gu4J8ovtVKO1wt0nItuE\n4SzhBIMGGed+fK5NdvFmpgMGi8a6cAQAQDkJ7uOaLwgcNHqhDtYGmvX0f+sO\nE6J1XxPbiEVV7xQuSzQ7wgnfwaHecT2c/KAi21i/+iFTtzBcFRUX/z5EIAAj\ncyeVut3mgsjLjBB5qAHBa980P1B5o2bBrlZcZZG/7dXLBWiYtFg7bGSMLMBN\nyD1mECsvhJ9CHhE0lMrJPtiL6Jzzgf0mVdvYlItigGd4hhgm3z0XBnOuJEWP\njC+TMg+ke9RXt1Bt14eyZaJDpc+VGLoac/JmbJF2aVVHUMD6QAsjapFQLejm\na/b+TAfUk5k/VA3EzW/yDOfZ2rfrAMdXwpnU9LXIu1THKVuiXMuRyYYd49Gn\n0d+1gF7Ku8U+TVt/JH2/WcFsIpJVZzptlgrOJymWZtMHErmb6lNwDfkBBE0y\nSnrV\r\n=l6YW\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"acd565fbe5f1558ee960b5d575f937e2b659a4bd","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.10.0_1581527476221_0.317701926752185","host":"s3://npm-registry-packages"}},"0.11.0-dev.0":{"name":"@dashevo/dp-services-ctl","version":"0.11.0-dev.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.11.0-dev.0","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"94b857c82c455698bfe41a3c91041634c3966677","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.11.0-dev.0.tgz","fileCount":105,"integrity":"sha512-y/3wCysh4I8y1r+YvOZ3hcMfuI1iGxn2j3uEYY3Nb6dcYA+hEV6twjcyFdV9PaylxrzkkBJokIEHbpmqTSYmxQ==","signatures":[{"sig":"MEYCIQDesRWrIwie/7jVq6jxrfBsy0pGVayFt1ms2T+kSggIMAIhAM1FEhM/jPsA+jz2Cr4DDWdCWkrdcP6J9Tge+2EqJmae","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRXF5CRA9TVsSAnZWagAAjhoP/RnXi0NgoPA2vWrwG4sQ\n39sb3keS08BIDt17+ma7GPLlbeBrITaQJ0IE254elD46lyuORx1u4rhv87jU\nMJ52pbl//72YkQTewo6QabzuNQ2+N81i0WbJuvbleqacHh4vcN8MTaMv4mVa\ngHYefHvatdMCcpajr8pSzypez9vmJNpypt7IehgDeKs0QnaNy0wck1reLnXO\no634Z/o3AgOadkGmBN8MijYorGuitjBKtIBugvNPS9P3RAJ5tFKKFYHrjlHL\nWdbrcgk/SfLppT2WfOpg20QjEQ2IaSjmS3W43IozRrKBjDiCd+x4b/Dj1WMd\n69cHC2wmQFbP1uxrNi3Fv6qwCsfDlijpJhHwrYnIE6Rly9EyTq83rvpy7kvn\nEVWepRhkOgeKAoG2jPwdlGqDpVkQrOv24QpyVpMx8dURqdcEWOBhDkg+EE3h\ncd2Ya8rSOWH9jQhoIvOrvhKedZgKqCjndSK1WK0TE0WejnYcaoqDFH7JGIzn\njJP8njS36TYP1tFpdaH3aF/nOpWNqwuoVuB/o54RosHr6o8UH754X64y79dX\nLJmoMq36MFxOJ20WH1+geZp5FVLWWPplkVvVTzz1V/+d4C5mtWuZ3gnGqE1z\ndqwHOobbw0daSxH8ic0mxayiGCrzAU4jrzu2KbL6Uzhea/KGcUS/YEABfBZH\nb48/\r\n=xI6f\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"3c34cefaf08bde6cd6c391dd17bc8c8ced2f54d0","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.8.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.11.0-dev.0_1581609336985_0.3293115863595919","host":"s3://npm-registry-packages"}},"0.11.0-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.11.0-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.11.0-dev.1","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"6ea355ae6615b1a1977aba583662faadf6b5bfa1","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.11.0-dev.1.tgz","fileCount":105,"integrity":"sha512-U8/fY602qTQJ0C6Ow6F1846gQprXBxiO7uWFDg9PBLDo2ls/avwNPyOlD8zjjXKt2Pz++RTO0Ts0QGupkRGLRA==","signatures":[{"sig":"MEQCIBr3pO8g60FCVnzCWEa8+2CzvUpKjKqi7EIHiundnUG6AiBoZ7aOAntfhbuvm3oZtPqn4ZQzwt8kwuU96odSzNbvaA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRltkCRA9TVsSAnZWagAA4qsP/AyzBsFz5LV1bvIqvpIc\ni3z7ERme0hisAFp/TsIJT50qAbA8kR7IVgv+NCCyrAialb5gJclQknCOBwLS\nGnupoYgGPnEBNyOaEFtJGoa3QzFSOHjtJEcSnqZ1/0VQRKuyBemDH2kFJkGu\ngrg+m6WTB+WD1rXoaywFAJ+iGN4YLQkIkYlF0ssfj+BZBnmUxdKoac/IMMeb\nXvB/Ie6MFPcsz3IvnG/o3jQghGeJB+AkZKw7KTVDXb6niez4h7b9Inc8HVcp\nwnx5nWwuev0LCBwlaOPfaUMGeXXDorYom0QDm8iwrbnkGchL4f3uXN1rNh40\nB5n5+Ph/f+xH+b99VNmWbWvfcLpKVyXcA69dqPAX6Nt6TyLxqSM+uwB6f7KB\n3xwGkxAN2RDJdIK/dryhq7l/1tl2TbzlW8ORiUc+gWUhXX4RUC0vDIcqPp/E\n4183V4KxVuB063Hot8yIAQy1IDRMg0SK7N6ia/q6nreeQWPJghoeR2KGrhBm\nLmTagF5yL+4qbSSgezNT8d8AV6yJLpDvr6qz1CE34fDupHC8yFv0iZaSvfhh\nxffJ+D0HLSbcdO3QV6dof57X6Ts5n23PyDyA6ByEQbZ3Vl/cEsjKytCLHeGs\n4uiX9NkECd7QCIMh9B68k6WifROntknxIG1nrn1ydhv1Y+nXQmYQhA/flvGo\nN7ax\r\n=kj7b\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"c5b3f0eb2339272c8ed29fdec64ee4715e270f6f","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.9.0-dev.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.11.0-dev.1_1581669219784_0.4360050166586622","host":"s3://npm-registry-packages"}},"0.11.0-dev.2":{"name":"@dashevo/dp-services-ctl","version":"0.11.0-dev.2","license":"MIT","_id":"@dashevo/dp-services-ctl@0.11.0-dev.2","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"10accd7cae6bbec68d0931bbc6eb016c8e71f2eb","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.11.0-dev.2.tgz","fileCount":105,"integrity":"sha512-v+Dqku2R6s55JTrYjtfJ5iO34SBnRwzr8Pe1LJWYyypQtWjyYbqIK2hIfOFYdas4/ZLt5v/6l8H0Nv498dduLw==","signatures":[{"sig":"MEYCIQC7OiT4dQnQ5UUWdyq8jadgrE9pr1klHN19xDV2gYoxHAIhANk0EYU9/HSXm2XmkcMvnpyCKN9Aw+87qtE39V8DEpUT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeU2HACRA9TVsSAnZWagAAz/MP/0/3o62H8V3iwJ9Y8CZx\nHOvt7K3YD2jghzlKZ4gtg1HOSbhblSXr1q0J3hnYgTVXGGKyKovEYssKudK8\ndhek1Wdqz/JrfNrsQC+GpURTMX6K/KGR48YWKaplygd6PBPj/pBx7c4ZEUuR\nYOShO1UAPzq38J3ueeNI9wGzQjqaAvzx/26j0p5Ly4ylp29z3sJOKrg+BYZB\nnmeuCEOh8P/+S7ZbcGsVnhviMkEOPG8lw9y6YZTEJ9VqnOG9isSHR+0O/G4f\n1ZRSeIyldhlsXERij1pdxCQ3UZyRunmQY1IQS3P+5UwzgCl6V90/MfbmV0Ow\nn0gWOXZLo+8/ofwF8sSBmmaGCvdmnfP4FdHhru2kMtZrxfJO4oYjuVsSXlxH\ndzuUvnYhRn1NLj1XLJqk7TnUSKztkNVV/b14IDNTzgpsHbfj7345/hFPJ4Ig\ns5sfQ2V8uKp5lJElNvJiPVuYr6eg9CIfXDp5HOPQ2QFxTtGs0lKr/Rk1XQ5M\nFD79MGFCnfSZmgtNwgUs32Mug2U5ReYCTguaSFSIblYuC5PIlOlX9jsWsCC8\nB2VA8bRLFJAj45bTfSDiwYS7Zgyl7AVYf7GGm1thS/Y4/QI/VnrYM/QZwy/8\nT6hcCviHhJlI7Hjs4CwVwlFAX0wZJIu5KkR0ZCkx8hTh07NwM6mx8Yd5OXgk\nTbc9\r\n=tBoC\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"b212f2f5a493234fcb04ea6204a80aff25692365","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^1.3.1","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.9.0-dev.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.11.0-dev.2_1582522815635_0.531286706757703","host":"s3://npm-registry-packages"}},"0.11.0-dev.3":{"name":"@dashevo/dp-services-ctl","version":"0.11.0-dev.3","license":"MIT","_id":"@dashevo/dp-services-ctl@0.11.0-dev.3","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"d4fc8fd46461bb51e88847dbb32715b607726637","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.11.0-dev.3.tgz","fileCount":105,"integrity":"sha512-4cp0JiHZ/h0s0nqUKskJNdEMO6hynBLeiAx0K1i8iZFmOmWlXdmB1oS4NQS+eWJCkUKV3RhtyoRgd6SYstLwgw==","signatures":[{"sig":"MEYCIQD5izUhA4RHE9Vs0Nc5rhe1BKrR2zbbruZwD3Rv7/DX7QIhAL/BfE+Oee9m/BEdpQaYqino9LLinX+nxdRn1KgmlLdy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":192688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeV+6TCRA9TVsSAnZWagAAaW8QAI8o/idhG3k4H9JWHf+C\nSJPLB7xFN3exZvUZal7adHlZ+8fBuR+Hv9+DtT6IyQ4XHmSpiBILS9Csv8zZ\nbLF5w8kOdTwhtM7Q7928F5Yujw128NwKHad8lAKZVc+fuhNbmo1AgCTMyI+5\n68i1eBphlOcKzWeuBZdbimGYgdx7ZYxjd3qPy1yW8IHgNK91Y7y/s/J+dTFC\nGNNwbkTEUhEZjGz1rx1BMwdpC9WV+d80QFErmHiJswjhEHyf7fhmmxaiioiY\nkZ9KE8e3tmdsG9ul+HafKScB7xjNIgbGr9SEBWh1D1e7YtZOnkghQFGWGYVg\n9YOSZgEeNLODmxGZsK4FDhuWPA+sAxaP6aOY92p8Bl6NtijLxZICcpf9BGTW\nIuuVkXRKPXGlqB6x0xmh60kEAFdIJ1uMWN4N949iO2BdjFX4zH6dmxibrb/W\n5e/kIzreOwY5XWUNGG4wjBKyuJng7c3cr88l/g4KTsqdUiCpG2mUPL1fl9Kt\njzOuMdDBNGEOA9Yk1MPFi+tcRHmNKJWVdgEnBJFBf8h2WrutbCANHJQVAHAz\n8vyTvfg88UgwE22Pnt0wzMAZ10bjZ0kcrORpqHJoKY5SasB4Rn38eoH2Sqxs\nL18bXOe2s2+NAxCZ/oFVKwQSJ6hwEpPKKPoNE5fB+Q1dz+GSAdj1xSMdQRdF\nu3bR\r\n=qimL\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- Drive Api\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/driveApi/DriveApiOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n- [Tendermint Core](#tendermint-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive Api](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=8"},"gitHead":"c698328af92d22b5406746c9482c3d598febb3d6","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.9.0-dev.6"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.11.0-dev.3_1582821010674_0.9115757612926274","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"@dashevo/dp-services-ctl","version":"0.11.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.11.0","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"deb95cc056f6e2cba83f68ca9c29425278484461","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.11.0.tgz","fileCount":106,"integrity":"sha512-TuHwzZ/v+Pc3s5nu8FjbC4FQv6k8yrkOoebOGGeo2TIunyWMLFZQpnX8CToENDes91fpgL3d0wxKIGejhwqDGA==","signatures":[{"sig":"MEYCIQCmp9/h4dKgDIqcOBbx7NyiaKciWCtSNnQ9LC6Q12UmagIhAIlk1IF6H+cmvtkLvnMkCwDbmwU8KkxEs2G+pJ5v7ZHA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":193258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJearkKCRA9TVsSAnZWagAA7QsP/3h2qUpBUrmWw6x07P6R\nIG+z5Cc2NkTTdPZKLV0fixbYnF66ObLUxiq4A3FoMH8IfkSXkS6E8fQGxWxh\nVcwKgdt3p2EjlZrUHV8urfLD6IXfBZ6Oo0c5EUAtOlGIWqcq/aHzZwb1Rtab\nKdFgbzjOAMEq/3xHF39+OM3+aVOjnJsoG4flcz3LStTUmmfT05KlrDGihz7R\n9wReP9cswpMl25f1tHh1HvetOUftqTAJZkURp8ryrlT96KiZ3rbanVYr2Mne\n8MTcUc505DsU8XyAT26hj6wglQKxbhfQp7x/4mFn7bF/fwuJIiprSO4fn+FQ\nUyz1nGwLjwtRMRh2Sf0bpZB7Ef3J8tl+D34VnGNILgykJdAWtnDyr6hWIjPO\numGvpV7fqOOABsijrmoPaUZAykDKRS/0WJLXqLS5gSjgnfrp7HGbGyV3RWrH\nFrbJCBJzSTVzaTIWHNusubTpr4CZpFE5ALvHIGYChhEQTfcRSK8HzuiwYqAT\nfxWcC5vrjqB7vgnzkkhupZWkrezVcUR1Hjw0zjxKSCcp0hQGDInSl2OxlrkO\nNAKTzwTzegLQz8ebVnOG6pzsJPgijKKvpR2UvjDXOH1GB8So9iVPYIz0HTWG\nkqV2q+IMSjbutOur6RLhhehpwu+toLS4dghbUeZYg7RB7UMwkBg9Q7VCmBKe\nreAr\r\n=lquM\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"a48678a0e378bf2bf7a187a7dc2f69eb63468672","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.13.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.9.0-dev.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.11.0_1584052489965_0.10872989457014692","host":"s3://npm-registry-packages"}},"0.12.0-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.12.0-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.12.0-dev.1","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"abaeacee860b2112f77c1e6d7daad137daba4cfe","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.12.0-dev.1.tgz","fileCount":98,"integrity":"sha512-KNl5OjEfz8XbcG/s1fVwEnjmVbLER/VPxAmUQ5vIHixzzlVnNuOZSFE2ylZADJFSG5vmm+Iks2zxtI65ieTNDA==","signatures":[{"sig":"MEYCIQC0yVd2NfY+KTH4yGcIc/myjShRN23iS61YHWI1TjShYQIhAPr573+Au8lDJvaK1LdSO2WqdvtYDeB9HBZrkb5pCC3E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehhtGCRA9TVsSAnZWagAAKcgP/iY6ETG/NELUDtVOeE4i\nPyRqZ3m+Q5C+27stdEixcboqa/mIg7Q3bOvsh4j3Hagbo4JXEiMY9pXWbiV0\nhKjdbCDzv62YBzEPzp5rvIphuwMQMbC2UfyQJta1amYVOjulzv+7UgvtvM+j\n1DuZkaIB7ABFbQy6XxJFsHH6dechbKxgghOa8aHeth4hDjS3psyooNuZdiFD\nvXRq38bgNQB5rsje33yiIYg8913VsrVHr+4h9Hdm6rXzz7KKrHpRpJSIZOHo\nogYsNUUTUKDIxPc9QD7Jz7IuOjK92xTf+41vmZ7ZpP3m9G7s5fIHOD33IIWm\nMN2spc8nSp0qoG14A6MRzrdjbITSvBIDjuXlSEpFq/b2PTdEson6XHwH0lAe\nhmBa0VTT/poK/qImcEKKgxn+gaPC3eXJK+9qt6RTfkMoHy1vnw0RvuiaWs7i\nEdSkNuBXA+2Q3Hf0QHcc1tmgcaKodsDL+4hdbYIFLY7i0iyYfmuKbMwL9ZXr\nWyLXvxafLvkt6jivjwz++Z/vUat/M2jyTVrQ1Drn57nvCzN/D9NWspZQyQmP\n7J0xPIWB7O7cliVQYkl3NoQTYHH6Do0FZOR7h6FHIAkfmY1T8IraDj2W+qnv\n4S47b/ItZrYJTGAygTNKjzEkwf0qoOuFH8sGWJSvkW80qq+LSd/X49YK31Qs\ntiim\r\n=R3fE\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"4a377acf39d21422c4c5c1ad11776b3429ed63e7","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.14.2","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.1","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.9.0-dev.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.12.0-dev.1_1585847110450_0.31133045303797213","host":"s3://npm-registry-packages"}},"0.13.0-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.13.0-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.13.0-dev.1","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"359f973dba507abc687a0ca00e9c2a72bc307524","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.13.0-dev.1.tgz","fileCount":98,"integrity":"sha512-V2VT2MllixoSiwwCmKId3NUHHY7cR5jYrQvX+bMlsYzkIrhLkttNUsvKOVSHzTl19/O5kek4Kcu5sLDBOC+SCQ==","signatures":[{"sig":"MEMCIDztx4wAttXXSWqmb8HB5roVCsxNRKU3JZ8r+Y4IvP8uAh8afnQtga0Yh3TU0BCnphfrBdVNl1BCfHFAR+TKAUoQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex+SMCRA9TVsSAnZWagAAUyoQAJGVB3tgnhtdvBAzKToI\nqRHhO19BMM6r9fu3nlX9U388OjtG3zPq9pCbi6xvSnNhBocC1tgYhjRoaF2R\nkcMBKMUnim0/2HSthBdzHfRFxoLNnpuzYsH5q7brcAywUfjWlPDmVu5+iaJ2\nIJ7A4/9ii5F60qEy+7tohefAC3+4Gqlm6lobBiUi4zb2/ZvwfmSlD8FU7yEF\n9R1sHEN9/x6cWAsKhBCxRCw59EKPZz/VWWECSnHgJFmpeoNG0yIX0QClZNyN\nqYhbU8IXrDENYBgjhUFU+thrhBkO5M7BtlVBV7YMEdlpofxsalxHu59tML4w\neUwNclB4EbdpW+5GEVngVBhViM9/9NXx7QdSfnhghgagf/N3XFKNEuNCBzEZ\nURLYIH6T9RRavw/nlM5h/DkqzcNOZds6M4v+hcOTtcxKIsUqm6WlNr9KjTYi\nw6f9KuqMeb8HM+TApf5JQGfi4OOtmpxlD+WfDzqPzn8YUFTVN7r4hjYNW4Ux\nyTsHs1MbKDv4Ef7+mv7jNU3UZtmpqlmhoyMWQFz5NQRHeh05aBx4hoRnyuiR\nG7/BTbs4VdAp4H5Y+04/x0WHjtKxPRFxb09seWcAzaDxTbgxMCuNAYbNYax9\nqdRpZ6D6c089v+fIXfKbODqFXPEuhgRM+RW/zjSIrypj5hP67wCQRnEBMQ5r\nnu/7\r\n=RuwM\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- DriveAbci\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbci.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbciOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n- [Tendermint Core](#tendermint-core)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=10"},"gitHead":"5922f4d084b101b0449cb5bf2b125ba81f54fb81","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.14.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.16.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/drive-grpc":"~0.3.0","@dashevo/dapi-client":"~0.13.0-dev.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.13.0-dev.1_1590158475605_0.25179165366399126","host":"s3://npm-registry-packages"}},"0.13.1":{"name":"@dashevo/dp-services-ctl","version":"0.13.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.13.1","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"f1e4bbb8aad36c95c3a420c4b2a520a0e08a4888","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.13.1.tgz","fileCount":101,"integrity":"sha512-kTpMwdXkKGQXxs6oDw9tvVCW9VWSyF23tBcLX5jfgx8633CK9TqexIhiQC3EnDJkGl0p5+SFlDXyZNAu03+v0A==","signatures":[{"sig":"MEUCIQCI6J/Vylr0lwU4ReJcCF67SIkTmKI3LDWmD5BrjMW4wwIgRtSoU/xdIx0ONUlXTHbWxDuu8LLww69WZZsCUrdMwQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe30ViCRA9TVsSAnZWagAADo0P/Rnl3FkUVA8dS6u1tkVR\nUMds+xNi/HY9P7pyJJK7VVd1NH+M727PpjA0167ltH7ZzqPu0GXo3nO76TmN\nVwCPA0E93pPX2/MbG+k3Hl281+39xEGFSBtLvXhAma8ut2ljwxF5A0/UMiN4\nvRzk53kX72CG6t3pN/Y2r/EREcyhf0k9cjSFfbL7IcJpHriY23Sw/IdK55Vj\nRH0IvTMCD/hWBu2+IG3hXKyjY17Jusw8Nwwdbj6VobhTfeE0szdH9ZdMd0kT\nu4mLjRolRGa6Zxy+ACjdqw3On8akfcSvTXDV3YX6NE3kwCXnNLkrsxE+Mvl+\nyW0aLygkSR2LtaXem3ThRUoOAjIQQYzT9BTBMtv5uS7AbfwQu6QjUb7E+b2w\nV8j9cnNCsCtOuHtgF1fkSWg/4UK6mB3ZYJT/rG+Ejyz3CB4bLCv9SZY1FJCl\nEOg/aY7G4uvDMtHFBaZzL5RdLM8X0G+Kqezr6s01yKEH7CZM8S7EmNTzfnn5\nFPhCfIuUU4+nB+UMDV4ule7St/BT6wHHGNcs3+6y9hqcDDq/R1lMNp22AAHA\nICyy4DSCS/uYpPn7milDTAxizlyZkkUbcWxNZ+t+1dgZsKZ9Trhs5jpW9WWH\nBZLKOTssUYyiP6nbaPd9n8/lUPnuUaJQ3tFiULOWuqjGfCBEMzBo7LlJ5Pxa\np0MJ\r\n=DLtx\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10"},"gitHead":"fc1aed3ac29811b17d51c8259c9231bf15eaf330","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.14.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.18.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/dapi-client":"~0.13.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.13.1_1591690594324_0.850903432649637","host":"s3://npm-registry-packages"}},"0.14.0-dev.1":{"name":"@dashevo/dp-services-ctl","version":"0.14.0-dev.1","license":"MIT","_id":"@dashevo/dp-services-ctl@0.14.0-dev.1","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"93076f96a0c9a4b938166361134ace60af091214","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.14.0-dev.1.tgz","fileCount":101,"integrity":"sha512-x8gQpxs+sWXvhbrrI2GGJf8hesskVl5N0hud/2t4WazRUjN3WaJNe6BS02rwkthy3OENK+yz5ABh7WUy2o514A==","signatures":[{"sig":"MEUCIBoSDYUnRCyB+b1fIN2snoYzU0m8Bh+r9hbB6s3TYPfUAiEAlVZdcHkTdnKzZOvuApAY6vGGPwba7j8Ne7MjL8vlWfo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe37+iCRA9TVsSAnZWagAA/kUP/ihjTWLpGL/PIugxuq2N\nrtwLxOcF/i4bg45OORX5WSOxVDokNdE7Kt34waX0pXYjbYn6VvAYhB4HWZ+B\ndyuus094sKK86CI2coVosLlvI2C9Vcu5rKvmUHIav8HDn2EIFhpNIgpW4slU\n4/YyjrFslMkxQrcV5RzGeQBRl+hUl5SigNPIWBMGq6OlMWqyxBmCQicf4SF5\n295tyZYpU4z69yukQ7s+yaidFT3VetNts+JzkD18Ih/GDZcUEbUMLlDi08L/\nQTlhnBX140GBztml5+B6+Ap66nX68HPqj8GlC8Zkrwi3czNmWIkkzLcVJSIk\n7GcTjmfvqNcMaZ4OC1rDAJk4X06jP2o2ZCaHiaHYZlyE5iq2HlKFwojAfE8J\nY+Bc3jnqwXECYY1AmSzyT/blAobU8pnZjPQAUJBiVwJweJC9dpVTRJm32i7s\nwSztTTp7bT4fcHg8wakUCsdea/NZZLbvPnXZxrrw6DBBQrVYRlPMuLFyCqSE\nBprDKYGF+27IbUvIhwuRavOyRG+hRuV6/UhmHFs1RkpVISmbtKr5Bl7+tmWh\nvPm3+2MvDaWoenJ/ZVM+YkdUF282RcCeeBJPyzudk/wFNH167XawwJqv2dfY\nEWYa+80ugjkV0T8OuPhwcS5r1ys7WDroLMNSyqSK9neLyYqdvMNQPzLYydKk\nDR+s\r\n=Uvh8\r\n-----END PGP SIGNATURE-----\r\n"},"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- DriveAbci\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbci.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbciOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n- [Tendermint Core](#tendermint-core)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","engines":{"node":">=10"},"gitHead":"21b08096b6bb57eaf55190bfc365baf77877a927","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.14.4","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.18.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.15","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/dapi-client":"~0.14.0-dev.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.14.0-dev.1_1591721890350_0.23921447462263523","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"@dashevo/dp-services-ctl","version":"0.14.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.14.0","maintainers":[{"name":"alex-werner","email":"alex@werner.fr"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"dalibran","email":"dalibrandi@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"shumkov","email":"ivan@shumkov.ru"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"45beebbee44a2cadc6de2951f99e3d16dbe4bdf4","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.14.0.tgz","fileCount":101,"integrity":"sha512-asyzbwItBU9wfkiqY6n2qDY0UQp/0LbhW5v7wiv/mXfuoaFwT5hFvoTBhX8dUQfuvQ59MEfBCBWdlIGjPbiwJA==","signatures":[{"sig":"MEUCIQDdNHdPUZYr5uXdr4dDjaR9n/Te2yFhOGovNUnytYdpzgIgDbRIxVFBuQV6HL70dWQmNwl9Al2GRvZ3LPcCNB+DmAM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGYyBCRA9TVsSAnZWagAAwqIQAJh5+jebDTy6uZzZy9Ly\n6MVSF5tap4e3n/3bJfqpVN74KiIKjdYJ66+nNLO0sqYbr+2Ucj/haYZyqMyq\nQ6qoTcZ9UX/kdBOxkAlZ1e2YawzsK6qlQ/9Q8FBhFR3EFOzcTD8QjoJDMSKK\n+dLHHFee2jG/GWVnSKw/nyZ+Yjsy++TGgWIy8YhtxFdJYVSZtz3Fw85a0Let\nQDO5bZjrSoYKovmrg5PDeIOw44CPnpkO2I4lwAIVZ4tQyKlyiVyxeugULq46\nd4eXU3wi/mBXp1NsmqbSIuYH2o7Ok7HdgNbmQ792b9IjUW9aaPFcqdtWFU/M\nCxpQRiFTYuR5fxWeTOZnbnvYTmdOBF2IFJO+mcLtF778x5iFIEELs65xcrai\nC1cDKWGjKV9EHSEm2WkxnFclaXco3sBlfhKREHCuwqzAxhg4EMLCxMzGVF+G\n9iEFYM7sS7m7paeetbj49+L4WCUa0h59H3txn8KxTozqNJtFaUwr6rkF0HBr\nEooQanhivyStTUzL2/GSRpSv5DyokaUN2mcJ7nHEUDglrVpkGDuS1tHgopIF\nZmyFm3rGMSkbDIt9uRUeahiQaAzGIYz4SSvJN9zotXqhhoRoOY1XMLaP0OCB\n+hzqrjWLSFP7W1EPZ5QU1zIeYNa8sICk/Nk3bunWS36gwFAosZqlfcGtiCRW\nJMA4\r\n=Vnja\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10"},"gitHead":"6ecabf37559044f61c6e4beaa2184a428a8eda1d","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"6.14.6","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"12.18.3","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.19","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/dapi-client":"~0.14.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.14.0_1595509888987_0.8625696448537643","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"@dashevo/dp-services-ctl","version":"0.15.0","license":"MIT","_id":"@dashevo/dp-services-ctl@0.15.0","maintainers":[{"name":"shumkov","email":"ivan@shumkov.ru"},{"name":"alex-werner","email":"alex@werner.fr"},{"name":"nmarley","email":"nathan.marley@gmail.com"},{"name":"cofresi","email":"cofresi@dash.org"},{"name":"antouhou","email":"antouhou@gmail.com"},{"name":"evodeploy","email":"evodeploy@blackcarrot.be"},{"name":"jawid-h","email":"djavidoff@gmail.com"}],"contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"dist":{"shasum":"3defb705557ba794067a8594d7ab695d6701a337","tarball":"https://registry.npmjs.org/@dashevo/dp-services-ctl/-/dp-services-ctl-0.15.0.tgz","fileCount":101,"integrity":"sha512-9SDro7+8otILBjaUiqU/0IXbMMEG/USBGg7fQt9+itdiyUhDdWJCeulT2XIju2oF53V2Zd4/w9hA9NApCndVfg==","signatures":[{"sig":"MEUCIEBb2DAxja1zc3ycxMZO0trUTRWc2MeXxL5jLKWIwhXVAiEAlsvF2DgQMs2KHgQbzN6zd2kxPkyOiN2OTeTJoYEDo1M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKvc5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZDw/+PGJtkGhBWXqusUlOhTWSQogx06k24/aCHkeYRxvtfHgCUfuv\r\nCo+DoHHwLOly9lHkW2um3TxfoF7USLTJxXowm4C1gsahnkTPJ3pKqZV1Y8vb\r\nBJPPhKAhi68nAp+KvHSFYTElg3Zd/4cdiZuV1ZcvbLq2KMHzm6bW8niWCcbb\r\nn/w28nqxSYFMRnU8oYwtFFkL+keFLcN4mtLr7EDWJ+s0gn7n2ZlM4OFxgP9f\r\nQAiPTBa/GYzyIK8U0nj5vxdxokCNFlfXNFckqwWOycp5CqUR8JdO5N4ab4xR\r\nnFQN7vrKxOOZAfmt4sXsEFRUQOE4tx9tM6QMy/laa8bVdfCUlHfUOpXfaJUr\r\nvCw8rzAzTq2al5rAto8NXelTYCaCx9CFRaamVQwAifnf/6FKhXfJifoohGeB\r\n5qrIqkOjNhNnEb/NtmKzJOond7UYkxyTvUxEMBJ0zmUBciOvmn2KD/D8HhpZ\r\n65y855WKydZh8+ybZWL4IvzHl2z6XqIc762w0rK9iDI02PQY9UMS5x7TyFSr\r\nPtUvrCNJZSB2emBxyLm4OQxw9hXVX+l1UdFBJC/MjHi/Wm3Dv2bEpjP0vFQ+\r\ndi0JKxWzvrX/cpTlI10zUfe5gpdlOuhBT/STOtB+5nBIjShdjw5Ou+V1ui+/\r\nXdXszYLb4tGJNEMVNTyxgn756OKWFwhKJvI=\r\n=WYIT\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=10"},"gitHead":"c043f3da465d74e9b5e4541a8b1f7fd8e50e06ee","scripts":{"lint":"eslint .","test":"mocha './test/**/*.spec.js'","test:unit":"mocha './test/unit/**/*.spec.js'","test:integration":"mocha './test/integration/**/*.spec.js'"},"_npmUser":{"name":"shumkov","email":"ivan@shumkov.ru"},"repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"_npmVersion":"8.15.0","description":"Control Dash Platform services using JavaScript and Docker","directories":{},"_nodeVersion":"16.17.0","dependencies":{"cbor":"^4.1.4","grpc":"^1.24.0","axios":"^0.19.0","jayson":"^2.1.0","lodash":"^4.17.19","aws-sdk":"^2.382.0","mongodb":"^3.3.4","dockerode":"^2.5.7","tendermint":"^4.0.8","grpc-health-check":"^1.7.0","@dashevo/dashd-rpc":"^2.0.0","@dashevo/dapi-client":"~0.14.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","cids":"^0.6.0","mocha":"^5.2.0","sinon":"^7.2.2","dotenv":"^6.2.0","eslint":"^5.11.0","dirty-chai":"^2.0.1","sinon-chai":"^3.3.0","mocha-sinon":"^2.1.0","multihashes":"^0.4.14","dotenv-expand":"^4.2.0","chai-as-promised":"^7.1.1","eslint-plugin-import":"^2.14.0","eslint-config-airbnb-base":"^13.1.0"},"_npmOperationalInternal":{"tmp":"tmp/dp-services-ctl_0.15.0_1663760185158_0.3424196823249448","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-03-12T09:31:14.190Z","modified":"2026-01-20T16:36:18.016Z","0.5.0":"2019-03-12T09:31:14.399Z","0.6.0":"2019-03-28T12:50:57.401Z","0.6.1":"2019-03-28T13:08:49.767Z","0.6.2":"2019-04-22T13:07:18.733Z","0.7.0":"2019-04-25T13:15:55.105Z","0.7.1":"2019-04-27T16:18:16.188Z","0.7.2":"2019-07-03T04:59:58.323Z","0.7.3":"2019-07-15T08:50:41.851Z","0.7.4":"2019-07-25T18:21:51.311Z","0.8.0-dev.3":"2019-09-11T14:33:18.520Z","0.8.0-dev.4":"2019-10-11T11:24:07.819Z","0.8.0-dev.5":"2019-10-15T07:15:11.357Z","0.8.0-dev.6":"2019-10-15T11:35:50.695Z","0.8.0-dev.7":"2019-10-16T12:59:31.234Z","0.8.0-dev.8":"2019-10-17T12:54:07.004Z","0.8.0-dev.9":"2019-10-17T18:23:48.011Z","0.8.0-dev.10":"2019-10-18T09:47:19.393Z","0.8.0-dev.11":"2019-10-21T13:25:42.535Z","0.8.0":"2019-10-22T12:18:40.688Z","0.9.0-dev.2":"2019-10-29T13:25:22.095Z","0.9.0":"2019-11-07T12:44:12.221Z","0.9.1":"2019-11-08T13:09:27.675Z","0.9.2":"2019-11-18T20:11:53.657Z","0.9.3":"2019-11-20T15:33:04.034Z","0.9.0-dev.3":"2019-12-02T10:29:30.679Z","0.9.0-dev.4":"2019-12-02T18:07:28.593Z","0.9.4-dev.1":"2019-12-03T09:37:21.266Z","0.10.0-dev.1":"2019-12-05T16:54:16.765Z","0.10.0-dev.2":"2019-12-06T12:48:02.443Z","0.10.0-dev.3":"2019-12-16T16:38:39.335Z","0.10.0-dev.4":"2019-12-19T10:53:52.945Z","0.10.0-dev.5":"2019-12-23T09:46:08.745Z","0.10.0-dev.6":"2019-12-23T17:07:52.564Z","0.10.0-dev.7":"2019-12-24T09:44:37.431Z","0.10.0-dev.8":"2019-12-25T11:31:06.944Z","0.10.0":"2020-02-12T17:11:16.342Z","0.11.0-dev.0":"2020-02-13T15:55:37.091Z","0.11.0-dev.1":"2020-02-14T08:33:39.888Z","0.11.0-dev.2":"2020-02-24T05:40:15.736Z","0.11.0-dev.3":"2020-02-27T16:30:10.804Z","0.11.0":"2020-03-12T22:34:50.107Z","0.12.0-dev.1":"2020-04-02T17:05:10.607Z","0.13.0-dev.1":"2020-05-22T14:41:15.767Z","0.13.1":"2020-06-09T08:16:34.517Z","0.14.0-dev.1":"2020-06-09T16:58:10.543Z","0.14.0":"2020-07-23T13:11:29.086Z","0.15.0":"2022-09-21T11:36:25.326Z"},"bugs":{"url":"https://github.com/dashevo/js-dp-services-ctl/issues"},"license":"MIT","homepage":"https://github.com/dashevo/js-dp-services-ctl#readme","repository":{"url":"git+https://github.com/dashevo/js-dp-services-ctl.git","type":"git"},"description":"Control Dash Platform services using JavaScript and Docker","contributors":[{"url":"https://github.com/dreyacosta","name":"David Rey Acosta"},{"url":"https://github.com/shumkov","name":"Ivan Shumkov"},{"url":"https://github.com/jawid-h","name":"Djavid Gabibiyan"},{"url":"https://github.com/abvgedeika","name":"Andrei Abvgedeika"}],"maintainers":[{"email":"ivan@shumkov.ru","name":"shumkov"},{"email":"obusco@gmail.com","name":"alex-werner"},{"email":"nathan.marley@gmail.com","name":"nmarley"},{"email":"cofresi@dash.org","name":"cofresi"},{"email":"evodeploy@blackcarrot.be","name":"evodeploy"},{"email":"djavidoff@gmail.com","name":"jawid-h"}],"readme":"# Dash Platform services ctl\n\n[![Build Status](https://travis-ci.com/dashevo/js-dp-services-ctl.svg?branch=master)](https://travis-ci.com/dashevo/js-dp-services-ctl)\n[![NPM version](https://img.shields.io/npm/v/@dashevo/dp-services-ctl.svg)](https://npmjs.org/package/@dashevo/dp-services-ctl)\n\n> Control Dash Platform services using JavaScript and Docker\n\nThe tool provides a convenient JavaScript interface for configuration and interaction with Dash Platform services. Services are started in Docker containers.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n    - [Available DP services](#available-dp-services)\n    - [Services configuration](#services-configuration)\n    - [Integration with Mocha](#integration-with-mocha)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n1. [Install Docker](https://docs.docker.com/install/)\n2. Install NPM package:\n\n    ```sh\n    npm install @dashevo/dp-services-ctl\n    ```\n\n## Usage\n\n### Available DP services\n\n#### Drive\n\n[Drive](https://github.com/dashevo/drive) service starts a bunch of related services:\n- DriveAbci\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbci.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/drive/abci/DriveAbciOptions.js)\n- [MongoDB](#mongodb)\n- [Dash Core](#dash-core)\n\n#### DAPI\n\n[DAPI](https://github.com/dashevo/dapi) service starts all DP services:\n- DAPI Core\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/core/DapiCoreOptions.js)\n- DAPI TxFilterStream\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStream.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dapi/txFilterStream/DapiTxFilterStreamOptions.js)\n- [Drive](#drive)\n- [MongoDB](#mongodb)\n- [DashCore](#dash-core)\n- [Insight](#insight)\n- [Tendermint Core](#tendermint-core)\n\n#### Dash Core\n\n- [Dash Core](https://github.com/dashpay/dash) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/dashCore/DashCoreOptions.js)\n\n#### Tendermint Core\n\n- [Tendermint Core](https://tendermint.com) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCore.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/tendermintCore/TendermintCoreOptions.js)\n\n#### Insight API\n\n- [Insight API](https://github.com/dashevo/insight-api) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApi.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/insightApi/InsightApiOptions.js)\n\n#### MongoDB\n\n- [MongoDB](https://www.mongodb.com/) service\n    - [Methods](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDb.js)\n    - [Options](https://github.com/dashevo/js-dp-services-ctl/blob/master/lib/services/mongoDb/MongoDbOptions.js)\n\n### Starting a service\n\n```js\n// Export service(s)\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start service\nconst mongo = await startMongoDb(options);\n\n// Get mongo client\nconst client = await mongo.getClient();\n\n// Stop mongoDB\nawait mongo.remove();\n```\n\nUse `many` method to start several instances:\n\n```js\nconst { startMongoDb } = require('@dashevo/dp-services-ctl');\n\n// This is optional. Default options listed in options class\nconst options = {\n  port: 27017, // mongoDB port\n};\n\n// Start two services\nconst mongoNodes = await startMongoDb.many(2,options);\n\n// Get peer IDs\nconst [client1, client2] = await Promise.all(\n  mongoNodes.map(mongo => mongo.getClient()),\n);\n\n// Stop mongoDB nodes\nawait Promise.all(\n  mongoNodes.map(mongo => mongo.remove()),\n);\n```\n\n### Services configuration\n\nEach service has default options which can be overwritten in three ways:\n1. Pass options as plain JS object to `start[service]` or `create[service]` methods\n2. Pass instance of options class to `start[service]` or `create[service]` methods\n3. Pass default options as plain JS object to `setDefaultCustomOptions` method of options class\n\n### Integration with Mocha\n\nServices [Mocha](https://mochajs.org/) hooks provide automation for your mocha tests:\n- Removing obsolete related Docker containers (`before`)\n- Cleaning a service state between tests (`beforeEach`, `afterEach`)\n- Stopping service after tests (`after`)\n\n```js\n// Export service(s) with mocha hooks\nconst { mocha: { startMongoDb } } = require('@dashevo/dp-services-ctl');\n\ndescribe('Test suite', () => {\n  let mongoClient;\n\n  startMongoDb().then(mongo => () => {\n    mongoClient = mongo.getClient();\n  });\n\n  it('should do something', async () => {\n    const collection = mongoClient.db('test').collection('syncState');\n    const count = await collection.countDocuments({});\n\n    expect(count).to.equal(0);\n  });\n});\n```\n\n## Maintainers\n\n[@shumkov](https://github.com/shumkov)\n\n[@jawid-h](https://github.com/jawid-h)\n\n[@abvgedeika](https://github.com/abvgedeika)\n\n## Contributing\n\nFeel free to dive in! [Open an issue](https://github.com/dashevo/js-dp-services-ctl/issues/new) or submit PRs.\n\n## License\n\n[MIT](LICENSE) &copy; Dash Core Group, Inc.\n","readmeFilename":"README.md"}