diff --git a/index.js b/index.js index b285018..5226de2 100644 --- a/index.js +++ b/index.js @@ -148,7 +148,7 @@ module.exports = { let redisDeployClient = this.readConfig('redisDeployClient'); let keyPrefix = this.readConfig('keyPrefix'); - this.log(`Listing initial revisions for key: \`${keyPrefix}\``, { verbose: true }); + this.log(`Fetching initial revisions for key: \`${keyPrefix}\``, { verbose: true }); try { let initialRevisions = await redisDeployClient.fetchRevisions(keyPrefix); return { @@ -163,8 +163,7 @@ module.exports = { async fetchRevisions(/* context */) { let redisDeployClient = this.readConfig('redisDeployClient'); let keyPrefix = this.readConfig('keyPrefix'); - - this.log(`Listing revisions for key: \`${keyPrefix}\``); + this.log(`Fetching revisions for key: \`${keyPrefix}\``, { verbose: true }); try { let revisions = await redisDeployClient.fetchRevisions(keyPrefix); return { diff --git a/lib/redis.js b/lib/redis.js index e3913d7..450d090 100644 --- a/lib/redis.js +++ b/lib/redis.js @@ -31,8 +31,8 @@ module.exports = CoreObject.extend({ this._client = new RedisLib(redisOptions); - this._maxRecentUploads = options.maxRecentUploads; - this._allowOverwrite = options.allowOverwrite; + this._maxRecentUploads = options.maxRecentUploads || 10; + this._allowOverwrite = options.allowOverwrite || false; this._activationSuffix = options.activationSuffix || 'current'; }, @@ -63,24 +63,22 @@ module.exports = CoreObject.extend({ async fetchRevisions(keyPrefix) { let revisions = await this._listRevisions(keyPrefix); - let results = await RSVP.hash({ - current: this.activeRevision(keyPrefix), - revisionData: this._revisionData(keyPrefix, revisions) - }); + let current = await this.activeRevision(keyPrefix); + let revisionData = await this._revisionData(keyPrefix, revisions); return revisions.map(function(revision, i) { let hash = { revision: revision, - active: revision === results.current, + active: revision === current, }; - if (results.revisionData) { - hash.revisionData = results.revisionData[i]; + if (revisionData) { + hash.revisionData = revisionData[i]; } return hash; }); }, activeRevision(keyPrefix) { - var currentKey = keyPrefix + ':' + this._activationSuffix; + let currentKey = keyPrefix + ':' + this._activationSuffix; return this._client.get(currentKey); }, @@ -90,7 +88,7 @@ module.exports = CoreObject.extend({ } let dataKeys = revisions.map((rev) => `${keyPrefix}:revision-data:${rev}`); - let data = this._client.mget(dataKeys); + let data = await this._client.mget(dataKeys); if (!data) { return; } @@ -161,17 +159,17 @@ module.exports = CoreObject.extend({ let client = this._client; let listKey = `${keyPrefix}:revisions`; - let results = await RSVP.hash({ - revisionsToBeRemoved: client.zrange(listKey, 0, -(maxEntries + 1)), - current: this.activeRevision(keyPrefix) - }); - let revisions = results.revisionsToBeRemoved; - let current = results.current; - if (!revisions) { + let revisionCount = await client.zcard(listKey); + let revisionsToBeRemoved; + if (revisionCount > maxEntries) { + revisionsToBeRemoved = await client.zrange(listKey, 0, revisionCount - maxEntries - 1); + } + if (!revisionsToBeRemoved) { return; } + let current = await this.activeRevision(keyPrefix); let promises = []; - revisions.forEach(function(revision) { + revisionsToBeRemoved.forEach(function(revision) { if (revision !== current) { promises.push(client.del(`${keyPrefix}:${revision}`)); promises.push(client.del(`${keyPrefix}:revision-data:${revision}`)); diff --git a/package.json b/package.json index d8a983f..41ca3d3 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "chalk": "^4.0.0", "core-object": "^3.1.5", "ember-cli-deploy-plugin": "^0.2.9", - "ioredis": "^3.2.2", + "ioredis": "^4.17.0", "rsvp": "^4.8.5" }, "devDependencies": { @@ -29,8 +29,8 @@ "chai-as-promised": "^7.1.1", "ember-cli": "^3.18.0", "eslint": "^7.0.0", - "ioredis-mock": "^3.14.0", "glob": "^7.1.6", + "ioredis-mock": "^4.19.0", "mocha": "^7.1.2", "release-it": "*", "sinon": "^9.0.2" diff --git a/tests/unit/lib/redis-test.js b/tests/unit/lib/redis-test.js index cc26cc6..7bd8a74 100644 --- a/tests/unit/lib/redis-test.js +++ b/tests/unit/lib/redis-test.js @@ -51,13 +51,13 @@ describe('redis', function () { maxRecentUploads: 2 }, IoredisMock); - await redis.upload('key', 1, '1value'); - await redis.upload('key', 2, '2value'); - await redis.upload('key', 3, '3value'); - let values = await redis._client.mget('key:1', 'key:revision-data:1') - assert.equal(values.filter(Boolean).length, 0, 'Expected key:1 and key:revision-data:1 to be deleted.'); - let value = await redis._client.zrange('key:revisions', 0, -1); - assert.deepEqual(value, ['2', '3']); + await redis.upload('key', 1, '1value'); + await redis.upload('key', 2, '2value'); + await redis.upload('key', 3, '3value'); + let values = await redis._client.mget('key:1', 'key:revision-data:1') + assert.equal(values.filter(Boolean).length, 0, 'Expected key:1 and key:revision-data:1 to be deleted.'); + let value = await redis._client.zrange('key:revisions', 0, -1); + assert.deepEqual(value, ['2', '3']); }); it('trims the list of recent uploads but leaves the active one', async function () { diff --git a/yarn.lock b/yarn.lock index 6e92d98..27dab16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -951,11 +951,6 @@ bluebird@^3.1.1, bluebird@^3.4.6: version "3.5.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" -bluebird@^3.3.4, bluebird@^3.5.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -1706,7 +1701,7 @@ clone@^2.1.2: resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= -cluster-key-slot@^1.0.6: +cluster-key-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== @@ -1991,7 +1986,7 @@ debug@2.6.3, debug@^2.1.0, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0: dependencies: ms "0.7.2" -debug@2.6.9, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.3.3, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -2901,6 +2896,20 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +fengari-interop@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/fengari-interop/-/fengari-interop-0.1.2.tgz#f7731dcdd2ff4449073fb7ac3c451a8841ce1e87" + integrity sha512-8iTvaByZVoi+lQJhHH9vC+c/Yaok9CwOqNQZN6JrVpjmWwW4dDkeblBXhnHC+BoI6eF4Cy5NKW3z6ICEjvgywQ== + +fengari@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/fengari/-/fengari-0.1.4.tgz#72416693cd9e43bd7d809d7829ddc0578b78b0bb" + integrity sha512-6ujqUuiIYmcgkGz8MGAdERU57EIluGGPSUgGPTsco657EHa+srq0S3/YUl/r9kx1+D+d4rGfYObd+m8K22gB1g== + dependencies: + readline-sync "^1.4.9" + sprintf-js "^1.1.1" + tmp "^0.0.33" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3043,11 +3052,6 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -flexbuffer@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz#039fdf23f8823e440c38f3277e6fef1174215b30" - integrity sha1-A5/fI/iCPkQMOPMnfm/vEXQhWzA= - follow-redirects@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" @@ -3893,47 +3897,35 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -ioredis-mock@^3.14.0: - version "3.14.3" - resolved "https://registry.yarnpkg.com/ioredis-mock/-/ioredis-mock-3.14.3.tgz#e74f916864b64ef94df16ac0389b6962e3ef1e19" - integrity sha512-745NAr/BQ8rTJwEWn8qMFa2tgQtA4YfpHG2B82kZ7Npzs43iFbODp9GiKOxOEMd8RowlPO2OcanJYcCffJqs2A== +ioredis-mock@^4.19.0: + version "4.19.0" + resolved "https://registry.yarnpkg.com/ioredis-mock/-/ioredis-mock-4.19.0.tgz#8bba94a2ed35687c296621bcf1e1ce65a4fc4463" + integrity sha512-dG35HhH5Mgrh4lYT9xYWSeX9Qd5hBT9f/xVM9p58Ey4sMqHIAd2jVfUlj1ql4+Ndn5mJLNxfwXkGZW4jSJj8Uw== dependencies: array-from "^2.1.1" - bluebird "^3.5.1" es6-map "^0.1.5" es6-set "^0.1.5" - lodash "^4.17.4" + fengari "^0.1.4" + fengari-interop "^0.1.2" + lodash "^4.17.15" minimatch "^3.0.4" object-assign "^4.1.1" + standard-as-callback "^2.0.1" -ioredis@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz#b7d5ff3afd77bb9718bb2821329b894b9a44c00b" - integrity sha512-g+ShTQYLsCcOUkNOK6CCEZbj3aRDVPw3WOwXk+LxlUKvuS9ujEqP2MppBHyRVYrNNFW/vcPaTBUZ2ctGNSiOCA== +ioredis@^4.17.0: + version "4.17.0" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.17.0.tgz#d0bf9f392e045d18c573c1495a86ca0be86bd627" + integrity sha512-RioyrvHu3HRmoq/jxKBLI0G/IjjVSJ/P3BDYaD3uuSyFrIEDndXdbdMOK7hwMvs0urElh5LItrJYY/YZwWc0UA== dependencies: - bluebird "^3.3.4" - cluster-key-slot "^1.0.6" - debug "^2.6.9" + cluster-key-slot "^1.1.0" + debug "^4.1.1" denque "^1.1.0" - flexbuffer "0.0.6" - lodash.assign "^4.2.0" - lodash.bind "^4.2.1" - lodash.clone "^4.5.0" - lodash.clonedeep "^4.5.0" lodash.defaults "^4.2.0" - lodash.difference "^4.5.0" lodash.flatten "^4.4.0" - lodash.foreach "^4.5.0" - lodash.isempty "^4.4.0" - lodash.keys "^4.2.0" - lodash.noop "^3.0.1" - lodash.partial "^4.2.1" - lodash.pick "^4.4.0" - lodash.sample "^4.2.1" - lodash.shuffle "^4.2.0" - lodash.values "^4.3.0" - redis-commands "^1.2.0" - redis-parser "^2.4.0" + redis-commands "1.5.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.0.1" ipaddr.js@1.3.0: version "1.3.0" @@ -4589,20 +4581,10 @@ lodash.assign@^3.2.0: lodash._createassigner "^3.0.0" lodash.keys "^3.0.0" -lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= - lodash.assignin@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" -lodash.bind@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" - integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= - lodash.bind@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-2.3.0.tgz#c2a8e18b68e5ecc152e2b168266116fea5b016cc" @@ -4615,11 +4597,6 @@ lodash.castarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" -lodash.clone@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - lodash.clonedeep@^4.4.1, lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4641,11 +4618,6 @@ lodash.defaults@~2.3.0: lodash._objecttypes "~2.3.0" lodash.keys "~2.3.0" -lodash.difference@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= - lodash.escape@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.3.0.tgz#844c38c58f844e1362ebe96726159b62cf5f2a58" @@ -4669,11 +4641,6 @@ lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" -lodash.foreach@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" - integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= - lodash.foreach@~2.3.x: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-2.3.0.tgz#083404c91e846ee77245fdf9d76519c68b2af168" @@ -4705,11 +4672,6 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isempty@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" - integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= - lodash.isfunction@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267" @@ -4728,11 +4690,6 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.keys@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" - integrity sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU= - lodash.keys@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.3.0.tgz#b350f4f92caa9f45a4a2ecf018454cf2f28ae253" @@ -4750,11 +4707,6 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.noop@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" - integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw= - lodash.noop@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.3.0.tgz#3059d628d51bbf937cd2a0b6fc3a7f212a669c2c" @@ -4763,30 +4715,10 @@ lodash.omit@^4.1.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" -lodash.partial@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz#49f3d8cfdaa3bff8b3a91d127e923245418961d4" - integrity sha1-SfPYz9qjv/izqR0SfpIyRUGJYdQ= - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash.sample@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz#5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d" - integrity sha1-XkKRsMdT+hq+sKq4+ynfG2bwf20= - -lodash.shuffle@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" - integrity sha1-FFtQU8+HX29cKjP0i26ZSMbse0s= - lodash.support@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.support/-/lodash.support-2.3.0.tgz#7eaf038af4f0d6aab776b44aa6dcfc80334c9bfd" @@ -4834,18 +4766,13 @@ lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" -lodash.values@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" - integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c= - lodash.values@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.3.0.tgz#ca96fbe60a20b0b0ec2ba2ba5fc6a765bd14a3ba" dependencies: lodash.keys "~2.3.0" -lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: +lodash@4.17.15, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -6032,6 +5959,11 @@ readdirp@~3.2.0: dependencies: picomatch "^2.0.4" +readline-sync@^1.4.9: + version "1.4.10" + resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" + integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -6045,15 +5977,22 @@ redeyed@~1.0.0: dependencies: esprima "~3.0.0" -redis-commands@^1.2.0: +redis-commands@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg== -redis-parser@^2.4.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" - integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs= +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + dependencies: + redis-errors "^1.0.0" regenerator-runtime@^0.13.4: version "0.13.5" @@ -6742,10 +6681,20 @@ sprintf-js@^1.0.3: version "1.1.1" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" +sprintf-js@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" +standard-as-callback@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.0.1.tgz#ed8bb25648e15831759b6023bdb87e6b60b38126" + integrity sha512-NQOxSeB8gOI5WjSaxjBgog2QFw55FV8TkS6Y07BiB3VJ8xNTvUYm0wl0s8ObgQ5NhdpnNfigMIKjgPESzgr4tg== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"