{"_id":"@voicenter-team/mysql-dynamic-cluster","_rev":"39-3e5a0454ef032fc65c70316737463f57","name":"@voicenter-team/mysql-dynamic-cluster","dist-tags":{"latest":"3.2.2"},"versions":{"1.0.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.0.0","keywords":["mysql","galera","pool"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.0.0","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"48e3765282715d82aaf0d6a6049ac4d901347e37","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.0.0.tgz","fileCount":67,"integrity":"sha512-I+4tuI4rlENnUbH3GdcgLAK0dqlBJFXn0sWr1qp6JhV4e6nGzFKoO/EqHWPjpMhQ6dUuAuzofXhpSFenxQsJxg==","signatures":[{"sig":"MEUCIQCElbfzrgetbhqDCU4NQbbZdrqi1Kltbkgoc/F7RnoSyQIgchEIUqF9NUA66ogTBBm714p7ya4WtGL6wCV05zZUQXY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":120099,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhk9wQCRA9TVsSAnZWagAA4i8P/1VD/IssNDczgIE0tQ2x\nIkzA9rM+9ylnLo1S+1CSF3NJU5SY47fI7oDoLfjXs1Tewwn/l4gYVGa87w8I\nBkfPA5BNbuwI1pxybGBH1l4SgMZkkvsFBW3MuPdw+olDguPtMy88Hl1eLEsK\nXDyrRwFhWbNmcsOsbWsze9vldL6ijXeKQcqmArbOXhITmTqqsZD33gtkP/2s\nexLuGPc76TpMfz2kw5QfXllTyH5BkoDdi0OnfV1vIpAjyOCUkyLTqxZsM8vq\nySQ5fa+ChHn1yzRBrzs0pUH7aOC2cxR8viqO/Gaw2LOTGXmbUnju2VPydT6f\nt3pHWT7mWZol5XMRKaK9XK3aYT8bSKirqpJk98gSVKhSAjTGqfHV1V5P0sqT\nt8tjuW4W2P6n2OxGfd92oc/1gAbigJnZFFh8PMdxIiRR5amhZRS+FzXr6hK/\njR0SF085mFgVCXS+S91JIz9FPrJ2diZHTkygloR6bQaTqGq6A9z/s/Ek6Ylu\nZpBN1fHXCNPtwCTj1cWQOtUTMvQdX4fkdRzTD/ZOAPgZHKNnIIEwZVyt8IgU\nDP1eQ8Xz8ruXHmMq0oOC4mqYyq4OlkhLb65VB9Pg8lR3rM5hVNVJqhxrRQRS\nFt6X4IBYl7DcxWFB+AVSD8U1tqHg8rFb/7IvJG0nRovWCcXp69gcioW+Hm7k\ndZOG\r\n=d7+7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0255b83127a3fc1bd225a2004576ae2523b869fe","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"7.24.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.0.0_1637080080213_0.809501822628053","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.0.1","keywords":["mysql","galera","pool"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.0.1","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"4267ea50a00f7c9da5551a61e0d4f88f010c56fe","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.0.1.tgz","fileCount":67,"integrity":"sha512-G56KbdmeJwr/6InKEgu/Qh3jtNBhYkmFrL9/bKNy81cfKfOtEfxCBfLTBbZC3yUxqwz2OGCcU8D28Up1ZQIXhA==","signatures":[{"sig":"MEYCIQCSYA2szbX8Z/JnLUW+fq5MMU1Niq/UPHhkaGeyZ21gCgIhAJ4SHAW6WcCm+8Ry7XW7J0nawR9iFvPtHzoNFx12cMBf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":120161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlOkrCRA9TVsSAnZWagAATQgP/jw+J7WQZUUxmdn6QxHw\nckcnZXj2ghVrUpuA20+XcLj+LrfdJM3WJH9wC6pGCM6x1/rjVeF4no22ETxH\nTI7wWHesteA3At9OjIjkkA70C3EY16j+FojU4BpcVT/Lv7nyHAB5E0+KA0x+\ncT/Lm78QjX7pUGi8pZQad3vcxD8naE7GUv9UiMfMrCRjsTqiNigw4WDL2qT6\nNkcx72ML8decjgAOf9J6RucmiDP+hIfAAW/o6BvTi0JiqfTH97u1gSGMpqsB\nDXWpiPwxDvGz/T3xXG+mhwxuGtcZVkOEzmGV2Iu0DUepsBkwYQA2iLYErVbY\nG0GnJGqicWBR0KyDCaWj6FnfFEIb2y7Wi9AdZe8m9RkX5k+el6UOQVZwR+Ba\nRqf1Y3X3XI5TTHIAilTy7LfibORoO0F+CW4cv9z2QDjD23MEs3zb0Nn3rXiF\n7MLK2hV3sadbM4ZcXFa2W8Puwc8rAYunh7Mtwys2kc58bftlqG6BsnPA2RTi\nuGqxjGZRHlz0dwQz3GOgJOAmGp0JKGKO2su4eqC7TWJfxlvMkV2sv3QRd+ki\nxScOXbknjD9LZMQ1vqafZ+rqk/BpvLHBwvTo+SRXskKZ2rI7JNeKprKDzRSr\n/UnLRgiyX/IyqEItmIKeImEyNKoUBGzzLuaHToqu+kIVVyf24nP44v678Rtx\njmhZ\r\n=PzVf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"aa3f6b69b6c5eaf240ace8f9052c831e936dff76","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"7.24.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.0.1_1637148971071_0.7747499154849371","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.0.2","keywords":["mysql","galera","pool"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.0.2","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"006021e01d8794508553a34b88efc2a2d95c8a71","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.0.2.tgz","fileCount":67,"integrity":"sha512-Sgebqrr4akl1bJbuEf6qmOwAbpkyhscqiQAX/xP5Z+WbgrPs/ve6Ja21cp52rhlgR4wtIddeojjTFf0kcNMsJw==","signatures":[{"sig":"MEQCIBgOVJkhYhajgUgaJOoFQXWo2Cb4j+Ayf1k0tE77yFPIAiAkmHzzrYa+HGWFGjmtLFHIWJFTtq6ysr70eZq213KhPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":121708},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"204b1ed48356b462d2aa97bdbbd91896a5d5a374","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"7.24.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.0.2_1637320007536_0.923571188806668","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.1.0","keywords":["mysql","galera","pool"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.1.0","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"e2f775bd90ae697ceda8893cdb26337b6e45d4e0","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.1.0.tgz","fileCount":70,"integrity":"sha512-zEF9YeyfkN27iDSLRFD28/J6w0Xa1rlui1XwHsCnXuMaPfRumHZuf/Qmrz1DfQjbsrf7jk4HkR83YAYo/7OeTg==","signatures":[{"sig":"MEUCIQD7apq1UMKNTFVYTvx2kXRytxB7PIJFuRvXuwwWA0nG8gIgb/PuHYS41Wgf8pAfP2k/wR1q48ts5+9dtboFF98R2aQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":130625,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm73pCRA9TVsSAnZWagAAmuYP/j7oaofh827RdEr2U5DV\n+x8WrW9VbYxLrqI7As6lGojc7PL42SeaC1rVLzjtduLJJqShyHN31AJH64wf\na2bcC1YPTE8/o7KoBK2obGbD2+AwD7DU9TUSdmrbQly0Lkv6VsMdwY1ChmDO\nRf6RVuAdmPtwVmmic54RbJsbCEvsRU/ahDTwcNsSQekKvHj6hHAizEYxsFFt\n4LA4KS/QAyIHulIM+hlkLDKgyvFG4F/1bbPeD5pccZfNoKb1gE+dArbnOQHh\nrHEdFVAjrlZ6mQXuM2/NIZPzj99nL80odFfs7b5Ixpp072kLSRGP56nIffXI\nmcbIavK+Io/5zaDG08QAapononZQrgzFvXggPMbLctXeoO+0kAX8zCMbd2Yw\nM51tAztrpbctqSwAjeEGVD2pFqsEX5rWcOQxeWyuWQpl9Gv8+aA+OPOsaUpr\n+a0PwxuCz/McYDphVino1fnT+WbFSDuZkWw+vL7B9uqGx72S+MuGcBgcXqVb\nEotqgBcuwRKqD3zMtXnZ3ZJVh/hVqzzhAm1nM52DrnclgSJpnIPmnQvzh01w\nTFCB10nbH8kaVuQ7HNes3dod0l0wB6xFGr1w2UmRUyOlO60zYtqy1Z4yozXr\nuV0YzhWS1WKMy4fO+EI235zHA2VBL+1a3NuWtndKDcjjHmCjYZD1Q1mS6Ow1\nvHSj\r\n=oEYk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"0bddb82e49cd51c2fd7916f50b4fdf95ed5e3c8e","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"7.24.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.1.0_1637596649079_0.5952060278043314","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.2.0","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.2.0","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"3a62e50ca0655fc722081a84d25fd21cfb3a50a3","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.2.0.tgz","fileCount":73,"integrity":"sha512-N1E+pMrMQaWxqIZ9oVR0XxD7X77qL+TSBslBctt8nlyiYY6ITh49bAGWi0VJPKlQnCw16zhjjJSeqgZ9VMEiZQ==","signatures":[{"sig":"MEUCIQDCPtXnHdoxNkSfhytm9uB7K0aQm8vrxFhtWU6wzEZWXwIgK/WgpjsVFPBq7jogw9G3Uq3WgTGoDF5131sFbuvVzDs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6rvFCRA9TVsSAnZWagAAotQP/0bM/lqZS2Ba2AkO/T1r\nKWSIFBuu9L8yu0j13VgWkgtmSSycB7GPKTjecmMfK2i33+LTMJm0MgAZeFeq\n3ptl6w+9+PWaNNI9W61Aw1hDXgz8OuerudNnmWmaxJwDRB5cPFZykdI/AwKf\n2VZLUUUjHANs8PRQJ9Uz/VTkD+ofN5skICVHQaKllSBawGBBONmNrDmsFsOI\n99NxQMjv293rkFkfXWW25XK6P5Gzpe93HuIP3GAVRiIktYCs1S8q+6NcWHu/\nr0Q5Aod06mgVX+RwRrMnx7Rol0ISTBI/rrejVAVxiiug2/Nnxl01ewx/1vpu\ntOV7/FFxWsi2aPLE8dp82qEbIgCof7s3E7C0ltiWS5LyxNxR4xWZAVqcGdYL\nfHP8SLDgvE9Hchmujlm32mszDN5FNrczsDdklSG+nXaaK0ZDZW0DJamv8l2s\nBA6sw72GNHdA9FVVgCJK+SM2MzmjO23i79/uaOdM6hUdt8qmqVXx1ffIy+SF\nVn6FGksjys+THGwtKxgwdTvsoTr1xf29mynMDsKvF6RgCfjPA2/unphZ7K/u\nFJ2nSnxi6tPwMIZJBk/LHpiq02miM1PPINOLdm/OvWEl78A0/yn3X2J7GmAL\nZ0w1RJKQZ7bTZJMvM261QqVJr0Nb8git8yHuEzJGtPyEwhr9JCrSdfh96xLc\neAN0\r\n=HRq+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c261a1a4ff8143912e532ac3e47ddf31785989ad","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"7.24.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","ioredis":"^4.28.3","@voicenter-team/amqp-logger":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/ioredis":"^4.28.7"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.2.0_1642773445627_0.42767074248743375","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"1.2.1","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@1.2.1","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"63be5b6a2c6752b0ffb91cfa03492044b14e040f","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-1.2.1.tgz","fileCount":73,"integrity":"sha512-zCB9Kh7kInXvlL6mc1GWKDunSmKLKhj3nRFbduiKykXzgqV7WCTOxaCmG3QlhmagiiDq/T5JU7gYGsmqqgtwPg==","signatures":[{"sig":"MEUCIQDFZLzW8wWm0wFeNitFY7c3fZuP1AD1TM2wvMbdn2q52AIgJOu0fJE+RWt6IOFyMt3vhOa4f+QCvEFk3FhDn2B/UNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":138467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiARcWCRA9TVsSAnZWagAAFbUP/1d6rft91BpxY2Sgcrjb\nFd3NIsjbu5XPNSSIA3PqZn+3d7nNE8RGxjG4qomaAKG7Qebtc3ULsshLmNEZ\n3jG2JeimJ6PpRSewbZN5OKQQ9uMUmB4t4csu2PJSbXgxfGyPC3rx7PRWxU5W\nQF5UNzDDAp7JSajxghwu9Lkuy/XZIXPaAyEyWQqIM07Xgx7ZOb+CFIJ0KgQb\n23gUkS+Hr9GcPwcFag8A0087NXTva0KrGiuCNoSI1eTaKThSAnRuWoxMes3q\nLDZZXEmwTwFUY4V4ZPf4erb7FYfujLRy33lNOwz9Uzen3+It4EdDQbQpyxFS\n1jrodvi973Hvk2cVI7jOIj2gaklwAatAY0SijzW6K+vW4I4I+4J3cdo74vFy\ncOqvaJKDXcgytG17O3/RBdKqzOh+Yg0oRD5foeGGMnEZclVkdAOz7Qjy7Lh4\nd1j5W77YDv5EE4CvtGmEHWgiGl4RnDNbCNGNWoAI/o9AVvOpZU9sd820BFD3\nurBgHZo4P6TTid38FQ3dyiPOLca/EZ0Jdjs9PzfSQK2dhq/XnMGg3PKzT8OH\nHyr24cw6zDnQBRydc3J1MZHsJnSEW0mnLKxqJx+wpHOdVz8E/BsH0cCMyK9r\ncAK09SIQr4iW0ZRsjLCitGtTD6H6ch9IeEciVX4gNU2PAoeyqJDPNl9TuizR\nKvFX\r\n=8fDF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b37190baac23e499ed30ce50d9ed28fa6c09d5bf","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.4.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries and hashing services","directories":{},"_nodeVersion":"14.17.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","ioredis":"^4.28.3","@voicenter-team/amqp-logger":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.4.3","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/ioredis":"^4.28.7"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_1.2.1_1644238614666_0.5076931700104588","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"2.0.0","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@2.0.0","maintainers":[{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"sophiazhyrovetska","email":"sophiezhyrovetska@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"b60f3be6f2b538a0c2608518f4614fe8ac427195","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-2.0.0.tgz","fileCount":103,"integrity":"sha512-a00hcAsRX2wDQx2p8JZsubyl6UWYtbbrmsbKRlv2TAa9epZRpgFUtrdvG6PYeKfYyIeg/gydC56P0sJejhoNxA==","signatures":[{"sig":"MEYCIQCW18xhLEgBIjuiPTPjTo5nX7ViCiQC0b/AOokx692dzgIhAN82Y6EiXkV7yF5uC9V487SnmRJ8Dgq1nHcxUMK2xvSx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":209276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqzkcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqrXA//Zmi6TC2iDX8WtoyA3D5kMHz0ztqN51vKjRbHrrx8uBfSNjeV\r\nhK1Vf+OPMTL590bFpQ5+wHv/nRig+imXnYM1kd6wMCSU1BUQcZ/oQ3XGnARD\r\nU1Ohje3GPkcq+zjBajAiZoWY9JaeiZzsp4bfYJaIVazSQhNqPvwQr2Bz68by\r\nOAxu41DXD82DvfRp3eTCSFMt2v/eInhUqwbDCmlSW9c7xuHFr8/E4dwqFodD\r\nLmIYgnAhEQQAcpco1pMTR5oSTC1LVi9+Jdp2q9L+epNFRF+08NLdgKgt9Rcn\r\nshVMdcdf6oCUAjWS43EQEEvRvAuNIDwzxi11xlQe8b6WRT3p6yBSdUZ8AugH\r\nU0we9WBd6yjLs6nlhE2l9eYfO3fzMwXfr8oZ3G73BI+tyMDT9+wdZD823uRs\r\natkwi2ymi6T+pfpnAUajdmNhEyvZrEqyFc8U0QKM36kTUr5h+cUMZWrXJtPy\r\nXJEVNAVZlQyb8KqrgaqBZ0uCkaqrdFNkHJZ26eMHN13CVNW8/I3pueFLZJ0k\r\nYtvLd2koLNFEoGGcbfjbAhsr4jjUluT/tE4x/+Y4/qZiM8GiJjTr4yjVhdPQ\r\nvzUr3vzd6Ee27pHR0zveoq924UHYg9aXLkkm6XwZ0dDou/A5iYFw3khiYTa1\r\nKRQusGURALe79jD8cT/gM4ww2+CLMEEgo8Y=\r\n=aK5V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e28105a3178739276f81c42010913ac3886e3ebb","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.6.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.13.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","ioredis":"^4.28.3","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/ioredis":"^4.28.7"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_2.0.0_1655388444368_0.5661940753482566","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"2.0.1","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@2.0.1","maintainers":[{"name":"bodamat","email":"bomtvv@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"4d248500cdca7f119b7d330f1caa3675a5a199ab","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-2.0.1.tgz","fileCount":103,"integrity":"sha512-JQLFWyMP63sXJMRrXTxgzFypaZEebrM8vvClukd8QjEWHJbekyQM4LmieOd/kqUIMqSBK+H6LbDfUrhEc4BF6g==","signatures":[{"sig":"MEQCIDNO6Rt7ru54jCV1h0H3VNMm+d4uNoee6UWSlWuxVzqAAiAXoXWKoI0LX8tee83Hpfp0CS6eKUGea6LO7qipmcZl/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":210713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6/kkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpKrhAAnqyGJYkGlYCQJOeLQyhD2Tnoio3oPMPlBwOZXwuxNvGlGHTk\r\nt43POgq/Nqi3ClqK1jUHllL5S9+R2vGI3tQHLqqkQ6SrikkS4X/JijWItJB1\r\nuW+h0In/QjsLjRj7t21ypV2qaH2LI1hLxczLNBzBCjEjWa+qMtSZuAHoLDLE\r\nsuYibPAZVPhe6AduR/KVffFIcP9KmKeGlyZOUnwPFW9HIQ4IA2Yiyg2FT0d8\r\nwprr/lK0vwaPkzUjkjoBfE7XBK1CcK6zPsaKQEjMsfIRpgFPvs/3om5or1Cr\r\n+vlLSi92k+3oqQxYWar1MGVYjHsOVI9FfGpIKbAc3CurrH0H8kM4tzFYID/1\r\nDzh9djBi9bO7OUZ4E25bmaB1I3g2NgB1u7Ogo09iRaxoDgif2JSuUUf2bHWu\r\nfJAaiPnV7pyjTsq7sxcs5e3GAUcvMhe4ModW9dfhbhGchb7X+iMIJHwb6WR0\r\nSCnZWy88aL1jv9/GilxR+v4xd0o1MMGZxyT685ZWlij4iTykl1UB92MvrNdl\r\nfj4bDxYrXxc26puY9hCImc9fURb7XzQiNPEbWs4o7BrebhZiH7BaLum3aV9I\r\noTu5AmU/5FZbk+FryZ8fPrt3JgaWwpcUdXEBCqsC46GvAW+QZOfeW9NEdVWK\r\ndGYeY57ql1GgTGVQ2RxmCpGT5CG8eLc8j44=\r\n=wR7X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"031a3aa2985d1d3ca2b48ddabd69e0643259ef6b","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"bodamat","email":"bomtvv@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.6.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.13.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","ioredis":"^4.28.3","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/ioredis":"^4.28.7"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_2.0.1_1659631907862_0.1272717769841567","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.0.0","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.0.0","maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"9f95b9d7c606ef20def7cef3cb4ab3dbb1883a3b","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.0.0.tgz","fileCount":106,"integrity":"sha512-pIrp8D0B27iQ6A8lMgehZF3YKkuV6IFPztlKEV/HInEiimEeeauqzkCr2fWyHVqBbkogFvbBdk6m8QjfskN12Q==","signatures":[{"sig":"MEQCIGiPsZgCB3aikLxcb9GdxHEgGwUTAvmj/kvii6AuwpMhAiB9YCzTgevUWozErau0+YYijFqLD4zHmP8cjKP2RevJnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":222992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH1JqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsjRAAkir01BZHjiDm6QJzcaWzxLS4L2iRs9Ssu+1/Yo+ZiWWwaa7i\r\nRXGqd/qfQ2AsMf9knx8Eq4C0Ys0eN4aYURC3hPznF7KpkyOZJXXoM/PW0PPN\r\nl9tXbnbhYEmGxD3tAe/LZGjLRkbuCvUKMTwG1wEfMRhhy6uewqVVq+RmUgF9\r\nEs/+8djLqACcU29k0Lt1ttiF6bn/twA/NMDQbhgqIx/VQdBkY/Nd2Ga0tSZs\r\n9xzbIF3NQjuwQx2g0VsCxgTkp5re4XhS1v8BRrxnolTl8n/t4aFmWesxysaA\r\n9xyzUwczgwAAjP0GxLX0Mflld3UJCDSnH0jJhOJQmz6CYzd/1FIbKQzUtFHj\r\nVsftGeWRph132csaymqvrfZ7/8D9klTxfKhI9wsoDkrvsbOP6fwPM0MJa+GP\r\n8CM4CoaJvUVqQ+bhyru9KzNDwEMwB0nzWRN3AAD9IHQtd0mJLDvGyWh5a4m9\r\nVbeT/4PPjZhwAIDEHOFr9QZmWUmEOaYNNwxzyQ4By2BrXe7eKbjXAdsQTa2l\r\nLmTIWTe2o86ViypKcf4LEwGLD7tUHvsrfaBp0kph4U4qUq3JacgQHPKQWaQa\r\nW0tcrD+5h9W22hyfGzDQx3t4sKY1isyw1kPTYXV9R+ILyP71yTlP6jcUfQSg\r\nXvc2Kne1caOy494uu0IaKTHDpI2rP6wELkw=\r\n=1zNT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bf829318a64198520151f42b86009e52c38e4281","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.1.2","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.13.1","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.0.0_1662997098421_0.4307941926256029","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.0.1","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.0.1","maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"},{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"b4b1b4fd094bcf2f66eb87573965be906397109d","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.0.1.tgz","fileCount":106,"integrity":"sha512-ynKKxNPCIzX7FcwziuWe28aiZ2hGDwkUG665BakjWozrKjUh0Yz6n0IyTs36k5Qif2fIjRZ0+zqGMtgxE2btnw==","signatures":[{"sig":"MEQCIFiKO0LOPs1D/boBjxWLMH8rQ1uO77fEA13M6t8YHRobAiAwkGGDgtLvgjTWyIEkmZbelLiwoleT7/YlcCDrdag5Bw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223023,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH1rVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq0jA/+OYeeNwyPzfVeEqqnCWMRhjcIPfNFBGo5yaQgPIZo2XP8JWk/\r\nN9XlLvffBQX/OO63Fm6/PmpQd9qLvgtZUPnNcejJarIpg+Hoi83vxABsZBGF\r\nsjSkMhxDG2T0Buaojc2qH60qESm2fXT30jzTMYsRe1O5O9fOV7Afxgh6IKR5\r\n8juWRbVthnFLeXfNTMY0DmNAYWGL76qrLZJD3xPfm3ni/ZyN8fNbjLcbGdfM\r\nuZ46mKH+RAyzMGpxFjWTKL79NrR0WirVvEIKPttliM+Y+4mWEgD+E1OdCt+c\r\nsf1txEKicf8TP1gswrL0VFpbr96pywK95DW3RR1g52j6Hy1Rs+9gwpHty1Ny\r\nSe6sZtvUKS7uZXOxcUQAKYUFNlS439MHn2SazHso6GEW2c/ft5/E5fFb01B1\r\nLXEKlAqE1OdAjPDCv2jtWFTa40ndlJf3Bdb4NEcgJFkVoqyWiy1E+msP2YT5\r\nCqFh/O+6kn3p3ieNDQdNNB+z3gJdgtehM+MEp6kDr7ZqAHXFjbliZZBGqhF/\r\nWOC0Su+wEvSVniTNemH/B1saL+LGdHXxu5xPwRFh0yPeaQf/ie/sTyD9X5Qd\r\nnblnSbtJtNNIXmDcPlZ3Mv4JBrnDTAhC6P2sjXM96gwfZaXpE1OxZtAh3WrU\r\n2XTi94ZQfV3I0/8Q/kssduKmuN++crq3wSw=\r\n=0cr/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"411bb31bffecbc2a6e215267a0e680cf9924f639","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.1.2","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.13.1","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.0.1_1662999253312_0.9740763308950371","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"2.0.3","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@2.0.3","maintainers":[{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"bb6d131c22560a78409156d7b432a8326883c41a","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-2.0.3.tgz","fileCount":94,"integrity":"sha512-X/FAUCCYQWq3YfhHauPzqIRWYyxs1cvG+LAgH0psC44t+FsG5WjB2Ib3RksmIY+vhD8ndx7b9CjvLtyMT2fkKA==","signatures":[{"sig":"MEUCIQDcKi48EzEoLCGBcUPVLmE24JOoA1bNPtEqPODhEo5G0wIgXcJa5t/j+8dhKAiIDM4r7hMDewc43/xaf/cLlkbG5Q8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":195254,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoYgSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrshAAhqvvcsrehoTdpfpvgT5donfrVK7oIBSniO/T8qaZ0DK2JkpB\r\nmrjYRBoGNQuCs/XjA8i+3grI8dSs5oTAN91zIH6lZBck8W2B+hV6Oq/wHDEI\r\nG6EoutOzE2iJDXAI+cg2bSnLFE6vIHnYGxkWTJRFdUGBlk4URzYwYKlnP97z\r\n2pe35Ld1GIPZT+qZ4EYJ5XOOAXfJKfxHlekv+Gr6Trr3q5QLA6vfHWoYeSsi\r\nJ8IcNMpDcdi5UDnkM8I0bExWdlyQWD7m0q/zu3e8k67Lgk+q2IEXo4wxnwE7\r\nCtRTnchYX4eOrtjXSUzTl+ww3dwEsxa2VMG+8/oMsCUF1tP3f9hQBK2ZbbZn\r\nLpLCdfan3JtA0F099zNTwqK2+FedfMME8dboKl2dbXtMVKO8Esl9+f+HlWTF\r\n6cD5QmTJWZWXZ/UJ9fUQ70+4kNFWChE8og0EmlSbGXQ1rTNNR662jrrgDVwz\r\nWkxGrhuK5/gJXb/hr5xCuVMiFw3kX7bNblwnTagJ6pH4mkP6b8T3MtckUzKa\r\nfSOTVhyZlHSiNCfuRl6wOUhG5/2UGqirVewPcER/iLHvK1ItwuNKbUC66HP9\r\n+eeTqZcVA3/5hSWgvPKA49bIR1O8E+GAh9rzGwtx73o5ZX5wbSNf9a4BkjGL\r\nU1r42qfHA/xglqOHNEBxF44xVIxlZT10ut0=\r\n=qQGv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"35c6256ffbf988a1bd4f6c47b4718b4b8be1499e","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.15.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.17.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","ioredis":"^4.28.3","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/amqp-logger":"^1.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.9.4","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/ioredis":"^4.28.7"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_2.0.3_1671530514710_0.69995666475213","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.0.3","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.0.3","maintainers":[{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"ae5940d59a6043261afdb1329485c70a55fc03d5","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.0.3.tgz","fileCount":91,"integrity":"sha512-gUmqm9OxI4uxAl+HyZ/y/YwbtwOO6MqbIofL6Ptt48NJ/i0CwYAMqr8ara7KFzYqZtNr8cQkB7Zqk5c338y94A==","signatures":[{"sig":"MEUCIQC4sykhzUa44uYOBB6+DRqwayCVrWlDwnpGNbomkjkuwgIgRTXgLujLuoL8nMCgV+vXMv9yNr5mfRqnVRtru5dfZ5A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":211436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjoY6sACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqSiBAAiaCEYB8nvyYYk8pid3AGkqcnemd+5ZYPwRvMDPsjlYV3O670\r\nL0bPfZ8DDZ3Hd6ymvXtcjRNsem1SHlzYrO9s3ykg0BQZoXXdhmvod7+nDpP8\r\nBQ0gdaVg7BnnnIvvbNZoGYbfEs3Tw3krf/3QaPcuMesfknG/rG/GsD9NXEum\r\nIu/2BqciMe2EF0OPmOAEhAtpE+LlLZFCywa2Y1l4dePOrOuKEWKJSfkiR1Fb\r\nu/0d3LhWjuenTVZPg2rJ/WsfHobJeua197DshijkWWwu7B2uzVtdUWAUG1jU\r\nIXy7b7MnhNxMn/oUuH4ndIuOxTxvk1K92sVpgmf9kh+WP2Rc57DlEaZ88ETb\r\n08dXnHvtgZXcDICvLkjQMrs6X+ocVF9NyprGDioxiu6xnmAloQhgAKeoaazr\r\ny5hWwgXVeIX99vEogvrNBSevhN8OnqBQ33g2OjrwnhXG1eSPJFgEhhkqmHHA\r\n+EbQYVuPIkMTdmgdyr+7JT255vRu7mQ7shh+Tk15fq2amYEejiCq9yP1renU\r\nFju22moHB62I7x9JNISWcqOlQzwjNBT7v6OIGYNdzRgX1My/j9StPZwLy3Jm\r\ne3r98349BQ+YDlipTKjT7GQiuGec8REeof7XTyfN/mhXxr5CTJGjgTaK39Gl\r\nb/REtspVkegtSrCFUTzbI7gBf+z0SCRldOo=\r\n=9dLW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"155ecfc1c53ee4b07c5b03a910fe10d7ef5cba53","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"8.15.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"16.17.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.0.3_1671532204396_0.30566943450454187","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.0.4","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.0.4","maintainers":[{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"e5ebfcd9244ca6a71c44dd7391bb2c7eb9e65921","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.0.4.tgz","fileCount":106,"integrity":"sha512-Tbo6JZ1Lc1g/mrofq2AVS1sgheYqKZ4wt2+oqFRHoopSKYYOdKgsqfamRpQzpWoR+0/Q15rBoqMTAp5ICryBqA==","signatures":[{"sig":"MEQCIDT4Dxw/GYq3e8tHW/ndc1p4FP48MYgqifvSZIolTqd/AiBVEud3h0QLNUxToU0Khm/Y+CEK921nM/2OgaZdvn0hEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":222974},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fab2d2ccb21250376f58465839a6bb4d7b4cb389","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"9.3.1","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"18.14.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.0.4_1698942710423_0.4485552492061904","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.0.5","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.0.5","maintainers":[{"name":"maksym.k","email":"maksym.kyrylov@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"shlomi.gutman","email":"shlomi@voicenter.com"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"46a6fdb44d8f45fab0f7e94826213cc5c377163f","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.0.5.tgz","fileCount":106,"integrity":"sha512-ztvdlalR26Brp0jVRa0OH62tTx12J+2KuP3KwzELi42pShu46jIEDXk7VBa4oSL8sLUV45rTiXjA4u8oCbCk+A==","signatures":[{"sig":"MEYCIQDCub0CCFQQ1ZsZGNATXM1P50cCh3YoLMUhfORC0aKgoAIhAOwkVuwx0wjQMxRuGpFW3EEhimXgy3Ch0fvUzqB6/N5i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223105},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f972366a8690624d1a88bc8b48733eb1f9b94c35","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"9.3.1","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"18.14.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.0.5_1703428369391_0.8610030202168468","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.1.0","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.1.0","maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"bohdan.du","email":"bohdan.du@starkey.co.il"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"8efab5c9f642eb5821ef51e0d4b7468a14d345c5","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.1.0.tgz","fileCount":106,"integrity":"sha512-LLNzZRKKP5pdetxhf1AyMcaJv+50CuNI/6Uk4VzJv2GnRqjFI6q7jG9USYehov45wD/yx9z64cV1G2AV320wOg==","signatures":[{"sig":"MEUCIQC6AV/TULFj1H+S9kw20GqHOHYsqebpXMUtcrsMyxUx9QIgX9mSH28jS5dPNkKZMD+7/VZ+EdwFs0sZEylxjbeXse0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223260},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fcedae89ae04aa5f941287bff75ed02fe2920979","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"10.9.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"22.11.0","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.1.0_1741782978420_0.3248080605922157","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.1.1","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.1.1","maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"bohdan.du","email":"bohdan.du@starkey.co.il"}],"contributors":[{"name":"Bohdan","email":"bomtvv@gmail.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"19b828007d1e8f8e611592ce84bce419a6dc25be","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.1.1.tgz","fileCount":91,"integrity":"sha512-pIPQlBUnyQGukJOWQUNhQTXCjn40w7w+ZYuEAb47/Dl59SpnIgcIUlKSjywCoxCnjdqklWE2s7daoZW8tJlT9A==","signatures":[{"sig":"MEQCIGeAYzHlSL7TpngyFj0C853fkBdBdRt24vhLLg4D/L0yAiAJkFXGlWXMmwfIRNQhtqe8ngd9JK716jLgErIuvq7fBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210530},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"23fe828fa3491e42d061a8e7584343d0ebee8f1d","scripts":{"test":"jest","build":"tsc --build","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"regani","email":"bohdan.konechniy@gmail.com"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"10.7.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"18.20.4","dependencies":{"mysql2":"^2.3.0","@pm2/io":"^5.0.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.1.1","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^27.0.5","typescript":"^4.5.5","@types/jest":"^27.0.1","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.1.1_1741882696124_0.6037413967602614","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@voicenter-team/mysql-dynamic-cluster","version":"3.2.1","keywords":["mysql","galera","pool","cluster"],"author":{"name":"Bohdan"},"license":"ISC","_id":"@voicenter-team/mysql-dynamic-cluster@3.2.1","maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"zeev.oliker","email":"zeev@voicenter.com"},{"name":"nitzan-npm","email":"nitzan@starkey.co.il"},{"name":"bohdan.du","email":"bohdan.du@starkey.co.il"}],"contributors":[{"name":"Shlomi Gutman","email":"shlomi@voicenter.com"}],"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"1bda6bcfa023bf650cf9a9b9007463c1817e70e6","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.2.1.tgz","fileCount":94,"integrity":"sha512-qjR3NlHQGUQYP3VwQsC5depBWf8UfMvT9c/9419eNG1TuPw//iS5iFBNtOnOqqT1YMaEZA85U9MzPwfVcdzmjQ==","signatures":[{"sig":"MEUCIEsyMG+8zuNOiTjMt/xTtElbip9MNAi4diA8Rthb8BJpAiEAyqtCaQUg//f+jccbYCgzHeCxvMlCe2tY8xIMvWNWMoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218228},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ea70e85fa5fa4f6ef769359f9ec0242531b6c06","scripts":{"test":"jest","build":"tsc -p tsconfig.build.json","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublish":"npm run build"},"_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"overrides":{"diff":"^4.0.4","async":"^3.2.4","lodash":"^4.18.0","semver":"^7.5.2","@pm2/io":"^6.1.0","js-yaml":"^3.14.2","minimist":"^1.2.6","minimatch":"^3.1.4","brace-expansion":"^1.1.13"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"10.8.2","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"_nodeVersion":"20.20.2","dependencies":{"mysql2":"^3.22.3","@pm2/io":"^6.1.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^2.3.10"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^29.4.9","typescript":"^4.5.5","@types/jest":"^30.0.0","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"tmp":"tmp/mysql-dynamic-cluster_3.2.1_1781793317263_0.11407555259061697","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"_id":"@voicenter-team/mysql-dynamic-cluster@3.2.2","bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"dist":{"shasum":"14dacf8483f415354df4f7acd93feefb8e6ed27f","tarball":"https://registry.npmjs.org/@voicenter-team/mysql-dynamic-cluster/-/mysql-dynamic-cluster-3.2.2.tgz","fileCount":94,"integrity":"sha512-3AeC7n2iAZiKko20FMF6pW034h9kEeNZAIoccxf87WAg+bg0GAP+o7Uu6Fp8gT9AN3yibIswRKv3+ak3iv7hiw==","signatures":[{"sig":"MEUCIQCtnyQNOnQDUcBk0TkQ1P26Tzwbxv7odIa9JsCN5BKBdQIgOAQwiSgnrNczLXeOXe91T78TGqvb7SnoV7/iG0mD+O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG71tJ7ioXXfshEe2eX2UuBwwkMvKBZfVU8/UcNvej3VAiBK13BsVlEcHNf464tlGYfjRgiXGpGtZNATw1amkHNtPw=="}],"unpackedSize":233131},"main":"dist/index.js","name":"@voicenter-team/mysql-dynamic-cluster","types":"dist/index.d.ts","author":{"name":"Bohdan"},"gitHead":"05ec8862855b89799e080f2af34913103fd65be4","license":"ISC","scripts":{"test":"jest","build":"tsc -p tsconfig.build.json","start":"npm run build && node demo/index.js","coverage":"jest --coverage","prepublishOnly":"npm run build"},"version":"3.2.2","_npmUser":{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},"homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","keywords":["mysql","galera","pool","cluster"],"overrides":{"diff":"^4.0.4","async":"^3.2.4","lodash":"^4.18.0","semver":"^7.5.2","js-yaml":"^3.14.2","minimist":"^1.2.6","minimatch":"^3.1.4","brace-expansion":"^1.1.13"},"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"_npmVersion":"11.19.0","description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","directories":{},"maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"zeev.oliker","email":"zeev@voicenter.com"},{"name":"nitzan-npm","email":"nitzan@starkey.co.il"},{"name":"bohdan.du","email":"bohdan.du@starkey.co.il"}],"_nodeVersion":"24.21.0","contributors":[{"name":"Shlomi Gutman","email":"shlomi@voicenter.com"}],"dependencies":{"mysql2":"^3.24.4","@pm2/io":"^6.1.0","convict":"^6.2.3","ioredis":"^4.28.3","winston":"^3.8.1","deepmerge":"^4.2.2","is-plain-object":"^5.0.0","@voicenter-team/failover-amqp-pool":"^2.3.10"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^10.0.0","tslint":"^6.1.3","ts-jest":"^29.4.9","typescript":"^4.5.5","@types/jest":"^30.0.0","@types/node":"^16.9.0","@types/convict":"^6.1.1","@types/ioredis":"^4.28.10"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mysql-dynamic-cluster_3.2.2_1790607491154_0.19981605994612006"}}},"time":{"created":"2021-11-16T16:28:00.159Z","modified":"2026-09-28T14:58:11.405Z","1.0.0":"2021-11-16T16:28:00.389Z","1.0.1":"2021-11-17T11:36:11.221Z","1.0.2":"2021-11-19T11:06:47.683Z","1.0.3":"2021-11-22T15:53:41.701Z","1.1.0":"2021-11-22T15:57:29.227Z","1.2.0":"2022-01-21T13:57:25.779Z","1.2.1":"2022-02-07T12:56:54.821Z","2.0.0":"2022-06-16T14:07:24.575Z","2.0.1":"2022-08-04T16:51:48.043Z","3.0.0":"2022-09-12T15:38:18.659Z","3.0.1":"2022-09-12T16:14:13.485Z","2.0.2":"2022-12-20T09:14:48.529Z","2.0.3":"2022-12-20T10:01:54.863Z","3.0.2":"2022-12-20T10:23:07.156Z","3.0.3":"2022-12-20T10:30:04.570Z","3.0.4":"2023-11-02T16:31:50.831Z","3.0.5":"2023-12-24T14:32:49.620Z","3.1.0":"2025-03-12T12:36:18.681Z","3.1.1":"2025-03-13T16:18:16.336Z","3.2.1":"2026-06-18T14:35:17.398Z","3.2.2":"2026-09-28T14:58:11.239Z"},"bugs":{"url":"https://github.com/VoicenterTeam/mysql-dynamic-cluster/issues"},"author":{"name":"Bohdan"},"license":"ISC","homepage":"https://github.com/VoicenterTeam/mysql-dynamic-cluster#readme","keywords":["mysql","galera","pool","cluster"],"repository":{"url":"git+https://github.com/VoicenterTeam/mysql-dynamic-cluster.git","type":"git"},"description":"Galera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics","contributors":[{"name":"Shlomi Gutman","email":"shlomi@voicenter.com"}],"maintainers":[{"name":"tzachish","email":"Tzachi.shirazi@gmail.com"},{"name":"regani","email":"bohdan.konechniy@gmail.com"},{"name":"zeev.oliker","email":"zeev@voicenter.com"},{"name":"nitzan-npm","email":"nitzan@starkey.co.il"},{"name":"bohdan.du","email":"bohdan.du@starkey.co.il"}],"readme":"# mysql-dynamic-cluster\nGalera cluster with implementation of dynamic choose mysql server for queries, caching, hashing it and metrics\n\n## Features\n1. **Pool checks** by 2 points:\n   1. **Pool status** - if pool is valid and ready for work checked by [validators](#pool-settings)\n   2. **Pool score** - prioritizing pools by load checked by [load factors](#pool-settings). Less load on the top\n2. **Hashing services** for query - set to the table pool by service if query was successful with this service. Another query with the same service will be trying process in the pool from table\n3. **Filter pools** by criteria:\n   1. Pool status\n4. **Sort pools** by criteria:\n      1. Cluster hashing\n      2. Pool score\n5. **Caching query** by Redis\n6. **Realtime metrics** for cluster and each database node\n7. **Console logger** and [AMQP logger](#amqp-settings)\n\n## Technologies\n- [mysql2](https://www.npmjs.com/package/mysql2)\n- [amqp-logger](https://www.npmjs.com/package/@voicenter-team/amqp-logger)\n- [pm2.io metrics](https://www.npmjs.com/package/@pm2/io)\n- [ioredis](https://www.npmjs.com/package/ioredis)\n- [jest](https://www.npmjs.com/package/jest)\n- [typescript](https://www.npmjs.com/package/typescript)\n\n## Install\nDownload project from npm\n```bash\n$ npm i @voicenter-team/mysql-dynamic-cluster\n```\n\n## How to use\n### Configure cluster\nThis is just main settings what necessary to configure cluster.\nMore detail about user settings [here](#user-settings)\n```javascript\nconst cfg = {\n    clusterName: 'demo',\n    // Configuration for each pool. At least 2 pools are recommended\n    hosts: [\n        {\n            host: \"192.168.0.1\",\n            name: \"demo1\",\n            /**\n             * You can reconfigure global parameters for current pool\n             */\n            queryTimeout: 5000,\n            user: \"user_current\",\n            password: \"password_current\",\n            database: \"db_name_current\"\n        },\n        {\n            /**\n             * ID is automatically generated, but if you set the id at least for one pool \n             * then other pools will be generated with a higher id \n             * started from the highest manually set id\n             */\n            id: 10,\n            host: \"192.168.0.2\"\n        }\n    ],\n    // Configuration for all pools\n    globalPoolSettings: {\n        user: \"user\",\n        password: \"password\",\n        database: \"db_name\"\n    },\n    logLevel: LOGLEVEL.FULL\n}\n```\n\n### Example\n`cfg` - [configuration for cluster](#configure-cluster)\n```javascript\nconst galeraCluster = require('@voicenter-team/mysql-dynamic-cluster');\nconst cluster = galeraCluster.createPoolCluster(cfg);\n\nasync function test() {\n    await cluster.connect();\n\n    try {\n        const res = await cluster.query(`SHOW GLOBAL STATUS;`);\n        console.log(res[0]);\n    } catch (e) {\n        console.log(e.message);\n    }\n\n    await cluster.disconnect();\n}\n\ntest();\n```\n\n## How to run metrics\nFor metrics, we use [pm2](https://www.npmjs.com/package/@pm2/io) and recommend to have some knowledge about it. You can find documentation [here](https://pm2.keymetrics.io/docs/usage/process-management/) <br>\nJust for testing library you can skip [configuration file](#create-configuration-for-pm2) part and use existed one\n\n### Create configuration for pm2\nCreate copy of `ecosystem.config.js` or create new one using it as template.\n\n### Run using pm2\n```bash\n$ pm2 start .\\ecosystem.config.js\n```\n\n### Open metrics\nIt will show all logs and metrics on the console filtered by running projects in realtime\n```bash\n$ pm2 monit\n```\n\nTo see metrics and all information about project just for one time\n```bash\n$ pm2 info [id]\n```\n\nYou can check `id` in the first column using\n```bash\n$ pm2 ls\n```\n\n### Connect to pm2 GUI\nCreate bucket and name it [here](https://app.pm2.io/). Then you can get private and public keys from your dashboard by clicking to the `connect` button\n```bash\n$ pm2 link [private] [public]\n```\n\nAfter [running the project](#run-using-pm2) using `pm2`, dashboard will automatically update\n\n## Params\nExported library params\n\n<table>\n    <thead>\n        <tr>\n            <th>Name</th>\n            <th>Description</th>\n            <th>Type</th>\n            <th>Values</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>connected</td>\n            <td>Status of cluster</td>\n            <td>boolean</td>\n            <td>\n               <b>true</b> - cluster completely created <br>\n               <b>false</b> - not connected yet or had some errors\n            </td>\n            <td>false</td>\n        </tr>\n        <tr>\n            <td>LOGLEVEL</td>\n            <td>Console log levels</td>\n            <td>Enum</td>\n            <td>\n               <b>QUIET</b> - only warning and errors <br>\n               <b>REGULAR</b> - all information instead debug <br>\n               <b>FULL</b> - all log information <br>\n            </td>\n            <td>REGULAR</td>\n        </tr>\n    </tbody>\n</table>\n\n## Functions\n### createPoolCluster\nCreating the cluster and initialize with [user settings](#user-settings) <br>\nParams:\n1. [Cluster configuration](#user-settings) to configure library\n\n```javascript\ngaleraCluster.createPoolCluster({\n   hosts: [\n      {\n         host: \"192.168.0.1\",\n      }\n   ],\n   user: \"admin\",\n   password: \"password_global\",\n   database: \"global_db\",\n})\n```\n\n### connect\nConnecting to all database pools passed in [user settings](#user-settings)\n```javascript\ncluster.connect()\n```\n\n### disconnect\nDisconnecting from all database pools\n```javascript\ncluster.disconnect()\n```\n\n### on\nConnecting to [events](#connect-to-events) <br>\nParams:\n1. Name of event\n2. Callback when event is emitted\n\n```javascript\ncluster.on('connected', () => {\n    console.log(\"Some stuff after an event emitted\")\n})\n```\n\n### query\nRequest to the database. Cluster automatically select best database node (pool) for quick result by filter and sort it. Pools configured in [user settings](#user-settings)  <br>\nParams:\n1. **Query string** - request to the database\n2. **Query values** - values used in query string. Can be one of this structure: `string | any[] | { [paramName: string]: any }`. Similar to [mysql2](https://www.npmjs.com/package/mysql2) query values  \n3. [Query options](#query-options) - configuration only for this request\n\n```javascript\ncluster.query(`SELECT SLEEP(?)`, [100], { redis: true })\n```\n\n## Configs\n### User settings\nSettings to [configure library](#configure-cluster)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Required</th>\n            <th>Type</th>\n            <th>Values</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>clusterName</td>\n            <td>Cluster name like global prefix for all names used in the library</td>\n            <td>true</td>\n            <td>string</td>\n            <td>-</td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>hosts</td>\n            <td>Configuration for each pool</td>\n            <td>true</td>\n            <td>Array of object</td>\n            <td>\n\n[User pool settings](#user-pool-settings)\n            </td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>globalPoolSettings</td>\n            <td>Configuration for all pools</td>\n            <td>true</td>\n            <td>object</td>\n            <td>\n\n[Global pool settings](#global-pool-settings)\n            </td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>redis</td>\n            <td>Redis object created using <i>ioredis</i> library</td>\n            <td>false</td>\n            <td>Redis object</td>\n            <td>\n\n[Redis](https://www.npmjs.com/package/ioredis)\n</td>\n            <td>Default redis object using <i>ioredis</i> library</td>\n        </tr>\n        <tr>\n            <td>errorRetryCount</td>\n            <td>How much retry query in different servers if you have error</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>2</td>\n        </tr>\n        <tr>\n            <td>useRedis</td>\n            <td>Enable cache query using Redis</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>true</td>\n        </tr>\n        <tr>\n            <td>serviceMetrics</td>\n            <td>Configuration for service metrics</td>\n            <td>false</td>\n            <td>object</td>\n            <td>\n\n[Service metrics](#service-metrics-settings)\n</td>\n            <td>\n<pre>\n{\n    database: 'swagger_realtime',\n    table: 'Service'\n}\n</pre>\n            </td>\n        </tr>\n        <tr>\n            <td>useClusterHashing</td>\n            <td>Enable cluster hashing</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>true</td>\n        </tr>\n        <tr>\n            <td>clusterHashing</td>\n            <td>Cluster hashing configuration</td>\n            <td>false</td>\n            <td>object</td>\n            <td>\n\n[Cluster hashing](#cluster-hashing-settings)\n</td>\n            <td>\n<pre>\n{\n    nextCheckTime: 5000,\n    dbName: \"mysql_dynamic_cluster\"\n}\n</pre>\n            </td>\n        </tr>\n        <tr>\n            <td>showMetricKeys</td>\n            <td>Show metric keys instead metric names</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>false</td>\n        </tr>\n        <tr>\n            <td>useAmqpLogger</td>\n            <td>Enable AMQP logger</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>true</td>\n        </tr>\n        <tr>\n            <td>amqpLoggerSettings</td>\n            <td>AMQP logger configuration</td>\n            <td>false</td>\n            <td>object</td>\n            <td>\n\n[AMQP settings](#amqp-settings)\n</td>\n            <td>\n\n[AMQP settings](#amqp-settings)\n</td>\n        </tr>\n        <tr>\n            <td>useConsoleLogger</td>\n            <td>Enable console logger in this library</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>true</td>\n        </tr>\n        <tr>\n            <td>redisSettings</td>\n            <td>Redis configuration</td>\n            <td>false</td>\n            <td>object</td>\n            <td>\n\n[Redis settings](#redis-settings)\n</td>\n            <td>\n\n[Redis settings](#redis-settings)\n</td>\n        </tr>\n        <tr>\n            <td>logLevel</td>\n            <td>Console logging level</td>\n            <td>false</td>\n            <td>enum</td>\n            <td>\n               <b>QUIET</b> - only warning and errors <br>\n               <b>REGULAR</b> - all information instead debug <br>\n               <b>FULL</b> - all log information <br>\n            </td>\n            <td>QUIET</td>\n        </tr>\n    </tbody>\n</table>\n\n### Pool settings\nGeneral pool settings which inherited by [user pool settings](#user-pool-settings) and [global pool settings](#global-pool-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Required</th>\n            <th>Type</th>\n            <th>Values</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>port</td>\n            <td>Port to connect to database</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>3306</td>\n        </tr>\n        <tr>\n            <td>connectionLimit</td>\n            <td>Connection limit in 1 database</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>10 <em>(changed from 100 in v3.2 — set explicitly if you need more)</em></td>\n        </tr>\n        <tr>\n            <td>queryTimeout</td>\n            <td>Timeout for query</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>120 000</td>\n        </tr>\n        <tr>\n            <td>validators</td>\n            <td>Validator params to check if pool is valid (pool status) and ready for work</td>\n            <td>false</td>\n            <td>Array of objects</td>\n            <td>\n                <b>key</b> - name (variable_name) of mysql global status <br>\n                <b>operator</b> - operator to check with value. Exist: `=`, `<`, `>`, `Like`. For text only `=` or `Like` operator. `Like` is not strict equal check. <br>\n                <b>value</b> - value what must be to complete pool check <br>\n            </td>\n            <td>\n\n```typescript\n[\n    { key: 'wsrep_ready', operator: '=', value: 'ON' },\n    { key: 'wsrep_local_state_comment', operator: '=', value: 'Synced' },\n    { key: 'Threads_running', operator: '<', value: 50 }\n]\n```\n</td>\n        </tr>\n        <tr>\n            <td>loadFactors</td>\n            <td>Load factor params to count pool score by load. Using to sort pools</td>\n            <td>false</td>\n            <td>Array of objects</td>\n            <td>\n                <b>key</b> - name (variable_name) of mysql global status <br>\n                <b>multiplier</b> - multiplies the result to achieve the corresponding pool score <br>\n            </td>\n            <td>\n\n```typescript\n[\n    { key: 'Connections', multiplier: 2 },\n    { key: 'wsrep_local_recv_queue_avg', multiplier: 10 }\n]\n```\n</td>\n        </tr>\n        <tr>\n            <td>timerCheckRange</td>\n            <td>Time range for next check pool status and pool score</td>\n            <td>false</td>\n            <td>Object</td>\n            <td>\n                <b>start</b> - min time <br>\n                <b>end</b> - max time\n            </td>\n            <td>\n<pre>\n{\n    start: 5000,\n    end: 15000\n}\n</pre>\n            </td>\n        </tr>\n        <tr>\n            <td>timerCheckMultiplier</td>\n            <td>Multiplier to increase time if check finish correctly and decrease it if had error in check. Time used for next check pool status and pool score</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>1.3</td>\n        </tr>\n        <tr>\n            <td>slowQueryTime</td>\n            <td>Logs query time that will consider slow in ms</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>1</td>\n        </tr>\n        <tr>\n            <td>redisFactor</td>\n            <td>Multiplier for set expire time in Redis</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>100</td>\n        </tr>\n        <tr>\n            <td>minConnections</td>\n            <td>Minimum free connections to keep alive per pool. The periodic status-check query keeps this connection warm so no extra keep-alive is needed.</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td>1</td>\n        </tr>\n        <tr>\n            <td>idleTimeout</td>\n            <td>Time in ms after which an idle connection is destroyed, provided doing so leaves at least <code>minConnections</code> alive.</td>\n            <td>false</td>\n            <td>number (ms)</td>\n            <td>-</td>\n            <td>30000</td>\n        </tr>\n        <tr>\n            <td>idleCheckInterval</td>\n            <td>How often in ms the idle connection reaper runs its cleanup pass.</td>\n            <td>false</td>\n            <td>number (ms)</td>\n            <td>-</td>\n            <td>10000</td>\n        </tr>\n    </tbody>\n</table>\n\n### Global pool settings\nGlobal pool settings is extended version of [pool settings](#pool-settings) using to configure all pools <br>\nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Required</th>\n            <th>Type</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>user</td>\n            <td>Username to connect to database</td>\n            <td>true</td>\n            <td>string</td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>password</td>\n            <td>Password to connect to database</td>\n            <td>true</td>\n            <td>string</td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>database</td>\n            <td>Default database name to connect</td>\n            <td>true</td>\n            <td>string</td>\n            <td>-</td>\n        </tr>\n    </tbody>\n</table>\n\n### User pool settings\nUser pool settings is extended version of [pool settings](#pool-settings) using to configure each pool individually <br>\nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Required</th>\n            <th>Type</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>host</td>\n            <td>Host to database</td>\n            <td>true</td>\n            <td>string</td>\n            <td>-</td>\n        </tr>\n        <tr>\n            <td>id</td>\n            <td>ID for pool</td>\n            <td>false</td>\n            <td>number</td>\n            <td>Automatically generated, but if you set the id at least for one pool then other pools will be generated with a higher id started from the highest manually set id</td>\n        </tr>\n        <tr>\n            <td>name</td>\n            <td>Custom name for pool</td>\n            <td>false</td>\n            <td>string</td>\n            <td>Automatically generated from host and port</td>\n        </tr>\n        <tr>\n            <td>user</td>\n            <td>Username to connect to database</td>\n            <td>false</td>\n            <td>string</td>\n            <td>Set in global pool settings</td>\n        </tr>\n        <tr>\n            <td>password</td>\n            <td>Password to connect to database</td>\n            <td>false</td>\n            <td>string</td>\n            <td>Set in global pool settings</td>\n        </tr>\n        <tr>\n            <td>database</td>\n            <td>Default database name to connect</td>\n            <td>false</td>\n            <td>string</td>\n            <td>Set in global pool settings</td>\n        </tr>\n        <tr>\n            <td>redisExpire</td>\n            <td>Expire time for data in redis</td>\n            <td>false</td>\n            <td>number</td>\n            <td>Redis settings <i>expire</i></td>\n        </tr>\n    </tbody>\n</table>\n\n### Redis settings\nConfiguration for Redis. Cashing the query <br>\nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Required</th>\n            <th>Type</th>\n            <th>Value</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>keyPrefix</td>\n            <td>Prefix for all keys</td>\n            <td>false</td>\n            <td>string</td>\n            <td>-</td>\n            <td>mdc:</td>\n        </tr>\n        <tr>\n            <td>expire</td>\n            <td>Expire for stored data</td>\n            <td>false</td>\n            <td>number</td>\n            <td>-</td>\n            <td> 1 000 000</td>\n        </tr>\n        <tr>\n            <td>expiryMode</td>\n            <td>Expire mode</td>\n            <td>false</td>\n            <td>string</td>\n            <td>-</td>\n            <td>EX</td>\n        </tr>\n        <tr>\n            <td>algorithm</td>\n            <td>Algorithm for hashing</td>\n            <td>false</td>\n            <td>string</td>\n            <td>-</td>\n            <td>md5</td>\n        </tr>\n        <tr>\n            <td>encoding</td>\n            <td>Encoding for hashing</td>\n            <td>false</td>\n            <td>BinaryToTextEncoding</td>\n            <td>\n                <b>base64</b>\n                <b>hex</b>\n            </td>\n            <td>base64</td>\n        </tr>\n        <tr>\n            <td>clearOnStart</td>\n            <td>Clear all data on library start</td>\n            <td>false</td>\n            <td>boolean</td>\n            <td>-</td>\n            <td>false</td>\n        </tr>\n    </tbody>\n</table>\n\n### AMQP settings\nSettings to configure amqp logger. Logging to the console in object format and send to the AMQP server, for example RabbitMQ. <br>\nAll parameters are **not required** <br>\nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n            <th>Value</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>log_amqp</td>\n            <td>Configuration for connection and channel for logging</td>\n            <td>array of object</td>\n            <td>\n                <b>connection</b> - configuration for AMQP connection\n\n[AMQP connection](#amqp-connection)\n                <br>\n                <br>\n                <b>channel</b> - configuration for AMQP channel\n\n[AMQP channel](#amqp-channel)\n            </td>\n            <td>\n\n```typescript\n[\n    {\n        connection: {\n            host: \"127.0.0.1\",\n            port: 5672,\n            ssl: false,\n            username: \"guest\",\n            password: \"guest\",\n            vhost: \"/\",\n            heartbeat: 5\n        },\n        channel: {\n            directives: \"ae\",\n            exchange_name: \"MDC\",\n            exchange_type: \"fanout\",\n            exchange_durable: true,\n            topic: \"\",\n            options: {}\n        }\n    }\n]\n```\n</td>\n        </tr>\n        <tr>\n            <td>pattern</td>\n            <td>Pattern for AMQP</td>\n            <td>string</td>\n            <td>\n\n[AMQP pattern](#amqp-pattern)\n</td>\n            <td>\n\n[AMQP pattern](#amqp-pattern)\n</td>\n        </tr>\n        <tr>\n            <td>log_lvl</td>\n            <td>Logging level send to AMQP</td>\n            <td>number</td>\n            <td>\n                Number means allow logging from a level number to a lower number <br>\n                <b>0</b> - error <br>\n                <b>1</b> - warning <br>\n                <b>2</b> - info <br>\n                <b>3</b> - debug <br>\n                <b>4</b> - trace <br>\n            </td>\n            <td>1</td>\n        </tr>\n        <tr>\n            <td>self_log_lvl</td>\n            <td>Logging level to console from AMQP library</td>\n            <td>number</td>\n            <td>\n                Number means allow logging from a level number to a lower number <br>\n                <b>0</b> - error <br>\n                <b>1</b> - warning <br>\n                <b>2</b> - info <br>\n                <b>3</b> - debug <br>\n                <b>4</b> - trace <br>\n            </td>\n            <td>1</td>\n        </tr>\n    </tbody>\n</table>\n\n#### AMQP connection\nConfiguration for AMQP connection. <br>\nAll parameters are **required** <br>\nUsed in [AMQP settings](#amqp-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>host</td>\n            <td>Host to connect to AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>port</td>\n            <td>Port to hosted AMQP</td>\n            <td>number</td>\n        </tr>\n        <tr>\n            <td>ssl</td>\n            <td>If AMQP host use ssl</td>\n            <td>boolean</td>\n        </tr>\n        <tr>\n            <td>username</td>\n            <td>Username to connect to AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>password</td>\n            <td>Password to connect to AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>vhost</td>\n            <td>Vhost for AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>heartbeat</td>\n            <td>Heartbeat rate for AMQP</td>\n            <td>number</td>\n        </tr>\n    </tbody>\n</table>\n\n#### AMQP channel\nConfiguration for AMQP channel. <br>\nAll parameters are **required** <br>\nUsed in [AMQP settings](#amqp-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>directives</td>\n            <td>Directives AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>exchange_name</td>\n            <td>Exchange name AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>exchange_type</td>\n            <td>Exchange type AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>exchange_durable</td>\n            <td>Exchange durable AMQP</td>\n            <td>boolean</td>\n        </tr>\n        <tr>\n            <td>topic</td>\n            <td>Topic AMQP</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>options</td>\n            <td>Options for AMQP channel</td>\n            <td>object</td>\n        </tr>\n    </tbody>\n</table>\n\n#### AMQP pattern\nConfiguration for AMQP pattern. <br>\nAll parameters are **not required** <br>\nUsed in [AMQP settings](#amqp-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>DateTime</td>\n            <td>Date time AMQP</td>\n            <td>string</td>\n            <td>\" \"</td>\n        </tr>\n        <tr>\n            <td>Title</td>\n            <td>Title AMQP</td>\n            <td>string</td>\n            <td>\" \"</td>\n        </tr>\n        <tr>\n            <td>Message</td>\n            <td>Message AMQP</td>\n            <td>string</td>\n            <td>\" \"</td>\n        </tr>\n        <tr>\n            <td>LoggerSpecificData</td>\n            <td>Logger specific data AMQP</td>\n            <td>string</td>\n            <td>\"localhost\"</td>\n        </tr>\n        <tr>\n            <td>LogSpecificData</td>\n            <td>Log specific data AMQP</td>\n            <td>string</td>\n            <td>\"ThisLogType\"</td>\n        </tr>\n    </tbody>\n</table>\n\n### Cluster hashing settings\nConfiguration for cluster hashing. Cluster hashing set pool with current service on the top if exist in the hashing table. Service set to the table if query was success with this service. <br>\nAll parameters are **not required** <br> \nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>nextCheckTime</td>\n            <td>Next check time in database</td>\n            <td>number</td>\n            <td>5000</td>\n        </tr>\n        <tr>\n            <td>dbName</td>\n            <td>Database name for hashing</td>\n            <td>string</td>\n            <td>\"mysql_dynamic_cluster\"</td>\n        </tr>\n    </tbody>\n</table>\n\n### Service metrics settings\nConfiguration for service metrics to get correct data about services. Table must contain columns:\n- ServiceID\n- ServiceName\n<br>\n\nAll parameters are **not required** <br>\nUsed in [user settings](#user-settings)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n            <th>Default</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>database</td>\n            <td>Database name where stored information about services</td>\n            <td>string</td>\n            <td>\"swagger_realtime\"</td>\n        </tr>\n        <tr>\n            <td>table</td>\n            <td>Table name where stored all service ids</td>\n            <td>string</td>\n            <td>\"Service\"</td>\n        </tr>\n    </tbody>\n</table>\n\n### Query options\nReconfigure for current one query only. <br>\nAll parameters are **not required**. Default parameters are set using [pool settings](#pool-settings), [cluster settings](#user-settings) and [redis settings](#redis-settings) <br>\nUsed in each [query](#query)\n\n<table>\n    <thead>\n        <tr>\n            <th>Parameter name</th>\n            <th>Description</th>\n            <th>Type</th>\n        </tr>\n    </thead>\n    <tbody>\n        <tr>\n            <td>timeout</td>\n            <td>Timeout of waiting query request</td>\n            <td>number</td>\n        </tr>\n        <tr>\n            <td>database</td>\n            <td>Database name where query should run</td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>serviceName</td>\n            <td>\n                Service name to add this query to service metrics. By this name will find service id from table configured in service metrics. <br>\n                <b>Don't use it, if passed serviceId</b>\n            </td>\n            <td>string</td>\n        </tr>\n        <tr>\n            <td>serviceId</td>\n            <td>\n                Service id to add this query to service metrics. <br> \n                <b>Don't use it, if passed serviceName</b>\n            </td>\n            <td>number</td>\n        </tr>\n        <tr>\n            <td>maxRetry</td>\n            <td>How much retry query in different servers if you have error</td>\n            <td>number</td>\n        </tr>\n        <tr>\n            <td>redis</td>\n            <td>Use redis for current query or not</td>\n            <td>boolean</td>\n        </tr>\n        <tr>\n            <td>redisFactor</td>\n            <td>Multiplier for set expire time in Redis for current query</td>\n            <td>number</td>\n        </tr>\n        <tr>\n            <td>redisExpire</td>\n            <td>Expire time for data in redis for current query</td>\n            <td>number</td>\n        </tr>\n    </tbody>\n</table>\n\n## Connect to events\n### connected\nThe cluster will emit `connected` event when cluster is completely created.\n```javascript\ncluster.on('connected', () => {\n    console.log(\"Cluster completely created\");\n})\n```\n\n### disconnected\nThe cluster will emit `disconnected` event when cluster is completely disconnected.\n```javascript\ncluster.on('disconnected', () => {\n    console.log(\"Cluster completely disconnected\");\n})\n```\n\n### hashing_created\nThe cluster will emit `hashing_created` event when hashing in cluster is completely created and connected.\n```javascript\ncluster.on('hashing_created', () => {\n    console.log(\"Cluster hashing completely created\");\n})\n```\n\n### acquire\nThe pool will emit an `acquire` event when a connection is acquired from the pool. This is called after all acquiring activity has been performed on the connection, right before the connection is handed to the callback of the acquiring code.\n```javascript\ncluster.on('acquire', (connection, poolId) => {\n    console.log('Connection %d acquired', connection.threadId, poolId);\n})\n```\n\n### connection\nThe pool will emit a `connection` event when a new connection is made within the pool. If you need to set session variables on the connection before it gets used, you can listen to the `connection` event.\n```javascript\ncluster.on('connection', (connection, poolId) => {\n    console.log('New connection made', connection.threadId, poolId);\n})\n```\n\n### release\nThe pool will emit a `release` event when a connection is released back to the pool. This is called after all release activity has been performed on the connection, so the connection will be listed as free at the time of the event.\n```javascript\ncluster.on('release', (connection, poolId) => {\n    console.log('Connection %d released', connection.threadId, poolId);\n})\n```\n\n### pool_connected\nThe pool will emit `pool_connected` event when pool is completely connected. \n```javascript\ncluster.on('pool_connected', (poolId) => {\n    console.log(\"Pool completely created\", poolId);\n})\n```\n\n### pool_disconnected\nThe pool will emit `pool_disconnected` event when pool is completely disconnected.\n```javascript\ncluster.on('pool_disconnected', (poolId) => {\n    console.log(\"Pool completely disconnected\", poolId);\n})\n```\n\n## Demo\nDemo file `index.js` for how to use the library in `demo` folder. Build the project to run it\n\n## Build\n### Clone repository\n```bash\n$ git clone https://github.com/VoicenterTeam/mysql-dynamic-cluster.git\n```\n\n### Install dependencies\n```bash\n$ npm install\n```\n\n### Build the project\n```bash\n$ npm run build\n```\n\n### Create .env  \nCreate copy of `.env.example` and name it `.env`. Set correct values\n\n### Run\nTo test that all work correctly run the [demo file](#demo) with script:\n```bash\n$ npm run start\n```\n\n## Tests\nAll unit tests in `tests` folder. Test created using [jest](https://www.npmjs.com/package/jest) library.  \nTo run all tests use script:\n```bash\n$ npm run test\n```\n","readmeFilename":"README.md"}