{"_id":"serverless-mysql","_rev":"17-671eab7d4cf9c49da1d2d226995dfc06","name":"serverless-mysql","dist-tags":{"latest":"2.1.0"},"versions":{"0.0.0":{"name":"serverless-mysql","version":"0.0.0","author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@0.0.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"f39e7cb7820876640f178dbabd2e53e6cd7e4e39","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-0.0.0.tgz","fileCount":3,"integrity":"sha512-LF9MsQ1x+kabBv7oKhxgzRviRmHnjGrpqDC1QZLAmGHU7W3WDCoX2DksOP+vkuq1MRkPgQEnDdWwQbsJ78PLEQ==","signatures":[{"sig":"MEQCIGD7Wx36Z5GfP2f0OPdb1sYGYC1+NIYn8EvPkHB2tWwFAiBaDDQQl7bXcgp6O23MaiYxI35eD8r7K6T5OtlCKjxruQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgZXzCRA9TVsSAnZWagAAAxwQAKGxQ+/FJQ4wb1AV4+zw\n1XAky0L61rwgnKtq1/XC8eJWUbopgNyy9CLwh8vjV4b6sG7RuPG229We9ii2\nJjkSA0HTJ4m1Ibe8pgGkKqqtMsdsDGFPBN5aZpz2EPhwF8cFVHh3D4R6utG4\nP2brttI2sCbQdTeM8AMo85gijN6wCrguHtGkKI9HIXWICzqjUDB5cHro992k\n+pYS8OWP4y20hElFuByzw3A8SNz5/SbGgqaf47vV+h5jpCInR3Id9TGT3nXk\nC/51s0UnOz89WySnyP/hukWTV1Q9Gj5FUsukkXfZJdrAcfI3EtbqOcS3ey0S\nXQR955d8RS+a2K/jEdJIaq3g1deLVUlg+c1IMSC8639vfDLRHZyAfvVRNsoV\n7XTdT5t+iUtegBx+d1JuayYNlsKZR4hxoCPMbrzbmnVC7YvSb6p/yByvfbaq\n3xrG37lesoV5Urkc/2RfhZJ7o7X14r79cnf0aTqBN06NjF6mRlvYhEOhF+IA\nQ7mIG+8BdL74XNPYk/AjqYzf4LC4kruOpHUzKl5ckiC9AGD7v20ADQKn+wXc\noSVNhmO5ZBvHJ0QSo2hCZQh6TFJSoBZjTtaTOxCiDiiIKp5/S6wW5p9la7ot\nbWwlh4g5L1AXaoTcfvKxSsdis9nUnrv3QJWKUisFCLoq35PeLlTGpKWFx2/5\nNIWA\r\n=WMIV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"41cee5f50103d246c1edbaa2dcabbb5a80f25452","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.1.0","description":"","directories":{},"_nodeVersion":"8.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_0.0.0_1535219187452_0.7440821569101883","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"serverless-mysql","version":"1.0.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.0.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"82b327ce4e450d228b96b42b7579ce71af8885e6","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.0.0.tgz","fileCount":11,"integrity":"sha512-u4BoalnnZSTSBAeJkEtM5F4IFj9uYdEl9MNR3WOja8CziiFe6bp4VlHTKPaskc0MDZLUm0UF01gc1eINQQ8mQw==","signatures":[{"sig":"MEYCIQDsxBEuBwPaKK2YZM1ihOE18TWVuwakHCqdKsq5C+CojwIhAPhUFVxoe4JFuS027GX2k4xBlWQZjzIN84kLdWJ5q2rk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjI19CRA9TVsSAnZWagAAbMUP/0pyBfxkAFAFvfp1MEDa\ni4J75h3o+U+qwWSP+4PhUnz8rhYMH/KXVoByTIQK6+kmpp04mw6R88CUWkdZ\nAWzFxXJ42im4v04L/yXH5YsgIMowZ9FqXQsD4F1N3M9TEs5YOPPHm9KKj4Vp\ndJQwOvU+8iEspj+KtALfPaYXaspzVi631lgIodJZy6/J5l+AhS5quMVtJjDc\n7XBevthgp2RsuoG40rL7hAAD5iTvs8JTq3sJlKs+RHARHVhHVp/5iRI7UDS1\ntcUb4vgmDZs9m6VGhvIlpOMu4LAoZTRqNk/eJsQ7GuavlcXNRzOzRpF5JI+b\nUy34XXaUKa9qjgTwn1xDnWPtSGhSlKKbrtYlO2k0x5mWO5yFa8zuhe1nQXAB\nD+HHCu7mbNPUcg4TDPm1C0bed+vlyb2m5PwWhkLgNpy4C+HchuG5nsXhrNsp\n2hfmsZbgX5Qyl9rTVr7oh5NJZpAVk01BbGxs8WiGxNTis0yA7DzghjrH71qs\nkuuBTy5cuPrOv90IBNKB6ULpxmPwwsA9vHIal5dYkgxRMSKM6stj+qRPaMM2\nNZn0uBcWckoLNjJ23QL+JeWTwT3HUMza7MLPBxIU6yfGH+fQiTiHxCLhu7tT\nl/eoNzqicRVE6e6MHjZ5SKwk5Ti4iZoxgO6/9+NI7CyrW7BGaKdUlsHsGFlI\nAiSD\r\n=QBM7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b0c6b60a43cc579c5afb9fd8b4bca8c4e043d9a6","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.1.0","description":"### A module for managing MySQL connections at *serverless* scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.16.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.0.1","chai":"^4.1.2","mocha":"^5.2.0","sinon":"^6.1.5","eslint":"^5.4.0","rewire":"^4.0.1","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.0.0_1535937916059_0.3496486070285112","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"serverless-mysql","version":"1.1.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.1.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"2840f61318d8048281460a6f1d7d50075f2bb592","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.1.0.tgz","fileCount":11,"integrity":"sha512-5/JTtc2Hg6VZQ/ejlBp/t5cGTGKgyPTChFaaAJkImAV9GOh53iSxbIBoLKdGEEjMHoRt87x0DZrIiLGfGFGWHQ==","signatures":[{"sig":"MEUCIQCtxnYX99+R9wigbS7+BqMjwIiTxBp0RRzpqdo4W9gmzAIgRbBC39LM+wsRWMPK74YtdgQXyFXkvS+efNaWT4xwvzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36986,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblDnJCRA9TVsSAnZWagAAHxQP/itCXO+9KSD25+mhAlg3\nWZ9eTIIXSfJKa12EBTMZjehKsJ+6UJwUaO1dAHZ2Y9tTPRjm4ADhKYJ5ttdg\nBot5lulTeOQ1dLEhA/8oU4SMh7kqHddlADOPuuCS/uqf9WlzDMkf8kFzX2De\nW+XrjFcUcsNeLsZmyLC0fDxWg/bLV6YhEXYoDz1QX2zO+0+wTzacy+Jq9488\n4gopPEbD7yZXV5L9/pa2W5gSBCbqp8v9hI3saIjpM6Pq0LJH1AAkXgOm5uFU\nlVkjlamLMbvoGblHVhfp2v2q7sUt/B5WGSVd9xTjJLDCGmlB0k5vNBzS81sx\nHE+VoNLNP2/xcQRYd31PEsdQ9Xn4KWyjEcHlwSXGEQuM/VQQEdRVSrB+YZwe\nCQS8N4LEdsTU7uftbC69C0pfm3rh+NHjgw6XYCpJX6NXDbbHqUHw0VH4SvKE\nYYezoVXgPoyXdHzPKJvpfgioC+XzQXOOlQb7Td05bIuWmpfli9IzSJi12DIw\nDwJDKVY+EjT8hM7WJ5TXC/q2WFLO5sJxny8lBlIy8+ZpL+KwRWY2PXkmVdOF\nuxUmAQzd5Bn74iX17MaTn1tbKcRJ6m1SXmvrWvJiyYTGAcySVb+YdyjJoL3J\nly6edtv+NUxnR0AqhOpUzAkFpRSTg+B6uSUZI6lqdLlzvtS47gz5quwA46i4\nQNgm\r\n=gMxB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"431683ac7c31495779f9e2a3fbe773bd74af1448","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.1.0","description":"### A module for managing MySQL connections at *serverless* scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.16.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.0.1","chai":"^4.1.2","mocha":"^5.2.0","sinon":"^6.1.5","eslint":"^5.4.0","rewire":"^4.0.1","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.1.0_1536440776514_0.6611672791039291","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"serverless-mysql","version":"1.2.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.2.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"afd39db6a3d101f7794e8d008526d7f89cab2409","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.2.0.tgz","fileCount":11,"integrity":"sha512-iWqwaGXtsXApPAWD9pwH109Cr0TAjXrFVka6bw597PdFaOa69Uqv0aZyD0iyq4Sz9+DV4fQRvQpQyGoVrB8kYg==","signatures":[{"sig":"MEUCIESoEBaUpCNOuQGLuOfGMKM4zXCskKDzOMHxIsiNO05cAiEAhfcHRWe+EcK0uLXSbP3xvtESFW1+h3uvwmTfgNQgfi0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37494,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCwcfCRA9TVsSAnZWagAALqMP/iX0wIYotSNubb7CAWMr\nygyRZTB6O2PH+Vcf3OMtV0hxlABIaMoNOh2fTKisvtJkyvYebRrcSEi47K7p\nrINAtWIcpbrXlf0s3aYOz6duuTZsgLebzcvFmktPLMKq0/C9nwk3fF5p4Odo\n/3EyR7efjDWg9Ujqdu7zLUDcemDbMiH0MmjgcS/NrMMwSODr1Z/6d8k122Mz\nmWsOlg1iz2tgKVU14iIXLgJLxP4sEuGZ6/OSLSDj2Pq1aQyDVjjnrgw7b0bA\n/sCQ6dFWMbfmiUm4CF3wDQs6vgFjeGlddQxz69WmSqV/pHolO+Uq4u6Av+Bo\nzN/OT45zAqb0DiIN07Sm9ax+UdjhueenknTKLbty4oPeNwkBawExtsbDmyFM\nGkX+PHLEp2m96ThSDmXH8ouJDpugXHp/rGV8eq0bCiteiZxDnqAMw+etE6gX\nkm7adQXBozNSGZk2h0UaMHUhkMZdi925FLWZMrpOpmibzzxD0oo5SK2wkPDd\n2eikc0XVpKim+EUI9aYRdITFJDIglQKIYD8ed2kG1cs0+1ulDx2QKnY6v+Qb\nY5ga47KRyoDkGxw7qoT75Uojg6EZH+T9ROHlZgg7u1n1AsiZu4AYrGO+QfMh\n7NH/MArlwmuAlVhpnJdVq7z4+zzCxxtUAyfIlamw+zVm3ZXqxyNIIzXlFmVy\nrOz/\r\n=Tloh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"3659f6c41952635ad4873d47cc7c045f620918a2","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.4.1","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.16.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.1.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.9.0","rewire":"^4.0.1","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.2.0_1544226590532_0.8351097247073114","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"serverless-mysql","version":"1.2.1","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.2.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"447259f43c9c53cd49ecc050c4b5e401f7c1d0ff","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.2.1.tgz","fileCount":11,"integrity":"sha512-RurQzBtiVn2nc8KTCfpPcmWtwaLvvypZofK9v670W7w92nqrIqTNMRHZJ40hja3MrN+UbqoMzEuGbeT7XluyYA==","signatures":[{"sig":"MEQCIBjkVlcRUlmk6Ig0UEX/AxzQdkLta6UYYIAVlWyTpJOZAiArxNEFKy60NwWRcmTZArFGTDEFuqWi4Y4H93vyCPLVBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcavETCRA9TVsSAnZWagAAwDIP/0Bu5NJdpja2X3hGALZ9\nAOpBEz9x9UUOTQrYS1gylRO3be1e/eCA7D7UsaBxGT27Aff+dFVqgo5Ktu1S\nvEr+dD93dc2OzWejwMC5wppnP6nNx/qO0FP5xDAO0o6NUBvb8tldl8aYd3Zs\ncPM1OspotgxjHX72MdxBlCqDdlZA1J83s7FAEuuuE1xEOUPizGujOA3ouVbA\n1xr/9E2LGxLZSmhZk+kZYEtXBhxH/GxXJjfEPcrpvOteZBCTV75tANlOVCfy\nC/9FpBBhde/uBLEJvHvOOg+ygWPpC5Fz1QWMwUJ4FGdpaTnpKImd7kb87Pck\n9XvGuYR89DIzaJMjwAwKIMwYSX1c0aoBkMhy/e7UXZfZJhYYbCsG2FCu7xir\nBp7aLGLJhTSBFnVuxzL/ER+MmU7tCG4BZaigSLMDvt7BGIJAXoMoaDnhOfIV\n0eG6LLcFzhPE27hWR3SzlCe+XLQ1nCkEZCAJ0hy5Jjf0gZhGMNa9epWxuyy5\njCXeWA0Ad/o5NkWQku51nPlJRdvAj7MBzL1p+pE0p4lXiJ5E0dU7aCU4+dOH\n3R40tMX4Jbcxqapdwq0nEVtz7kDXDL3znpRj1/kIosJVNwCekUdIRbFynKII\nVpajzEUng5aFqY8MgQLIgIlLZYhCNagyl9Wtex2QBEm8YuO7FLyTskwTpDpA\n6vtg\r\n=wqzK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"3b2f0f6b0768f4fb3f68e5743ae76ce8cd46e56c","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.5.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.16.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^13.3.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.14.1","rewire":"^4.0.1","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.2.1_1550512403056_0.1119001796533563","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"serverless-mysql","version":"1.3.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.3.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"b4fbeb0708b5bad253b34ecebc2c48fae10d5017","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.3.0.tgz","fileCount":13,"integrity":"sha512-ZZFaF4uZkd3aUSdG6WJYzC5Rfq8txNlV74BRfRFDCOGugzbzTmuIB5pMxsqolI5NRSWqAjg60WJHdQt5lpQLTw==","signatures":[{"sig":"MEUCIAvjbjwSdc77BWt/3Xx2ooTIx4dtZC+soiWV6nUlnPTHAiEA1sCIvLETai6NsRLxjaC/OX0ZWx4Bgl5TQMcwr2XtHP8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwM6rCRA9TVsSAnZWagAAouUQAJBIc3PBUrGna9NXfKxs\naTkErB8ClRg56iS+eCD9AiHyMbL8jUh5fFRzq+866bDGy2UQD1Y7s7DQ5fUB\nJ22XoPDp3PuxnOq+0aKy+fUFaLjE4C76ryyQ+w/6Gtr1RszzawkeX7zTLSul\nzOrQejb7Bllg86wjPPD5yX593oZFa98FBaduHssDK8BratpMOaPYmPnyplxX\n4XMC2/dnNXQhZBKpZptPxo+x3SDqryd5rV/+7mf71N8nueGDharfaMyn8B2D\n3lK4PG+8GA8OUQ7YQ/SK3U1idCt+hTFxmuW0CL2cVYsG8yCntaqBeTzNHVd8\ns2vILKtGkqD7Th9FOkt1USYhGzV9856c6JwHjTUO24TPRlhofbJ2JJOwiAdf\nXLLW4GeRAOwGUumGCknsuNPJgjyqhUNV8R31IvvMx3hLktvt6LwVpuZxpfEr\nzHvTYT2OoqziOpq+yX6w4lQaD558njwKN9HmJFQPK/pS0F+lvHlu/ZZkhxwa\nsVXTQvwZHSy2Fze6YDTLcD7PSs912xwbX/xWTdJl/Ybhl/0bE8NN7Vt15Zt4\nUV9AFdVUpaHRQL2DwwUw4BZM6TPP6ib4i1vG4OBZqo9pXW8vbAEGzpvNHCFm\n/F3UEAyxDGitllm+baScbkhhMJE1hcwbcllirgUFL79Ei0AHKdZuGXfjtH77\nzH8T\r\n=CuDp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"09954ac457bdbc0bb19a9e8dd9ed230116a8375a","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.9.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.17.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.0.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.3","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.3.0_1556139690892_0.19853180734958342","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"serverless-mysql","version":"1.4.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.4.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"0c078580d89ff3e5cbdc40c535362a9c13ee7dd8","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.4.0.tgz","fileCount":14,"integrity":"sha512-u5choBi4S8ygvu3MCktNV24IN7MOzIbdXya580U5diMTMsLjuKOlez2/zf7R2GktdNqQ3ksKEw9K26kLTygZHA==","signatures":[{"sig":"MEYCIQDXOobHoGa8vOsP16a76fuGUYXyozHUq5hITpRLKOaXuQIhAOLhWsbIZMu4Ddxg3UtXoaMD60yPbLiHa8gYE/yFznxW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6GqnCRA9TVsSAnZWagAA8eUP/2aGIBO127ZIZQQr2jR1\n0RpYD2guoxN/beV3/OwHiafYx3FOTvDTJ7BQ6bYolWnDgBTZ0xQJ0CPUUhQl\n6FkJUZAqSZUpjfbxukAYY35B0CxY1DrzVJ2v96LeFXnvY4436y7gYGhPuIRk\n3NIHrg4VxgQ12U30UXypq12MQKzgGjLFPkgBs7zH5brW5vOR88AOWnVP7C5s\nvhTrOxpx4nahIFAZtNej09s3dDuPRoMufO3yw532GAXl6qRphjAfsJ1IzVKA\nk6cNsyFYlNI0jn3Z5Wj5woS32/xqYhBiBJUehpe7GCgNubSKW0T+9GFzEnl8\nBTDbg2s4EgD+gnovDwkkvJ3K4BHvGw51HldZtN2A7JdR4yOtkhyVg4qOpBMj\nZYUeUIL+D5eHKqOdOdKoAVaSJaKYVIJOEX9kpslgwo0OMHMNqyB+WyObBlae\nxPUvy2xfnspoyr68joT2QZ54wUp/2wDzKodKzSYTsiPzpGZDmECS1Sd54t8H\n72FetuqCfB8ocxetjA1eHM++pjhpBjb5LKWrklfqCWbZKd8B650gqVNBWB6g\nkP46F2c5MZAfazQ7Ol8E5Db7koMFQn2BH4oKCxPc6hQFhlCd5gqg2ayDJwVB\n7/B9zo8MMlVni4m80ukvKxDUcXrSuWiA7KG3iQew3POGLoVCx2HCF79iIZQd\nivIr\r\n=bh0q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"6fa6fb885d7d43d798bd8410624a2f606c05a459","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.9.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.17.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.0.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.3","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.4.0_1558735526971_0.738125455727302","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"serverless-mysql","version":"1.5.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"144cbda445497e4d3b4353ad0f70b2de258e7ce9","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.0.tgz","fileCount":5,"integrity":"sha512-yi+li4NxNL4GJjFRF9nvFxY5hY/zWUd4L3YgfQe4Ryk50d4+Js6d5dmknvjdBMXYBZci1a3o5chOIsM/DliKyQ==","signatures":[{"sig":"MEUCIQCYSkJL5QTyjl2Qiacj4bzIWk0Vv28wrU5M3hucP9ATUAIgUUtdsbSc3K2joHJ//ZMmeyCMS1VvmiiUOpCmi9uE0tE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLz5rCRA9TVsSAnZWagAAtaYP/RgaN2GAErdUPtx7pxTD\nG2XuG5Bx7Bv7ACfKjj2EzJXp+tvYb32H+6qFw4NV9exawKJFw2VNErbW0p0S\nQ+MrW26EF3R+fuZmU2QR8QTmIlb1ooFzjL4RFCQewjKpP0hm3jU0QgTMaDkE\nNZstIRVMxdiWOGM/HsUVcU394jDBFWYFZ+RNZlAyfSpSIV81JjxdkxZuuOgd\n5YAnoYfA/CxY49DZ5/ASA49Hn6dzZ/Lcblwy2I2hxGhJUgxKI5an9wYK5Nbh\ntq2y05PW1ydn6ayoTCzoy3Qiy9qjv7cDx4pvjWg+JRsbOgllG826uaLjI5BG\nSb+nMJQtzhXS3op2JjL9QbqtgGXgK1XwBJOMNZLykZJ6KiQBeLeW5MHAsHWR\n00CD+prYZqu0lyNngJ8v/aNq2I4mzxFhdXQ1OIbCml6PcHjx5sR6Gmg0Psfd\nuOGgmlkRuP9T2Otb/8C7b2mW15tWNa+68U/wHT6We0yslR5JsZsoWibRmffX\npMlRuaFNu+1pxHQx4sf7u5khVnm9rfUImuM0LTMviRWEfypwexNpo7xSS2h9\ncIHlodI7EiHUv+d1dhouuoEXdIAvEpoj5aTsGO+fzAfkRuUgqfl+9PknHBhT\nLSS7Ibf43jwbJqxswRmsylYu6Fja1HruPrtjJYO7pPyBgyUsk+x/AXvevqkA\naU55\r\n=sKqV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"60df2b4b0f342cbb7c4b6cae374019fa253bb17d","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.9.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.17.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.0.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.3","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.0_1563377258746_0.025467930572865116","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"serverless-mysql","version":"1.5.1","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"fa635556ca727702cf3d29efb27e5dae1198209a","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.1.tgz","fileCount":5,"integrity":"sha512-iJjvzFYcYEiH0zxgcB5jb/NkbRlXHFZLSaT6Ew84SJHIg/C8xOFi/7JFAAeLuSn7wI1a/pTFnugupVX10Zqq9w==","signatures":[{"sig":"MEUCIEoGmOtt4L4+q0RlfubE5vsUK2mZCAjwV7rd1yEdl72AAiEAm2N6KDWp0ONi+N4bLvOjqUZ3X8jruBOEl+ylBg7NBVE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZn4SCRA9TVsSAnZWagAA5RsP+wWvxUcYIjk+FqH7M8QH\nN4xIlcJRYZyXzctXNDE+ktURyDN3HOEXtfoY3R4eDd+re1SOPZESg/Hfu8NX\nI9Ejsjtn/I39t8YJMFyZXUvf+nSnNx+fpZgLxqgc47Lg1Ji3t3Ec7mmZ47YU\nLsEyEBNx+XCFCLYfZkTNHThXqSGvMuWBszZzQxQnb+4LaefEnP2UmX+BMOus\nYsRPTnoL3g/zP5D7/Qf29z3X7oKuqJip09gDhMrOOSM+o9rG4CwxMuxpUE+c\nImt+6Vq2Z0HGw7BuxfY/g6dXFNg4zYBEb+BvS1BJbpe4khvumiY8J4O2de/j\n/9rVu54IGdJYmO8UL2eapVmTGHB8/vjLA5uJtq5Vq9iDKhX4DE/p1Qr4SCKx\nPiuj2QMcCECsC7r8fs6pX6lrggWlRAXTpJDMMinMHy+i4Tsl64kJUBQXZ0M+\nbJz/FOE4e1iWtVRw5Ihm3LYbBGBnTScXddrKX8mFoh1aeYA52DCTW3AWoB0J\n0kj26A/cf5nZzFmpJrADEAAS/qRF6obCS9I6Z3MoWnq2PSlKGfKCRYYIoGpe\nk+sy2tIGuQDwdJz76bU6/h6Dlj3pMd63dZ9HVhw6qa8wBU8s4Cz5u2uFQPZd\n8LuwYz13hNKvlhDPOajXy1tOQ5YEtT8ih3mHoCiLW9YcPmoTmaqETf3XXxRV\nLKf1\r\n=ekQ3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"8c73e0c85ed6e0cca88fa98b2dfc987e3d65dd50","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.9.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"8.10.0","dependencies":{"mysql":"^2.17.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.0.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.3","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.1_1566998033378_0.3377555954054594","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"serverless-mysql","version":"1.5.2","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.2","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"69f4cd058511089a15f07d383b8d34bf48d883d4","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.2.tgz","fileCount":5,"integrity":"sha512-r06MzaT/OShCP8rem5SIm6OdmQ0+L7vGEjDpWyjAlsvCAKoxrC+aKlyzfEIzbeqAdfPzTKNA5NnWiI7MlX6RSA==","signatures":[{"sig":"MEQCIAl/AUUfxdNKsa5VSEwT6adn/J8IfkMc7d69B3INVIylAiB1w/UqTXXxrtbUIgGu8dhF03f1MrdQRi1gc84zV7t6ww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd9VIzCRA9TVsSAnZWagAAADoP/2Te3uykKwS7DQChsKw7\nqfHIoaCj8jMYM+G+ed+P0ggPbmlUha6BdzsVHX85wqiS4q2X78NEUosvFzY3\nbc9qfnYGVJpjL2L8E5dQUeVoO5pZuBhp8+ieXLyy/bMWx/o2QerhKWOWVW6A\nBJ3a/5lVHjxvId69LIibihcL1Y3tyFDgNxAG/Mr4n7IheXRDbyZocLl9fRyg\nIVCIS9aCyiY+Ek/lUeE/pnc9PU7A1WLGwQmzPa3pt7Q2gz/gc0DtkYMeEmaS\ngHXyE2V5V8hdY3rL2CbJ97ah8nvvaaT//d5q4RmG68sw06F9N8FVd1xnwt2R\n5r854vH61Qj+zc7OrWODsd3yUgvgUNoCtsAQguJPTEwRPgXjagB34cYGuwCh\nG4T+ZsvOD8CH2RJ3SdNGk75R/Rl84Yipp4TzC8jHynv7BZGOYUOE0g8dVt2t\n3bB61qbGwzQzRh+Ni3RDtvcYuHhcHCEeEcH2Y86JjUaXHFpU8vNdmLuaOo0Z\njegvKtcc4Z1r4ZUA5yb5UI+g7tXWHimUnjYLg236pdoc3TCXiOV4zxm7kSbp\nxTB6oUfJwVTwt1KghuuVQbUDXbvxPaVp153vkaESRPP0hIsNAyks5tgIJyCr\nyXs3W3pSlp9YGjFxq6r+ascK09KNiLVi75bQDJocUox+/IhgaWiVu/KGT4/S\nLHfa\r\n=iWi4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"16d9673a8132c8e4e5e9648d12c4fb80d455dcfe","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.4.1","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"10.15.3","dependencies":{"mysql":"^2.17.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.0.0","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.3","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.2_1576358451008_0.2895093696304012","host":"s3://npm-registry-packages"}},"1.5.3":{"name":"serverless-mysql","version":"1.5.3","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.3","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"ffababe638ebf9313e98e75c8a841cd97b70479c","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.3.tgz","fileCount":5,"integrity":"sha512-ytRbLjSmSN5FvGFDkxN0Zx6NBKdxVqk7gHKPeqWBdOBjAKVzElWfZEE9QBwsKTFo/dC7dqUqOThwMwKckuILkw==","signatures":[{"sig":"MEUCIFsO9SGbJrCQuM33HPdGrCEpXglYvTKkxadhlqQBYsdDAiEAgSGuRD+3dS2YRE1bxv95jF+ZEuy/v8JpTMHhOqOgkps=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36315,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeNIoSCRA9TVsSAnZWagAAhbYP/iJTrwmTM4FCedPY4TbH\nBEfbHgfTEv0LoJINBvWVxWqLNbAzdH5fE27JzvhWfvfz+8HqAd7cNhaJfNpB\nvdfS8THIA7/u/94HLj6yjmQY3SgbOhgWd2C4iAnwI5qWZ+4awYcVBhYe/0OD\nOQnoDdZLKieQZ8Ai7YGnpixgFSV1H4zEGU4NDmVnWni3mTOBlupvBOvYrBiL\n57+ZyhNoIfqiaBwhvRdz2cavp7vPi3DQ8ieHLl9n7TRDsL0Prn77Wtg0Ptrv\nJSnC5XZLcRVTPFH4P426o8bFpNLoba8zJS7Jq4C8CSOdveN+aYlndf8xCX+U\naSyIYodLSekp34ouGlLpv9pNLQFrwqD8NiWPrmqaRSl6aymV0ycyLlza7MPy\niU5elxEm4kq408ilKpEuT6CkKlXqBK3mZGfj/1TwdCuzEXq1jM2xMyxvH4KG\nqXN3P2q+36DjIwc7aFVAJCSRinHCwJ+d09tE4gJfXUHnAmnB5myE/AmEvgwM\nB8Dwz9Meo0MVzHSSEFngece8vkc9rJC7zRsDe+g3ZpIRPsw/E1jRPT91V0i4\n7yEe36Dk4/e67VGQ/w0GPrCKOD3PQyZQ7AtCHaI1TQTC0IjqYGUCY9plKH29\nocRE4wgwnfq4nycACRxf1jfcvIHHut9R8U8C5Ed2gfFGyLlhLXUBCBYdNT9a\nqlhA\r\n=vySR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"7909f3feee7e4c2e8264a197ae8ea1e9bbf1f5b0","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.13.4","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"12.14.1","dependencies":{"mysql":"^2.18.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.9","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.3_1580501521966_0.20077625543510247","host":"s3://npm-registry-packages"}},"1.5.4":{"name":"serverless-mysql","version":"1.5.4","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.4","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"c8562777e42440d6ebed0f96e17278bafef1f2d6","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.4.tgz","fileCount":5,"integrity":"sha512-q7hJh8NivO2g4CcZ7wy3KTctsFpqx/P4zrVJTwsJJoV9v9QouGv0IFLKXW0rkOqbHSQRvth/eTbf7noYBJzPiQ==","signatures":[{"sig":"MEUCIQCdkkhpxxUiI0sYmaN8FbT99OtbA8PwxQYdugdKXwfC3wIgSELlIMSJcj2MkIwUrn+tKwsma9t54+wSS4BZe0mrqvA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeglIsCRA9TVsSAnZWagAAOdwQAI6YqcfTxOuwqTs+3AtO\n0wimYnQJeopKh2jKMTBKD/7ywjeH73EbVZAVfIoAkrcX0XNimGxsDdQHWde8\nlFkIxs35Cotd9TH7cVsZQpTqcjKwy3Yp9gadjM7xDS5Bq7b8ta3ok90emCEN\nCctgQJ9LcgI1xoVtMdjzZdclBXDgv5L/fy2ErC1W9CL//qUBo7s5VChSPL8L\nYNN53Pa/wKNnQZyVofltr22+kJLyDVVbIpDFEoEVtKwsKF3vBAHvLSPCLUeN\nzQ6PTeccTeBNcraQuWO6/VnBwl8K2FOQxSPd+HQMLqJ1SJgkaVlHdpS/4yEZ\nuzTUTTJwjOhQ/p0FrUoicMs2VW/droVtTngfDyn5AaTzvFSRsYyUyCAbRhrF\n/1LOovQq6P6cKVJnsdvh/xEtNhkZ/uk8xZn+vaNz/E/aX57HdrOP+CCGoSiw\nzRtZNFVvFjTe+9JU3a7kE+p4lXwSntNPoZeA200075LDIvZLG+FcIexbvHh0\nDcwDYx0pmA7PnbKvLYdLJgewjNXQ+H/akpbHdrM9BHeY/lPQb2H0oX2qxMW9\nLPEgpjqcNf+DnqoaAPvtX9fheZF7p1qjKKAkeeLxcDU00wn85WWuaVxfoCpr\n4ksNtXLc9gxu/Pl8sAkLvbHgH4k7mVsNMw+a0fIW501NlMKwCK96wTnQHVrQ\n1JIM\r\n=pxpb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e519e176b85e5d4a2cb0288a48d982fa56e39b1c","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive"},"_npmUser":{"name":"jdaly","email":"jeremy@jeremydaly.com"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"6.14.2","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"12.14.1","dependencies":{"mysql":"^2.18.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.11","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.4_1585599020031_0.850363960867129","host":"s3://npm-registry-packages"}},"1.5.5":{"name":"serverless-mysql","version":"1.5.5","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@1.5.5","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"adf11fe0a6aa7f45e6d0d6e1834e4476abdcd57a","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-1.5.5.tgz","fileCount":5,"integrity":"sha512-QwaCtswn3GKCnqyVA0whwDFMIw91iKTeTvf6F++HoGiunfyvfJ2MdU8d3MKMQdKGNOXIvmUlLq/JVjxuPQxkrw==","signatures":[{"sig":"MEYCIQDV07b514VQfZWLsAG0YHJkrHQ00QS8x6FJI8F3eFbEpAIhAP1PaDtAsndeFslzudMPZExHkfIXZ8z2KGWUzqPpnLeq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkMWP2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpW2g//WFde5IVBu0qVLTZDHJEZvfBDgKc4L+QK8j4BtPY7WQNY3y0l\r\nmy7HOBzY68BKseH8hggldvNzEYnsfX5BWFqIkMwe4NGunlsG9o54YcWvHRhH\r\nxZcsXvZsqAEFWVjVS03GibYt6EzpoFuHKdgeFa1q4uPVKywqi4qnyXhSQDji\r\n+082v8+T/Nb0C50ucOoXF4lbjTFRAoVI6ZchBlxUQDEtNqe5Wxk94AEtGnoU\r\nOQqJs9aWEQCRttiO6hdqMGR+Y7liJblKhOWLL7KH78YssXiNk8nXRh9csXkY\r\nTC+FSMJoTDwbjc7fGlvKTIHx2ZffnADj2Uaf+T5XCYFLZj/Q0uAkK1YaQIyw\r\nQ5/+tgew//WaJW1pXceCTPYVaHXK8UbzHVUWasfg0IJ1jWMH+PAYzmGIupO1\r\n1OV8S27Q4PiK/cniTrHDgmLP9rfTpTH385MK2nMf/6i81Ep42chxkJtTV0q0\r\n90RaI6Mw83kxFogG/+78yvGKLgT+aQjkhn70+1LEPJ39lFPDfqfsE0XuijZH\r\nzaHfX7kpkYIz4oTTgBCVcPj1SJJpztriP9TRx+qWZQGxSO/VS3La4StO254s\r\nad9NRjTSYRcDoQxsPLYQuOCoOZ2grx3Zim0bag2SGqxyWzOmhL1qUIq/tOnr\r\nQM51PTKZiMZnMdVvj8wcCy1RjaFYnBj/o0Y=\r\n=stky\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"1c6d4161768d46b488515e850935b639d8d9d255","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive","prepublishOnly":"npm run lint && npm run test"},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"9.4.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"mysql":"^2.18.1","@types/mysql":"^2.15.6"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^4.0.1","coveralls":"^3.0.11","mocha-lcov-reporter":"^1.3.0"},"optionalDependencies":{"@types/mysql":"^2.15.6"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_1.5.5_1680958454677_0.8155218777437248","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"serverless-mysql","version":"2.0.0","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@2.0.0","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"5a6a513ee9af06e8054e21cf501dff36542a04a6","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-2.0.0.tgz","fileCount":5,"integrity":"sha512-FLXyTCEVYJExFZOIUuAovkxJxy47YusGL4kS6U12LjGME0tjPeeV5YCrXCO7482CRmjoS0x0v45ITsVNYZWAxA==","signatures":[{"sig":"MEUCIDWHwtbSX6Tocpx5eYtGwEQRka47ZxL59x3kiGVUfRW7AiEAkmfmGn7VU4M1MZQSRYIdQ2QKw/KT4AZHHX+geNOf88Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38691},"main":"index.js","types":"index.d.ts","gitHead":"a0a9c0e4991d9a6918daca8699d7f8a5f5f1c2d3","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive","test-ci":"nyc npm test && nyc report --reporter=text-lcov | ./node_modules/coveralls/bin/coveralls.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive","prepublishOnly":"npm run lint && npm run test"},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"9.4.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"16.15.1","dependencies":{"mysql2":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^14.1.1","chai":"^4.2.0","mocha":"^5.2.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^7.0.0","coveralls":"^3.0.11","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_2.0.0_1735720034519_0.2511052923088093","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"serverless-mysql","version":"2.0.1","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","_id":"serverless-mysql@2.0.1","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"dist":{"shasum":"05b4ba6761530f477f6db2fda0990b8738b05f2e","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-2.0.1.tgz","fileCount":6,"integrity":"sha512-W6WT5Z55ThhSDdu+WwYS0aaIf9MUx7DS08c6aWcFw1cfSONzG7TnUlef2rWC4y1eQkNc3q8m5QovhTHQ6K3utQ==","signatures":[{"sig":"MEUCIB4geB6+L6kCmLSeZVlLfj5ND3ikax6JxwT3SZLk+MUYAiEAk7ji/S3GK6HoJXXxjY3JsAcZFhmukSYNKSSIhVBvf2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45022},"main":"index.js","types":"index.d.ts","gitHead":"70f10c7b8fdedc6fda6957f24a8dcc92b7b37d39","scripts":{"lint":"eslint .","test":"mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test-cov":"nyc --reporter=html mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test:unit":"mocha --check-leaks --recursive test/unit/*.spec.js","test:debug":"NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test:docker":"./scripts/run-all-tests.sh","prepublishOnly":"npm run lint && npm run test:docker","test-cov:debug":"NODE_DEBUG=mysql,net,stream nyc --reporter=html mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test:unit:debug":"NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/unit/*.spec.js","test:integration":"mocha --check-leaks --recursive test/integration/*.spec.js","test:docker:debug":"./scripts/run-all-tests.sh debug","test:integration:debug":"NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/integration/*.spec.js","test:integration:docker":"./scripts/run-integration-tests.sh","test:integration:docker:debug":"./scripts/run-integration-tests.sh debug"},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"repository":{"url":"git+https://github.com/jeremydaly/serverless-mysql.git","type":"git"},"_npmVersion":"10.7.0","description":"A module for managing MySQL connections at serverless scale.","directories":{},"_nodeVersion":"22.2.0","dependencies":{"mysql2":"^3.12.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","chai":"^4.2.0","mocha":"^11.1.0","sinon":"^6.3.5","eslint":"^5.16.0","rewire":"^7.0.0","coveralls":"^3.0.11","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-mysql_2.0.1_1740827919853_0.8132493571380477","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"serverless-mysql","version":"2.1.0","description":"A module for managing MySQL connections at serverless scale.","main":"index.js","types":"index.d.ts","scripts":{"test:unit":"TZ=UTC mocha --check-leaks --recursive test/unit/*.spec.js","test:unit:debug":"TZ=UTC NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/unit/*.spec.js","test:integration":"TZ=UTC mocha --check-leaks --recursive test/integration/*.spec.js","test:integration:debug":"TZ=UTC NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/integration/*.spec.js","test:integration:docker":"./scripts/run-integration-tests.sh","test:integration:docker:debug":"./scripts/run-integration-tests.sh debug","test:docker":"./scripts/run-all-tests.sh","test:docker:debug":"./scripts/run-all-tests.sh debug","test":"TZ=UTC mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test:debug":"TZ=UTC NODE_DEBUG=mysql,net,stream mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test-cov":"TZ=UTC nyc --reporter=html mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","test-cov:debug":"TZ=UTC NODE_DEBUG=mysql,net,stream nyc --reporter=html mocha --check-leaks --recursive test/{unit,integration}/*.spec.js","lint":"eslint .","prepublishOnly":"npm run lint && npm run test:docker"},"repository":{"type":"git","url":"git+https://github.com/jeremydaly/serverless-mysql.git"},"keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"license":"MIT","bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"homepage":"https://github.com/jeremydaly/serverless-mysql#readme","devDependencies":{"chai":"^4.2.0","coveralls":"^3.0.11","eslint":"^5.16.0","mocha":"^11.1.0","mocha-lcov-reporter":"^1.3.0","nyc":"^17.1.0","rewire":"^7.0.0","sinon":"^6.3.5"},"dependencies":{"mysql2":"^3.12.0"},"_id":"serverless-mysql@2.1.0","gitHead":"381739e950eae8fe726c535e09abd5bb2f359d18","_nodeVersion":"22.2.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-EwSn5uYe4u64kWiRRAJkk2XIF+qPC3xKc92efMhYTbwSqnJ69v8Bx1LY5po0wuJff8QLxu3VAURNiEbQXiftgA==","shasum":"bfbe226b47b20377043ce12986048cbc7263c445","tarball":"https://registry.npmjs.org/serverless-mysql/-/serverless-mysql-2.1.0.tgz","fileCount":6,"unpackedSize":55056,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB48bWGp41wqQ7Yk/v84Uisr9cSmHoyTAIXS4u0U/K1vAiALHmZcraY460uGCbyTPgPVc7/lPFNngJXy6sD9cibabw=="}]},"_npmUser":{"name":"naorpeled","email":"me@naor.dev"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/serverless-mysql_2.1.0_1740836663886_0.062312803465566446"},"_hasShrinkwrap":false}},"time":{"created":"2018-08-25T17:46:27.451Z","modified":"2025-03-01T13:44:24.238Z","0.0.0":"2018-08-25T17:46:27.551Z","1.0.0":"2018-09-03T01:25:16.225Z","1.1.0":"2018-09-08T21:06:16.695Z","1.2.0":"2018-12-07T23:49:50.659Z","1.2.1":"2019-02-18T17:53:23.258Z","1.3.0":"2019-04-24T21:01:31.029Z","1.4.0":"2019-05-24T22:05:27.210Z","1.5.0":"2019-07-17T15:27:38.904Z","1.5.1":"2019-08-28T13:13:53.491Z","1.5.2":"2019-12-14T21:20:51.202Z","1.5.3":"2020-01-31T20:12:02.167Z","1.5.4":"2020-03-30T20:10:20.308Z","1.5.5":"2023-04-08T12:54:14.883Z","2.0.0":"2025-01-01T08:27:14.754Z","2.0.1":"2025-03-01T11:18:40.040Z","2.1.0":"2025-03-01T13:44:24.079Z"},"bugs":{"url":"https://github.com/jeremydaly/serverless-mysql/issues"},"author":{"name":"Jeremy Daly","email":"jeremy@jeremydaly.com"},"license":"MIT","homepage":"https://github.com/jeremydaly/serverless-mysql#readme","keywords":["serverless","mysql","max_connections","scalability","rds","aurora serverless","aurora"],"repository":{"type":"git","url":"git+https://github.com/jeremydaly/serverless-mysql.git"},"description":"A module for managing MySQL connections at serverless scale.","maintainers":[{"name":"jdaly","email":"jeremy@jeremydaly.com"},{"name":"naorpeled","email":"me@naor.dev"}],"readme":"[![Serverless MySQL](https://user-images.githubusercontent.com/2053544/79284452-ac531700-7e88-11ea-8970-81e3e649e00a.png)](https://github.com/jeremydaly/serverless-mysql/)\n\n[![npm](https://img.shields.io/npm/v/serverless-mysql.svg)](https://www.npmjs.com/package/serverless-mysql)\n[![npm](https://img.shields.io/npm/l/serverless-mysql.svg)](https://www.npmjs.com/package/serverless-mysql)\n\n### A module for managing MySQL connections at *serverless* scale.\n\nServerless MySQL is a wrapper for Doug Wilson's amazing **[mysql2](https://github.com/mysqljs/mysql2)** Node.js module. Normally, using the `mysql2` module with Node apps would be just fine. However, serverless functions (like AWS Lambda, Google Cloud Functions, and Azure Functions) scale almost infinitely by creating separate instances for each concurrent user. This is a **MAJOR PROBLEM** for RDBS solutions like MySQL, because available connections can be quickly maxed out by competing functions. Not anymore. 😀\n\nServerless MySQL adds a connection management component to the `mysql2` module that is designed specifically for use with serverless applications. This module constantly monitors the number of connections being utilized, and then based on your settings, manages those connections to allow thousands of concurrent executions to share them. It will clean up zombies, enforce connection limits per user, and retry connections using trusted backoff algorithms.\n\nIn addition, Serverless MySQL also adds modern `async/await` support to the `mysql2` module, eliminating callback hell or the need to wrap calls in promises. It also dramatically simplifies **transactions**, giving you a simple and consistent pattern to handle common workflows.\n\n**NOTE:** This module *should* work with any standards-based MySQL server. It has been tested with AWS's RDS MySQL, Aurora MySQL, and Aurora Serverless.\n\n## Simple Example\n\n```javascript\n// Require and initialize outside of your main handler\nconst mysql = require('serverless-mysql')({\n  config: {\n    host     : process.env.ENDPOINT,\n    database : process.env.DATABASE,\n    user     : process.env.USERNAME,\n    password : process.env.PASSWORD\n  }\n})\n\n// Main handler function\nexports.handler = async (event, context) => {\n  // Run your query\n  let results = await mysql.query('SELECT * FROM table')\n\n  // Run clean up function\n  await mysql.end()\n\n  // Return the results\n  return results\n}\n```\n\n## Logging SQL Queries\n\nYou can enable logging of the final SQL query (with all parameter values substituted) by setting the `returnFinalSqlQuery` option to `true`:\n\n```javascript\n// Require and initialize outside of your main handler\nconst mysql = require('serverless-mysql')({\n  config: {\n    host     : process.env.ENDPOINT,\n    database : process.env.DATABASE,\n    user     : process.env.USERNAME,\n    password : process.env.PASSWORD\n  },\n  returnFinalSqlQuery: true // Enable SQL query logging\n})\n\n// Main handler function\nexports.handler = async (event, context) => {\n  // Run your query with parameters\n  const results = await mysql.query('SELECT * FROM users WHERE id = ?', [userId])\n  \n  // Access the SQL query with substituted values\n  console.log('Executed query:', results.sql)\n  \n  // Run clean up function\n  await mysql.end()\n\n  // Return the results\n  return results\n}\n```\n\nWhen `returnFinalSqlQuery` is enabled, the SQL query with substituted values is also attached to error objects when a query fails, making it easier to debug:\n\n```javascript\ntry {\n  const results = await mysql.query('SELECT * FROM nonexistent_table')\n} catch (error) {\n  // The error object will have the SQL property\n  console.error('Failed query:', error.sql)\n  console.error('Error message:', error.message)\n}\n```\n\n## Installation\n```\nnpm i serverless-mysql\n```\n\n## Requirements\n- Node 8.10+\n- MySQL server/cluster\n\n## Considerations for this module\n- Return promises for easy async request handling\n- Exponential backoff (using [Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)) to handle failed connections\n- Monitor active connections and disconnect if more than X% of connections are being used\n- Support transactions\n- Support JIT connections\n- Assume AWS endorsed best practices from [here](https://github.com/aws-samples/aws-appsync-rds-aurora-sample/blob/master/src/lamdaresolver/index.js)\n\n## How to use this module\nServerless MySQL wraps the **[mysql](https://github.com/mysqljs/mysql)** module, so this module supports pretty much everything that the `mysql2` module does. It uses all the same [connection options](https://github.com/mysqljs/mysql#connection-options), provides a `query()` method that accepts the same arguments when [performing queries](https://github.com/mysqljs/mysql#performing-queries) (except the callback), and passes back the query results exactly as the `mysql2` module returns them. There are a few things that don't make sense in serverless environments, like streaming rows, so there is no support for that yet.\n\nTo use Serverless MySQL, require it **OUTSIDE** your main function handler. This will allow for connection reuse between executions. The module must be initialized before its methods are available. [Configuration options](#configuration-options) must be passed in during initialization.\n\n```javascript\n// Require and initialize with default options\nconst mysql = require('serverless-mysql')() // <-- initialize with function call\n\n// OR include configuration options\nconst mysql = require('serverless-mysql')({\n  backoff: 'decorrelated',\n  base: 5,\n  cap: 200\n})\n```\n\nMySQL [connection options](https://github.com/mysqljs/mysql#connection-options) can be passed in at initialization or later using the `config()` method.\n\n```javascript\nmysql.config({\n  host     : process.env.ENDPOINT,\n  database : process.env.DATABASE,\n  user     : process.env.USERNAME,\n  password : process.env.PASSWORD\n})\n```\n\nYou can explicitly establish a connection using the `connect()` method if you want to, though it isn't necessary. This method returns a promise, so you'll need to `await` the response or wrap it in a promise chain.\n\n```javascript\nawait mysql.connect()\n```\n\nRunning queries is super simple using the `query()` method. It supports all [query options](https://github.com/mysqljs/mysql#performing-queries) supported by the `mysql2` module, but returns a promise instead of using the standard callbacks. You either need to `await` them or wrap them in a promise chain.\n\n```javascript\n// Simple query\nlet results = await query('SELECT * FROM table')\n\n// Query with placeholder values\nlet results = await query('SELECT * FROM table WHERE name = ?', ['serverless'])\n\n// Query with advanced options\nlet results = await query({\n  sql: 'SELECT * FROM table WHERE name = ?',\n  timeout: 10000,\n  values: ['serverless']\n})\n```\n\nOnce you've run all your queries and your serverless function is ready to return data, call the `end()` method to perform connection management. This will do things like check the current number of connections, clean up zombies, or even disconnect if there are too many connections being used. Be sure to `await` its results before continuing.\n\n```javascript\n// Perform connection management tasks\nawait mysql.end()\n```\n\nNote that `end()` will **NOT** necessarily terminate the connection. Only if it has to to manage the connections. If you'd like to explicitly terminate connections, use the `quit()` method.\n\n```javascript\n// Gracefully terminate the connection\nmysql.quit()\n```\n\nIf you need access to the `connection` object, you can use the `getClient()` method. This will allow you to use any supported feature of the `mysql2` module directly.\n\n```javascript\n// Connect to your MySQL instance first\nawait mysql.connect()\n// Get the connection object\nlet connection = mysql.getClient()\n\n// Use it to escape a value\nlet value = connection.escape('Some value to be escaped')\n```\n\nYou can change the user of an existing connection using the `changeUser()` method. This is useful when you need to switch to a different MySQL user with different permissions.\n\n```javascript\n// Change to a different user\nawait mysql.changeUser({\n  user: 'newuser',\n  password: 'newpassword'\n})\n\n// Now queries will be executed as the new user\nlet results = await mysql.query('SELECT * FROM restricted_table')\n```\n\nYou can also use the `changeUser()` method to change the current database, which is equivalent to the `USE DATABASE` SQL statement:\n\n```javascript\n// Change to a different database\nawait mysql.changeUser({\n  database: 'new_database'  // Change the database only\n})\n\n// Now queries will be executed against the new database\nlet results = await mysql.query('SELECT * FROM new_database_table')\n```\n\nAlternatively, you can use the standard SQL `USE DATABASE` statement with the `query()` method:\n\n```javascript\n// Change to a different database using SQL\nawait mysql.query('USE new_database')\n\n// Now queries will be executed against the new database\nlet results = await mysql.query('SELECT * FROM new_database_table')\n```\n\n## Configuration Options\n\nThere are two ways to provide a configuration.\n\nThe one way is using a connection string at initialization time.\n\n```javascript\nconst mysql = require('serverless-mysql')(`mysql://${process.env.USERNAME}:${process.env.PASSWORD}@${process.env.ENDPOINT}:${process.env.PORT}/${process.env.DATABASE}`)\n```\n\nThe other way is to pass in the options defined in the below table.\n\nBelow is a table containing all of the possible configuration options for `serverless-mysql`. Additional details are provided throughout the documentation.\n\n| Property | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| library | `Function` | Custom mysql library | `require('mysql2')` |\n| promise | `Function` | Custom promise library | `Promise` |\n| backoff | `String` or `Function` | Backoff algorithm to be used when retrying connections. Possible values are `full` and `decorrelated`, or you can also specify your own algorithm. See [Connection Backoff](#connection-backoff) for more information.  | `full` |\n| base | `Integer` | Number of milliseconds added to random backoff values. | `2` |\n| cap | `Integer` | Maximum number of milliseconds between connection retries. | `100` |\n| config | `Object` | A `mysql2` configuration object as defined [here](https://github.com/mysqljs/mysql#connection-options) | `{}` |\n| connUtilization | `Number` | The percentage of total connections to use when connecting to your MySQL server. A value of `0.75` would use 75% of your total available connections. | `0.8` |\n| manageConns | `Boolean` | Flag indicating whether or not you want `serverless-mysql` to manage MySQL connections for you. | `true` |\n| maxConnsFreq | `Integer` | The number of milliseconds to cache lookups of @@max_connections. | `15000` |\n| maxRetries | `Integer` | Maximum number of times to retry a connection before throwing an error. | `50` |\n| onError | `function` | [Event](#events) callback when the MySQL connection fires an error. | |\n| onClose | `function` | [Event](#events) callback when MySQL connections are explicitly closed. | |\n| onConnect | `function` | [Event](#events) callback when connections are succesfully established. | |\n| onConnectError | `function` | [Event](#events) callback when connection fails. | |\n| onKill | `function` | [Event](#events) callback when connections are explicitly killed. | |\n| onKillError | `function` | [Event](#events) callback when a connection cannot be killed. | |\n| onRetry | `function` | [Event](#events) callback when connections are retried. | |\n| usedConnsFreq | `Integer` | The number of milliseconds to cache lookups of current connection usage. | `0` |\n| zombieMaxTimeout | `Integer` | The maximum number of seconds that a connection can stay idle before being recycled. | `900` |\n| zombieMinTimeout | `Integer` | The minimum number of *seconds* that a connection must be idle before the module will recycle it. | `3` |\n| returnFinalSqlQuery | `Boolean` | Flag indicating whether to attach the final SQL query (with substituted values) to the results. When enabled, the SQL query will be available as a non-enumerable `sql` property on array results or as a regular property on object results. | `false` |\n| maxQueryRetries | `Integer` | Maximum number of times to retry a query before giving up. | `0` |\n| queryRetryBackoff | `String` or `Function` | Backoff algorithm to be used when retrying queries. Possible values are `full` and `decorrelated`, or you can also specify your own algorithm. See [Connection Backoff](#connection-backoff) for more information. | `full` |\n| onQueryRetry | `function` | [Event](#events) callback when queries are retried. | |\n\n### Connection Backoff\nIf `manageConns` is not set to `false`, then this module will automatically kill idle connections or disconnect the current connection if the `connUtilization` limit is reached. Even with this aggressive strategy, it is possible that multiple functions will be competing for available connections. The `backoff` setting uses the strategy outlined [here](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) to use *Jitter* instead of *Exponential Backoff* when attempting connection retries.\n\nThe two supported methods are `full` and `decorrelated` Jitter. Both are effective in reducing server strain and minimize retries. The module defaults to `full`.\n\n**Full Jitter:** LESS work, MORE time\n```javascript\nsleep = random_between(0, min(cap, base * 2 ** attempts))\n```\n\n**Decorrelated Jitter:** MORE work, LESS time\n```javascript\nsleep = min(cap, random_between(base, sleep * 3))\n```\n\nIn addition to the two built-in algorithms, you can also provide your own by setting the value of `backoff` to an anonymous function. The function will receive the last `wait` value (how long the previous connection delay was) and `retries` (the number of retries attempted). Your function must return an `Integer` that represents the number of milliseconds to delay the next retry.\n\n```javascript\nbackoff: (wait,retries) => {\n  console.log('CUSTOM BACKOFF',wait,retries)\n  return 20 // return integer\n}\n```\n\n## Custom libraries\n\nSet your own promise library\n```javascript\npromise: require('bluebird')\n```\n\nSet your own mysql library, wrapped with AWS x-ray for instance\n```javascript\nlibrary: require('aws-sdk-xray-node')(require('mysql2'));\n```\n\n### Consideration when using TypeScript\nCurrently, our type definitions rely on the `mysql2` module.\nIn order to use a custom library, you will need to do something along the following snippet:\n\n```typescript\nimport * as serverlessMysql from 'serverless-mysql';\nimport * as mysql2 from 'mysql2';\n\nconst slsMysql = serverlessMysql({\n  library: mysql2 as any\n})\n\n// OR\n\nconst slsMysql = serverlessMysql({\n  // @ts-ignore\n  library: mysql2\n})\n```\n\n## Events\nThe module fires seven different types of events: `onConnect`, `onConnectError`, `onRetry`, `onClose`, `onError`, `onKill`, and `onKillError`. These are *reporting* events that allow you to add logging or perform additional actions. You could use these events to short-circuit your handler execution, but using `catch` blocks is preferred. For example, `onError` and `onKillError` are not fatal and will be handled by `serverless-mysql`. Therefore, they will **NOT** `throw` an error and trigger a `catch` block.\n\nError events (`onConnectError`, `onError` and `onKillError`) all receive one argument containing the `mysql2` module error object.\n\n```javascript\nonConnectError: (e) => { console.log('Connect Error: ' + e.code) }\n```\n\nThe `onConnect` event recieves the MySQL `connection` object, `onKill` receives the `threadId` of the connection killed, and `onClose` doesn't receive any arguments.\n\n`onRetry` receives *four* arguments. The `error` object, the number of `retries`, the `delay` until the next retry, and the `backoff` algorithm used (`full`, `decorrelated` or `custom`).\n\n```javascript\nonRetry: (err,retries,delay,type) => { console.log('RETRY') }\n```\n\n`onQueryRetry` also receives *four* arguments. The `error` object, the number of `retries`, the `delay` until the next retry, and the `backoff` algorithm used (`full`, `decorrelated` or `custom`).\n\n```javascript\nonQueryRetry: (err,retries,delay,type) => { console.log('QUERY RETRY') }\n```\n\n## MySQL Server Configuration\nThere really isn't anything special that needs to be done in order for your MySQL server (including RDS, Aurora, and Aurora Serverless) to use `serverless-mysql`. You should just be aware of the following two scenarios.\n\nIf you set max `user_connections`, the module will only manage connections for that user. This is useful if you have multiple clients connecting to the same MySQL server (or cluster) and you want to make sure your serverless app doesn't use all of the available connections.\n\nIf you're not setting max `user_connections`, the user **MUST BE** granted the `PROCESS` privilege in order to count other connections. Otherwise it will assume that its connections are the only ones being used. Granting `PROCESS` is fairly safe as it is a *read only* permission and doesn't expose any sensitive data.\n\n## Query Timeouts\nThe `mysql2` module allows you to specify a \"[timeout](https://github.com/mysqljs/mysql#timeouts)\" with each query. Typically this will disconnect the connection and prevent you from running additional queries. `serverless-mysql` handles timeouts a bit more elegantly by throwing an error and `destroy()`ing the connection. This will reset the connection completely, allowing you to run additional queries **AFTER** you catch the error.\n\n## Transaction Support\nTransaction support in `serverless-mysql` has been dramatically simplified. Start a new transaction using the `transaction()` method, and then chain queries using the `query()` method. The `query()` method supports all standard query options. Alternatively, you can specify a function as the only argument in a `query()` method call and return the arguments as an array of values. The function receives two arguments, the result of the last query executed and an array containing all the previous query results. This is useful if you need values from a previous query as part of your transaction.\n\nYou can specify an optional `rollback()` method in the chain. This will receive the `error` object, allowing you to add additional logging or perform some other action. Call the `commit()` method when you are ready to execute the queries.\n\n```javascript\nlet results = await mysql.transaction()\n  .query('INSERT INTO table (x) VALUES(?)', [1])\n  .query('UPDATE table SET x = 1')\n  .rollback(e => { /* do something with the error */ }) // optional\n  .commit() // execute the queries\n```\n\nWith a function to get the `insertId` from the previous query:\n\n```javascript\nlet results = await mysql.transaction()\n  .query('INSERT INTO table (x) VALUES(?)', [1])\n  .query((r) => ['UPDATE table SET x = 1 WHERE id = ?', r.insertId])\n  .rollback(e => { /* do something with the error */ }) // optional\n  .commit() // execute the queries\n```\n\nYou can also return a `null` or empty response from `.query()` calls within a transaction. This lets you perform conditional transactions like this:\n\n```javascript\nlet results = await mysql.transaction()\n  .query('DELETE FROM table WHERE id = ?', [someVar])\n  .query((r) => {\n    if (r.affectedRows > 0) {\n      return ['UPDATE anotherTable SET x = 1 WHERE id = ?', [someVar]]\n    } else {\n      return null\n    }\n  })\n  .rollback(e => { /* do something with the error */ }) // optional\n  .commit() // execute the queries\n```\n\nIf the record to `DELETE` doesn't exist, the `UPDATE` will not be performed. If the `UPDATE` fails, the `DELETE` will be rolled back.\n\n**NOTE:** Transaction support is designed for InnoDB tables (default). Other table types may not behave as expected.\n\n## Reusing Persistent Connections\nIf you're using AWS Lambda with **callbacks**, be sure to set `context.callbackWaitsForEmptyEventLoop = false;` in your main handler. This will allow the freezing of connections and will prevent Lambda from hanging on open connections. See [here](https://www.jeremydaly.com/reuse-database-connections-aws-lambda/) for more information. If you are using `async` functions, this is no longer necessary.\n\n## Tests\nI've run *a lot* of tests using a number of different configurations. Ramp ups appear to work best, but once there are several warm containers, the response times are much better. Below is an example test I ran using AWS Lambda and Aurora Serverless. Aurora Serverless was configured with *2 ACUs* (and it didn't autoscale), so there were only **90 connections** available to the MySQL cluster. The Lambda function was configured with 1,024 MB of memory. This test simulated **500 users** per second for one minute. Each user ran a sample query retrieving a few rows from a table.\n\nFrom the graph below you can see that the average response time was **41 ms** (min 20 ms, max 3743 ms) with **ZERO** errors.\n\n![Serverless MySQL test - 500 connections per second w/ 90 connections available](https://www.jeremydaly.com/wp-content/uploads/2018/09/serverless-mysql-test-500users-90-connections.png)\n\nOther tests that use larger configurations were extremely successful too, but I'd appreciate other independent tests to verify my assumptions.\n\n## Contributions\nContributions, ideas and bug reports are welcome and greatly appreciated. Please add [issues](https://github.com/jeremydaly/serverless-mysql/issues) for suggestions and bug reports or create a pull request.\n\n## Query Retries\nThe module supports automatic retries for transient query errors. When a query fails with a retryable error (such as deadlocks, timeouts, or connection issues), the module will automatically retry the query using the configured backoff strategy.\n\nBy default, query retries are disabled (maxQueryRetries = 0) for backward compatibility with previous versions. To enable this feature, set `maxQueryRetries` to a value greater than 0.\n\nYou can configure the maximum number of retries with the `maxQueryRetries` option (default: 0) and the backoff strategy with the `queryRetryBackoff` option (default: 'full'). The module will use the same backoff algorithms as for connection retries.\n\n```javascript\nconst mysql = require('serverless-mysql')({\n  config: {\n    host: process.env.ENDPOINT,\n    database: process.env.DATABASE,\n    user: process.env.USERNAME,\n    password: process.env.PASSWORD\n  },\n  maxQueryRetries: 5, // Enable query retries with 5 maximum attempts\n  queryRetryBackoff: 'decorrelated',\n  onQueryRetry: (err, retries, delay, type) => {\n    console.log(`Retrying query after error: ${err.code}, attempt: ${retries}, delay: ${delay}ms`)\n  }\n})\n```","readmeFilename":"README.md"}