{"_id":"@badeggg/mock-api","_rev":"30-1a2b64d2f1abe81fa7cf3547e6789b17","name":"@badeggg/mock-api","dist-tags":{"latest":"1.4.1"},"versions":{"0.9.0":{"name":"@badeggg/mock-api","version":"0.9.0","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.11"},"gitHead":"7e9843a0527a7d04c0393c2b3389abd765d659d8","_id":"@badeggg/mock-api@0.9.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-Nuk+p+O2mf4y47uUzkzoNIAmwyn4qj8OAatNu8W/x2rKIQZ1XPR46DwNmTVn5eBr8D/vAdsrfzgF5t/NiJzKIg==","shasum":"fe13c6a108bf3e547ff234e465d26c08931ef85b","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.0.tgz","fileCount":17,"unpackedSize":12013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc93FqCRA9TVsSAnZWagAAe7IP/2c78r7riIXjkkkMgYDP\nLhK8DyOHYcdIxJBuZVLjQtXgThEIp5iB2LVDZjh6qCWJ7RyG1tIWtoYUaqaW\nubmg+OEgkjODNBNDMDSnIyv6iy9NyLGq6NwQiQ9W0f9PXUSSuClDpt9znCYP\nq9y17r+qJfL1cQMMlTxuvwKawSwdkuYR2lNIJo0Jest2+mAO1F8Ck6s6LrEI\nX36GkKczBMV83G6mDaF0wR2BrB99OM10HSsfntCIzfIm/Izz1lGaamE6uBS1\nhEh5Jc9RxfWQ84dr4F2sFlYaRzVpAILr2mjqp7L0bn6oVtCtwzZwOVqu9wNH\nz6GxvFxpiFaJX5k+E7M9/2bikKzCHUUFYL5bclEfEWRuliaGAOPbQEIwaFjl\n8j4zAKYMMGMJUrmq1DioRNfyc5za+1jMxDymleS6kyMCTtLNn+j7KGDciLdX\ndUXx0mjUVxWBcKFntDaMagosuopGKGalUoJm4xnHu8CI5YtaN17V6RBncM42\n0skVCtsqsg4HAwkwwMN0oTjcG1zyxN9j5TYekHcwkb4jZjTRHjnmN/U28mxJ\nUaXgESWjDVFagWv3giyY03Ra5CGc/P7p8kZdyF4BdM/mT5vWoPPRmpITgJ/a\nVD3Hf6/Tc05bAOcCb+RDzNDce74lIIFPW0orjtJbI8ofKDbibrkApoL9zpxD\nbgJM\r\n=e5iX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBEad0bGOLz3A0eGDD9TB4AByXGhsVk02GP/Em+CMEKpAiEAnoQhWhdVl/wU55Ij8h5E4b2eM0ZizRbGJ6/GuZ+6vo4="}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.0_1559720297854_0.12881328088261879"},"_hasShrinkwrap":false},"0.9.1":{"name":"@badeggg/mock-api","version":"0.9.1","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.11"},"gitHead":"f7c4a39c748664ecf1344ed1a5ed5e8029458772","_id":"@badeggg/mock-api@0.9.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-TC9zo4oexr+ML/9+KhNhbE8bf1fABXfnciyLgCFwBhTAfVXXUPKeNKVyU4hPinbs/oy3EVuUGDl0vceWYI922w==","shasum":"14b6344f03f98846b37e14722c191e80d4405f12","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.1.tgz","fileCount":17,"unpackedSize":12049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc96k2CRA9TVsSAnZWagAAt8UP/0Ensdp0amQOrDl5CyQX\nfdVV/4Nb55F2q6C/s1dYtar72tGsuJ8QivlvtE9u5szFoVLBCIrT/6mJSFFO\nomN9DwfKf/BmgEXxzJHNayc2SJTWStMsiYE8/+uNRGGNnETqIY09E78p9RgT\nxM8ISZnVEiTBjIJLIZ/Nj93NGGfcbXx8Rg4yAKUxKJymtHPvvy8lLiE2Jv3E\nPVyBUhkMpRBxh9jXXCwMrCuVn7Nu/XhAJDct0WsoxfoX9tHDRkoEZ2h06rVE\nNLMx45zrPvX+KcnvQPUiQ1TaLruB4eSnpGN8Z+w6eGQecpLSbJfYRzV/LC7n\nCoYXEBfdX2io3uxT3KiOB5n1374jwLg8GhskBUc/tptP8rByT3Mfst4Ypx4E\nx+qrII4IoKH84eWf7ptnfrmUHo/fkldM4YjYnzexrpWZocPoAkEH1I8U7ZmJ\nV1Ae7kyDx2vNjQwEAVnNK9JVbDeuGHM2JGNXEgma3/UAUMx5bzzMVVdnteti\nb/r/7I9kq5+hZQ1c5E3m/vaePmwPpE4Dm2Ie8R2GspXU829+yDUcBbdpK+0H\nbuee34Vn/H+DS1KrLcD2kcdVR1/W+6VlKtBfiNxOf3TfqYf+w5TFXPeloPK1\njxA8gGCEhleJyqLA0uuKtGvF9tmYoVC3ixdUmZ4tnRL+hXhyllgykmB2kjfn\n0SP/\r\n=DQde\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjQ3gfj3ncEaQlKI8Qjm36VtDsdlxq9rW75Dyej4exBAiEAvxr0Af5FWPTDx2hyhr19Xb8ssrXvGMNMfBl+9xTsY/4="}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.1_1559734581765_0.4261326383118733"},"_hasShrinkwrap":false},"0.9.2":{"name":"@badeggg/mock-api","version":"0.9.2","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.11"},"gitHead":"e7d630a0cf9653ed8ece4aee348bb8ff5b2517aa","_id":"@badeggg/mock-api@0.9.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-Eh+IX+f+iqFDCJcENZ7RLfKIHgBJWcQHhFR7EQqAQo13mU5H5Zt3EQnUjgKr0kNqwhwE6YmnmreDw2C1xebZ1g==","shasum":"033b7ea76fdd2089e9fd2fb855d9d85147963548","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.2.tgz","fileCount":17,"unpackedSize":12197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGbROCRA9TVsSAnZWagAAnesP/RUVbAoaG978JBFazzGP\nPvxXTX+jvyeB/GVWG6iP2A85eDYh1vsj7cwkBaakWjimXOEZKqL2prZewLj9\nYsITEJU58SMASLVjr2/zlax/YVWevoQMqPpGr/9vhMwf0B11CSgFc+SxuN3q\nygtBpLqQXnjgfzJZtI3nog5PBvRrECU74y1cgxUMv6vNpS089RmV0gZitkce\ns6z2RyMAo7B/qz+u1TsC9eq2i0svrrkTOoGGLJkOKXZW4bxnSwIbcBXRQzj4\nea3/yPR16veKR0t63XCkiwB5OL//dbN96gUSBmsVvE78FihR/jojVTd8WPCn\nhOr2ma67C5IZUGru2lGD1j080ARpHoDWvcfoSrwi5vY8lYPpOjxBWEyHlMw7\nI5TttwiAUXXNh7Kh7EG3m8Zopeg0OFQCDVQgGbDeCx4FWHiyqRQCC857xsCb\nVnAuW8K8zVs6064ZhPiQbrDiORAEtMdFRPK5wGXv+tPNd3P1nu+6ur0PED0T\nFphm4BiQcrNTmM46H7dCaPBOTyJKzUx580CcMe75ZoGcOVirQrlWffLDXaQK\n/E7t9OKRZeLhGNJQsZ0qzqHzluATz1OxUPdXW7pmz6g7ZY04G9S19u5mmPrs\nCLdQCnyuWjn5xnk33wd8sTpD/9XCn/0OuO5mG9BTpZgRYpufHlg1uL3jUAHw\n28ZY\r\n=Sz72\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAq0OpmaEYdQEKy+sM0g0io31hjApHHHZuCjiFX0KAw3AiAj7m37/J8S/g6nWxZ7rONf3XNR+2pbvsBwDCf0BFPrWw=="}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.2_1561965645448_0.35521146139504567"},"_hasShrinkwrap":false},"0.9.3":{"name":"@badeggg/mock-api","version":"0.9.3","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.11"},"gitHead":"e7d630a0cf9653ed8ece4aee348bb8ff5b2517aa","_id":"@badeggg/mock-api@0.9.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-qStPR2zXr58v/BaTPgtH+aMjuVRuDvV9eMJaE40bto3QcDVqlb5OKuBEHfUh0wBSsHV24Thy66hFiCZta1de1Q==","shasum":"8a629e9cb34953eba7d1e9efb8875a5cf6412210","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.3.tgz","fileCount":17,"unpackedSize":12249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHJ7XCRA9TVsSAnZWagAA5zgP/1BkrnFU3De2/Jz1jnZu\nzslCC56+JPl6anz7dHP99U5JHA6aCJyX85wRaGiATwfwlwieQ6zRcqaPsye7\nyd8JJOOPruTUNHr0058s28JTT8s9mYRNvo5jE63buBopy0ZZQ4xC6ubVbnW7\nhOWAFpn5bXQVblf39kMvru6lvfCSyZVvM61fQd2E702hTkSPiHHLJotGq+xT\nLZ6A/G3/WEglmLetdhG5j0JfsIa/BHc/SjxccPoaF+AN5M7F31HQTs9CLxBC\n8ADquEKEfix3C8J2Gwj8cv2+bqSoLrbozq/POnV95pQzwji2bQ4v8GHKidQ9\nYYs454FVdl78jup21l+FvlSvpLsOYvrOOTupNPOxSroxw29PVcs/znSmnRy7\n2nVPX2nBcu2Cu59saAoTO9VqRiu+MWwMdZ0pW/6lpoANj9iZ4k9ViY0xnW2Q\nrvIwqHKDF/NgU/sPAF3bPV/PKaPW/L9OGgSH9r3epxPymkSUXpiZxwQZ5gX3\nmAlvl14A6Fl2yGee4sw13gcacH9D4vXTn6v7qj1dDm0mstTDE3MbM+dD/qZn\nDchVnz4wq7dIV9Z6I3sSAN4kI38i7t0Y+ZuircbEE4OAnDuokvwZO/gwNm55\nfmBQpZcQOrDvgcHLVSiOXa6dHv2359WYCTjR8IEAeTWNkWJw421yMvc68+hP\neCRH\r\n=5BK3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkbC2R5A9ALEjwHLqkdXu4YxNAVhAKmf5sJSvx9ISriwIhAOMOBrhJDRRSX2X2J/3pGPUBePJg3bKjNCtRmqCQpdQy"}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.3_1562156758871_0.20527776970209777"},"_hasShrinkwrap":false},"0.9.4":{"name":"@badeggg/mock-api","version":"0.9.4","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"b3e1168eaa6987429ce2b1dd8f82a7639e0b5ae2","_id":"@badeggg/mock-api@0.9.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-M01/ntWA0NEU2wu6yQXw2Ai8b61wl1JLOxogX+h4JhtV3vigIjkoS+CE+//8zqyiJR4or4eXbg2baKuJ/NrvYQ==","shasum":"96ea51a922acc9382cad3ac9b466742bd4cd90bb","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.4.tgz","fileCount":18,"unpackedSize":15217,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLoXICRA9TVsSAnZWagAAF6MQAJltVh52mVvuAfOlpIil\nWCYCKn18yVWLWBz8fOPxbrZ90OpYIvhvf9qMnjYdU4qyO2HSHnTrlD8InzXC\nk1pPwiBVKtFuhCJjz4e4EcL9BRL5U3yREk0yNgB8kDRcUH/uIkXKrANfY1u2\nRo09UbNtWsBLLZa8vUH/bCumPLysBaz+jaVV0LDNzKPdXgwfICfGQtdfnxKC\nIJ6orSU7ECLAQpTz/OPZDUaJBd2juxjHTj3apqCPRRpXgb1nxdA16/HSSQxc\nBui2s+DuclbqTmwNIB8c/rscXkxzgkX/Fn+GlQFW2cmgK8IEC7bEs4c7M845\nuWXbyZQV4hyg1pyb8qUOt9jkhNaK1omJCTk16PdGvNItQ5HHSFHVDeXo80y7\nEhd43rPFY7pQOyHcLi5cg7xr2OqEfnOpvRzYLfQx8DYbLJ7BoAdv7dIpA3i7\nsEn1xXM0uQgPRGsI7VRyYn04ohmmjK74E8DvrVERnV0mFNXJyoBBY5wv0dfq\nBGPmuzab13DGv8i/OIl8nGSsFjGN3nalMXJKpOX8tzL6hxb/gX1mSo4SHn/R\nbC6TAZw2uID/0JSEaciz4+Wl1YVYaHg8EjeUiGIFywTPDHOThcMqgd7v1dlk\nxVDmuEE+a+9hVO7A40IVmM6BeAU82oCN62t43xoJygZtP1AWUSllu84R5Svk\nwyZO\r\n=u2n+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmubH2RBsb2s5+LJSscKnwLGHB0p/XhBFMbU3BQtrY2AIhANId688v8zruu+oWJXCDC3Mxlt8hfTfXB+5I2VEHWhw8"}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.4_1563329991476_0.5361605638002622"},"_hasShrinkwrap":false},"0.9.5":{"name":"@badeggg/mock-api","version":"0.9.5","description":"mock api","main":"./src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"97f82296705b0db31f530323d18d00929169e299","_id":"@badeggg/mock-api@0.9.5","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"dist":{"integrity":"sha512-JiADEy2v7cKz288cg4GcKWK97WRXhhnstyjCRQloRtqHWvuNDk2Vu9wifvZ2cG9AV/JjcfTLWS9ahUYd+3OeJw==","shasum":"92b34980ce6eb53d3d16e171f95a7ab2cd105815","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.5.tgz","fileCount":18,"unpackedSize":15096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMD3SCRA9TVsSAnZWagAActkQAJeNFMynWkvyvLv5DrCf\njnoPZnCEqfkJkjuS7AUjZusngWq3NPk8fY6172JOhSkhbGtDC+7pjzmLKs/V\ndLdQzVZIu/1r8mQP5oJiRpTu08k1xB75B8e+zYDpzkzY5HL8jUOD0v4nVDy9\n0Ni3hI8F1kW01no65x3IXkI3FhFUBNIbVE7Eo6HCIPXrqJYPNvXZCdCYOPS1\nTsiPUmotHOI7IctNscrxTRup01eyzmnzGkCxBgHTUvFXj10r3MULC/11LARc\n8Lfen8ey6S8Hd+phd1Y4Kz1Imkfk+qVmqZD8OMNR07NlNBzYizSoIK7y9FAT\ndoo7/H29G+sJi8BknlntonHz0Xgoi0eb3TcYEdi2BgYl0ZnyoXDP60FV9bPt\nb9m4MSvWKwusIYGwUs2rFnZvJs/QJhjg6A52UmVmFCxE/PH8LKncTZbtpqxB\nQXgNB/BwCoTBL60Z7oHB6FKnE4fZKjsLAAPAo3ZVULFVhY5axvw2iKJkvHbY\nzyNNLkPi4ZcFG+svadWhrkV3ffKZddzqfz3Jl599Ndkc4RQUt/IjRKzX9nHH\n9bYgNplIhsheAwRgvBIuYNaNZGD0nuh1+pkjkbljzUOtczg5wGfTJCo7guH4\ntZPPFotVaAK1TBzAiSIloC6jmJECikVGXg2gtifU20xRcD/A8kXK9x4ylCrr\nMYgq\r\n=KaxA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6u3DDl5281fj9S4Wztno3wIXpMGunvj64P7vPHZaE5QIgdWQfYcCPa+CBk1Z3GSjRLIHmOfmkvBOsnB88mIR94TM="}]},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.5_1563442641920_0.9290872410814772"},"_hasShrinkwrap":false},"0.9.6":{"name":"@badeggg/mock-api","version":"0.9.6","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"237f341f3f910a3498c9f7d0fb7173b1e490ccb2","_id":"@badeggg/mock-api@0.9.6","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-q4iEaCTiV9aiZ6fNKihayN1xJouLTXE8S6MCPFncvF68j0eKPZaaudZ5Fe1So4F9mcAAC+feoynt/TXfM+uAHQ==","shasum":"870ecf1db43fa9c90b2c3167074a0522ac654377","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.9.6.tgz","fileCount":20,"unpackedSize":16688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUE7uCRA9TVsSAnZWagAAJToP/2dwBSaf1Wlr7q18Z8fN\nNrc4N4ivP2qY1+NS+FkFwkn9pWzbLRgapXMQ+zrn7uCPoMYQS5Xfl/b1b8/P\nIE6q4e7SLSYc4ENYCvvXgMvUIKCAZbZCCRRoGmwrOEOxjPYYnjCO51hLbkRd\nb8Pc2/fAC6sUoC/u0At3LowOtMBYmyIlbe02XaxeO+6siZsVlXyULEevueNk\nwsxbLz3cslAgqcNeuehSg0ENeg5S7W8Ix1+2GPxwBzfuoAqN7uGyhdAFa6Ss\nRzElpqZv/PuUm/m0qp2oC9wA6wLFhnoUt28WZg1nlkDRIq0Diqv67fXLytk7\ni0f131rOBQjtw7UDyo/Fw+bVuHd0B3ttnEkQ0Wm953pYLtqaZWbiCcg7Qv32\n+GhNuQZ2xxOQi/aYLEPI8qx8dGZozwhLRoDpHv2TINpkB+unyWKzxP0LqGlF\nAgo+yPnEsgwfk8equ96Mg6grn7U58VarFuaRXpEhiaOwi8t0Ha2AmfnekuNJ\nV0jWqD+JDSnYIPgm6ZSBzUt/H375gdRku3OD/LfWgzqnDnDkH8r7PHZAn1o1\nlxSYdPRW8D/Mf8lVyd2ZbJVsGukAiagiCE0wDM68RHNWwPgLUwxQV4B5vJLA\np2yKPv3JSFxTWEHfmCgITsAzuB83CDl4BWRY4F1N6LAl1j+jyozediRKTxaK\nqxQQ\r\n=YYAs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBRN/lEeHAyUEaf3OS6zprj1NiSZn+Y/1qpsiDVS1HYwAiAq//Z2eJMC5p5OdcTunoByxAe8rgEQ9gOywWVyd1Ckhw=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.9.6_1615875822268_0.32867755160631007"},"_hasShrinkwrap":false},"0.10.0":{"name":"@badeggg/mock-api","version":"0.10.0","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"096b052b7a57e49ae0451b8b448176fc1a657c93","_id":"@badeggg/mock-api@0.10.0","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-6+ZB2ESboMvuFt5P1mWjyxAtOotByk5RPtUiDXDjRym7X+Ljkh27JH4VrD46Na272XUjs1qx7GtI5swEctI1Pg==","shasum":"607a0a8c886c821491d51b94004556cd12be1a48","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.10.0.tgz","fileCount":20,"unpackedSize":16710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUFKeCRA9TVsSAnZWagAAahUP/jpR8E9XYCSs6RlsG0QA\nRtcMS//GiFUkwUEJ0LngKaHQS3QLwJNe+MD4mvS5uqvvnN94OeRgZWd5iBg8\n1O5G3X0/dhBFHxh1tT2W+dJo5GHu2yO4GiGg3oEIS04DV8kjV9uKkvJKa/7z\n+OIjZh64H/pGBLqDe7F3f+N3V/UGg/BVNCdpUtIfy4PXv5ONJoWteSI9KHxc\nwqEzqlVTDAUQ0230b8iQ5z2Q0Yr8WAf88/Q2jCRB5q85wHb8nUiZmZSWFbXW\nPkvEspff6f3hoYRRsyhhzc1bSEd6teS/KTnHqbjcIBPKAnd3Oo3mk4p19pLh\n+cPSjpRQ7dsXEBl9eZDdlpvU6AD/6CkLkfuRavIUC0NCJPEKqGfOUbCz3L6f\nvE5XBZqhTTXgTmWD8M8OvLW5nhlpemnWuqfXhPqBRkAV0BASA4TaLin/OX7J\nhZRn+vZ1WdYxjcEjztXq1uMLF4LwahwLAi2ivHcg5jX7RLPCL+orpaM1m35Y\na8F7tLqbXrJQuAcIeya6Y52J0+kbORBdYmllaprHx5Kg7hWFXy86ZtTz3TWt\n77d3NJMWyN6EPuEG/bgKrGTsJK5XfK9s8wma0F+ad0BipRe/NyqUk/lkWE6z\nRYf2UKC0JDkX8V5Y1k81WBwRQ134+9nDLsjT50J24ho65r2vTAsbxJXeWa81\nySuJ\r\n=FJg9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8cu83xSaZBRxJwxYtIwIO356RlCQW7crlzYP8PeRv5AIgQIdu61qQbMBZhFVqdNxYbo1+owMquF2Ik5NCK6F2TXY="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.10.0_1615876765902_0.4229545275734705"},"_hasShrinkwrap":false},"0.11.0":{"name":"@badeggg/mock-api","version":"0.11.0","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"212b4f7c513fdc3744f23ad6046ed96579e19b57","_id":"@badeggg/mock-api@0.11.0","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-fZ4bgysHpfkIgtkAqVlFEBe1npJR1QwHxhjZk7pdRHWmpXdyZNu/qBBRaBfbbhPq7Z7CIVMGWF8kAifC3ryC9w==","shasum":"01cf64ee89406a049006a34244b9318aecb34b0d","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.11.0.tgz","fileCount":21,"unpackedSize":16913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUG05CRA9TVsSAnZWagAAeh0P/3vd3tZ4XcYbFcnIwXnx\nOCaQ9h4cbC4EGIXXwP2xZWDu5+JeQnxz8yYocj99/Hr7c/YsjRP36vltxENH\nTALa1TSTj3ooWshIB+t0Tr1nh3pMbX9eWt+bCF1Hiy6AWIK5wrfDCqsiWWiv\nDkHJovYdXVZxZrFqHhiA8JtApEW2vnVS656JXFaO1qiHDpJ53fxx5oYjEDJ5\nbH2tHDDAzzbh4qOr6Pb/Vf7lpXR1u7V5a4ictrNq3RBs8iwoqdoEWoVbDxqJ\nSPQqEm0PfbivbfhjcVfDYDWvx3O3LaA6DQ+Ijqee56+TAoEOxuIEdWXkIuru\nVQ1QAda1+8RWXwC9n9ang8z48Llf3aEBF6UTTUbFVIn4mGVtHD+VetFXzlz+\nV/W0MXOZWQVkmuX7wFifwLQA+nIgtH7Q/KTjQ1pCTfwpHGHNLlqXMLDBwi+6\n9WhizX3JnwO+B70aDgczGfh5Zx6x4tdnzFsHsrhR8QJPfiW3bunhWZgBSDc/\nWTf8PoS2VjaMQpoz6cHd8/kVOmQprK1m1ZUwOIBWk1XspJzliSu0MDM4hs0U\nlIcVaO4E/gtY4CEcIfGyL13JvVBPLdQroRKDa1dfWiKo+Jbz/JNqKKx1LXab\nNJqXJNWyMi88XjK6MWdsqa2SJz4/1qMlxwmdRh9ocLDs62SYUa5Qz8aSuT01\nz+57\r\n=2kTC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGQDHQ35WGMxLNELxPSL4IYpGfZ5+9QgiKypiV2YtT5AIgZilFTrHFeqUXs6Km4immN8Uxtiy3MqaNrE+OYhU89/g="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.11.0_1615883577082_0.7095732175548572"},"_hasShrinkwrap":false},"0.12.0":{"name":"@badeggg/mock-api","version":"0.12.0","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"691250a84c0046103b52d80bb3247f25a5ccf4ac","_id":"@badeggg/mock-api@0.12.0","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-34gOufzgSSsqk0XEFq5qBbUMTSIFQ8maH+REjZCobH/Tpzw+fO92xBcHQYhzQlftRW9KquKdK0UDkcNU4OSHRA==","shasum":"a9b21cbeaeddfec1a30a1cdb8fb6a652d810adeb","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.12.0.tgz","fileCount":21,"unpackedSize":18404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUcxCCRA9TVsSAnZWagAAUTUP/A4sCSEqRhJSxlRCCOF0\nkFJj+CzYH9s3kmhr1Y00TMig36ISkIqHgHQ38jS7MjAjt9pOektIlZsGqC8D\nNfbkrZf+H7ASZIY4Eisr42JlH8/X6wtzNgZY9MqQWPE12ywtL0Tw19exkn97\n9mh9BvlpyzgM6rFZvt9W1YVnN6c2G3odB+bed6aP2BrzwL2Zqi4fyubjcDkN\nzdISt7q11cK/uF95wEpBm4nWtvoGZqFGiQMMrb5SFGy6n+1VidHTzUxHW7bs\n/vjvCei7yKgCr9O0urUzBKwH/UXYI8BM/cj3CZJRytqMG8GpaLHVrNyh+G67\noforlFZ2wHAcrVeMLzA1a++7zBOEb5K5k+qNi0ho0ObEsRBVDNaYbBM7IfxV\nhHHqTqn4V8S24FcuciQmVylDRO9PpIgGUBoiGmkp0tQSMzg5jmMPY7tTZ/BY\nGuwK6D+ZgaXmVuagu6iozQ/U35/cKs/UO1+tl7eEjvL//JAgiYWeF446XFUL\nKCCnx5SaA1/ct9eDcpgkCII3kPovvcsVILDXnJTFl5Z1+YMRdiXUfOytFx6L\nH3EcvqiM9FjNSYdR8QUp1SGzONpJdvtt05Mg0Cz5+g4I26HQvrWSJqb7nrup\nRIxU+XQNJcNzzZHBs1l0PYRIbpXQ62gAkpAe93lbX2+Rpoqbq6OWgCDwf0Hc\nvsCI\r\n=U+Ss\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID8VR7nxGJSdoMkPS2PyZnp3s+bj5W/odFkHWqv9LQslAiBitZJz8+HPEqu9CneN9XCLTGh1f79XxM047SCqoDi6DQ=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.12.0_1615973442403_0.5349098839898865"},"_hasShrinkwrap":false},"0.12.1":{"name":"@badeggg/mock-api","version":"0.12.1","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"4eeceffca62ff6200f2bba79ffd843e3cf2f5bcb","_id":"@badeggg/mock-api@0.12.1","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-aHCZp1P2XeuRLTxVVaSdAzOZrmkm/Z8r/7wjsy+g7wV6MkJU3Jc2L8y4CPye7BRbMw5XMxpFsyg0kh90CaJiww==","shasum":"6aadafea5e9d5a1da75d0bde4740b1b75f91e490","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.12.1.tgz","fileCount":21,"unpackedSize":19260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUeMnCRA9TVsSAnZWagAA79oQAJ0AQArl29bh90lnjovW\nbB0J+X5VCCvEOIy/vDzxtWvw1AvVaUrC6u3GYVG7I2WppDT7HDmHUtmYdtsl\nWLv0ZU8IjUcL+sEDty/M29z/G//Av4Tvj/tB8DuE36PTsHou2YtB0aY4Uj16\ngqH10KcrqeDIdj5ktJgfbX/19w7USd9KMwG7capydFUSk4pj6T/f79lv+MWm\noF8agm//avZgV+m9HMT8ONR+whz24MMJG+S5qhwAPxA/2I51jJrNwb6ieg0v\nxPFhrZokvpB3FSjmYEJumsWSVMwswueml9Jvt+lM/QU8eibaQLMEEszqrqIi\nECfAu/SznqGHc55McaOrS+SbC1kxKL4YVnsXqH1U5VGO5ivHPePbxCcsjCqY\nf78gdsXjlH9G3FD0kXRaxCG3NQTeoQmQmExULUTl3sTGqYKGdCSIhUnavW8O\nZ7a+x03wbAMKfcpIZCg7VNRC8RSXUzCfQ1JYG2E4YSdADcMv8w0vFmdnRt1u\noX0hKtIB7DrSX7mcyRXrqTB5C9KOo2Dksy6v7MbmGbkTMYLXZ/r9NYb/5bLQ\nr5O1iTEe3DxmdSOZbHmMCAZCOXKG8+CtYBhGv7i/EZlXqBIEX9d3UocI1L/Q\ntny+U4knEX7a620LHGVppks2tRwnr+CIkgGVT+WyQLz1rLEyt6nmrPbRb1WM\nYbWr\r\n=BNFH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFmETs1YHlGzp3ApOEBJIHYreLN+utDaoRF7HJLc3ELDAiAhp/Zi7TM6qKAEC4dHAop3QkbJxHUGoS/kPfzBPXQrIQ=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.12.1_1615979302778_0.8580307284518578"},"_hasShrinkwrap":false},"0.12.2":{"name":"@badeggg/mock-api","version":"0.12.2","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"badeggg"},"license":"ISC","dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14"},"gitHead":"d3d3b835e118ef716b78bcba15c2395bddbd17d3","_id":"@badeggg/mock-api@0.12.2","_nodeVersion":"12.16.1","_npmVersion":"7.6.1","dist":{"integrity":"sha512-5w7c4WBfCYRDznZyuwqN1J8i3hnrDVHZvW/x2AXSgDmrmmvMl5wtdEk3akH+I/lrh+OhfiMJCKeyAUFJYO9NVA==","shasum":"ec069375410a1fd076ffe572119123b398aa311b","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-0.12.2.tgz","fileCount":22,"unpackedSize":19361,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgV1N+CRA9TVsSAnZWagAAIvYP/2W1oWFOP2o7J4oGsN59\nouEI6mtMkRKsJBMDg12XId+JAnYEcsHjqNZK2kX7oaReENch9vVPnvPpG+nw\nbcJvWQ7tcTbrnMCQjwHUozcdPwM/nNdvgfKTLHvpXxgBCYqWAgjOHw/3o+Pf\nBzU/bZUuWmT7gnDRSyq2HXsANuzTc4zm62hVBIddrNJTubF99XlRdfFRwQ8M\nnPFW0YbCMvvtKVUzb7ZEBbD7x92tin1ut6BqY3kCOjZPnsYs2xkFy3Xq7Ulj\nNjg2Wen8a086B1d5bYL5xeTTqqV2muD2Hjz+fLa14KK0Y/KP8Ncdfkm6CvZ/\nx6YCfWDv+SKN01NbwxU0WKOrrLrfVY1YPdneLGAjumJPA7weGEiCZiRp0nX1\nNbpOLJBmhn2BwYbXeV7IEMSs0RK1y1LF0UMT9jo1eWSW1pa9j9NQoDCtAFjO\nX+4qVwu2s2RYUAyg8946WM5MRtslEa7d4heSmTJYL732lkZILcxtYc+SwNgy\nMGuZdXrfklKkzBTbP3anoRFDP1lc385PZ9OFnGocEUGA45PA7BRfTX2hzfCN\nt8KgaG8xNST7rfWoWuFNnQFbzCI8Skr2u8I3rr+ZgCMK2eaZuseu2waApy2o\n3+QuRzPyHwSh6GLX2l4CQFfHCnU9RTym58KwoOb4/YIyEJ8c7WT3OO3VgfmI\nXJ2u\r\n=lx9n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDZMex2bZ4DnzDbtNNTljGx1JUHOUhpQOLV/i23rvwigIhAKpABkE4R0P/NnjyCkM4HYBctRy9xfsl5EwUZuMbSCoW"}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_0.12.2_1616335741740_0.09340586138512519"},"_hasShrinkwrap":false},"1.0.0":{"name":"@badeggg/mock-api","version":"1.0.0","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","tcp-port-used":"^1.0.2"},"devDependencies":{"eslint":"^7.24.0","tap":"^15.0.2"},"gitHead":"9d30f5f8306b50ed0a42678db069df23cf3ecd87","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.0.0","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-wevmnOgLxsLiPD08pWiE7XP1R17ZSUWCAqYza1EIQIDWhFayUTHx5pQZg9ObAteXmmoKmQRiLQj2p89bXRwMaQ==","shasum":"fb0ba68e4a5c3449dd14c1745e771d8d5916c8e1","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.0.0.tgz","fileCount":25,"unpackedSize":44357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghoxICRA9TVsSAnZWagAAQJkP/0dihTs4Ow5qqTjsd1I/\n6dMS54iaGZ3PjA4TeL2vat9u1xuv3w+GJdYx38t2oKhXjJAZeWmW++9ljPBq\nQb06u69Wiwv+AYOvBsn8TW6j9jfBSZh5jOzIjr3h+bCihSuUgeX2QNooP95d\nlF/CQST905B2rH4VeTVujV+j5bYMw3vIEAul+mZt210+MDuZnua3lkzpqEWI\npM0VDlRLmrfa7a3T/tnJw7xC7LpjB2I2uElh7NTqDLzkoR2HJYOXDgxTxfY3\nhroz6n55QPezTDV2l0YLAfpnYq62Qp4ZV20ff0UHg6o5BpcxZ4fdzlOcs7uH\nmzKUz7FyAKxBXVKB/oAAU1IM9rq+hW6pA0j9Uy0bswDQ++Y01+ogQjIjPryS\n60zNhYcoVBQ4BEIzyvvDZTJ8KcGIFHQSJxwu1u44rl1QRyw60iVWhhlugFcz\ny1ja3pfW54vF6uwSOgGD9acO1UIkI5iiAETAiGyR4LaSBUPrhrVUkEYuS14W\nDvG5tb1aeZQVhk9n2B3/y+bmbWfzxKXfvtEDqdHmNrI2tu+5+wzCfac4JECn\n0j+fkSThwRt5uznURp8V18gdmjwS/aVIizk5K32zpsN3jES/K6RIYVoPdMt9\nAoPAe7jA8Mfh+CzrOG7VaZaaWuR5JdRU92mmd6FKZIAP06Q3tyNPJe9O91Kr\nyGuJ\r\n=OHr+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDWbqcgo8bXVuZyfkipnCoMOYm7nyB+FjRDpL0MSmB5oAiAx7ms+SBMdEROCDpfro3NbOgtsiv9ndQazJPnhZq/CCg=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.0.0_1619430471970_0.09440111755125069"},"_hasShrinkwrap":false},"1.0.1":{"name":"@badeggg/mock-api","version":"1.0.1","description":"mock api","main":"./src/index.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","tcp-port-used":"^1.0.2"},"devDependencies":{"eslint":"^7.24.0","tap":"^15.0.2"},"gitHead":"231a1a2712fc025e24b6cbaa36cbe7979cec54ed","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.0.1","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-rSmJ+SB5BnuyukWkriUxqgzYSfy1yvX4VGyZoop0Mn0YlnrxrN58ipsExrKXphIjvrKJ8uOcWGaDMDsYocwaeQ==","shasum":"0656b7d6e00c8f1bc50e25f9f6d4229dea3b4663","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.0.1.tgz","fileCount":25,"unpackedSize":44427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghrSjCRA9TVsSAnZWagAA7+oP/1yY3ezXj24z5bL/1PdT\nGwjOb754p8Fqzc8jzImWQRTNlgn4YMlL9fIh2VmEimE42pQ1EBkfWTw/gwG1\n/cAsqaVvye0VEMPNJheqwRMqWSwXh5/MdhVJATjWUnouVLLRz5aUWWbFxbrT\nYpx75PAIXTxWhyEseFXBlYnSte7nI2b1QRr67zvwa8EXZXdicj9r6nPMUXuG\njyLN+1B4homlaPPesZJlFNFnFRQoBYwSv3vq04dMF9iHXgaM0zUKq61M1SYd\nioquG/7Y2Gh9liQUbC1fJLJRnJMgsS/a9Ju8/eD55LJKxp9UYgJleIuoMdsQ\nTrReUz41A8TMprfF4M2mmCSagmc2H2lesxl2Ar/8LRBOFCfHZJRKAriGvyt3\n+NEOSwuTAVDKFp4O2oIKaQM/4mPYmDp/iRBw8WdQMqhr0+sbKLfY58VuA1cI\nVsOT1y2S59Gw+qRu63TwvnTMo3zlJj7v3od5QwK/YFhC9eiVL1zPx+m7meKe\nNzCiONlSGEISiSnA2Sr9K+h+KKoGiFy2OkYJ7D88LELkdpYP6hQUlKGirLBQ\nU1HCoZZ5DmjdBJgqTTzZphHMnSB1iXmjeSVT81eSWUOGduupnQyZjdMOCP7k\n3MYUs5atuWpdHOtRVbQg8h9MAqksa++GJBpUxsN8BB/XBnN2h0Golsbi5koc\nae3D\r\n=TaUz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjJCX+WknkoCr/3dK2ekP8NAVXV2HjfOnuqI3sEcYcsgIgbpGmbDDB34SJemY7HEvQ83GX4doZgq5vaCPJQzt1170="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.0.1_1619440802584_0.1458948408643237"},"_hasShrinkwrap":false},"1.1.0":{"name":"@badeggg/mock-api","version":"1.1.0","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils"},"gitHead":"d341d1634d850695a9f09dfa20229f9198597881","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.1.0","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-vYg3uHzQNI9gsniuo3hZue7+di84ic6PjuPz4OFC3HqqL41DXikwPfSMnJMDOYX6jFVkZITGQ75z910KtQgjsA==","shasum":"88447d78a13d223b48c7cc5387100a3cdcd3a90f","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.1.0.tgz","fileCount":108,"unpackedSize":576388,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv0orCRA9TVsSAnZWagAADOIP/RyzvQAsGbI6Tjo+g7me\nbQ77VmfgdyP8yH2b75MDHLR9gkAmkeIlXYOxV2vpQhr4XWHUwqnnpbQt0kG0\neYL/So+NXk0bV6n0WG0z6QewBI0/k5LboqxsTC1x6MSCe1RG6fYTS6ZO0bfF\n56ZQYISLSjaQOOUPuxkdfcuQdtc/Om/rMwQ0LB0a5SsITad/QHfHD1Nyb+bS\nO/3+R/a0e6CRYMvWc3BhgNNMaDJJB2BBi/E30zZdUWaXEHXlJxiYyCk+1Sr0\nJ2nS9am5+/FryviNp1yNmVb+UamJd6FAO9ZI21Mf2kLDpFjZ0RMBmBqeeFx+\nm1fZk/UIu6ZYZsB63do4lrBh2Fc54VQFylorlJk8to7rE1s8QW4Zbs0WgjZL\nCnwWqqOfhC2A+11+shQN5vMH1yoWmOhlOZNG2j/OpAmzteIqxSyzJe7GljYe\nbh8VWxozAiwvutx03dc8/wUc9CTwitmnSUuiTFi2fRzrrB2nsBNt5tRNCbXy\nMZiFoHLgFoMTefGMA4bF0sHkx2MKvpOZ3zJAVAXGdOKSLzBLpBPLQt9c+OrB\nRoVCpUoab+snqCJxa0ZEvZ0olxlcm/4x4BLptSYFv4H6vmsT7YSMK+gy87DC\n5/XPol12m0aS8S+dVmXUDrg39ipgot7NOP7YfXRv2qhSUQFocFKFhMmUtrIu\nLwRZ\r\n=qbSr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFkE6WnoLUR6QL+qlbQaTtP4Fh8f6bYyYxM75AZ2qp8EAiBMcFIoOLQD76wKVr505H/OuLDMxkBjJWnBPzrpA84PcA=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.1.0_1623149099247_0.23713644254116883"},"_hasShrinkwrap":false},"1.1.1":{"name":"@badeggg/mock-api","version":"1.1.1","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"f874a20d455c982f986d352e8c92797fe34545c8","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.1.1","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-TlTkEREq+Uk+vP7veh1tLWHH32m+jbFdKziT/NYSMvkdMOhCokpVQiDAak1aZjL72nkU8TY+gYOZDwdgytkjjg==","shasum":"8f4bc042f3618dd5952c523c6f2c100e5856aec4","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.1.1.tgz","fileCount":136,"unpackedSize":713065,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxBWbCRA9TVsSAnZWagAAuKoP/29Z9m4yLN36vQ4YcH70\nqOOhFF17YiNUVnVZ8WjjYItao/xVzvL+d6jQy33M//+U7aZySH2Fy2gDEYtl\nL6qWqj1yVhpCWNtrSZLSUr+s2q8/gbkvhwYd3dj48e7v1oUUjMqifcg+MKl2\neyG8WmJjIAj3JZTja8860/MnQZjWfrXdYKN/hGUWz0qFpYYaFlL0pmTZBCWC\nO0Q192hjWwZH7oXJ6UjQHD29IPXkCrQNIYCjs++ydvv5+uFulJFxf+QcTGel\nGL6BEvzEm/NIvvfFz1YHCdJ5KfC5MdzddTfUeWW28RZ7gW0jYhcg2Pt7CLAu\nR0nyG0qaVr3sw25Ma+auw5JXlv55zBOW7ij3RP9lGJiK/Rt6EXrSYidTesRb\n0aBEnp1IzB89inHFJmStr7qON7LVDgKMC1zVM3TVhvgSK2viFD2nII5hzp0c\nm42WXb0MEnJuUuG8jH4wUvP5ge5bixQWDTit4c8d5q8jHI6qOIFkVygCVGYR\npNsXQ8R/yA9QMcNXQ11igiGk0g88XyQXyF2jOPmhCBYyRkQ4uCOIuOvM/1hg\ngq7HFTZxx+TqO7AaowgT81VkCKmkALHk4ol3m+bL9apSweCUwiswdPMaSNuu\nxJ/Bp0bWDuzi+OjPLvPO+QbGeW1+ewtOfSRfGKaFCa8x/blEqN4XXqtXeaiS\nYF+c\r\n=D4/c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgEpLHwJcGkvDL7Dzhi1QN6TQf2VYmsCJh/kik61NWCAiAmwXzxPNsvapcdjWTzGi0KuhjtWGW5mK85A1atmNsetQ=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.1.1_1623463323105_0.12513912319956932"},"_hasShrinkwrap":false},"1.1.2":{"name":"@badeggg/mock-api","version":"1.1.2","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"6ba28f48bb67a842c1f96be2f4826180cd720507","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.1.2","_nodeVersion":"12.16.1","_npmVersion":"7.17.0","dist":{"integrity":"sha512-7dJ6sVZAz0A3Db6DnoF41OCis87iA0LMStOiuogCo1WD5BN+adGOXhb3tCHAgJubTdmtrhhCIZ0M5RJUMochbw==","shasum":"a610bb20171302f228b92842e198760c0a8b3653","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.1.2.tgz","fileCount":105,"unpackedSize":581682,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyIqtCRA9TVsSAnZWagAAfEQP/1xeE9L20OJ+DRFVSZDf\ncTVtIT+vnXuYBdswP8oJDiS7GCP9kFAp/MPPWOXRaAvt0BFzpZL3nDP5QRvK\nSYObuWMWTCR26L1SE/wLwaIKRl8D8MzEN7h33MARzJWmEYm1++go1ks4B9nu\na8DwFrAz7Wya3fh8yzsjN3gAF7IvsD1IFrXauikzTQwoJhJkqXMaWd61p/5x\nujp4tJTn3SkYihu2ITi1dX6W+rKHOf9vpVniH4eoVpOAnnGzUekvJH5fw3IK\nHSsXmBzhJI4uc5tOBMV1k+AmHkb6aeB0vxHIa5JMq7oTJdZVLs02Lfrb7ipE\nRbETO/waRyoyedVpk/juyCQo0m41XAQY9K0PNgzINOZpdRXROu1srdR3pWLl\nO2M/bLDrerjvhtsXRVu+n+sqwqD4iPtFX0Y2aD07x/Sq3IEBn9pZGq81Hw9t\noixTzQ6d6gStBLsQx8ALYnbcPCj++w+66235iZrogWXKT0T/Ozt5LYA60e+F\nkRjiSyvyr3q9kBKchAFwEKaUAHHTXkOIjgo5v6uraSTLFXoAMTsU8f0APwDB\ntvP5hPwe9D70IywPUMeKj53H2a/daiaNzHZIpUd43cdDCaT8bFPivNWYkVHC\ncbVm7TBJvUSP1tPIPhqt6BVx9cpWOL1DjI8a07ZVGgvh5ia1XXh3E8z14bCB\nQc0w\r\n=z5uF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOar4qU5dkV+2yl+WJgfM7HLbdgAohi8DlO1pGmTxUHwIgLDTqr8Fhfcrxdd/DWWJH4ho5ufkHU8UN7O9nEtoI3GE="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.1.2_1623755437392_0.022151510799437668"},"_hasShrinkwrap":false},"1.2.0":{"name":"@badeggg/mock-api","version":"1.2.0","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"40886b3f50549c05ddcfc6bcbf512b4abcd83975","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.0","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-7l/mmjRycP428AGkshviyHlAnr/SGLrPUQ7At/ZdaaQ0a/0F0S4CEGDaJrc2Yc4kucMYJXahg/F4thISCdhqog==","shasum":"e08f25f1b333a53b19741ddffe62a1c78c262a50","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.0.tgz","fileCount":20,"unpackedSize":46100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+jpYCRA9TVsSAnZWagAAwZ8P/1OTt0uT6RAL2N9mj3qL\nOrQm+L6gkbRytZLGQvijvmzJ60M2PuwP7ghNhAJHLFgThg+/YTBj+ncPYe+f\ntRmf0Icizb+hJZPz8YqFskl4oHRRxuCoZnGUAeJMZhXkJUnSV6KxX98W+nOh\nkeTMZyV59TMheIIlNuKU54ifkMZ7k61KlOLmUUAH9Ir1KRmIb6THM2Gd3jom\nhYeQDw4jnDvk3I8w5yN1x7jWCh0hEpxsYcvdb1jwsJD2PBv/wGXA8/aWBfPV\n5vjFGTMKXRaUJuf3G1cqxiBCwHLw/malPA4wkwgx+WPcBEje8OPsbK20S31c\nVL/W2iv2ennMx8BHiQL5M2YkTjfUO9iehfKmlATlMV9XpAh9OfDKNnsOifgJ\nz6ffsst0XENOPUkOaTGnHwAQBfihlnW9+4Uyr4tQ5Kv1oWD8n/4TjU1z3fzb\nelyANfnoJsysW9x2tsR8QlM9MIDZZ2AWTQIg8eWp/EgyfzlazrNhIeTWEkFg\nmuabtOplGePnJXFkeoGhpBCccVPQmDjAnZ2SJEEPvJnFY5fBCNOfqbnGhwRK\nS7Vo07hs7FdzaDT5VUW+beYbuucDZFfPYjLXp/jDUIwyd3iKhqgZxC877zpN\nuQTmajKBpD7+IEOpl49+KN5WDs2RF7lBwT/RL/MGUM/Ctcjo8cEDzd6vPZv9\n0u2C\r\n=5b2D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuW2Dt9romQc+grPnY3SEe36KoSw3KSOi5fjJsGEAwTAIgCiW5bnQmT40cixqaz9Uxk6XIVNHLrmgEhVScHgY1lrU="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.0_1627011671975_0.5611677467290379"},"_hasShrinkwrap":false},"1.2.1":{"name":"@badeggg/mock-api","version":"1.2.1","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"86af93d1ed4ddc9cf6192e881e7b757297698ac8","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.1","_nodeVersion":"12.16.1","_npmVersion":"7.17.0","dist":{"integrity":"sha512-p+METAA75u9rXj5DxOF1Nu8d/QNfhYh0WFqvJD2G+GqImV4zrp1SVZ+aeW/Xf9PTCOcThP5A7sROwcnT7LI4ew==","shasum":"eae9b4a350eddb0075fc192c1d8656ec66834594","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.1.tgz","fileCount":21,"unpackedSize":47184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/AbACRA9TVsSAnZWagAA0JIP/AqLIPnP+XuH2oFMV+7L\nbmaS5cuP6wheAZtDWMMbIeoKaTlHc5Wya92KPUXUMe8exgfqQvchneuPevD2\nYhiCX6iQzCGxMuP1tpO+PVx7PLX2CF92Sdm38FsVloeEcykNycUlYrU1MlpF\nZC1qjPGhtjh1PJt6m4OX0VnLZzcFiT1CsJy8EpEV8wrymvs9ro7WnbS0ZFG5\nD2aFARLewtaII3MGJNqU52NucdUGs5n7Li6xwCuOnOEFcZoIKzr9NubYYkqE\nT4J4qR4z3JI7UHRd+/I/EcAcuuuzUqRsAmTlUwb9czefkJ6Ki0R2O7LSf+lE\nbMt1jVQvFLRJHw2uSyWFd1/F4XmWdo5Jbn3aaZtI7b+wj9kfmGS9DYRSKVxN\nrKgSN1fTs7ZqK5l0x67jgO/YfT5sUFsfQO3mhhCTccGKX4mehZpGOORdDHQm\neORsSlOdd6/5ODcqOnKZn8I9VIhHP0reuSFYHVf0g3mdZLeSD9KyfBmwwVPi\n5cMCo9vZgtUXpvfYU0ytmEfBzHJWlMVpD617J1BFDUkkNG5sR0YgNqYOOxaL\n4l/oosC9o4ONfD8+lThRjGkQq0XVckUMOw4/TasJCpmXvQwD8//skfx72flx\n9UvTK8k9adsIqHP0OSNElG/WGg3tiuQKgGSTiTFdmnSfw1kOwiyFWQrSLH78\n1lyV\r\n=+emv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjQRJnx6s+3+VFAuvSeObCicScFch7O7uzHtP+kSb9NgIgLQbHKBMqLct5rLYnY8qvtPn5tur2EIANv8lAJGA2eBo="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.1_1627129536732_0.8647613106080989"},"_hasShrinkwrap":false},"1.2.2":{"name":"@badeggg/mock-api","version":"1.2.2","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.1","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"b46fc469af2bdf8cccbe0c6200c4145805b083c6","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.2","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-278Efbm0O/qt4JPkwpE7tfVFahCTPYfEtDNt3S0ByJ/evM0MH5EFWcH6sFR+Qxd013kQQXtLpOuk1kUNF7BUNA==","shasum":"63e2948502b75efd6d8ca8c55ef229923c9563a3","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.2.tgz","fileCount":21,"unpackedSize":47223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ3kmCRA9TVsSAnZWagAAa5cP/jlcxpJWZQWuAuwZiVEN\ne2a4i6YiikJJ5CHiXTat/ufNHkg7zp+Qs1P6Uk6g0yzhhXDE5rIP6AQvhkH9\nh4814YsY/83p0Jxw1/JvhXUITCPQu2yLs2XXh5hrVMVhl1upsoFRzSbEpEow\nuIM+BStAaxfh+zQbOfWhrNdPMbgIQC5/Q3iK8Z4GX1ZnB/OqsKUq5UgjkDWU\nG8KwJ+oJyLWA9giSBbNCy7G4aSgbo+RAEkgrVMxqKaNxZYh7rYB1ZZPrb6D6\nrxr8kRk+3X6vZc9SMrHDw+Fp2/+0QEX4hKp68EjLZ36AShCfOPHHfC0vNI1R\ne+nPGqveFUXb3tefjM2st4GJEUkSE1xGkJBqiB/V05Ed7vgp0tulFnO6DfM/\n9jXE81Rb5zedP/MDBzg/rk3RfRCFcSE9szlLYUo+wsVtgJf2ceq/AZncbvh6\nJfmhvzLQ+nIWE5iQ+0w1sqzKvun2BfPebay1+yv4RNmccWDzkDyhDvhsab14\nzLCQakKOUjV7CPfEfWMVi+7lKrilmOts8jI08ekYTiACZbzbTg6ruOwDV5ir\nJvwzLYJbW8zprpYCIzAV521peUPjxXgwQtEKc6CCVyQp48qPC85XUnT4TWSK\njJ/Q2fMbFp0FtJMBUsNGKg85kwpRZ3Dg65oQ89fhWakJkW085dQZA/0Q4kpk\nfFIV\r\n=42Wj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkmrK1v7IojP+uco0b3nakXwoiIRPplYLMj+/KLaBaKAIgNo3eYVwdhZL2BO0gh4F9xvFSdvRMwwBl0LoX+g37chw="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.2_1629976870378_0.6306049723803224"},"_hasShrinkwrap":false},"1.2.3":{"name":"@badeggg/mock-api","version":"1.2.3","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.2"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"379b391ea172bbd4c55144d540d7a640f86ae7e1","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.3","_nodeVersion":"14.16.1","_npmVersion":"7.11.1","dist":{"integrity":"sha512-XyBDlaBf/hIE3Yp6qGo6OKXYpvgNbfIC97rcItZFAbjDZwfp0ysz0dpa0lgLc8xnkt9d1uW+K+WTf/i1pWqf8w==","shasum":"4dc4a1b2db429fa9c029e06fe0857be22c09ac47","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.3.tgz","fileCount":19,"unpackedSize":55322,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLkzw98V7Ov1n2oMKS57C7abIRd7qWvLBxPuYQgkAsRAiB+dWh0Dvbh2VxxgNxUk2KgwdyABvqiWsCmz5cTMNz8AA=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.3_1634296456683_0.36403506869606006"},"_hasShrinkwrap":false},"1.2.4":{"name":"@badeggg/mock-api","version":"1.2.4","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"2f4377612cd6958f743d0bcb8c82f0e40b12e749","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.4","_nodeVersion":"14.18.1","_npmVersion":"8.1.1","dist":{"integrity":"sha512-EvcqdW+H5tYepEeEATYf7VEIIrwNIJaaeGm+zgNhUf07hPtxwCi0z3t5m51Rfry9Tgr0eqsRa4qtDYTptTGSiA==","shasum":"b8f1e06dab4a4e91d54963067539a1d0831a8592","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.4.tgz","fileCount":20,"unpackedSize":56218,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGAvUgab0lq8PTE5kaDCnkF3chPDu9l1T4DERdtY7zSAIgfmJ+kL3s5SY1O6QYBAjgdJDinrcwENRZi1BZEXYHGh8="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.4_1636714263230_0.5599258061338028"},"_hasShrinkwrap":false},"1.2.5":{"name":"@badeggg/mock-api","version":"1.2.5","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"32e016210c1a6dc7332b05ff0558cf79360e1517","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.5","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-zRFTT1PfFb6k0waARyf1nVRhlMYBK0rjkhl16xuUgHc//UvSxT4dK2VAh1zHDXAPwKQ5nsfanLEEy3GiM/7GbQ==","shasum":"ed25f06c28a40393bc5c834f2ea5c11be38d0c7f","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.5.tgz","fileCount":20,"unpackedSize":56771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk4UOCRA9TVsSAnZWagAAGJUQAJUpd3JFeZTfHh6r83O9\nFPqjTBcg42FOpfb/5TfeCyMvlTdka3xJ7nQBNBuB5wasJZbHyY/jORaxyG08\nrxlI2tAETGz9f73qg/yye2gyzG9C+fQHrqnehRE2MbATJmmipH9N7OVBTwBU\nCKqS0ef6XLGntXviozwYeJP5Ie6+nNDAZKyKPVurIl4pmJTQxwVVzwsdYD/T\nBqlidV1wiXHtAR/yAGtbOu4ZNsE0gAWJclvzig7GlKlCGzT/ilSKIpHfb7+H\nk/tS2r6a3nqY/bA9BkcsXSL/tBok5XpGBt0UV8oQNd6m4SqcoC+4ew3gl8Wv\nKZvA2D6GG9t9p5l4aVRnPTum+eGDqvDzf0X9oQ9UMwbWu0wfz2s4ce6PthFW\nQU1jsTACHGGEw2RWVrWRyIpcHv+v/gaaNLfvoki646aoKmLXmFVCA7Heqn4s\nnYZepUpmZ/q6DTDoSy2FhqQh8LmeDzm32ith3VREVsByNYbvjwfUM0QL+xsR\n1z9C15Mpnl2LyW9oDCL6fg1r15kFPoN2qWiVQ5RB0wMkLLkbf4x+w5uAMcOR\nLXovKTjuAvTSx8rI79QypgSpEM3ncpQiAH5ClgxtGVFsebTSXt8KmFV8SzEw\n/1RRAQE3mh0oz3NN8pWXznieY06I+zdswDGU9cxoy3frlQDoWq/BTJjqOs1J\n83Vu\r\n=Kzi5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEh4bL/l5OzsgOguP1f70AqzxqOTzqnyttkUJhe/ILSwAiBYl9aY8sJpI62UQO/THx5LI0ebjWepWU9+MWuKm4wOtg=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.5_1637057806105_0.2350745297956729"},"_hasShrinkwrap":false},"1.2.6":{"name":"@badeggg/mock-api","version":"1.2.6","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"040cf09d49e4219465d1ef168b1bc299ee4e7d5e","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.6","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-t6Mtq1+aj+VnWlxljeDEfLAUg4WMW10H2bxLy69TtqbStUeH1pDyIORP/mI0EMTu987SqpNuRxvsYjQE7ZVxDA==","shasum":"ae66446447f62a2775b5d4e868a29ecce9907fde","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.6.tgz","fileCount":20,"unpackedSize":56995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm2+vCRA9TVsSAnZWagAA33UP/3e9n4bTs330wGuuyPJ4\nybBHuC8rAoM8Z7QIsUBczt1aHhIRaNmNZCumdf257bdE9oBO4AK9Zg6O2FjI\nMDxFyfiTzEhuu2N7dwPz0McmzLenczLFl1f26f7NTqShU3422bOjHg7mMzdq\nCdEvKOHwYHpBVI8QTKGm69J/InufZEMxW4L5hcXoT9Ony3FcmKUfCKIQMA6r\nXDUwwBNU+fL+/jUhqxiBL9Rz6DybsZSpR8vQOheS1B2tVtYkozWtFupsLKgD\nBiJcFx5IDl14ny0wbKtGWmgFFrVrf26HrUm7JVPdiMYrX8zJzKx/z6JKpml5\nBDEbT+4LoPyYCvnNBdnKbq/MKklOaxzN178NggUsYoJ3wsZRVeWvLQAWQKOx\noe5GUxcvkhJv20mxif+ITm+hZqo/tZnwh3hQnjEcgZznzzOp0pMwxpmlMT3l\nMnKyH39i5Iv4cD7w6nJp17vd5njAVPlfSFZC6PBjIYdVRfhMAepnXsWK3P7w\ntfm/akB+1eOJVJj0Rk8MhmYoP+N7S7rI2scs3IAmJEVpr2zbRCr0X6OeYcvJ\n7Wi9wUUr2J0CuDvg6gxOT/Sm3R6yFt6BN/4q0cg3oQVeIxI3GHhnVzDTSOWZ\nrM4sf0yrZHCmK3rMWijOKTpYL6GUtgrTVT5aMZvOXeYxd4Kd3nyRgl0gyj6O\n2/16\r\n=qyea\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHybaWmItv/1p/97OCH9qNs/Npta1ylHqcEliIulgpTBAiBqgPTDUoxFvBl9c4bxXSk1n1yyJLq8vnUuztqxSFpjbg=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.6_1637576623443_0.9993939941344792"},"_hasShrinkwrap":false},"1.2.7":{"name":"@badeggg/mock-api","version":"1.2.7","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http api"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"5630c27a59fad9eac9020d39295b9670b997e0ba","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.7","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-FaeYrGSPDf0WULmkV0kRra8kNF47Z1qjSif9PmrYPwuV0JNxiHseqKF1C5ecf4V5Ns29L66eYa+HisiRJeAd+Q==","shasum":"7fcdcbe2b4d426bf19a9ac67033bd39e9d928d3c","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.7.tgz","fileCount":20,"unpackedSize":58062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqYERCRA9TVsSAnZWagAAw3QP/3Fwj490F6oZkEJAFYFm\njZYd2OX9mJ22yMt3zQPfFcopzyiuXHzUVwOscscmgvhdQTj5Idsfmr8BtFkA\nirN+uMeTHCIdW2Jh3GpVgJtWTqz2G9RxUP4QbFTS2hIWajX08n1qX6n9OkTE\nSxTrBhVdKlgouKjsJzAONClHFIs+dXjwCv8CqR9EddJL+e7Etc5vWkyy5AFd\nTWJp494/+JSQUzbtrIlF3+t2H6tm79iYhFSzqu6NsO9ncbg7LV32Rf/ba+R7\njPjpmQtjVR92duKLvPEsbdZlSb+gUpVW0TOgTwAG3dKOxiQ+liFCvv909RUQ\nB476CTfj7SkL7NJQZzfZfsX0uAx90gy/vyngb3gDlF2sUlcUhbNY/Tj7SSU/\nb5nEmxhDhXtdKd59pXQwh+7nqrkDEM4vreU3McpN7TX6ZeqsXbQegslI5uxS\nK6reVJwTv4CcfkJU9S4KM6hXVKGpcV7CV4v2YEd81WB3KcmGcz21K2R/1PL0\nR7I5DajYIlz8mZ4w7QisOUCZJzqi8FdgmeMdtYnEzYpEow69ETNCsuyeo8LM\n/OvXfzt+8ydvMo86a/PlMtt5NbZj5dc+QoArDOGHlfLHU+xrclyORPvsj0i+\nCfVwphVjWfd6m3RM0f9j9gXS1MLUS1Fsts1qj/MFWg6NqiQ1uCy3Zcgty1fu\n4AqK\r\n=XNWa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF9BnPdRftju7reo16kqtEkm0hMAbloKrjmDy3zrXI9AAiEA44yrrsGmmiMYmMe5sFIjPakQj1YmQIT3g+1B5pwtd/A="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.7_1638498577113_0.35488594694080877"},"_hasShrinkwrap":false},"1.2.8":{"name":"@badeggg/mock-api","version":"1.2.8","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http api"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"7abf66049e00a8f42d44bca4727c7c4688b941dd","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.8","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-I6pBYrFmqLCxT3N2VITdSp1IZfbvXrl9ov8j5YFBbtScICLuG3g9aqhtG9CdLczo9cBqP8mqcdesTrkRD7qEKA==","shasum":"4c20467698e07a67a57952ac9db2a78c334c6a38","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.8.tgz","fileCount":20,"unpackedSize":58293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhubAFCRA9TVsSAnZWagAA85sQAI831Q7gfpVqhJhGE85b\n076P98wcsHWWXWMwc8Si506yFqH1L91eLCXhw5Rzl4Bfcg0/REa78KJ/amq8\ncqEEzyQTIII7BcJAymQYNGAr0kRi+EWZK3vAtOW958IgBKoGnxXWBYjTzLLW\nh4YuhH8FIiVpXDwdOAItbGHCg/0G1hP+DDgWTG1nqaBTMCXHlVddssnyPNvS\nwquLr8vrKS2W9Q7umUSEvMAXcBU031/49RTZiQZ2q3qs9AdIU1ozoKHJsfXT\ncEtFg7vsk10c2SF7c58RtN0I/GztG6iAS4pxqy/wE5lx1aV9RlJTlrWDyFZb\nmVOETTeJMZ8RddSAb4nBWusNdDcqw98iFXWVrVZJFgXh5ZQVo+adsfRaRZAS\n0TT9+jEdCnJrdef5rVt6ehf+pHLeT1KlS+esFTZkX7V4bZdmhdN/sLn7Hp2m\nlp5uDtGqNjxFhutK1vEiFG86GZ8pA2KHXOC23d/hTiVjD7grz7qg3detZa3I\nsaDT+Bp/ZDpJTuUUu1FHn2iVyFQQUBU3cYOh8HuQcPeNnp7fg0phVLbUucpT\nlB/FG2wgKYLwK7/7YY9tjxeGsdoUAFUIbUUYHh7R1GNMno+sQ1Qf5tl7Aelg\n1ByAEo0WOYWg01yeplVxAvgQEPDqG4D4DYELHVy1h8+CSsbkWEvOQzdSGvIa\ny12q\r\n=dZEc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmYzFWjTQF9nm3u3yxcmFhty3iyZ1bsaoXvfOnv6gvsgIgC5ldvFP5k7841HVGnHGgyUYnhz7o/Vty5Wb89mmZPJQ="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.8_1639559173647_0.5624968855314947"},"_hasShrinkwrap":false},"1.2.9":{"name":"@badeggg/mock-api","version":"1.2.9","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http api"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"ee10f499bbdb395d37a41be10b0f3d6c56589333","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.2.9","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-Yl/LsrcuyegCdOyJCpGoqTaaZtV/E+OW8XwvX3EuGMzF0maaKlLbC4gnMRH01WUGHnVBX4j/B7zLruE4DASqVw==","shasum":"19cc39d5495005b5120ea1fd4d90dc4aaf4396d0","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.2.9.tgz","fileCount":20,"unpackedSize":58293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh56ytCRA9TVsSAnZWagAAiUUQAICmuNFnEhemuHEYNwoX\nNfQQpc4d3KS4eKUqAFM1eplmUeQwwztnT+cJlpGA/CmNDnh/aTzenCVBbfEb\nPotrdBMBCYHvLE+50cS+Ku5qhKD5rBPn71zqrPegkn8nBIPFzqgostOgNpUU\n6zxvb+5fLcyIXEA+/+txvPAX/sQ3VOR4Oktd0Ox5Q4HrKoVXcbXWil63TYdP\nYyn+KQHrZI/7kxwq+RHqDDgRm2W3fTHCb/F1Zka7eSvUiR/r9xoGD78Fr4XY\nxJ3U4DjWV5HwIVrH70epXfA5GCQUuXCC/+b4PxEn6wSu8uJmU1FFdp53P0X3\nfIJjIXwSHz6oUGhWRW/j0ieEpSbfeGBASUk8p5RU6YawsqGtIy4qh7jYbRnt\nOxv3w2DeWaVcDsp2OGFhHuhCk1wpcmP0mQaQpqu3mCS3jlsZrwGRwp3fhjyZ\nnz/kXLF4zT4y1MlQCcRoop4w9+4R6p4+w1zFzmpHNDA5i8iuN081b1BR7cHB\n+0U7ZHTEWDTAr996MlGHj8WaoUQ5HTLndTjAaLB1ljw4sqAmfjraGyRjqUgV\nHUSW+deOT0+O01IH5UxL77hLA6LG+re5scVHi1agu4AthYwxGKSee9jx3VVl\nj1sS2u8jX5vnlYV3guRon1p2r8XnXB4J5lAzEuqJySGzMyIc0dDeeKYyzVwM\nui1E\r\n=GS9+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFtWGf95x6EF1EoM6R5+TOCeVzPANGfXNjAYrd1EqxRGAiBJki7zxR5J7IqlPldD3K6wDlAmNa+GjrYxFmiPtnB/sA=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.2.9_1642572973634_0.7176167445588948"},"_hasShrinkwrap":false},"1.3.0":{"name":"@badeggg/mock-api","version":"1.3.0","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http api"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"d2eb65bed6e0fd63606a0ecadb5cadab0ec7b349","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.3.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-ETNHiuTOIFSdi8pgaPxvY8N7pcfDwZvGXrycpJyAdCNpW0wZy3bApIJjsU8+3Cvl5STJiGG77nX/V0P2XriMHA==","shasum":"16da366847f8ea1db79b6189d85fcc56beda0c05","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.3.0.tgz","fileCount":20,"unpackedSize":58797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiBKuiCRA9TVsSAnZWagAAD4sP/3Ymgiqwr4zdftEoR6J9\nVEAjujwPhS/ZUQyFOPC0DQ9DXNlCTSUm60evWR0QKabik1zNsUsmTq+ESK+T\nseYBdQdeB4h6VODHrsfrVgHuz+sZXRhWl3MAXms7c+No3coU5rs6gQrMSD2t\n7Gwj5fO8GHok1rg8jUEIOffqIvYz6UL2mAxZ/ngo5Egrz1qyMuACJ5YoPU0I\nMaZEga57yYcRM6YjwSkev+bw7dXMgwLCzLCpkGBOcvzamTI3VI85utrHLc9W\nNulmaiZytAO7C8lxAooRA7FRCBQuJgzVPvKL3a+FFXVsK9jh3dFPMlIqu7WX\nKM3GJAtkaCkjx6t/RozGaUXaY2MkPcBc6OX5aFQpPeBrIwFY8isKOKQY75aT\nhhCvX7ff8FIgCXuzVZ4YQek5eFHTtzAU6XZxIYs7fHS2mVanqPMlmBIGjAkD\n/LL5LXLwiQaNGq/gcKgzNbrDL3apqY8GJ5uASa8BWt3tXzlHXtrQkgEiLqLO\nrntbkew4jOoCjZJYXThRLIQ/+SMDpUMB5Xf5g9uXKSnNWECdHuiLZLCkWVxR\nyejiPnglCI3SQgGiAdGlUaA0okL2Cjub6miF3GSSubiZ2p1H1xtbjoNjaFlE\n9vrUjklr6mW7bDjx3/bOwhYlZwjHmIL2o7/i9F8mJEjyZClT1Phk6pCcMARD\npWsz\r\n=8ck3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICg4t/T/p6BorkHruce7Op7rVdNKX6k6EydV9bm4SnlKAiEA20AJLs6paZBYnzDyY7EK7ORyEexLsm8Gw6+QVi+QCvc="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.3.0_1644473249969_0.7739663939043142"},"_hasShrinkwrap":false},"1.4.0":{"name":"@badeggg/mock-api","version":"1.4.0","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http api"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2","ws":"^8.3.0"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"bd9edef874554633fe5c93671abac6eb353d3e13","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.4.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-Iybmp5JMbY+4E9MIw0tSCn6wnu14gbA2Kbq3+1Q1xEHxz9XWco+qtKcL6GziWEkyyi5FCvWFJ9lKhnQDZhv9eA==","shasum":"abca52e5dba065a7094b8eeed204a6cc4b366846","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.4.0.tgz","fileCount":26,"unpackedSize":87929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIF7jACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxKRAApS5BdkfHSRHMT+z17fMJaBV/xNsByxl3tnvIWrATSg3Da3Ju\r\nQlsRhqn1z9w/WWoRdDiQ7JQJu/ANY6YNPE5bAFciSFX1YJiyZtWyMbDJqIzM\r\nqsfENEdYM9jwOfwNJMe19KhfdQuGa1FY+R6Dpwr4KrB3tq40PvNw15rMzYLN\r\na8zDkndSksoAr/TY+Rv3dx4lmKZyWOeE4DUuEplHvUDl5OZEQyYlshwYLtZ3\r\n6J00xOFMp85qXrDb5HL5alfQp8KMNwbD3gJ0wVjug48fpu+exHoAeaVCQ6sp\r\n/V3NWA/u9miitT0N1FyCK52iyc+hCRgKc2uMxuNFY6DHXdJ7shX20sdoWlPR\r\n+tRp3ETqm9salf6UYh/y1o4kRgWg4Odn2C4SRo8zrCR3TJsdm0vZk7QrecXq\r\nRI1Qw1YjKdnnv0kkUxegurWPeY5UtSsXkZit92jcwQDylAUz5uV55WXofYiN\r\n59N+a33wfsHlTsBo7XVex5aQMsTjjTV/nMjFmuCmWPMpcOAYVo2OGDKN2hG4\r\nwgHHsZNSdhcF6sfFFk6NtX+Gu2XaOyaOo2MRMFlEQ2bz5TfUCGTL9CUit0Fn\r\nESEpYh8yHlaoAZW22iLLDoFW7rpeKaMCU3r7xVLonarh+5E1exDTevC0c4Ka\r\nGchRBOsLkyCGeQdSGSNylktxvaKelvCQqpw=\r\n=P0TH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6PCWPrHB8j7buMhHtUUKI5WCdZd/5iAdPdOyuhOI9IQIhAJ8zs1X1CzfHNQ1XFwM26v25mo7CHt3Tdt+TsomC5VNK"}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.4.0_1646288610939_0.30354558670061116"},"_hasShrinkwrap":false},"1.4.1":{"name":"@badeggg/mock-api","version":"1.4.1","description":"mock api","main":"./src/mock.js","bin":{"mock":"src/index.js"},"scripts":{"prepublishOnly":"npm run test && npm run lint","snap":"tap --snapshot","test":"tap","lint":"eslint -- test/ src/ .eslintrc.js","lintfix":"npm run lint -- --fix"},"author":{"name":"badeggg"},"license":"ISC","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"keywords":["mock api","mock http","mock websocket"],"dependencies":{"chalk":"^2.4.2","commander":"^7.2.0","express":"^4.17.0","http-proxy":"^1.17.0","lodash":"^4.17.14","query-string":"^7.0.0","tcp-port-used":"^1.0.2","ws":"^8.3.0"},"devDependencies":{"axios":"^0.21.2","eslint":"^7.24.0","tap":"^15.0.10"},"tap":{"test-ignore":"^test/testUtils|^test/utils/watchingQuit.assist.js|^test/mock.assist.js"},"gitHead":"21a79f607dc4010877f63139a7fd1928afe31d0c","bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"_id":"@badeggg/mock-api@1.4.1","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-brW25531B1Ss8umtxYm9Jb+wFZvW08uWhWXrSjvvDodAitTuj/uRk3AaRcAnzKbRZfpuURjtSpLyTrcYisvq6g==","shasum":"6c1f975f8361729a41f9c3de6bdf9fbd23da7752","tarball":"https://registry.npmjs.org/@badeggg/mock-api/-/mock-api-1.4.1.tgz","fileCount":26,"unpackedSize":88901,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIYBRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqFxg//R4zavNdtjoM5uHHs02CZ4MAORVb30LmY+rO6F6HFQrNA0lPC\r\n0GbgYydfAL0aNk7bQb0bhuvaUwSLfZEN0xdt3TmPrC5mhB0Dv7ai3A0SEdEy\r\nILmm6zTStqpJgEfUK0niUMiLb93P+E8p6Ci/wMUuHID7YME8CCehNbSb8dNY\r\n/dfG9WZd07tHYUegSOjUIx6G0Zk4O+qlgcMh4Raq0iUhnsMnK4Og+Tf8b5V6\r\n4NkBLCeYczVw7Rgh+YX2HuBOk2trQlEL9BrQpplbUvd2kZYHWJGmkBHo+bbz\r\nfjHQpqTDF5mzPpp7gxSJPzI5qOz1gUCfFKg8PDWgicgOXwlhKAblQu0ByGQr\r\n1RVj2vc+9ae1lbf3ZkQV00Ei/mmS8q4dU/Nl4+O6Rih1qDKNgO5IO0F4X6LW\r\nnq4GDaZDgRjOxyCIJHmxzNbAP/ImkXOCHYgFsttFLxkCi5Ppm/s4Nvo9Pdej\r\nWiJqY3EEeRnME8YD2NjLhXofERS3YiS2hqb6uEI+N/g+QScIj6yl0BKWYdXc\r\nVOUi2GK73CTcKuABZm7FrWcMq713v+nBoOYfT1vwbFiRGq+h0kv5jnrsOupU\r\n3I5RKTMvByRNkrkJ/+U1JIA/ltXOeacTAIEJXvsRUXa0DBLbN2t4P7hVEYFW\r\nyjAo4kp8PH1EZEM2gmN+PZ2W8xky3e5TOdQ=\r\n=MmnC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIApIFG215TJyPbvHZ2ClO3ndWAQg66JKRzfJH2D6R2gHAiAb2VKBi8iTexJambjncpixTqNb7Sip1BZBXU3NzrW5EQ=="}]},"_npmUser":{"name":"badeggg","email":"zhaoxuxujc@163.com"},"directories":{},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mock-api_1.4.1_1646362705613_0.5603757851500426"},"_hasShrinkwrap":false}},"time":{"created":"2019-06-05T07:38:17.817Z","0.9.0":"2019-06-05T07:38:17.958Z","modified":"2022-04-04T17:29:51.293Z","0.9.1":"2019-06-05T11:36:21.877Z","0.9.2":"2019-07-01T07:20:45.623Z","0.9.3":"2019-07-03T12:25:58.966Z","0.9.4":"2019-07-17T02:19:51.604Z","0.9.5":"2019-07-18T09:37:22.075Z","0.9.6":"2021-03-16T06:23:42.433Z","0.10.0":"2021-03-16T06:39:26.041Z","0.11.0":"2021-03-16T08:32:57.201Z","0.12.0":"2021-03-17T09:30:42.590Z","0.12.1":"2021-03-17T11:08:22.948Z","0.12.2":"2021-03-21T14:09:01.846Z","1.0.0":"2021-04-26T09:47:52.081Z","1.0.1":"2021-04-26T12:40:02.771Z","1.1.0":"2021-06-08T10:44:59.441Z","1.1.1":"2021-06-12T02:02:03.356Z","1.1.2":"2021-06-15T11:10:37.638Z","1.2.0":"2021-07-23T03:41:12.102Z","1.2.1":"2021-07-24T12:25:36.883Z","1.2.2":"2021-08-26T11:21:10.525Z","1.2.3":"2021-10-15T11:14:16.871Z","1.2.4":"2021-11-12T10:51:03.328Z","1.2.5":"2021-11-16T10:16:46.313Z","1.2.6":"2021-11-22T10:23:43.589Z","1.2.7":"2021-12-03T02:29:37.344Z","1.2.8":"2021-12-15T09:06:13.812Z","1.2.9":"2022-01-19T06:16:13.881Z","1.3.0":"2022-02-10T06:07:30.161Z","1.4.0":"2022-03-03T06:23:31.133Z","1.4.1":"2022-03-04T02:58:25.797Z"},"maintainers":[{"name":"badeggg","email":"zhaoxuxujc@163.com"}],"description":"mock api","author":{"name":"badeggg"},"license":"ISC","readme":"# mock-api\n[![Version npm](https://img.shields.io/npm/v/@badeggg/mock-api.svg?logo=npm)](https://www.npmjs.com/package/@badeggg/mock-api)\n[![CI test](https://github.com/badeggg/mock-api/actions/workflows/ci-test.yml/badge.svg)](https://github.com/badeggg/mock-api/actions)\n[![Coverage Status](https://coveralls.io/repos/github/badeggg/mock-api/badge.svg?branch=master)](https://coveralls.io/github/badeggg/mock-api?branch=master)\n\nA **least dependent**, **localized**, **with version control** and **effect immediately** http\n/ websocket api mock tool for front-end project, nodejs back-end project, or even general\nback-end project if you want.\n\n## Table of Contents\n- [mock-api](#mock-api)\n- [Why this mock-api?](#Why-this-mock-api)\n- [How is it working?](#How-is-it-working)\n- [Installation](#Installation)\n- [Usage](#Usage)\n  + [Basic usage, configure a api to mock](#Basic-usage-configure-an-api-to-mock)\n  + [Few simple examples](#Few-simple-examples)\n  + [The map file](#The-map-file)\n    + ['map' word](#map-word)\n    + [http method](#http-method)\n    + [options](#options)\n      + [Match request by url query](#match-request-by-url-query)\n      + [Match request by path params](#match-request-by-path-params)\n      + [Match request by body arguments](#match-request-by-body-arguments)\n      + [Set response headers](#set-response-headers)\n      + [Set response code](#set-response-code)\n      + [Match request method](#match-request-method)\n      + [Set response file path](#set-response-file-path)\n      + [Delay to respond](#delay-to-respond)\n      + [Respond js result](#respond-js-result)\n  + [Websocket](#Websocket)\n    + [Generate websocket response](#generate-websocket-response)\n        + [Argument `triggerInfo`](#argument-triggerinfo)\n        + [Returned value](#returned-value)\n    + [Self trigger](#self-trigger)\n    + [Base design of websocket mocking](#base-design-of-websocket-mocking)\n  + [Proxy 404](#Proxy-404)\n  + [Disable part of the mocking](#Disable-part-of-the-mocking)\n  + [Config file common convention](#config-file-common-convention)\n- [Tips or Troubleshooting](#Tips-or-Troubleshooting)\n- [Await features...](#Await-features)\n\n## Why _this_ mock-api?\n- least dependent\n  + least coordination with other developers in coding _all_ your project\n  + the only information you need is the api defination: method, path, queries, reponse\n    structure etc.\n  + and of course you may mock any response as you want, such as an error response specifically\n- localized\n  + no bother to start and maintain a mock service on a virtual machine\n  + start mocking just as you start your project development, e.g. `npm run serve` if your\n    project is a vue-cli-serivce project\n- with version control\n  + all of the mock configuration stay with your project source code version control, so that\n    after half year, for example, you still can use the mock configuration configured now.\n- effect immediately\n  + almost all config can take effect immediately, e.g.\n    + a new mocking api path\n    + a response file amending\n    + a `ws-response.js` file change\n    + and even the proxy404 file\n- able to mock websocket\n\n[Back To Top](#mock-api)\n\n## How is it working?\nThe design is simple. 'mock-api' starts a service on local computer, respond to request\naccording to mock configuration. Mock configuration should be placed on `fake-services` folder\non project root directory.\n\n'Mock-api' will create a file named `.mockingLocation` on project root to indicate the http\nmocking location(replace string 'http' with 'ws' to get websocket mocking location).\n\n'Mock-api' exports a function which returns a promise that will resolve the\nmocking server. Mocking srever is an instance of\n[http.Server](https://nodejs.org/dist/latest-v16.x/docs/api/http.html#class-httpserver).\n`mockingServer.getHttpLocation()` to get http mocking location,\n`mockingServer.getWsLocation()` to get websocket mocking location.\n\nHow to write a mock configuration is described below.\n\nHow to use .mockingLocation file properly is described below.\n\n[Back To Top](#mock-api)\n\n## Installation\n```\n$ npm install @badeggg/mock-api\n```\n\n[Back To Top](#mock-api)\n\n## Usage\n### Basic usage, configure an api to mock\n1. Add fake-services folder on the root of your project.\n    ```\n    $ cd /your/project/root\n    $ mkdir fake-services\n    ```\n2. Create series of folders relative to api path in fake-services.\n   [Path parameters](#match-request-by-path-params) can be handled.\n    ```\n    $ cd fake-services\n    $ mkdir -p mocking/api/path\n    ```\n3. Create text file as response entity.\n    ```\n    $ cd mocking/api/path\n    $ echo 'data to response' > response\n    ```\n4. Now you can start the mock server to check what you just configured.\n    ```\n    # start by command\n    $ npx mock\n    >> Fri Oct 15 2021 17:32:31 GMT+0800 (China Standard Time) INFO  Mock-api listening on: 3000\n    ```\n    ```\n    // or start by js\n    const mock = require('@badeggg/mock-api');\n    mock().then(server => {\n        console.log('http mocking location: ', server.getHttpLocation()); // http mocking location:  http://localhost:3000\n        console.log('websocket mocking location: ', server.getWsLocation()); // websocket mocking location:  ws://localhost:3000\n        console.log('mocking on port: ', server.address().port); // mocking on port:  3000\n    });\n    ```\n    ```\n    # in another shell\n    $ curl localhost:3000/mocking/api/path\n    >> data to response\n    ```\n\nIf your project is a nodejs back-end project, you may have figured out what else to do. Just\nedit the scripts section in package.json to make sure mock server is started and api requests\nare passed to mock server when developing the project.\n\nIf your project is general back-end project, a java project for example. You need install\nnodejs npm and do the similar things as a nodejs project. Welcome to javascript world ;-)\n\nI'll do a rather detailed description here for common front-end projects. In a common front-end\nproject, you need some coordination:\n\n- Add a script in package.json, such that start the mock service first and then start the\n  well-known webpack dev-server when run this script.\n  + Of course the 'dev-server' part is dependent on your specific project.\n  + For example, if your project is constructed with vue-cli-service,\n    `\"serve-mock\": \"mock | vue-cli-service serve\",` should be added\n- Modify the original development start script, so that .mockingLocation file is removed first and\n  then start the well-known webpack dev-server when run this non-mocking start development script.\n  + Of course the 'dev-server' part is dependent on your specific project.\n  + For example, if your project is constructed with vue-cli-service, `\"serve\": \"rm -f .mockingLocation && vue-cli-service serve\",`\n    should be the modified version script.\n- Make sure the original dev-server api proxy is configured to mocking location when you are\n  mocking.\n  + For example, if your project is constructed with vue-cli-service, part of the vue.config.js\n    should looks like:\n    ```\n    let MOCKING_LOCATION = null;\n    let MOCKING_LOCATION_WS = null;\n    if (fs.existsSync('./.mockingLocation')) {\n        MOCKING_LOCATION = fs.readFileSync('./.mockingLocation', 'utf-8');\n        MOCKING_LOCATION_WS = MOCKING_LOCATION.replace('http', 'ws');\n    }\n\n    module.exports = {\n        devServer: {\n            proxy: {\n                '/api': MOCKING_LOCATION ? MOCKING_LOCATION : 'https://your.test.environment.com',\n                '/websocket': {\n                    target: MOCKING_LOCATION_WS ? MOCKING_LOCATION_WS : 'wss://your.test.environment.com',\n                    ws: true\n                },\n            },\n        },\n    };\n    ```\n\nFor http, to configure different response for different request on same api path, you will need\nset [the map file](#the-map-file).\n\nFor websocket, you write a ws-response.js file in corresponding directory.\nCheck [websocket](#Websocket).\n\nAfter proxy all api requests to mock server, you don't really need configure all of the\napi mocking. Check [proxy 404 feature](#Proxy-404).\n\n[Back To Top](#mock-api)\n\n### Few simple examples\n- Using in a common vue project: [mock-api-example-vue](https://github.com/badeggg/mock-api-example-vue)\n\n[Back To Top](#mock-api)\n\n### The map file\nThe map file is used to configure how to respond an **http** api request with current path.\nWe say 'current path' means the directory where the map file is in and the api request path\nmatchs.\n\nThe map file is optional. If this map file does not exist, contents in './response' will\nbe sent to client.  Lines starting with '#' will be ignored, any content after '#' will\nalso be ignored. Each line is a map rule, elements in map rule are space-separated.\nCheck [config file common convention](#config-file-common-convention). 'Mock-api' will\ntry to find a matching rule from the first line to the end line. A found matching rule\nwill block any further search. If no matching rule is found, the default response file\n'./response' will be used. If './response' file does not exist, a 404 is triggered,\ncheck [proxy 404](#Proxy-404).\n\nSyntax of the map rule is: `[map word] [http method] [options]`. Here are few typical examples:\n```\nGET ./response # if the request method is GET, contents in ./response will be responsed\nmap -t 500 ./response # delay 500ms to response\n```\n#### 'map' word\n'map' or 'MAP' appeared in the map rule start is trimmed. It is for good looking reason.\n\nCase insensitive.\n\n#### http method\nHttp method may be configured to match request. If configured, it must be the first item in\nrule line(if 'map' word appears, http method must be the second item). If no method is\nconfigured, any method is considered matching.\n\nCase insensitive.\n\n#### options\n\nOption names (e.g. --url-queries --status-code) are case sensitive.\n\nNo url query option configured in a map rule line means any query content of the request is\nok with this map rule response. So with path parameter and body argument config and http\nmethod.\n\n<hr>\n\n##### Match request by url query:\n\n**?<queries...>, -q <queries...>, --url-queries <queries...>**<br>\n\nForm of <queries...> is almost like url query form. It contains one or more '&' seperated\nquery config. Each query config has two parts and are connected by '='. The first part is\nquery name, the second part is query value. If the query value config is surrounded by '{}',\ncontent between '{}' is regarded as a regular expression.\n\nFor example:\n```\n?name=badeggg&id={^\\d+$}\n-q name=badeggg\n--url-queries name=badeggg\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Match request by path params:\n\n**_<params...>, -p <params...>, --path-params <params...>**<br>\n\nForm of <params...> is identical with form of <queries...>.\n\nUnlike url queries, path params do not come with natural defination ---- after url path start\nwith '?' defines the url queries. To define path params, create a `__parameterName__` folder in\ncorresponding position on 'series of folders'.  This specific folder name should start and end\nwith double underscore while parameter name in the middle. Then in the map rule line in map\nfile, `_params` will be `_parameterName`. e.g: `fake-services/some/path/__id__` define a 'id'\npath parameter in api, map rule line `map _id=123 ./response` in\n`fake-services/some/path/__id__/map` will match a request with path `/some/path/123`.\n\nFor example:\n```\n_name=badeggg&id={^\\d+$}\n-p name=badeggg\n--path-params name=badeggg\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Match request by body arguments:\n\n**+<args...>, -a <args...>, --body-args <args...>**<br>\n\nWe can parse \"application/json\" and \"application/x-www-form-urlencoded\" type body of request\nto do the matching.\n\nForm of <args...> is a superset of <queries...>. Besides the basic form of <queries...>, body\nargs also support deep property chain match ---- that means if the parsed body of request is\na multiple level js object e.g `{data: {person: {name: 'badeggg'}}}`, the match rule line\n`+data.person.name=badeggg` will match the request. Actually,the specified body argument 'key'\n(`data.person.name` in the last example) is passed to js `eval()` properly to get value of\nthe 'key' to do the matching. So mixing array with object or pure array in parsed body of\nrequest works fine.\n\nFor example:\n```\n+data.person.name=badeggg\n-a id={^\\d+$}\n--body-args country=china\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Set response headers:\n\n**-h <headers...>, --res-headers <headers...>**<br>\n\nFor example:\n```\n-h 'a-casual-header: a casual header' 'another-header: header value'\n--res-headers 'content-type: image/jpeg'\n```\n\nTo set multiple headers, either write one option name(-h) trailing with multiple header pairs\nor write multiple times option name(-h) trailing with header pair.\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Set response code:\n\n**-c \\<code>, --status-code \\<code>**<br>\n\nFor example:\n```\n-c 200\n--status-code 404\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Match request method:\n\n**-m \\<method>, --req-method \\<method>**<br>\n\nIn most cases, you do not need formally set request method option, since\nthe quick [http method](#http-method) is more convenient.\n\nOption value is case insensitive and will override quick http method setting.\n\nFor example:\n```\n-m get\n--req-method post\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Set response file path:\n\n**-f \\<file>, --res-file-path \\<file>**<br>\n\nRelative to directory of current map file or absolute path ----\nalthough absolute path is not recommended, since we want 'fake-services' folder be tracked\nby version control software like git.\n\nSince response file setting is basic and frequent. We have some convenient way to set it.\n- quick path setting\n  + In a map rule line, an item is assumed to be a response-path-item if\n    1) it is just after the last quick url-query(starts with ?) / body-args(starts with +)\n      / path-params(starts with _) and starts with ./\n    2) or it is the last item and starts with ./\n\n    The condition-1-item found stop the finding of the condition-2-item.<br>\n    Notice that quick path setting must start with ./ restrict it can't be an absolute path.\n- implicit path\n  + if the map file does not exist or non map rule line match the request,\n    'fake-services/api/path/response' will be regarded as response file path\n  + if a map rule line does not specify a file path, './response' will be regarded as\n    response file path\n\nIf the specified file has '.json' extension **or has no extension**, file content will be\nparsed and validated as json. If parse failed, a header\n'Mock-Not-Validated-Json-File: {filePath}' will be set and responded. If the file is too big,\nwill refuse to parse and a header 'Mock-Not-Validated-Json-File: filePath' will be set and\nresponded. If parse succeeded or refused, a header\n'Content-Type: application/json; charset=UTF-8' will be set and responded.\n\nIf the specified file has '.js' extension and --res-js-result option is set, file content\nwill be evaluated as js script. If the script export a function, function executing result\nwill be responded, else the script export will be responded. Check\n[respond js result](#Respond-js-result) for details.\n\nFile content is always sent by [expressJs](https://expressjs.com/) sendFile except the\nspecified file has '.js' extension and --res-js-result option is set.\n\nFor example:\n```\n-f ./response.json\n--res-file-path ./picture.jpg\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Delay to respond:\n\n**-t \\<time>, --delay-time \\<time>**<br>\n\nTime unit should be 'ms'(millisecond) or 's'(second). An empty unit\nspecifying means millisecond unit.\n\nFor example:\n```\n-t 500          # delay 500 milliseconds to respond\n-t 500ms        # delay 500 milliseconds to respond\n--delay-time 1s # delay 1 second to respond\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n##### Respond js result:\n\n**-r, --res-js-result**<br>\n\nWhether evaluate the response js file and respond the result. The specifed response file path\nmust have '.js' extension and export a function, an plain object, an array, a js primitive\nvalue or a binary type object (Buffer, ArrayBuffer, TypedArray, DataView).\n\nThis feature is useful when you 1) need mock a big json response and are tired of json syntax\nfixing line by line, e.g. ' --> \"; 2) need some simple logic to generate response by request\ninfo.\n\nIf the file exports a function, the function will be executed with argument 'request', function\nreturned value will be responded. The argument is a js object with request info:\n```\n{\n  method: req.method, // request http method\n  query: req.query,   // request url query\n  params: req.params, // request path params\n  body: req.body,     // request body\n}\n```\n\nIf the file does not export a function, the exported value will be responded.\n\nNotice that, if this option is not set, file content will be responded no matter the file has\n'.js' extension or not.\n\nIf the executed result is a binary type object, it is normalized to 'Buffer'\ntype before express send. [Code detail](https://github.com/badeggg/mock-api/blob/master/src/utils/normalizeBinObj.js).\n\nThere is [buffer recover issue](#websocket-helper-process) too in executing `response.js` like\nin executing `ws-response.js`. To escape buffer recover, surround the result in a meta box\nand set `metaBox.responseEscapeBufferRecover` to true.\n\nFor example:\n```\n# map rule line\n-r ./response-big-json.js\n--res-js-result ./response-simple-logic.js\n--res-js-result ./response-binary.js\n--res-js-result ./response-escape-buffer-recover.js\n\n# in ./response-big-json.js\nmodule.exports = {\n  name: 'badeggg', // I am sick of json syntax fixing\n  age: 18,\n  // lots of fields\n};\n\n# in ./response-simple-logic.js\nconst echo = function(req) {\n  return req;\n};\nmodule.exports = echo;\n\n# in ./response-binary.js\nmodule.exports = () => {\n  return Buffer.from([1,2,3]); // client will receiver <Buffer 01 02 03>\n};\n\n# in ./response-escape-buffer-recover.js\nmodule.exports = {\n    isMetaBox: true,\n    response: Buffer.from([1,2,3]), // client will receiver {\"type\":\"Buffer\",\"data\":[1,2,3]}\n    responseEscapeBufferRecover: true,\n};\n```\n\n[Back To Top](#mock-api)\n\n<hr>\n\n### Proxy 404\nYou may not want to mock all of the api requests.  When there is not a response configuration\nfor the api request -- we say 404, which may caused by one of the following reasons:\n1) the corresponding path does not exist\n2) the corresponding path is [turned off](#Disable-part-of-the-mocking)\n3) the map rules do not match for http\n4) 'ws-response.js' does not exist for websocket\n\n'Mock-api' will proxy the request to the location specified by\n**/your/project/root/fake-services/proxy404**. e.g.:\n```\n$ echo 'https://nodejs.org' > /your/project/root/fake-services/proxy404\n```\nAfter the above command execution, all no-mocking-configuration requests will be proxied to\nhttps://nodejs.org.\n\nIn some cases, a single proxy 404 rule can not satisfy your requirement. You may configure\nmultiple proxy 404 destinations in `proxy404` file.\n\nIn proxy404 file, lines starting with '#' will be ignored, any content after '#' will also be\nignored.  Each line is a proxy404 rule, elements in proxy404 rule are space-separated.\nCheck [config file common convention](#config-file-common-convention).\n\nSyntax of the proxy 404 rule is: `[http | ws | HTTP | WS] [match regexp] destination`\n\nIf `[http | ws | HTTP | WS]` is not set in a rule, it is regarded as an http rule. If\n`match regexp` is not set in a rule, the regular expression is implicitly set to `.*`, that\nmeans any path. The destination is a rule must be a valid url(`new URL('destination')` is used\nto validate).\n\nConfiguration lines are order sensitive. 'Mock-api' will try to find a matching rule from the\nfirst line to the end line. A found matching rule will block any further search. If no\nmatching rule is found, 404 is then responded.\n\ne.g.:\n```\n# Contents of /your/project/root/fake-services/proxy404.\n#\n# Configuration in this file will have the effect:\n# 1) any no-mocking-configuration request whose path has 'baidu' text will be proxyed to https://baidu.com;\n# 2) any no-mocking-configuration request whose path has 'bing' text will be proxyed to https://bing.com;\n# 3) any no-mocking-configuration websocket request will be proxied to wss://demo.piesocket.com;\n\nbaidu https://baidu.com\nbing https://bing.com\nws wss://demo.piesocket.com\n```\n\n[Back To Top](#mock-api)\n\n### Websocket\nTo configure a websocket mocking service, write a js file named `ws-response.js` in\ncorresponding directory. `ws-response.js` exports websocket response or exports a function\nwhich returns websocket response. A simple example:\n```\n// in /your/project/root/fake-services/ws/path/ws-response.js\nmodule.exports = 'hi';\n```\nAfter above file is set, a websocket client connect to `/ws/path` will receive 'hi' when\nconnection is open and when a message is sent to server ---- we say 'a trigger'. There are\nthree types of trigger:\n- `WS-OPEN`, when websocket is opened\n- `WS-MESSAGE`, when a new message is received\n- [`SELF-TRIGGER`](#self-trigger), defined by a previous response meta box\n\n#### Generate websocket response\nA fixed 'hi' message is a little bit boring and not useful. More common cases are\n`ws-response.js` exporting a function which generate response at will.\n\n##### Argument `triggerInfo`\nThe exporting function receives one argument `triggerInfo`, which contains infomation you may\nneed to generate response.\n`triggerInfo`:\n- `triggerName` { 'WS-OPEN' | 'WS-MESSAGE' | 'SELF-TRIGGER' }\n- `currentMessage` { null | String | Buffer } <br>\n    Message received from client.\n- `currentMessageIsBinary`  { Boolean }\n- `request` { http.IncomingMessage(pruned) } <br>\n    The [client HTTP GET request](https://nodejs.org/dist/latest-v16.x/docs/api/http.html#class-httpincomingmessage)\n        ---- pruned to contains only properties:\n    + `complete`\n    + `headers`\n    + `httpVersion`\n    + `method`\n    + `rawHeaders`\n    + `rawTrailers`\n    + `trailers`\n    + `url`\n- `query` { Object }\n- `params` { Object } <br>\n    Path params. Defining path params for websocket is identical with [defining path params for\n    http](#match-request-method).\n- `lineageArg` <br>\n    Infomation that a self trigger want pass to triggering. Type is dependent on self\n    trigger specification.  Check [self trigger](#self-trigger).\n- `lineageArgEscapeBufferRecover` { Boolean }\n\n[Back To Top](#mock-api)\n\n##### Returned value\nReturned value of the exporting function is either a direct response or a meta box which\nsurround the response. A meta box is used to specify a flexible response behavior.\n\nRules of a direct response: <a name=\"Rules-of-a-direct-response\"></a>\n- By default, [`send`](https://github.com/websockets/ws/blob/master/doc/ws.md#websocketsenddata-options-callback)\n  action is used for all responses.\n- A false response will not be sent by default ---- Boolean(response) to validate. Set\n  `metaBox.insistSendEmpty` to send false response.\n- Any binary type object (Buffer, ArrayBuffer, TypedArray, DataView) is normalized to 'Buffer'\n  type. [Code detail](https://github.com/badeggg/mock-api/blob/master/src/utils/normalizeBinObj.js).\n\nRules of a surrounding meta box: <a name=\"Rules-of-a-surrounding-meta-box\"></a>\n- A meta box must be an object with `isMetaBox` property set.\n- Properties of a meta box:\n    + `isMetaBox` { Boolean } <br>\n        Must be set true to define a meta box.\n    + `response` <br>\n        Response to websocket client. Rules of a direct response apply to this property\n        when action is 'SEND'. When action is 'PING' or 'PONG', response is\n        [ping data](https://github.com/websockets/ws/blob/master/doc/ws.md#websocketpingdata-mask-callback)\n        or [pong data](https://github.com/websockets/ws/blob/master/doc/ws.md#websocketpongdata-mask-callback).\n        When action is 'CLOSE', response should be empty or an object with `code` and `reason`\n        properties which to be used with [close](https://github.com/websockets/ws/blob/master/doc/ws.md#websocketclosecode-reason).\n    + `responseEscapeBufferRecover` { Boolean } <br>\n        Usually you just leave it alone.<br>\n        Check [base design of websocket mocking](#websocket-buffer-recover)\n        for details.\n    + `insistSendEmpty`: { Boolean } <br>\n        Usually you just leave it alone.<br>\n        Recall that a false response is not sent to client by default. You may set\n        `insistSendEmpty` to change that behavior.\n    + `actionDelay`: { Number | String }\n        Delay to act. Default is 0. e.g.:\n        ```\n        500      // 500 ms delay\n        '1000ms' // 1000 ms delay\n        '1.5s'   // 1.5s delay\n        ```\n    + `action` { 'SEND' | 'PING' | 'PONG' | 'CLOSE' | 'send' | 'ping' | 'pong' | 'close' } <br>\n        Response action. Default is 'SEND'.\n    + `selfTrigger` { Object | Object[] } <br>\n        Check [self trigger](#self-trigger).\n\nThe rules of returned value of function apply to fixed exporting result.\n\n[Back To Top](#mock-api)\n\n#### Self trigger\n`ws-response.js` can be triggered by self. This is useful when you want specify autonomous\nresponse to client. To do so, set returned `metaBox.selfTrigger` property with an object\nvalue. A self trigger object may have properties:\n- `triggerDelay` { Number | String } <br>\n    Optional. e.g.:\n    ```\n    500      // 500 ms delay\n    '1000ms' // 1000 ms delay\n    '1.5s'   // 1.5s delay\n    ```\n- `lineageArg` <br>\n    Optional. Infomation that a self trigger want pass to triggering.\n    Any binary type object (Buffer, ArrayBuffer, TypedArray, DataView) is normalized to 'Buffer'\n    type. [Code detail](https://github.com/badeggg/mock-api/blob/master/src/utils/normalizeBinObj.js).\n- `lineageArgEscapeBufferRecover` <br>\n    Usually you just leave it alone.<br>\n    Check [base design of websocket mocking](#websocket-buffer-recover)\n    for details.\n\nIf you just want a self trigger with no property decoration, set `selfTrigger` with `{}`. A\nvalue like `true` or `1` will not work.\n\nIf you want multiple self trigger in a single returned meta box, set `selfTrigger` with an\narray of trigger object.\n\n[Back To Top](#mock-api)\n\n#### Base design of websocket mocking\nWebsocket mocking use the same port as http mocking.\n\n<a name=\"websocket-helper-process\"></a>\n`ws-response.js` is executed in a child process ---- so as the specified 'http-response.js'\nfor http connections. We do this\n1) to avoid any potential disturbing to 'mock-api' main process\n2) to make sure every change of the file will take effect immediately.\n\nEvery new websocket connection starts a new\nchild process to execute `ws-response.js`, and the child process live until connection down.\nSo change of `ws-response.js` does not effect until next connection. And you may save some\ninformation for use during a connection life.\n\n<a name=\"websocket-buffer-recover\"></a>\nThere is a JSON.stringify / JSON.parse phase when passing `ws-response.js` result back to main\nprocess from child process. A 'Buffer' type value is turned to an object like\n`{ type: 'Buffer', data: [ 1, 2, 3 ] }` after this phase. 'Mock-api' automatically recover it\nto a Buffer. This effect `response`, `metaBox.response`, `metaBox.selfTrigger.lineageArg`\nand `metaBox.selfTrigger[index].lineageArg`. If you fortunately want these properties be\nobject like `{ type: 'Buffer', data: [ 1, 2, 3 ] }`, you need set\n`metaBox.responseEscapeBufferRecover`, `metaBox.selfTrigger.lineageArgEscapeBufferRecover` or\n`metaBox.selfTrigger[index].lineageArgEscapeBufferRecover` to true.\n\n[Back To Top](#mock-api)\n\n### Disable part of the mocking\nIn some cases you may want to temporarily disable part of the mocking ---- e.g. try only two\nor three apis on test environment while the other apis on test environment are not ok\nyet. Create a file named 'off' or 'OFF' on some sub folder of fake-services, the\nfolders that containing 'off' file and all of the sub folders will be considered 404, therefore\nthe corresponding request will be proxied as 'proxy404' config. For example:\n```\n$ cd /your/project/root/fake-services/some/mock/path\n$ touch off\n```\nAfter the above commands execution, any request whose path has prefix of `/some/mock/path`\nwill be considered as a no-mocking-configuration request and will be proxied as 'proxy404'\nfile config.\n\nNotice that an 'off' file in the very fake-services folder will disable all the mockings. This\nis convenient when you want to use full real api services then use mocking services, back and\nforth.\n\n[Back To Top](#mock-api)\n\n### Config file common convention\nMost of the config files(the map file, the proxy404 file for instances) of mock-api have the\nconvention:\n- the basic config unit is a line of text\n- any content after #(pound sign) in a line is comment, which will be ignored\n- a backslash in the last character of a line will cause the next\n  line(if any) concated to current line.\n- elements in a config unit(a line) is separated by one or more white\n  space character(s), including space, tab, form feed, line feed,\n  and other Unicode spaces\n- 'pair chars' can help to set special characters in an item. Supported pair chars includes:\n    + `' pair to self`\n    + `\" pair to self`\n    + `( pair to )`\n\n  e.g.:\n  ```\n  'should be together' should be separated\n  'multiple   spaces in pair chars are reserved'\n  'half pair char\" in another pair chars' is \"ignored\n  ```\n\nThe elements in a config unit may have different meaning for different\nconfig purpose.\n\n[Back To Top](#mock-api)\n\n## Tips or Troubleshooting\n- **occasionally, npm script like `mock | node ./index.js` may not work, since\n  `mock` is ready('.mockingLocation' file is set) before `node ./index.js` start\n  executing is not guaranteed. One of the solutions is to start mock-api in another\n  terminal tab and then start your project.** Separate starting also let you view mock-api logs\n  in mock-api terminal tab, which is beneficial for debugging proxy problems related to\n  mock-api.\n- `console.log` can be used to debug response.js / ws-response.js, but mock-api need be\n  started in a separated terminal tab to view the log.\n- a response header 'From-Mocking-Fake-Service' was added if the response is from mocking\n- touch an 'off' file in the very fake-services filder to turn off all mocking and use full\n  real api services, remove it to back using mock.\n  Check [disable part of the mocking](#Disable-part-of-the-mocking)\n- a very long config line can be separated to multiple lines with a trailing backslash(\\\\)\n\n[Back To Top](#mock-api)\n\n## Await features...\n- coordination with vue-cli-service\n- coordination with create-react-app\n- log file\n- more configurable\n\n[Back To Top](#mock-api)\n","readmeFilename":"README.md","homepage":"https://github.com/badeggg/mock-api#readme","repository":{"type":"git","url":"git+https://github.com/badeggg/mock-api.git"},"bugs":{"url":"https://github.com/badeggg/mock-api/issues"},"keywords":["mock api","mock http","mock websocket"]}