diff --git a/README.md b/README.md index e2984a3..2773ff7 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ Your task is to extract the high-throughput ticket purchasing component (inspire Simulate high load using a tool like [autocannon](https://github.com/mcollina/autocannon) or [wrk](https://github.com/wg/wrk). For example, to simulate 2000 concurrent connections on event 1: -npx autocannon -c 2000 -d 30 http://localhost:3000/buy/1 +npx autocannon -c 2000 -d 30 http://localhost:3049/buy/1 ### Metrics Access real-time service metrics at: -http://localhost:3000/metrics +http://localhost:3049/metrics These metrics should include data on tickets sold, remaining tickets per event, and any instances where the fallback mechanism was activated. diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 120000 index 0000000..fbb7ee0 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1 @@ +../mime/cli.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..5832a8d --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,843 @@ +{ + "name": "ticket-scaling-microservice", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz", + "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", + "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", + "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", + "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/redis": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz", + "integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==", + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.6.0", + "@redis/graph": "1.1.1", + "@redis/json": "1.0.7", + "@redis/search": "1.2.0", + "@redis/time-series": "1.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/node_modules/@redis/bloom/README.md b/node_modules/@redis/bloom/README.md new file mode 100644 index 0000000..8eb1445 --- /dev/null +++ b/node_modules/@redis/bloom/README.md @@ -0,0 +1,14 @@ +# @redis/bloom + +This package provides support for the [RedisBloom](https://redisbloom.io) module, which adds additional probabilistic data structures to Redis. It extends the [Node Redis client](https://github.com/redis/node-redis) to include functions for each of the RediBloom commands. + +To use these extra commands, your Redis server must have the RedisBloom module installed. + +RedisBloom provides the following probabilistic data structures: + +* Bloom Filter: for checking set membership with a high degree of certainty. +* Cuckoo Filter: for checking set membership with a high degree of certainty. +* Count-Min Sketch: Determine the frequency of events in a stream. +* Top-K: Maintain a list of k most frequently seen items. + +For complete examples, see `bloom-filter.js`, `cuckoo-filter.js`, `count-min-sketch.js` and `topk.js` in the Node Redis examples folder. diff --git a/node_modules/@redis/bloom/dist/commands/bloom/ADD.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/ADD.d.ts new file mode 100644 index 0000000..98f092d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/ADD.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/ADD.js b/node_modules/@redis/bloom/dist/commands/bloom/ADD.js new file mode 100644 index 0000000..10aff86 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/ADD.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['BF.ADD', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/bloom/CARD.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/CARD.d.ts new file mode 100644 index 0000000..7b54a1f --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/CARD.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/CARD.js b/node_modules/@redis/bloom/dist/commands/bloom/CARD.js new file mode 100644 index 0000000..c3a20bf --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/CARD.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['BF.CARD', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.d.ts new file mode 100644 index 0000000..44b0f53 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.js b/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.js new file mode 100644 index 0000000..3fe00d5 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/EXISTS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, item) { + return ['BF.EXISTS', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/bloom/INFO.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/INFO.d.ts new file mode 100644 index 0000000..07ee69a --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/INFO.d.ts @@ -0,0 +1,23 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export type InfoRawReply = [ + _: string, + capacity: number, + _: string, + size: number, + _: string, + numberOfFilters: number, + _: string, + numberOfInsertedItems: number, + _: string, + expansionRate: number +]; +export interface InfoReply { + capacity: number; + size: number; + numberOfFilters: number; + numberOfInsertedItems: number; + expansionRate: number; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/INFO.js b/node_modules/@redis/bloom/dist/commands/bloom/INFO.js new file mode 100644 index 0000000..379e585 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/INFO.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['BF.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + capacity: reply[1], + size: reply[3], + numberOfFilters: reply[5], + numberOfInsertedItems: reply[7], + expansionRate: reply[9] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/INSERT.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/INSERT.d.ts new file mode 100644 index 0000000..c1f8fec --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/INSERT.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +interface InsertOptions { + CAPACITY?: number; + ERROR?: number; + EXPANSION?: number; + NOCREATE?: true; + NONSCALING?: true; +} +export declare function transformArguments(key: string, items: RedisCommandArgument | Array, options?: InsertOptions): RedisCommandArguments; +export { transformBooleanArrayReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/INSERT.js b/node_modules/@redis/bloom/dist/commands/bloom/INSERT.js new file mode 100644 index 0000000..7f27273 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/INSERT.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + const args = ['BF.INSERT', key]; + if (options?.CAPACITY) { + args.push('CAPACITY', options.CAPACITY.toString()); + } + if (options?.ERROR) { + args.push('ERROR', options.ERROR.toString()); + } + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + if (options?.NOCREATE) { + args.push('NOCREATE'); + } + if (options?.NONSCALING) { + args.push('NONSCALING'); + } + args.push('ITEMS'); + return (0, generic_transformers_1.pushVerdictArguments)(args, items); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.d.ts new file mode 100644 index 0000000..786418e --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, iteretor: number, chunk: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.js b/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.js new file mode 100644 index 0000000..0d7bc27 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/LOADCHUNK.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iteretor, chunk) { + return ['BF.LOADCHUNK', key, iteretor.toString(), chunk]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/MADD.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/MADD.d.ts new file mode 100644 index 0000000..4ec8f35 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/MADD.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, items: Array): Array; +export { transformBooleanArrayReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/MADD.js b/node_modules/@redis/bloom/dist/commands/bloom/MADD.js new file mode 100644 index 0000000..1c283f7 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/MADD.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + return ['BF.MADD', key, ...items]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.d.ts new file mode 100644 index 0000000..81bbd27 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, items: Array): Array; +export { transformBooleanArrayReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.js b/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.js new file mode 100644 index 0000000..4da70a7 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/MEXISTS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return ['BF.MEXISTS', key, ...items]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.d.ts new file mode 100644 index 0000000..3394681 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.d.ts @@ -0,0 +1,8 @@ +export declare const FIRST_KEY_INDEX = 1; +interface ReserveOptions { + EXPANSION?: number; + NONSCALING?: true; +} +export declare function transformArguments(key: string, errorRate: number, capacity: number, options?: ReserveOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.js b/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.js new file mode 100644 index 0000000..0a5c6c3 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/RESERVE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, errorRate, capacity, options) { + const args = ['BF.RESERVE', key, errorRate.toString(), capacity.toString()]; + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + if (options?.NONSCALING) { + args.push('NONSCALING'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.d.ts new file mode 100644 index 0000000..1c4c4a9 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.d.ts @@ -0,0 +1,13 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, iterator: number): Array; +type ScanDumpRawReply = [ + iterator: number, + chunk: string +]; +interface ScanDumpReply { + iterator: number; + chunk: string; +} +export declare function transformReply([iterator, chunk]: ScanDumpRawReply): ScanDumpReply; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.js b/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.js new file mode 100644 index 0000000..0214538 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/SCANDUMP.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, iterator) { + return ['BF.SCANDUMP', key, iterator.toString()]; +} +exports.transformArguments = transformArguments; +function transformReply([iterator, chunk]) { + return { + iterator, + chunk + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/index.d.ts b/node_modules/@redis/bloom/dist/commands/bloom/index.d.ts new file mode 100644 index 0000000..3d10a74 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/index.d.ts @@ -0,0 +1,33 @@ +import * as ADD from './ADD'; +import * as CARD from './CARD'; +import * as EXISTS from './EXISTS'; +import * as INFO from './INFO'; +import * as INSERT from './INSERT'; +import * as LOADCHUNK from './LOADCHUNK'; +import * as MADD from './MADD'; +import * as MEXISTS from './MEXISTS'; +import * as RESERVE from './RESERVE'; +import * as SCANDUMP from './SCANDUMP'; +declare const _default: { + ADD: typeof ADD; + add: typeof ADD; + CARD: typeof CARD; + card: typeof CARD; + EXISTS: typeof EXISTS; + exists: typeof EXISTS; + INFO: typeof INFO; + info: typeof INFO; + INSERT: typeof INSERT; + insert: typeof INSERT; + LOADCHUNK: typeof LOADCHUNK; + loadChunk: typeof LOADCHUNK; + MADD: typeof MADD; + mAdd: typeof MADD; + MEXISTS: typeof MEXISTS; + mExists: typeof MEXISTS; + RESERVE: typeof RESERVE; + reserve: typeof RESERVE; + SCANDUMP: typeof SCANDUMP; + scanDump: typeof SCANDUMP; +}; +export default _default; diff --git a/node_modules/@redis/bloom/dist/commands/bloom/index.js b/node_modules/@redis/bloom/dist/commands/bloom/index.js new file mode 100644 index 0000000..4232b4e --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/bloom/index.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ADD = require("./ADD"); +const CARD = require("./CARD"); +const EXISTS = require("./EXISTS"); +const INFO = require("./INFO"); +const INSERT = require("./INSERT"); +const LOADCHUNK = require("./LOADCHUNK"); +const MADD = require("./MADD"); +const MEXISTS = require("./MEXISTS"); +const RESERVE = require("./RESERVE"); +const SCANDUMP = require("./SCANDUMP"); +exports.default = { + ADD, + add: ADD, + CARD, + card: CARD, + EXISTS, + exists: EXISTS, + INFO, + info: INFO, + INSERT, + insert: INSERT, + LOADCHUNK, + loadChunk: LOADCHUNK, + MADD, + mAdd: MADD, + MEXISTS, + mExists: MEXISTS, + RESERVE, + reserve: RESERVE, + SCANDUMP, + scanDump: SCANDUMP +}; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.d.ts new file mode 100644 index 0000000..60ea8f3 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.d.ts @@ -0,0 +1,8 @@ +export declare const FIRST_KEY_INDEX = 1; +interface IncrByItem { + item: string; + incrementBy: number; +} +export declare function transformArguments(key: string, items: IncrByItem | Array): Array; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.js new file mode 100644 index 0000000..3e9be04 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INCRBY.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + const args = ['CMS.INCRBY', key]; + if (Array.isArray(items)) { + for (const item of items) { + pushIncrByItem(args, item); + } + } + else { + pushIncrByItem(args, items); + } + return args; +} +exports.transformArguments = transformArguments; +function pushIncrByItem(args, { item, incrementBy }) { + args.push(item, incrementBy.toString()); +} diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.d.ts new file mode 100644 index 0000000..c04cdf2 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.d.ts @@ -0,0 +1,17 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export type InfoRawReply = [ + _: string, + width: number, + _: string, + depth: number, + _: string, + count: number +]; +export interface InfoReply { + width: number; + depth: number; + count: number; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.js new file mode 100644 index 0000000..df3ae99 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INFO.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['CMS.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + width: reply[1], + depth: reply[3], + count: reply[5] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.d.ts new file mode 100644 index 0000000..9a702d2 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, width: number, depth: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.js new file mode 100644 index 0000000..68b9e46 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYDIM.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, width, depth) { + return ['CMS.INITBYDIM', key, width.toString(), depth.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.d.ts new file mode 100644 index 0000000..dff4c8f --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, error: number, probability: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.js new file mode 100644 index 0000000..70dc3d4 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/INITBYPROB.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, error, probability) { + return ['CMS.INITBYPROB', key, error.toString(), probability.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.d.ts new file mode 100644 index 0000000..36f9f27 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.d.ts @@ -0,0 +1,9 @@ +export declare const FIRST_KEY_INDEX = 1; +interface Sketch { + name: string; + weight: number; +} +type Sketches = Array | Array; +export declare function transformArguments(dest: string, src: Sketches): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.js new file mode 100644 index 0000000..13710b7 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/MERGE.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(dest, src) { + const args = [ + 'CMS.MERGE', + dest, + src.length.toString() + ]; + if (isStringSketches(src)) { + args.push(...src); + } + else { + for (const sketch of src) { + args.push(sketch.name); + } + args.push('WEIGHTS'); + for (const sketch of src) { + args.push(sketch.weight.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; +function isStringSketches(src) { + return typeof src[0] === 'string'; +} diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.d.ts new file mode 100644 index 0000000..e419fe6 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, items: string | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.js new file mode 100644 index 0000000..395a425 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/QUERY.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['CMS.QUERY', key], items); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.d.ts b/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.d.ts new file mode 100644 index 0000000..80d0666 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.d.ts @@ -0,0 +1,21 @@ +import * as INCRBY from './INCRBY'; +import * as INFO from './INFO'; +import * as INITBYDIM from './INITBYDIM'; +import * as INITBYPROB from './INITBYPROB'; +import * as MERGE from './MERGE'; +import * as QUERY from './QUERY'; +declare const _default: { + INCRBY: typeof INCRBY; + incrBy: typeof INCRBY; + INFO: typeof INFO; + info: typeof INFO; + INITBYDIM: typeof INITBYDIM; + initByDim: typeof INITBYDIM; + INITBYPROB: typeof INITBYPROB; + initByProb: typeof INITBYPROB; + MERGE: typeof MERGE; + merge: typeof MERGE; + QUERY: typeof QUERY; + query: typeof QUERY; +}; +export default _default; diff --git a/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.js b/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.js new file mode 100644 index 0000000..7aef3e4 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/count-min-sketch/index.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const INCRBY = require("./INCRBY"); +const INFO = require("./INFO"); +const INITBYDIM = require("./INITBYDIM"); +const INITBYPROB = require("./INITBYPROB"); +const MERGE = require("./MERGE"); +const QUERY = require("./QUERY"); +exports.default = { + INCRBY, + incrBy: INCRBY, + INFO, + info: INFO, + INITBYDIM, + initByDim: INITBYDIM, + INITBYPROB, + initByProb: INITBYPROB, + MERGE, + merge: MERGE, + QUERY, + query: QUERY +}; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.d.ts new file mode 100644 index 0000000..98f092d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.js b/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.js new file mode 100644 index 0000000..b61ea67 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/ADD.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.ADD', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.d.ts new file mode 100644 index 0000000..98f092d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.js b/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.js new file mode 100644 index 0000000..bc1b99a --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/ADDNX.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.ADDNX', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.d.ts new file mode 100644 index 0000000..e781bba --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, item: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.js b/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.js new file mode 100644 index 0000000..772618e --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/COUNT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.COUNT', key, item]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.d.ts new file mode 100644 index 0000000..98f092d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.js b/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.js new file mode 100644 index 0000000..edb7e58 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/DEL.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.DEL', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.d.ts new file mode 100644 index 0000000..44b0f53 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, item: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.js b/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.js new file mode 100644 index 0000000..eb8d966 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/EXISTS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, item) { + return ['CF.EXISTS', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.d.ts new file mode 100644 index 0000000..3a5850d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.d.ts @@ -0,0 +1,32 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export type InfoRawReply = [ + _: string, + size: number, + _: string, + numberOfBuckets: number, + _: string, + numberOfFilters: number, + _: string, + numberOfInsertedItems: number, + _: string, + numberOfDeletedItems: number, + _: string, + bucketSize: number, + _: string, + expansionRate: number, + _: string, + maxIteration: number +]; +export interface InfoReply { + size: number; + numberOfBuckets: number; + numberOfFilters: number; + numberOfInsertedItems: number; + numberOfDeletedItems: number; + bucketSize: number; + expansionRate: number; + maxIteration: number; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.js b/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.js new file mode 100644 index 0000000..5c9c4be --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INFO.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['CF.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + size: reply[1], + numberOfBuckets: reply[3], + numberOfFilters: reply[5], + numberOfInsertedItems: reply[7], + numberOfDeletedItems: reply[9], + bucketSize: reply[11], + expansionRate: reply[13], + maxIteration: reply[15] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.d.ts new file mode 100644 index 0000000..f43ac23 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { InsertOptions } from "."; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, items: string | Array, options?: InsertOptions): RedisCommandArguments; +export { transformBooleanArrayReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.js b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.js new file mode 100644 index 0000000..ef4fb78 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERT.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + return (0, _1.pushInsertOptions)(['CF.INSERT', key], items, options); +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.d.ts new file mode 100644 index 0000000..f43ac23 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { InsertOptions } from "."; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, items: string | Array, options?: InsertOptions): RedisCommandArguments; +export { transformBooleanArrayReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.js b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.js new file mode 100644 index 0000000..f80b317 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/INSERTNX.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + return (0, _1.pushInsertOptions)(['CF.INSERTNX', key], items, options); +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.d.ts new file mode 100644 index 0000000..d6302db --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, iterator: number, chunk: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.js b/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.js new file mode 100644 index 0000000..ddd0ebd --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/LOADCHUNK.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iterator, chunk) { + return ['CF.LOADCHUNK', key, iterator.toString(), chunk]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.d.ts new file mode 100644 index 0000000..35d77cd --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.d.ts @@ -0,0 +1,9 @@ +export declare const FIRST_KEY_INDEX = 1; +interface ReserveOptions { + BUCKETSIZE?: number; + MAXITERATIONS?: number; + EXPANSION?: number; +} +export declare function transformArguments(key: string, capacity: number, options?: ReserveOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.js b/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.js new file mode 100644 index 0000000..6b51866 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/RESERVE.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, capacity, options) { + const args = ['CF.RESERVE', key, capacity.toString()]; + if (options?.BUCKETSIZE) { + args.push('BUCKETSIZE', options.BUCKETSIZE.toString()); + } + if (options?.MAXITERATIONS) { + args.push('MAXITERATIONS', options.MAXITERATIONS.toString()); + } + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.d.ts new file mode 100644 index 0000000..fee6405 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.d.ts @@ -0,0 +1,12 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, iterator: number): Array; +type ScanDumpRawReply = [ + iterator: number, + chunk: string | null +]; +interface ScanDumpReply { + iterator: number; + chunk: string | null; +} +export declare function transformReply([iterator, chunk]: ScanDumpRawReply): ScanDumpReply; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.js b/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.js new file mode 100644 index 0000000..9401c05 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/SCANDUMP.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iterator) { + return ['CF.SCANDUMP', key, iterator.toString()]; +} +exports.transformArguments = transformArguments; +function transformReply([iterator, chunk]) { + return { + iterator, + chunk + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/index.d.ts b/node_modules/@redis/bloom/dist/commands/cuckoo/index.d.ts new file mode 100644 index 0000000..7c78372 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/index.d.ts @@ -0,0 +1,42 @@ +import * as ADD from './ADD'; +import * as ADDNX from './ADDNX'; +import * as COUNT from './COUNT'; +import * as DEL from './DEL'; +import * as EXISTS from './EXISTS'; +import * as INFO from './INFO'; +import * as INSERT from './INSERT'; +import * as INSERTNX from './INSERTNX'; +import * as LOADCHUNK from './LOADCHUNK'; +import * as RESERVE from './RESERVE'; +import * as SCANDUMP from './SCANDUMP'; +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +declare const _default: { + ADD: typeof ADD; + add: typeof ADD; + ADDNX: typeof ADDNX; + addNX: typeof ADDNX; + COUNT: typeof COUNT; + count: typeof COUNT; + DEL: typeof DEL; + del: typeof DEL; + EXISTS: typeof EXISTS; + exists: typeof EXISTS; + INFO: typeof INFO; + info: typeof INFO; + INSERT: typeof INSERT; + insert: typeof INSERT; + INSERTNX: typeof INSERTNX; + insertNX: typeof INSERTNX; + LOADCHUNK: typeof LOADCHUNK; + loadChunk: typeof LOADCHUNK; + RESERVE: typeof RESERVE; + reserve: typeof RESERVE; + SCANDUMP: typeof SCANDUMP; + scanDump: typeof SCANDUMP; +}; +export default _default; +export interface InsertOptions { + CAPACITY?: number; + NOCREATE?: true; +} +export declare function pushInsertOptions(args: RedisCommandArguments, items: string | Array, options?: InsertOptions): RedisCommandArguments; diff --git a/node_modules/@redis/bloom/dist/commands/cuckoo/index.js b/node_modules/@redis/bloom/dist/commands/cuckoo/index.js new file mode 100644 index 0000000..3d428ee --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/cuckoo/index.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pushInsertOptions = void 0; +const ADD = require("./ADD"); +const ADDNX = require("./ADDNX"); +const COUNT = require("./COUNT"); +const DEL = require("./DEL"); +const EXISTS = require("./EXISTS"); +const INFO = require("./INFO"); +const INSERT = require("./INSERT"); +const INSERTNX = require("./INSERTNX"); +const LOADCHUNK = require("./LOADCHUNK"); +const RESERVE = require("./RESERVE"); +const SCANDUMP = require("./SCANDUMP"); +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.default = { + ADD, + add: ADD, + ADDNX, + addNX: ADDNX, + COUNT, + count: COUNT, + DEL, + del: DEL, + EXISTS, + exists: EXISTS, + INFO, + info: INFO, + INSERT, + insert: INSERT, + INSERTNX, + insertNX: INSERTNX, + LOADCHUNK, + loadChunk: LOADCHUNK, + RESERVE, + reserve: RESERVE, + SCANDUMP, + scanDump: SCANDUMP +}; +function pushInsertOptions(args, items, options) { + if (options?.CAPACITY) { + args.push('CAPACITY'); + args.push(options.CAPACITY.toString()); + } + if (options?.NOCREATE) { + args.push('NOCREATE'); + } + args.push('ITEMS'); + return (0, generic_transformers_1.pushVerdictArguments)(args, items); +} +exports.pushInsertOptions = pushInsertOptions; diff --git a/node_modules/@redis/bloom/dist/commands/index.d.ts b/node_modules/@redis/bloom/dist/commands/index.d.ts new file mode 100644 index 0000000..c9de957 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/index.d.ts @@ -0,0 +1,111 @@ +declare const _default: { + bf: { + ADD: typeof import("./bloom/ADD"); + add: typeof import("./bloom/ADD"); + CARD: typeof import("./bloom/CARD"); + card: typeof import("./bloom/CARD"); + EXISTS: typeof import("./bloom/EXISTS"); + exists: typeof import("./bloom/EXISTS"); + INFO: typeof import("./bloom/INFO"); + info: typeof import("./bloom/INFO"); + INSERT: typeof import("./bloom/INSERT"); + insert: typeof import("./bloom/INSERT"); + LOADCHUNK: typeof import("./bloom/LOADCHUNK"); + loadChunk: typeof import("./bloom/LOADCHUNK"); + MADD: typeof import("./bloom/MADD"); + mAdd: typeof import("./bloom/MADD"); + MEXISTS: typeof import("./bloom/MEXISTS"); + mExists: typeof import("./bloom/MEXISTS"); + RESERVE: typeof import("./bloom/RESERVE"); + reserve: typeof import("./bloom/RESERVE"); + SCANDUMP: typeof import("./bloom/SCANDUMP"); + scanDump: typeof import("./bloom/SCANDUMP"); + }; + cms: { + INCRBY: typeof import("./count-min-sketch/INCRBY"); + incrBy: typeof import("./count-min-sketch/INCRBY"); + INFO: typeof import("./count-min-sketch/INFO"); + info: typeof import("./count-min-sketch/INFO"); + INITBYDIM: typeof import("./count-min-sketch/INITBYDIM"); + initByDim: typeof import("./count-min-sketch/INITBYDIM"); + INITBYPROB: typeof import("./count-min-sketch/INITBYPROB"); + initByProb: typeof import("./count-min-sketch/INITBYPROB"); + MERGE: typeof import("./count-min-sketch/MERGE"); + merge: typeof import("./count-min-sketch/MERGE"); + QUERY: typeof import("./count-min-sketch/QUERY"); + query: typeof import("./count-min-sketch/QUERY"); + }; + cf: { + ADD: typeof import("./cuckoo/ADD"); + add: typeof import("./cuckoo/ADD"); + ADDNX: typeof import("./cuckoo/ADDNX"); + addNX: typeof import("./cuckoo/ADDNX"); + COUNT: typeof import("./cuckoo/COUNT"); + count: typeof import("./cuckoo/COUNT"); + DEL: typeof import("./cuckoo/DEL"); + del: typeof import("./cuckoo/DEL"); + EXISTS: typeof import("./cuckoo/EXISTS"); + exists: typeof import("./cuckoo/EXISTS"); + INFO: typeof import("./cuckoo/INFO"); + info: typeof import("./cuckoo/INFO"); + INSERT: typeof import("./cuckoo/INSERT"); + insert: typeof import("./cuckoo/INSERT"); + INSERTNX: typeof import("./cuckoo/INSERTNX"); + insertNX: typeof import("./cuckoo/INSERTNX"); + LOADCHUNK: typeof import("./cuckoo/LOADCHUNK"); + loadChunk: typeof import("./cuckoo/LOADCHUNK"); + RESERVE: typeof import("./cuckoo/RESERVE"); + reserve: typeof import("./cuckoo/RESERVE"); + SCANDUMP: typeof import("./cuckoo/SCANDUMP"); + scanDump: typeof import("./cuckoo/SCANDUMP"); + }; + tDigest: { + ADD: typeof import("./t-digest/ADD"); + add: typeof import("./t-digest/ADD"); + BYRANK: typeof import("./t-digest/BYRANK"); + byRank: typeof import("./t-digest/BYRANK"); + BYREVRANK: typeof import("./t-digest/BYREVRANK"); + byRevRank: typeof import("./t-digest/BYREVRANK"); + CDF: typeof import("./t-digest/CDF"); + cdf: typeof import("./t-digest/CDF"); + CREATE: typeof import("./t-digest/CREATE"); + create: typeof import("./t-digest/CREATE"); + INFO: typeof import("./t-digest/INFO"); + info: typeof import("./t-digest/INFO"); + MAX: typeof import("./t-digest/MAX"); + max: typeof import("./t-digest/MAX"); + MERGE: typeof import("./t-digest/MERGE"); + merge: typeof import("./t-digest/MERGE"); + MIN: typeof import("./t-digest/MIN"); + min: typeof import("./t-digest/MIN"); + QUANTILE: typeof import("./t-digest/QUANTILE"); + quantile: typeof import("./t-digest/QUANTILE"); + RANK: typeof import("./t-digest/RANK"); + rank: typeof import("./t-digest/RANK"); + RESET: typeof import("./t-digest/RESET"); + reset: typeof import("./t-digest/RESET"); + REVRANK: typeof import("./t-digest/REVRANK"); + revRank: typeof import("./t-digest/REVRANK"); + TRIMMED_MEAN: typeof import("./t-digest/TRIMMED_MEAN"); + trimmedMean: typeof import("./t-digest/TRIMMED_MEAN"); + }; + topK: { + ADD: typeof import("./top-k/ADD"); + add: typeof import("./top-k/ADD"); + COUNT: typeof import("./top-k/COUNT"); + count: typeof import("./top-k/COUNT"); + INCRBY: typeof import("./top-k/INCRBY"); + incrBy: typeof import("./top-k/INCRBY"); + INFO: typeof import("./top-k/INFO"); + info: typeof import("./top-k/INFO"); + LIST_WITHCOUNT: typeof import("./top-k/LIST_WITHCOUNT"); + listWithCount: typeof import("./top-k/LIST_WITHCOUNT"); + LIST: typeof import("./top-k/LIST"); + list: typeof import("./top-k/LIST"); + QUERY: typeof import("./top-k/QUERY"); + query: typeof import("./top-k/QUERY"); + RESERVE: typeof import("./top-k/RESERVE"); + reserve: typeof import("./top-k/RESERVE"); + }; +}; +export default _default; diff --git a/node_modules/@redis/bloom/dist/commands/index.js b/node_modules/@redis/bloom/dist/commands/index.js new file mode 100644 index 0000000..c838edf --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/index.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const bloom_1 = require("./bloom"); +const count_min_sketch_1 = require("./count-min-sketch"); +const cuckoo_1 = require("./cuckoo"); +const t_digest_1 = require("./t-digest"); +const top_k_1 = require("./top-k"); +exports.default = { + bf: bloom_1.default, + cms: count_min_sketch_1.default, + cf: cuckoo_1.default, + tDigest: t_digest_1.default, + topK: top_k_1.default +}; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/ADD.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/ADD.d.ts new file mode 100644 index 0000000..19d0946 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/ADD.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, values: Array): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/ADD.js b/node_modules/@redis/bloom/dist/commands/t-digest/ADD.js new file mode 100644 index 0000000..d31bc9b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/ADD.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, values) { + const args = ['TDIGEST.ADD', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.d.ts new file mode 100644 index 0000000..c27a10f --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, ranks: Array): RedisCommandArguments; +export { transformDoublesReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.js b/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.js new file mode 100644 index 0000000..84a5069 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/BYRANK.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, ranks) { + const args = ['TDIGEST.BYRANK', key]; + for (const rank of ranks) { + args.push(rank.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoublesReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.d.ts new file mode 100644 index 0000000..c27a10f --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, ranks: Array): RedisCommandArguments; +export { transformDoublesReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.js b/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.js new file mode 100644 index 0000000..b886843 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/BYREVRANK.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, ranks) { + const args = ['TDIGEST.BYREVRANK', key]; + for (const rank of ranks) { + args.push(rank.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoublesReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/CDF.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/CDF.d.ts new file mode 100644 index 0000000..8652fde --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/CDF.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, values: Array): RedisCommandArguments; +export { transformDoublesReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/CDF.js b/node_modules/@redis/bloom/dist/commands/t-digest/CDF.js new file mode 100644 index 0000000..6a64eeb --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/CDF.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.CDF', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoublesReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.d.ts new file mode 100644 index 0000000..9a62bfc --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { CompressionOption } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, options?: CompressionOption): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.js b/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.js new file mode 100644 index 0000000..2fd980b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/CREATE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + return (0, _1.pushCompressionArgument)(['TDIGEST.CREATE', key], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/INFO.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/INFO.d.ts new file mode 100644 index 0000000..d2d9c5c --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/INFO.d.ts @@ -0,0 +1,31 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +type InfoRawReply = [ + 'Compression', + number, + 'Capacity', + number, + 'Merged nodes', + number, + 'Unmerged nodes', + number, + 'Merged weight', + string, + 'Unmerged weight', + string, + 'Total compressions', + number +]; +interface InfoReply { + comperssion: number; + capacity: number; + mergedNodes: number; + unmergedNodes: number; + mergedWeight: number; + unmergedWeight: number; + totalCompression: number; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/INFO.js b/node_modules/@redis/bloom/dist/commands/t-digest/INFO.js new file mode 100644 index 0000000..97ea9fc --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/INFO.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.INFO', + key + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + comperssion: reply[1], + capacity: reply[3], + mergedNodes: reply[5], + unmergedNodes: reply[7], + mergedWeight: Number(reply[9]), + unmergedWeight: Number(reply[11]), + totalCompression: reply[13] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MAX.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/MAX.d.ts new file mode 100644 index 0000000..24c6f01 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MAX.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformDoubleReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MAX.js b/node_modules/@redis/bloom/dist/commands/t-digest/MAX.js new file mode 100644 index 0000000..80d2af4 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MAX.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.MAX', + key + ]; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoubleReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.d.ts new file mode 100644 index 0000000..a5007ce --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { CompressionOption } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface MergeOptions extends CompressionOption { + OVERRIDE?: boolean; +} +export declare function transformArguments(destKey: RedisCommandArgument, srcKeys: RedisCommandArgument | Array, options?: MergeOptions): RedisCommandArguments; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.js b/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.js new file mode 100644 index 0000000..8e65759 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MERGE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destKey, srcKeys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['TDIGEST.MERGE', destKey], srcKeys); + (0, _1.pushCompressionArgument)(args, options); + if (options?.OVERRIDE) { + args.push('OVERRIDE'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MIN.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/MIN.d.ts new file mode 100644 index 0000000..24c6f01 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MIN.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformDoubleReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/MIN.js b/node_modules/@redis/bloom/dist/commands/t-digest/MIN.js new file mode 100644 index 0000000..3d8e234 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/MIN.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.MIN', + key + ]; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoubleReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.d.ts new file mode 100644 index 0000000..b684559 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, quantiles: Array): RedisCommandArguments; +export { transformDoublesReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.js b/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.js new file mode 100644 index 0000000..cd106ab --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/QUANTILE.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, quantiles) { + const args = [ + 'TDIGEST.QUANTILE', + key + ]; + for (const quantile of quantiles) { + args.push(quantile.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoublesReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/RANK.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/RANK.d.ts new file mode 100644 index 0000000..09eef2d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/RANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, values: Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/RANK.js b/node_modules/@redis/bloom/dist/commands/t-digest/RANK.js new file mode 100644 index 0000000..0edb7bf --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/RANK.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.RANK', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/RESET.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/RESET.d.ts new file mode 100644 index 0000000..710975b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/RESET.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/RESET.js b/node_modules/@redis/bloom/dist/commands/t-digest/RESET.js new file mode 100644 index 0000000..b2b2940 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/RESET.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['TDIGEST.RESET', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.d.ts new file mode 100644 index 0000000..09eef2d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, values: Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.js b/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.js new file mode 100644 index 0000000..a97d27a --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/REVRANK.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.REVRANK', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.d.ts new file mode 100644 index 0000000..db7707b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, lowCutPercentile: number, highCutPercentile: number): RedisCommandArguments; +export { transformDoubleReply as transformReply } from '.'; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.js b/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.js new file mode 100644 index 0000000..ee46eda --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/TRIMMED_MEAN.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, lowCutPercentile, highCutPercentile) { + return [ + 'TDIGEST.TRIMMED_MEAN', + key, + lowCutPercentile.toString(), + highCutPercentile.toString() + ]; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformDoubleReply; } }); diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/index.d.ts b/node_modules/@redis/bloom/dist/commands/t-digest/index.d.ts new file mode 100644 index 0000000..67a8ea7 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/index.d.ts @@ -0,0 +1,52 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import * as ADD from './ADD'; +import * as BYRANK from './BYRANK'; +import * as BYREVRANK from './BYREVRANK'; +import * as CDF from './CDF'; +import * as CREATE from './CREATE'; +import * as INFO from './INFO'; +import * as MAX from './MAX'; +import * as MERGE from './MERGE'; +import * as MIN from './MIN'; +import * as QUANTILE from './QUANTILE'; +import * as RANK from './RANK'; +import * as RESET from './RESET'; +import * as REVRANK from './REVRANK'; +import * as TRIMMED_MEAN from './TRIMMED_MEAN'; +declare const _default: { + ADD: typeof ADD; + add: typeof ADD; + BYRANK: typeof BYRANK; + byRank: typeof BYRANK; + BYREVRANK: typeof BYREVRANK; + byRevRank: typeof BYREVRANK; + CDF: typeof CDF; + cdf: typeof CDF; + CREATE: typeof CREATE; + create: typeof CREATE; + INFO: typeof INFO; + info: typeof INFO; + MAX: typeof MAX; + max: typeof MAX; + MERGE: typeof MERGE; + merge: typeof MERGE; + MIN: typeof MIN; + min: typeof MIN; + QUANTILE: typeof QUANTILE; + quantile: typeof QUANTILE; + RANK: typeof RANK; + rank: typeof RANK; + RESET: typeof RESET; + reset: typeof RESET; + REVRANK: typeof REVRANK; + revRank: typeof REVRANK; + TRIMMED_MEAN: typeof TRIMMED_MEAN; + trimmedMean: typeof TRIMMED_MEAN; +}; +export default _default; +export interface CompressionOption { + COMPRESSION?: number; +} +export declare function pushCompressionArgument(args: RedisCommandArguments, options?: CompressionOption): RedisCommandArguments; +export declare function transformDoubleReply(reply: string): number; +export declare function transformDoublesReply(reply: Array): Array; diff --git a/node_modules/@redis/bloom/dist/commands/t-digest/index.js b/node_modules/@redis/bloom/dist/commands/t-digest/index.js new file mode 100644 index 0000000..862b27b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/t-digest/index.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformDoublesReply = exports.transformDoubleReply = exports.pushCompressionArgument = void 0; +const ADD = require("./ADD"); +const BYRANK = require("./BYRANK"); +const BYREVRANK = require("./BYREVRANK"); +const CDF = require("./CDF"); +const CREATE = require("./CREATE"); +const INFO = require("./INFO"); +const MAX = require("./MAX"); +const MERGE = require("./MERGE"); +const MIN = require("./MIN"); +const QUANTILE = require("./QUANTILE"); +const RANK = require("./RANK"); +const RESET = require("./RESET"); +const REVRANK = require("./REVRANK"); +const TRIMMED_MEAN = require("./TRIMMED_MEAN"); +exports.default = { + ADD, + add: ADD, + BYRANK, + byRank: BYRANK, + BYREVRANK, + byRevRank: BYREVRANK, + CDF, + cdf: CDF, + CREATE, + create: CREATE, + INFO, + info: INFO, + MAX, + max: MAX, + MERGE, + merge: MERGE, + MIN, + min: MIN, + QUANTILE, + quantile: QUANTILE, + RANK, + rank: RANK, + RESET, + reset: RESET, + REVRANK, + revRank: REVRANK, + TRIMMED_MEAN, + trimmedMean: TRIMMED_MEAN +}; +function pushCompressionArgument(args, options) { + if (options?.COMPRESSION) { + args.push('COMPRESSION', options.COMPRESSION.toString()); + } + return args; +} +exports.pushCompressionArgument = pushCompressionArgument; +function transformDoubleReply(reply) { + switch (reply) { + case 'inf': + return Infinity; + case '-inf': + return -Infinity; + case 'nan': + return NaN; + default: + return parseFloat(reply); + } +} +exports.transformDoubleReply = transformDoubleReply; +function transformDoublesReply(reply) { + return reply.map(transformDoubleReply); +} +exports.transformDoublesReply = transformDoublesReply; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/ADD.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/ADD.d.ts new file mode 100644 index 0000000..f147189 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/ADD.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, items: string | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/ADD.js b/node_modules/@redis/bloom/dist/commands/top-k/ADD.js new file mode 100644 index 0000000..794877e --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/ADD.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.ADD', key], items); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/COUNT.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/COUNT.d.ts new file mode 100644 index 0000000..e419fe6 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/COUNT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, items: string | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/COUNT.js b/node_modules/@redis/bloom/dist/commands/top-k/COUNT.js new file mode 100644 index 0000000..38668d4 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/COUNT.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.COUNT', key], items); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.d.ts new file mode 100644 index 0000000..dd04e05 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.d.ts @@ -0,0 +1,8 @@ +export declare const FIRST_KEY_INDEX = 1; +interface IncrByItem { + item: string; + incrementBy: number; +} +export declare function transformArguments(key: string, items: IncrByItem | Array): Array; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.js b/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.js new file mode 100644 index 0000000..ecee27b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/INCRBY.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + const args = ['TOPK.INCRBY', key]; + if (Array.isArray(items)) { + for (const item of items) { + pushIncrByItem(args, item); + } + } + else { + pushIncrByItem(args, items); + } + return args; +} +exports.transformArguments = transformArguments; +function pushIncrByItem(args, { item, incrementBy }) { + args.push(item, incrementBy.toString()); +} diff --git a/node_modules/@redis/bloom/dist/commands/top-k/INFO.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/INFO.d.ts new file mode 100644 index 0000000..5758a0e --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/INFO.d.ts @@ -0,0 +1,20 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export type InfoRawReply = [ + _: string, + k: number, + _: string, + width: number, + _: string, + depth: number, + _: string, + decay: string +]; +export interface InfoReply { + k: number; + width: number; + depth: number; + decay: number; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/INFO.js b/node_modules/@redis/bloom/dist/commands/top-k/INFO.js new file mode 100644 index 0000000..244eb77 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/INFO.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + k: reply[1], + width: reply[3], + depth: reply[5], + decay: Number(reply[7]) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/LIST.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/LIST.d.ts new file mode 100644 index 0000000..473a30b --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/LIST.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/LIST.js b/node_modules/@redis/bloom/dist/commands/top-k/LIST.js new file mode 100644 index 0000000..0a7728d --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/LIST.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.LIST', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.d.ts new file mode 100644 index 0000000..1307f15 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.d.ts @@ -0,0 +1,10 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +type ListWithCountRawReply = Array; +type ListWithCountReply = Array<{ + item: string; + count: number; +}>; +export declare function transformReply(rawReply: ListWithCountRawReply): ListWithCountReply; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.js b/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.js new file mode 100644 index 0000000..95736d0 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/LIST_WITHCOUNT.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.LIST', key, 'WITHCOUNT']; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const reply = []; + for (let i = 0; i < rawReply.length; i++) { + reply.push({ + item: rawReply[i], + count: rawReply[++i] + }); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/QUERY.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/QUERY.d.ts new file mode 100644 index 0000000..e419fe6 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/QUERY.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, items: string | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/QUERY.js b/node_modules/@redis/bloom/dist/commands/top-k/QUERY.js new file mode 100644 index 0000000..f24c075 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/QUERY.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.QUERY', key], items); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.d.ts new file mode 100644 index 0000000..2662d21 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.d.ts @@ -0,0 +1,10 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface ReserveOptions { + width: number; + depth: number; + decay: number; +} +export declare function transformArguments(key: string, topK: number, options?: ReserveOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.js b/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.js new file mode 100644 index 0000000..ca3f9c9 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/RESERVE.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, topK, options) { + const args = ['TOPK.RESERVE', key, topK.toString()]; + if (options) { + args.push(options.width.toString(), options.depth.toString(), options.decay.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/index.d.ts b/node_modules/@redis/bloom/dist/commands/top-k/index.d.ts new file mode 100644 index 0000000..31d20b1 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/index.d.ts @@ -0,0 +1,27 @@ +import * as ADD from './ADD'; +import * as COUNT from './COUNT'; +import * as INCRBY from './INCRBY'; +import * as INFO from './INFO'; +import * as LIST_WITHCOUNT from './LIST_WITHCOUNT'; +import * as LIST from './LIST'; +import * as QUERY from './QUERY'; +import * as RESERVE from './RESERVE'; +declare const _default: { + ADD: typeof ADD; + add: typeof ADD; + COUNT: typeof COUNT; + count: typeof COUNT; + INCRBY: typeof INCRBY; + incrBy: typeof INCRBY; + INFO: typeof INFO; + info: typeof INFO; + LIST_WITHCOUNT: typeof LIST_WITHCOUNT; + listWithCount: typeof LIST_WITHCOUNT; + LIST: typeof LIST; + list: typeof LIST; + QUERY: typeof QUERY; + query: typeof QUERY; + RESERVE: typeof RESERVE; + reserve: typeof RESERVE; +}; +export default _default; diff --git a/node_modules/@redis/bloom/dist/commands/top-k/index.js b/node_modules/@redis/bloom/dist/commands/top-k/index.js new file mode 100644 index 0000000..648cea5 --- /dev/null +++ b/node_modules/@redis/bloom/dist/commands/top-k/index.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const ADD = require("./ADD"); +const COUNT = require("./COUNT"); +const INCRBY = require("./INCRBY"); +const INFO = require("./INFO"); +const LIST_WITHCOUNT = require("./LIST_WITHCOUNT"); +const LIST = require("./LIST"); +const QUERY = require("./QUERY"); +const RESERVE = require("./RESERVE"); +exports.default = { + ADD, + add: ADD, + COUNT, + count: COUNT, + INCRBY, + incrBy: INCRBY, + INFO, + info: INFO, + LIST_WITHCOUNT, + listWithCount: LIST_WITHCOUNT, + LIST, + list: LIST, + QUERY, + query: QUERY, + RESERVE, + reserve: RESERVE +}; diff --git a/node_modules/@redis/bloom/dist/index.d.ts b/node_modules/@redis/bloom/dist/index.d.ts new file mode 100644 index 0000000..bc0e103 --- /dev/null +++ b/node_modules/@redis/bloom/dist/index.d.ts @@ -0,0 +1 @@ +export { default } from './commands'; diff --git a/node_modules/@redis/bloom/dist/index.js b/node_modules/@redis/bloom/dist/index.js new file mode 100644 index 0000000..992c58d --- /dev/null +++ b/node_modules/@redis/bloom/dist/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = void 0; +var commands_1 = require("./commands"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return commands_1.default; } }); diff --git a/node_modules/@redis/bloom/package.json b/node_modules/@redis/bloom/package.json new file mode 100644 index 0000000..d6d5e47 --- /dev/null +++ b/node_modules/@redis/bloom/package.json @@ -0,0 +1,29 @@ +{ + "name": "@redis/bloom", + "version": "1.2.0", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "documentation": "typedoc" + }, + "peerDependencies": { + "@redis/client": "^1.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^18.11.18", + "nyc": "^15.1.0", + "release-it": "^15.6.0", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.23.24", + "typescript": "^4.9.4" + } +} diff --git a/node_modules/@redis/client/README.md b/node_modules/@redis/client/README.md new file mode 100644 index 0000000..4b5d150 --- /dev/null +++ b/node_modules/@redis/client/README.md @@ -0,0 +1,3 @@ +# @redis/client + +The source code and documentation for this package are in the main [node-redis](https://github.com/redis/node-redis) repo. diff --git a/node_modules/@redis/client/dist/index.d.ts b/node_modules/@redis/client/dist/index.d.ts new file mode 100644 index 0000000..de56486 --- /dev/null +++ b/node_modules/@redis/client/dist/index.d.ts @@ -0,0 +1,13 @@ +import RedisClient from './lib/client'; +import RedisCluster from './lib/cluster'; +export { RedisClientType, RedisClientOptions } from './lib/client'; +export { RedisModules, RedisFunctions, RedisScripts } from './lib/commands'; +export declare const createClient: typeof RedisClient.create; +export declare const commandOptions: typeof RedisClient.commandOptions; +export { RedisClusterType, RedisClusterOptions } from './lib/cluster'; +export declare const createCluster: typeof RedisCluster.create; +export { defineScript } from './lib/lua-script'; +export * from './lib/errors'; +export { GeoReplyWith } from './lib/commands/generic-transformers'; +export { SetOptions } from './lib/commands/SET'; +export { RedisFlushModes } from './lib/commands/FLUSHALL'; diff --git a/node_modules/@redis/client/dist/index.js b/node_modules/@redis/client/dist/index.js new file mode 100644 index 0000000..fe818c3 --- /dev/null +++ b/node_modules/@redis/client/dist/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.RedisFlushModes = exports.GeoReplyWith = exports.defineScript = exports.createCluster = exports.commandOptions = exports.createClient = void 0; +const client_1 = require("./lib/client"); +const cluster_1 = require("./lib/cluster"); +exports.createClient = client_1.default.create; +exports.commandOptions = client_1.default.commandOptions; +exports.createCluster = cluster_1.default.create; +var lua_script_1 = require("./lib/lua-script"); +Object.defineProperty(exports, "defineScript", { enumerable: true, get: function () { return lua_script_1.defineScript; } }); +__exportStar(require("./lib/errors"), exports); +var generic_transformers_1 = require("./lib/commands/generic-transformers"); +Object.defineProperty(exports, "GeoReplyWith", { enumerable: true, get: function () { return generic_transformers_1.GeoReplyWith; } }); +var FLUSHALL_1 = require("./lib/commands/FLUSHALL"); +Object.defineProperty(exports, "RedisFlushModes", { enumerable: true, get: function () { return FLUSHALL_1.RedisFlushModes; } }); diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.d.ts b/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.d.ts new file mode 100644 index 0000000..e3978ae --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.d.ts @@ -0,0 +1,8 @@ +/// +import { Composer } from './interface'; +export default class BufferComposer implements Composer { + private chunks; + write(buffer: Buffer): void; + end(buffer: Buffer): Buffer; + reset(): void; +} diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.js b/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.js new file mode 100644 index 0000000..3b3347b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/buffer.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +class BufferComposer { + constructor() { + Object.defineProperty(this, "chunks", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + } + write(buffer) { + this.chunks.push(buffer); + } + end(buffer) { + this.write(buffer); + return Buffer.concat(this.chunks.splice(0)); + } + reset() { + this.chunks = []; + } +} +exports.default = BufferComposer; diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.d.ts b/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.d.ts new file mode 100644 index 0000000..165cee3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.d.ts @@ -0,0 +1,6 @@ +/// +export interface Composer { + write(buffer: Buffer): void; + end(buffer: Buffer): T; + reset(): void; +} diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.js b/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/interface.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.d.ts b/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.d.ts new file mode 100644 index 0000000..9d7e87a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.d.ts @@ -0,0 +1,9 @@ +/// +import { Composer } from './interface'; +export default class StringComposer implements Composer { + private decoder; + private string; + write(buffer: Buffer): void; + end(buffer: Buffer): string; + reset(): void; +} diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.js b/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.js new file mode 100644 index 0000000..4be78e1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/composers/string.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const string_decoder_1 = require("string_decoder"); +class StringComposer { + constructor() { + Object.defineProperty(this, "decoder", { + enumerable: true, + configurable: true, + writable: true, + value: new string_decoder_1.StringDecoder() + }); + Object.defineProperty(this, "string", { + enumerable: true, + configurable: true, + writable: true, + value: '' + }); + } + write(buffer) { + this.string += this.decoder.write(buffer); + } + end(buffer) { + const string = this.string + this.decoder.end(buffer); + this.string = ''; + return string; + } + reset() { + this.string = ''; + } +} +exports.default = StringComposer; diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/decoder.d.ts b/node_modules/@redis/client/dist/lib/client/RESP2/decoder.d.ts new file mode 100644 index 0000000..0fc94cf --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/decoder.d.ts @@ -0,0 +1,35 @@ +/// +import { ErrorReply } from '../../errors'; +export type Reply = string | Buffer | ErrorReply | number | null | Array; +export type ReturnStringsAsBuffers = () => boolean; +interface RESP2Options { + returnStringsAsBuffers: ReturnStringsAsBuffers; + onReply(reply: Reply): unknown; +} +export default class RESP2Decoder { + private options; + constructor(options: RESP2Options); + private cursor; + private type?; + private bufferComposer; + private stringComposer; + private currentStringComposer; + reset(): void; + write(chunk: Buffer): void; + private parseType; + private compose; + private parseSimpleString; + private parseError; + private integer; + private isNegativeInteger?; + private parseInteger; + private bulkStringRemainingLength?; + private parseBulkString; + private arraysInProcess; + private initializeArray; + private arrayItemType?; + private parseArray; + private returnArrayReply; + private pushArrayItem; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/decoder.js b/node_modules/@redis/client/dist/lib/client/RESP2/decoder.js new file mode 100644 index 0000000..0f62fc8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/decoder.js @@ -0,0 +1,250 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const errors_1 = require("../../errors"); +const buffer_1 = require("./composers/buffer"); +const string_1 = require("./composers/string"); +// RESP2 specification +// https://redis.io/topics/protocol +var Types; +(function (Types) { + Types[Types["SIMPLE_STRING"] = 43] = "SIMPLE_STRING"; + Types[Types["ERROR"] = 45] = "ERROR"; + Types[Types["INTEGER"] = 58] = "INTEGER"; + Types[Types["BULK_STRING"] = 36] = "BULK_STRING"; + Types[Types["ARRAY"] = 42] = "ARRAY"; // * +})(Types || (Types = {})); +var ASCII; +(function (ASCII) { + ASCII[ASCII["CR"] = 13] = "CR"; + ASCII[ASCII["ZERO"] = 48] = "ZERO"; + ASCII[ASCII["MINUS"] = 45] = "MINUS"; +})(ASCII || (ASCII = {})); +// Using TypeScript `private` and not the build-in `#` to avoid __classPrivateFieldGet and __classPrivateFieldSet +class RESP2Decoder { + constructor(options) { + Object.defineProperty(this, "options", { + enumerable: true, + configurable: true, + writable: true, + value: options + }); + Object.defineProperty(this, "cursor", { + enumerable: true, + configurable: true, + writable: true, + value: 0 + }); + Object.defineProperty(this, "type", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "bufferComposer", { + enumerable: true, + configurable: true, + writable: true, + value: new buffer_1.default() + }); + Object.defineProperty(this, "stringComposer", { + enumerable: true, + configurable: true, + writable: true, + value: new string_1.default() + }); + Object.defineProperty(this, "currentStringComposer", { + enumerable: true, + configurable: true, + writable: true, + value: this.stringComposer + }); + Object.defineProperty(this, "integer", { + enumerable: true, + configurable: true, + writable: true, + value: 0 + }); + Object.defineProperty(this, "isNegativeInteger", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "bulkStringRemainingLength", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "arraysInProcess", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + Object.defineProperty(this, "initializeArray", { + enumerable: true, + configurable: true, + writable: true, + value: false + }); + Object.defineProperty(this, "arrayItemType", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + reset() { + this.cursor = 0; + this.type = undefined; + this.bufferComposer.reset(); + this.stringComposer.reset(); + this.currentStringComposer = this.stringComposer; + } + write(chunk) { + while (this.cursor < chunk.length) { + if (!this.type) { + this.currentStringComposer = this.options.returnStringsAsBuffers() ? + this.bufferComposer : + this.stringComposer; + this.type = chunk[this.cursor]; + if (++this.cursor >= chunk.length) + break; + } + const reply = this.parseType(chunk, this.type); + if (reply === undefined) + break; + this.type = undefined; + this.options.onReply(reply); + } + this.cursor -= chunk.length; + } + parseType(chunk, type, arraysToKeep) { + switch (type) { + case Types.SIMPLE_STRING: + return this.parseSimpleString(chunk); + case Types.ERROR: + return this.parseError(chunk); + case Types.INTEGER: + return this.parseInteger(chunk); + case Types.BULK_STRING: + return this.parseBulkString(chunk); + case Types.ARRAY: + return this.parseArray(chunk, arraysToKeep); + } + } + compose(chunk, composer) { + for (let i = this.cursor; i < chunk.length; i++) { + if (chunk[i] === ASCII.CR) { + const reply = composer.end(chunk.subarray(this.cursor, i)); + this.cursor = i + 2; + return reply; + } + } + const toWrite = chunk.subarray(this.cursor); + composer.write(toWrite); + this.cursor = chunk.length; + } + parseSimpleString(chunk) { + return this.compose(chunk, this.currentStringComposer); + } + parseError(chunk) { + const message = this.compose(chunk, this.stringComposer); + if (message !== undefined) { + return new errors_1.ErrorReply(message); + } + } + parseInteger(chunk) { + if (this.isNegativeInteger === undefined) { + this.isNegativeInteger = chunk[this.cursor] === ASCII.MINUS; + if (this.isNegativeInteger && ++this.cursor === chunk.length) + return; + } + do { + const byte = chunk[this.cursor]; + if (byte === ASCII.CR) { + const integer = this.isNegativeInteger ? -this.integer : this.integer; + this.integer = 0; + this.isNegativeInteger = undefined; + this.cursor += 2; + return integer; + } + this.integer = this.integer * 10 + byte - ASCII.ZERO; + } while (++this.cursor < chunk.length); + } + parseBulkString(chunk) { + if (this.bulkStringRemainingLength === undefined) { + const length = this.parseInteger(chunk); + if (length === undefined) + return; + if (length === -1) + return null; + this.bulkStringRemainingLength = length; + if (this.cursor >= chunk.length) + return; + } + const end = this.cursor + this.bulkStringRemainingLength; + if (chunk.length >= end) { + const reply = this.currentStringComposer.end(chunk.subarray(this.cursor, end)); + this.bulkStringRemainingLength = undefined; + this.cursor = end + 2; + return reply; + } + const toWrite = chunk.subarray(this.cursor); + this.currentStringComposer.write(toWrite); + this.bulkStringRemainingLength -= toWrite.length; + this.cursor = chunk.length; + } + parseArray(chunk, arraysToKeep = 0) { + if (this.initializeArray || this.arraysInProcess.length === arraysToKeep) { + const length = this.parseInteger(chunk); + if (length === undefined) { + this.initializeArray = true; + return undefined; + } + this.initializeArray = false; + this.arrayItemType = undefined; + if (length === -1) { + return this.returnArrayReply(null, arraysToKeep, chunk); + } + else if (length === 0) { + return this.returnArrayReply([], arraysToKeep, chunk); + } + this.arraysInProcess.push({ + array: new Array(length), + pushCounter: 0 + }); + } + while (this.cursor < chunk.length) { + if (!this.arrayItemType) { + this.arrayItemType = chunk[this.cursor]; + if (++this.cursor >= chunk.length) + break; + } + const item = this.parseType(chunk, this.arrayItemType, arraysToKeep + 1); + if (item === undefined) + break; + this.arrayItemType = undefined; + const reply = this.pushArrayItem(item, arraysToKeep); + if (reply !== undefined) + return reply; + } + } + returnArrayReply(reply, arraysToKeep, chunk) { + if (this.arraysInProcess.length <= arraysToKeep) + return reply; + return this.pushArrayItem(reply, arraysToKeep, chunk); + } + pushArrayItem(item, arraysToKeep, chunk) { + const to = this.arraysInProcess[this.arraysInProcess.length - 1]; + to.array[to.pushCounter] = item; + if (++to.pushCounter === to.array.length) { + return this.returnArrayReply(this.arraysInProcess.pop().array, arraysToKeep, chunk); + } + else if (chunk && chunk.length > this.cursor) { + return this.parseArray(chunk, arraysToKeep); + } + } +} +exports.default = RESP2Decoder; diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/encoder.d.ts b/node_modules/@redis/client/dist/lib/client/RESP2/encoder.d.ts new file mode 100644 index 0000000..ea0a62b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/encoder.d.ts @@ -0,0 +1,2 @@ +import { RedisCommandArgument, RedisCommandArguments } from '../../commands'; +export default function encodeCommand(args: RedisCommandArguments): Array; diff --git a/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js b/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js new file mode 100644 index 0000000..ac713de --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/RESP2/encoder.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const CRLF = '\r\n'; +function encodeCommand(args) { + const toWrite = []; + let strings = '*' + args.length + CRLF; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (typeof arg === 'string') { + strings += '$' + Buffer.byteLength(arg) + CRLF + arg + CRLF; + } + else if (arg instanceof Buffer) { + toWrite.push(strings + '$' + arg.length.toString() + CRLF, arg); + strings = CRLF; + } + else { + throw new TypeError('Invalid argument type'); + } + } + toWrite.push(strings); + return toWrite; +} +exports.default = encodeCommand; diff --git a/node_modules/@redis/client/dist/lib/client/commands-queue.d.ts b/node_modules/@redis/client/dist/lib/client/commands-queue.d.ts new file mode 100644 index 0000000..25fa7e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/commands-queue.d.ts @@ -0,0 +1,42 @@ +/// +/// +import { RedisCommandArguments, RedisCommandRawReply } from '../commands'; +import { ChannelListeners, PubSubListener, PubSubType, PubSubTypeListeners } from './pub-sub'; +export interface QueueCommandOptions { + asap?: boolean; + chainId?: symbol; + signal?: AbortSignal; + returnBuffers?: boolean; +} +export interface CommandWaitingToBeSent extends CommandWaitingForReply { + args: RedisCommandArguments; + chainId?: symbol; + abort?: { + signal: AbortSignal; + listener(): void; + }; +} +interface CommandWaitingForReply { + resolve(reply?: unknown): void; + reject(err: unknown): void; + channelsCounter?: number; + returnBuffers?: boolean; +} +export type OnShardedChannelMoved = (channel: string, listeners: ChannelListeners) => void; +export default class RedisCommandsQueue { + #private; + get isPubSubActive(): boolean; + constructor(maxLength: number | null | undefined, onShardedChannelMoved: OnShardedChannelMoved); + addCommand(args: RedisCommandArguments, options?: QueueCommandOptions): Promise; + subscribe(type: PubSubType, channels: string | Array, listener: PubSubListener, returnBuffers?: T): Promise | undefined; + unsubscribe(type: PubSubType, channels?: string | Array, listener?: PubSubListener, returnBuffers?: T): Promise | undefined; + resubscribe(): Promise | undefined; + extendPubSubChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): Promise | undefined; + extendPubSubListeners(type: PubSubType, listeners: PubSubTypeListeners): Promise | undefined; + getPubSubListeners(type: PubSubType): PubSubTypeListeners; + getCommandToSend(): RedisCommandArguments | undefined; + onReplyChunk(chunk: Buffer): void; + flushWaitingForReply(err: Error): void; + flushAll(err: Error): void; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/client/commands-queue.js b/node_modules/@redis/client/dist/lib/client/commands-queue.js new file mode 100644 index 0000000..dbc8590 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/commands-queue.js @@ -0,0 +1,197 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _RedisCommandsQueue_instances, _a, _RedisCommandsQueue_flushQueue, _RedisCommandsQueue_maxLength, _RedisCommandsQueue_waitingToBeSent, _RedisCommandsQueue_waitingForReply, _RedisCommandsQueue_onShardedChannelMoved, _RedisCommandsQueue_pubSub, _RedisCommandsQueue_chainInExecution, _RedisCommandsQueue_decoder, _RedisCommandsQueue_pushPubSubCommand; +Object.defineProperty(exports, "__esModule", { value: true }); +const LinkedList = require("yallist"); +const errors_1 = require("../errors"); +const decoder_1 = require("./RESP2/decoder"); +const encoder_1 = require("./RESP2/encoder"); +const pub_sub_1 = require("./pub-sub"); +const PONG = Buffer.from('pong'); +class RedisCommandsQueue { + get isPubSubActive() { + return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive; + } + constructor(maxLength, onShardedChannelMoved) { + _RedisCommandsQueue_instances.add(this); + _RedisCommandsQueue_maxLength.set(this, void 0); + _RedisCommandsQueue_waitingToBeSent.set(this, new LinkedList()); + _RedisCommandsQueue_waitingForReply.set(this, new LinkedList()); + _RedisCommandsQueue_onShardedChannelMoved.set(this, void 0); + _RedisCommandsQueue_pubSub.set(this, new pub_sub_1.PubSub()); + _RedisCommandsQueue_chainInExecution.set(this, void 0); + _RedisCommandsQueue_decoder.set(this, new decoder_1.default({ + returnStringsAsBuffers: () => { + return !!__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").head?.value.returnBuffers || + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive; + }, + onReply: reply => { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive && Array.isArray(reply)) { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").handleMessageReply(reply)) + return; + const isShardedUnsubscribe = pub_sub_1.PubSub.isShardedUnsubscribe(reply); + if (isShardedUnsubscribe && !__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").length) { + const channel = reply[1].toString(); + __classPrivateFieldGet(this, _RedisCommandsQueue_onShardedChannelMoved, "f").call(this, channel, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").removeShardedListeners(channel)); + return; + } + else if (isShardedUnsubscribe || pub_sub_1.PubSub.isStatusReply(reply)) { + const head = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").head.value; + if ((Number.isNaN(head.channelsCounter) && reply[2] === 0) || + --head.channelsCounter === 0) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift().resolve(); + } + return; + } + if (PONG.equals(reply[0])) { + const { resolve, returnBuffers } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift(), buffer = (reply[1].length === 0 ? reply[0] : reply[1]); + resolve(returnBuffers ? buffer : buffer.toString()); + return; + } + } + const { resolve, reject } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift(); + if (reply instanceof errors_1.ErrorReply) { + reject(reply); + } + else { + resolve(reply); + } + } + })); + __classPrivateFieldSet(this, _RedisCommandsQueue_maxLength, maxLength, "f"); + __classPrivateFieldSet(this, _RedisCommandsQueue_onShardedChannelMoved, onShardedChannelMoved, "f"); + } + addCommand(args, options) { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, "f") && __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").length + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").length >= __classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, "f")) { + return Promise.reject(new Error('The queue is full')); + } + else if (options?.signal?.aborted) { + return Promise.reject(new errors_1.AbortError()); + } + return new Promise((resolve, reject) => { + const node = new LinkedList.Node({ + args, + chainId: options?.chainId, + returnBuffers: options?.returnBuffers, + resolve, + reject + }); + if (options?.signal) { + const listener = () => { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").removeNode(node); + node.value.reject(new errors_1.AbortError()); + }; + node.value.abort = { + signal: options.signal, + listener + }; + // AbortSignal type is incorrent + options.signal.addEventListener('abort', listener, { + once: true + }); + } + if (options?.asap) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").unshiftNode(node); + } + else { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").pushNode(node); + } + }); + } + subscribe(type, channels, listener, returnBuffers) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").subscribe(type, channels, listener, returnBuffers)); + } + unsubscribe(type, channels, listener, returnBuffers) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").unsubscribe(type, channels, listener, returnBuffers)); + } + resubscribe() { + const commands = __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").resubscribe(); + if (!commands.length) + return; + return Promise.all(commands.map(command => __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, command))); + } + extendPubSubChannelListeners(type, channel, listeners) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").extendChannelListeners(type, channel, listeners)); + } + extendPubSubListeners(type, listeners) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").extendTypeListeners(type, listeners)); + } + getPubSubListeners(type) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").getTypeListeners(type); + } + getCommandToSend() { + const toSend = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").shift(); + if (!toSend) + return; + let encoded; + try { + encoded = (0, encoder_1.default)(toSend.args); + } + catch (err) { + toSend.reject(err); + return; + } + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").push({ + resolve: toSend.resolve, + reject: toSend.reject, + channelsCounter: toSend.channelsCounter, + returnBuffers: toSend.returnBuffers + }); + __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, toSend.chainId, "f"); + return encoded; + } + onReplyChunk(chunk) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").write(chunk); + } + flushWaitingForReply(err) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").reset(); + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").reset(); + __classPrivateFieldGet(_a, _a, "m", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f"), err); + if (!__classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, "f")) + return; + while (__classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").head?.value.chainId === __classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, "f")) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").shift(); + } + __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, undefined, "f"); + } + flushAll(err) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").reset(); + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").reset(); + __classPrivateFieldGet(_a, _a, "m", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f"), err); + __classPrivateFieldGet(_a, _a, "m", _RedisCommandsQueue_flushQueue).call(_a, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f"), err); + } +} +_a = RedisCommandsQueue, _RedisCommandsQueue_maxLength = new WeakMap(), _RedisCommandsQueue_waitingToBeSent = new WeakMap(), _RedisCommandsQueue_waitingForReply = new WeakMap(), _RedisCommandsQueue_onShardedChannelMoved = new WeakMap(), _RedisCommandsQueue_pubSub = new WeakMap(), _RedisCommandsQueue_chainInExecution = new WeakMap(), _RedisCommandsQueue_decoder = new WeakMap(), _RedisCommandsQueue_instances = new WeakSet(), _RedisCommandsQueue_flushQueue = function _RedisCommandsQueue_flushQueue(queue, err) { + while (queue.length) { + queue.shift().reject(err); + } +}, _RedisCommandsQueue_pushPubSubCommand = function _RedisCommandsQueue_pushPubSubCommand(command) { + if (command === undefined) + return; + return new Promise((resolve, reject) => { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").push({ + args: command.args, + channelsCounter: command.channelsCounter, + returnBuffers: true, + resolve: () => { + command.resolve(); + resolve(); + }, + reject: err => { + command.reject?.(); + reject(err); + } + }); + }); +}; +exports.default = RedisCommandsQueue; diff --git a/node_modules/@redis/client/dist/lib/client/commands.d.ts b/node_modules/@redis/client/dist/lib/client/commands.d.ts new file mode 100644 index 0000000..ce9c15e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/commands.d.ts @@ -0,0 +1,816 @@ +import * as ACL_CAT from '../commands/ACL_CAT'; +import * as ACL_DELUSER from '../commands/ACL_DELUSER'; +import * as ACL_DRYRUN from '../commands/ACL_DRYRUN'; +import * as ACL_GENPASS from '../commands/ACL_GENPASS'; +import * as ACL_GETUSER from '../commands/ACL_GETUSER'; +import * as ACL_LIST from '../commands/ACL_LIST'; +import * as ACL_LOAD from '../commands/ACL_LOAD'; +import * as ACL_LOG_RESET from '../commands/ACL_LOG_RESET'; +import * as ACL_LOG from '../commands/ACL_LOG'; +import * as ACL_SAVE from '../commands/ACL_SAVE'; +import * as ACL_SETUSER from '../commands/ACL_SETUSER'; +import * as ACL_USERS from '../commands/ACL_USERS'; +import * as ACL_WHOAMI from '../commands/ACL_WHOAMI'; +import * as ASKING from '../commands/ASKING'; +import * as AUTH from '../commands/AUTH'; +import * as BGREWRITEAOF from '../commands/BGREWRITEAOF'; +import * as BGSAVE from '../commands/BGSAVE'; +import * as CLIENT_CACHING from '../commands/CLIENT_CACHING'; +import * as CLIENT_GETNAME from '../commands/CLIENT_GETNAME'; +import * as CLIENT_GETREDIR from '../commands/CLIENT_GETREDIR'; +import * as CLIENT_ID from '../commands/CLIENT_ID'; +import * as CLIENT_KILL from '../commands/CLIENT_KILL'; +import * as CLIENT_LIST from '../commands/CLIENT_LIST'; +import * as CLIENT_NO_EVICT from '../commands/CLIENT_NO-EVICT'; +import * as CLIENT_NO_TOUCH from '../commands/CLIENT_NO-TOUCH'; +import * as CLIENT_PAUSE from '../commands/CLIENT_PAUSE'; +import * as CLIENT_SETNAME from '../commands/CLIENT_SETNAME'; +import * as CLIENT_TRACKING from '../commands/CLIENT_TRACKING'; +import * as CLIENT_TRACKINGINFO from '../commands/CLIENT_TRACKINGINFO'; +import * as CLIENT_UNPAUSE from '../commands/CLIENT_UNPAUSE'; +import * as CLIENT_INFO from '../commands/CLIENT_INFO'; +import * as CLUSTER_ADDSLOTS from '../commands/CLUSTER_ADDSLOTS'; +import * as CLUSTER_ADDSLOTSRANGE from '../commands/CLUSTER_ADDSLOTSRANGE'; +import * as CLUSTER_BUMPEPOCH from '../commands/CLUSTER_BUMPEPOCH'; +import * as CLUSTER_COUNT_FAILURE_REPORTS from '../commands/CLUSTER_COUNT-FAILURE-REPORTS'; +import * as CLUSTER_COUNTKEYSINSLOT from '../commands/CLUSTER_COUNTKEYSINSLOT'; +import * as CLUSTER_DELSLOTS from '../commands/CLUSTER_DELSLOTS'; +import * as CLUSTER_DELSLOTSRANGE from '../commands/CLUSTER_DELSLOTSRANGE'; +import * as CLUSTER_FAILOVER from '../commands/CLUSTER_FAILOVER'; +import * as CLUSTER_FLUSHSLOTS from '../commands/CLUSTER_FLUSHSLOTS'; +import * as CLUSTER_FORGET from '../commands/CLUSTER_FORGET'; +import * as CLUSTER_GETKEYSINSLOT from '../commands/CLUSTER_GETKEYSINSLOT'; +import * as CLUSTER_INFO from '../commands/CLUSTER_INFO'; +import * as CLUSTER_KEYSLOT from '../commands/CLUSTER_KEYSLOT'; +import * as CLUSTER_LINKS from '../commands/CLUSTER_LINKS'; +import * as CLUSTER_MEET from '../commands/CLUSTER_MEET'; +import * as CLUSTER_MYID from '../commands/CLUSTER_MYID'; +import * as CLUSTER_MYSHARDID from '../commands/CLUSTER_MYSHARDID'; +import * as CLUSTER_NODES from '../commands/CLUSTER_NODES'; +import * as CLUSTER_REPLICAS from '../commands/CLUSTER_REPLICAS'; +import * as CLUSTER_REPLICATE from '../commands/CLUSTER_REPLICATE'; +import * as CLUSTER_RESET from '../commands/CLUSTER_RESET'; +import * as CLUSTER_SAVECONFIG from '../commands/CLUSTER_SAVECONFIG'; +import * as CLUSTER_SET_CONFIG_EPOCH from '../commands/CLUSTER_SET-CONFIG-EPOCH'; +import * as CLUSTER_SETSLOT from '../commands/CLUSTER_SETSLOT'; +import * as CLUSTER_SLOTS from '../commands/CLUSTER_SLOTS'; +import * as COMMAND_COUNT from '../commands/COMMAND_COUNT'; +import * as COMMAND_GETKEYS from '../commands/COMMAND_GETKEYS'; +import * as COMMAND_GETKEYSANDFLAGS from '../commands/COMMAND_GETKEYSANDFLAGS'; +import * as COMMAND_INFO from '../commands/COMMAND_INFO'; +import * as COMMAND_LIST from '../commands/COMMAND_LIST'; +import * as COMMAND from '../commands/COMMAND'; +import * as CONFIG_GET from '../commands/CONFIG_GET'; +import * as CONFIG_RESETASTAT from '../commands/CONFIG_RESETSTAT'; +import * as CONFIG_REWRITE from '../commands/CONFIG_REWRITE'; +import * as CONFIG_SET from '../commands/CONFIG_SET'; +import * as DBSIZE from '../commands/DBSIZE'; +import * as DISCARD from '../commands/DISCARD'; +import * as ECHO from '../commands/ECHO'; +import * as FAILOVER from '../commands/FAILOVER'; +import * as FLUSHALL from '../commands/FLUSHALL'; +import * as FLUSHDB from '../commands/FLUSHDB'; +import * as FUNCTION_DELETE from '../commands/FUNCTION_DELETE'; +import * as FUNCTION_DUMP from '../commands/FUNCTION_DUMP'; +import * as FUNCTION_FLUSH from '../commands/FUNCTION_FLUSH'; +import * as FUNCTION_KILL from '../commands/FUNCTION_KILL'; +import * as FUNCTION_LIST_WITHCODE from '../commands/FUNCTION_LIST_WITHCODE'; +import * as FUNCTION_LIST from '../commands/FUNCTION_LIST'; +import * as FUNCTION_LOAD from '../commands/FUNCTION_LOAD'; +import * as FUNCTION_RESTORE from '../commands/FUNCTION_RESTORE'; +import * as FUNCTION_STATS from '../commands/FUNCTION_STATS'; +import * as HELLO from '../commands/HELLO'; +import * as INFO from '../commands/INFO'; +import * as KEYS from '../commands/KEYS'; +import * as LASTSAVE from '../commands/LASTSAVE'; +import * as LATENCY_DOCTOR from '../commands/LATENCY_DOCTOR'; +import * as LATENCY_GRAPH from '../commands/LATENCY_GRAPH'; +import * as LATENCY_HISTORY from '../commands/LATENCY_HISTORY'; +import * as LATENCY_LATEST from '../commands/LATENCY_LATEST'; +import * as LOLWUT from '../commands/LOLWUT'; +import * as MEMORY_DOCTOR from '../commands/MEMORY_DOCTOR'; +import * as MEMORY_MALLOC_STATS from '../commands/MEMORY_MALLOC-STATS'; +import * as MEMORY_PURGE from '../commands/MEMORY_PURGE'; +import * as MEMORY_STATS from '../commands/MEMORY_STATS'; +import * as MEMORY_USAGE from '../commands/MEMORY_USAGE'; +import * as MODULE_LIST from '../commands/MODULE_LIST'; +import * as MODULE_LOAD from '../commands/MODULE_LOAD'; +import * as MODULE_UNLOAD from '../commands/MODULE_UNLOAD'; +import * as MOVE from '../commands/MOVE'; +import * as PING from '../commands/PING'; +import * as PUBSUB_CHANNELS from '../commands/PUBSUB_CHANNELS'; +import * as PUBSUB_NUMPAT from '../commands/PUBSUB_NUMPAT'; +import * as PUBSUB_NUMSUB from '../commands/PUBSUB_NUMSUB'; +import * as PUBSUB_SHARDCHANNELS from '../commands/PUBSUB_SHARDCHANNELS'; +import * as PUBSUB_SHARDNUMSUB from '../commands/PUBSUB_SHARDNUMSUB'; +import * as RANDOMKEY from '../commands/RANDOMKEY'; +import * as READONLY from '../commands/READONLY'; +import * as READWRITE from '../commands/READWRITE'; +import * as REPLICAOF from '../commands/REPLICAOF'; +import * as RESTORE_ASKING from '../commands/RESTORE-ASKING'; +import * as ROLE from '../commands/ROLE'; +import * as SAVE from '../commands/SAVE'; +import * as SCAN from '../commands/SCAN'; +import * as SCRIPT_DEBUG from '../commands/SCRIPT_DEBUG'; +import * as SCRIPT_EXISTS from '../commands/SCRIPT_EXISTS'; +import * as SCRIPT_FLUSH from '../commands/SCRIPT_FLUSH'; +import * as SCRIPT_KILL from '../commands/SCRIPT_KILL'; +import * as SCRIPT_LOAD from '../commands/SCRIPT_LOAD'; +import * as SHUTDOWN from '../commands/SHUTDOWN'; +import * as SWAPDB from '../commands/SWAPDB'; +import * as TIME from '../commands/TIME'; +import * as UNWATCH from '../commands/UNWATCH'; +import * as WAIT from '../commands/WAIT'; +declare const _default: { + ACL_CAT: typeof ACL_CAT; + aclCat: typeof ACL_CAT; + ACL_DELUSER: typeof ACL_DELUSER; + aclDelUser: typeof ACL_DELUSER; + ACL_DRYRUN: typeof ACL_DRYRUN; + aclDryRun: typeof ACL_DRYRUN; + ACL_GENPASS: typeof ACL_GENPASS; + aclGenPass: typeof ACL_GENPASS; + ACL_GETUSER: typeof ACL_GETUSER; + aclGetUser: typeof ACL_GETUSER; + ACL_LIST: typeof ACL_LIST; + aclList: typeof ACL_LIST; + ACL_LOAD: typeof ACL_LOAD; + aclLoad: typeof ACL_LOAD; + ACL_LOG_RESET: typeof ACL_LOG_RESET; + aclLogReset: typeof ACL_LOG_RESET; + ACL_LOG: typeof ACL_LOG; + aclLog: typeof ACL_LOG; + ACL_SAVE: typeof ACL_SAVE; + aclSave: typeof ACL_SAVE; + ACL_SETUSER: typeof ACL_SETUSER; + aclSetUser: typeof ACL_SETUSER; + ACL_USERS: typeof ACL_USERS; + aclUsers: typeof ACL_USERS; + ACL_WHOAMI: typeof ACL_WHOAMI; + aclWhoAmI: typeof ACL_WHOAMI; + ASKING: typeof ASKING; + asking: typeof ASKING; + AUTH: typeof AUTH; + auth: typeof AUTH; + BGREWRITEAOF: typeof BGREWRITEAOF; + bgRewriteAof: typeof BGREWRITEAOF; + BGSAVE: typeof BGSAVE; + bgSave: typeof BGSAVE; + CLIENT_CACHING: typeof CLIENT_CACHING; + clientCaching: typeof CLIENT_CACHING; + CLIENT_GETNAME: typeof CLIENT_GETNAME; + clientGetName: typeof CLIENT_GETNAME; + CLIENT_GETREDIR: typeof CLIENT_GETREDIR; + clientGetRedir: typeof CLIENT_GETREDIR; + CLIENT_ID: typeof CLIENT_ID; + clientId: typeof CLIENT_ID; + CLIENT_KILL: typeof CLIENT_KILL; + clientKill: typeof CLIENT_KILL; + 'CLIENT_NO-EVICT': typeof CLIENT_NO_EVICT; + clientNoEvict: typeof CLIENT_NO_EVICT; + 'CLIENT_NO-TOUCH': typeof CLIENT_NO_TOUCH; + clientNoTouch: typeof CLIENT_NO_TOUCH; + CLIENT_LIST: typeof CLIENT_LIST; + clientList: typeof CLIENT_LIST; + CLIENT_PAUSE: typeof CLIENT_PAUSE; + clientPause: typeof CLIENT_PAUSE; + CLIENT_SETNAME: typeof CLIENT_SETNAME; + clientSetName: typeof CLIENT_SETNAME; + CLIENT_TRACKING: typeof CLIENT_TRACKING; + clientTracking: typeof CLIENT_TRACKING; + CLIENT_TRACKINGINFO: typeof CLIENT_TRACKINGINFO; + clientTrackingInfo: typeof CLIENT_TRACKINGINFO; + CLIENT_UNPAUSE: typeof CLIENT_UNPAUSE; + clientUnpause: typeof CLIENT_UNPAUSE; + CLIENT_INFO: typeof CLIENT_INFO; + clientInfo: typeof CLIENT_INFO; + CLUSTER_ADDSLOTS: typeof CLUSTER_ADDSLOTS; + clusterAddSlots: typeof CLUSTER_ADDSLOTS; + CLUSTER_ADDSLOTSRANGE: typeof CLUSTER_ADDSLOTSRANGE; + clusterAddSlotsRange: typeof CLUSTER_ADDSLOTSRANGE; + CLUSTER_BUMPEPOCH: typeof CLUSTER_BUMPEPOCH; + clusterBumpEpoch: typeof CLUSTER_BUMPEPOCH; + CLUSTER_COUNT_FAILURE_REPORTS: typeof CLUSTER_COUNT_FAILURE_REPORTS; + clusterCountFailureReports: typeof CLUSTER_COUNT_FAILURE_REPORTS; + CLUSTER_COUNTKEYSINSLOT: typeof CLUSTER_COUNTKEYSINSLOT; + clusterCountKeysInSlot: typeof CLUSTER_COUNTKEYSINSLOT; + CLUSTER_DELSLOTS: typeof CLUSTER_DELSLOTS; + clusterDelSlots: typeof CLUSTER_DELSLOTS; + CLUSTER_DELSLOTSRANGE: typeof CLUSTER_DELSLOTSRANGE; + clusterDelSlotsRange: typeof CLUSTER_DELSLOTSRANGE; + CLUSTER_FAILOVER: typeof CLUSTER_FAILOVER; + clusterFailover: typeof CLUSTER_FAILOVER; + CLUSTER_FLUSHSLOTS: typeof CLUSTER_FLUSHSLOTS; + clusterFlushSlots: typeof CLUSTER_FLUSHSLOTS; + CLUSTER_FORGET: typeof CLUSTER_FORGET; + clusterForget: typeof CLUSTER_FORGET; + CLUSTER_GETKEYSINSLOT: typeof CLUSTER_GETKEYSINSLOT; + clusterGetKeysInSlot: typeof CLUSTER_GETKEYSINSLOT; + CLUSTER_INFO: typeof CLUSTER_INFO; + clusterInfo: typeof CLUSTER_INFO; + CLUSTER_KEYSLOT: typeof CLUSTER_KEYSLOT; + clusterKeySlot: typeof CLUSTER_KEYSLOT; + CLUSTER_LINKS: typeof CLUSTER_LINKS; + clusterLinks: typeof CLUSTER_LINKS; + CLUSTER_MEET: typeof CLUSTER_MEET; + clusterMeet: typeof CLUSTER_MEET; + CLUSTER_MYID: typeof CLUSTER_MYID; + clusterMyId: typeof CLUSTER_MYID; + CLUSTER_MYSHARDID: typeof CLUSTER_MYSHARDID; + clusterMyShardId: typeof CLUSTER_MYSHARDID; + CLUSTER_NODES: typeof CLUSTER_NODES; + clusterNodes: typeof CLUSTER_NODES; + CLUSTER_REPLICAS: typeof CLUSTER_REPLICAS; + clusterReplicas: typeof CLUSTER_REPLICAS; + CLUSTER_REPLICATE: typeof CLUSTER_REPLICATE; + clusterReplicate: typeof CLUSTER_REPLICATE; + CLUSTER_RESET: typeof CLUSTER_RESET; + clusterReset: typeof CLUSTER_RESET; + CLUSTER_SAVECONFIG: typeof CLUSTER_SAVECONFIG; + clusterSaveConfig: typeof CLUSTER_SAVECONFIG; + CLUSTER_SET_CONFIG_EPOCH: typeof CLUSTER_SET_CONFIG_EPOCH; + clusterSetConfigEpoch: typeof CLUSTER_SET_CONFIG_EPOCH; + CLUSTER_SETSLOT: typeof CLUSTER_SETSLOT; + clusterSetSlot: typeof CLUSTER_SETSLOT; + CLUSTER_SLOTS: typeof CLUSTER_SLOTS; + clusterSlots: typeof CLUSTER_SLOTS; + COMMAND_COUNT: typeof COMMAND_COUNT; + commandCount: typeof COMMAND_COUNT; + COMMAND_GETKEYS: typeof COMMAND_GETKEYS; + commandGetKeys: typeof COMMAND_GETKEYS; + COMMAND_GETKEYSANDFLAGS: typeof COMMAND_GETKEYSANDFLAGS; + commandGetKeysAndFlags: typeof COMMAND_GETKEYSANDFLAGS; + COMMAND_INFO: typeof COMMAND_INFO; + commandInfo: typeof COMMAND_INFO; + COMMAND_LIST: typeof COMMAND_LIST; + commandList: typeof COMMAND_LIST; + COMMAND: typeof COMMAND; + command: typeof COMMAND; + CONFIG_GET: typeof CONFIG_GET; + configGet: typeof CONFIG_GET; + CONFIG_RESETASTAT: typeof CONFIG_RESETASTAT; + configResetStat: typeof CONFIG_RESETASTAT; + CONFIG_REWRITE: typeof CONFIG_REWRITE; + configRewrite: typeof CONFIG_REWRITE; + CONFIG_SET: typeof CONFIG_SET; + configSet: typeof CONFIG_SET; + DBSIZE: typeof DBSIZE; + dbSize: typeof DBSIZE; + DISCARD: typeof DISCARD; + discard: typeof DISCARD; + ECHO: typeof ECHO; + echo: typeof ECHO; + FAILOVER: typeof FAILOVER; + failover: typeof FAILOVER; + FLUSHALL: typeof FLUSHALL; + flushAll: typeof FLUSHALL; + FLUSHDB: typeof FLUSHDB; + flushDb: typeof FLUSHDB; + FUNCTION_DELETE: typeof FUNCTION_DELETE; + functionDelete: typeof FUNCTION_DELETE; + FUNCTION_DUMP: typeof FUNCTION_DUMP; + functionDump: typeof FUNCTION_DUMP; + FUNCTION_FLUSH: typeof FUNCTION_FLUSH; + functionFlush: typeof FUNCTION_FLUSH; + FUNCTION_KILL: typeof FUNCTION_KILL; + functionKill: typeof FUNCTION_KILL; + FUNCTION_LIST_WITHCODE: typeof FUNCTION_LIST_WITHCODE; + functionListWithCode: typeof FUNCTION_LIST_WITHCODE; + FUNCTION_LIST: typeof FUNCTION_LIST; + functionList: typeof FUNCTION_LIST; + FUNCTION_LOAD: typeof FUNCTION_LOAD; + functionLoad: typeof FUNCTION_LOAD; + FUNCTION_RESTORE: typeof FUNCTION_RESTORE; + functionRestore: typeof FUNCTION_RESTORE; + FUNCTION_STATS: typeof FUNCTION_STATS; + functionStats: typeof FUNCTION_STATS; + HELLO: typeof HELLO; + hello: typeof HELLO; + INFO: typeof INFO; + info: typeof INFO; + KEYS: typeof KEYS; + keys: typeof KEYS; + LASTSAVE: typeof LASTSAVE; + lastSave: typeof LASTSAVE; + LATENCY_DOCTOR: typeof LATENCY_DOCTOR; + latencyDoctor: typeof LATENCY_DOCTOR; + LATENCY_GRAPH: typeof LATENCY_GRAPH; + latencyGraph: typeof LATENCY_GRAPH; + LATENCY_HISTORY: typeof LATENCY_HISTORY; + latencyHistory: typeof LATENCY_HISTORY; + LATENCY_LATEST: typeof LATENCY_LATEST; + latencyLatest: typeof LATENCY_LATEST; + LOLWUT: typeof LOLWUT; + lolwut: typeof LOLWUT; + MEMORY_DOCTOR: typeof MEMORY_DOCTOR; + memoryDoctor: typeof MEMORY_DOCTOR; + 'MEMORY_MALLOC-STATS': typeof MEMORY_MALLOC_STATS; + memoryMallocStats: typeof MEMORY_MALLOC_STATS; + MEMORY_PURGE: typeof MEMORY_PURGE; + memoryPurge: typeof MEMORY_PURGE; + MEMORY_STATS: typeof MEMORY_STATS; + memoryStats: typeof MEMORY_STATS; + MEMORY_USAGE: typeof MEMORY_USAGE; + memoryUsage: typeof MEMORY_USAGE; + MODULE_LIST: typeof MODULE_LIST; + moduleList: typeof MODULE_LIST; + MODULE_LOAD: typeof MODULE_LOAD; + moduleLoad: typeof MODULE_LOAD; + MODULE_UNLOAD: typeof MODULE_UNLOAD; + moduleUnload: typeof MODULE_UNLOAD; + MOVE: typeof MOVE; + move: typeof MOVE; + PING: typeof PING; + ping: typeof PING; + PUBSUB_CHANNELS: typeof PUBSUB_CHANNELS; + pubSubChannels: typeof PUBSUB_CHANNELS; + PUBSUB_NUMPAT: typeof PUBSUB_NUMPAT; + pubSubNumPat: typeof PUBSUB_NUMPAT; + PUBSUB_NUMSUB: typeof PUBSUB_NUMSUB; + pubSubNumSub: typeof PUBSUB_NUMSUB; + PUBSUB_SHARDCHANNELS: typeof PUBSUB_SHARDCHANNELS; + pubSubShardChannels: typeof PUBSUB_SHARDCHANNELS; + PUBSUB_SHARDNUMSUB: typeof PUBSUB_SHARDNUMSUB; + pubSubShardNumSub: typeof PUBSUB_SHARDNUMSUB; + RANDOMKEY: typeof RANDOMKEY; + randomKey: typeof RANDOMKEY; + READONLY: typeof READONLY; + readonly: typeof READONLY; + READWRITE: typeof READWRITE; + readwrite: typeof READWRITE; + REPLICAOF: typeof REPLICAOF; + replicaOf: typeof REPLICAOF; + 'RESTORE-ASKING': typeof RESTORE_ASKING; + restoreAsking: typeof RESTORE_ASKING; + ROLE: typeof ROLE; + role: typeof ROLE; + SAVE: typeof SAVE; + save: typeof SAVE; + SCAN: typeof SCAN; + scan: typeof SCAN; + SCRIPT_DEBUG: typeof SCRIPT_DEBUG; + scriptDebug: typeof SCRIPT_DEBUG; + SCRIPT_EXISTS: typeof SCRIPT_EXISTS; + scriptExists: typeof SCRIPT_EXISTS; + SCRIPT_FLUSH: typeof SCRIPT_FLUSH; + scriptFlush: typeof SCRIPT_FLUSH; + SCRIPT_KILL: typeof SCRIPT_KILL; + scriptKill: typeof SCRIPT_KILL; + SCRIPT_LOAD: typeof SCRIPT_LOAD; + scriptLoad: typeof SCRIPT_LOAD; + SHUTDOWN: typeof SHUTDOWN; + shutdown: typeof SHUTDOWN; + SWAPDB: typeof SWAPDB; + swapDb: typeof SWAPDB; + TIME: typeof TIME; + time: typeof TIME; + UNWATCH: typeof UNWATCH; + unwatch: typeof UNWATCH; + WAIT: typeof WAIT; + wait: typeof WAIT; + APPEND: typeof import("../commands/APPEND"); + append: typeof import("../commands/APPEND"); + BITCOUNT: typeof import("../commands/BITCOUNT"); + bitCount: typeof import("../commands/BITCOUNT"); + BITFIELD_RO: typeof import("../commands/BITFIELD_RO"); + bitFieldRo: typeof import("../commands/BITFIELD_RO"); + BITFIELD: typeof import("../commands/BITFIELD"); + bitField: typeof import("../commands/BITFIELD"); + BITOP: typeof import("../commands/BITOP"); + bitOp: typeof import("../commands/BITOP"); + BITPOS: typeof import("../commands/BITPOS"); + bitPos: typeof import("../commands/BITPOS"); + BLMOVE: typeof import("../commands/BLMOVE"); + blMove: typeof import("../commands/BLMOVE"); + BLMPOP: typeof import("../commands/BLMPOP"); + blmPop: typeof import("../commands/BLMPOP"); + BLPOP: typeof import("../commands/BLPOP"); + blPop: typeof import("../commands/BLPOP"); + BRPOP: typeof import("../commands/BRPOP"); + brPop: typeof import("../commands/BRPOP"); + BRPOPLPUSH: typeof import("../commands/BRPOPLPUSH"); + brPopLPush: typeof import("../commands/BRPOPLPUSH"); + BZMPOP: typeof import("../commands/BZMPOP"); + bzmPop: typeof import("../commands/BZMPOP"); + BZPOPMAX: typeof import("../commands/BZPOPMAX"); + bzPopMax: typeof import("../commands/BZPOPMAX"); + BZPOPMIN: typeof import("../commands/BZPOPMIN"); + bzPopMin: typeof import("../commands/BZPOPMIN"); + COPY: typeof import("../commands/COPY"); + copy: typeof import("../commands/COPY"); + DECR: typeof import("../commands/DECR"); + decr: typeof import("../commands/DECR"); + DECRBY: typeof import("../commands/DECRBY"); + decrBy: typeof import("../commands/DECRBY"); + DEL: typeof import("../commands/DEL"); + del: typeof import("../commands/DEL"); + DUMP: typeof import("../commands/DUMP"); + dump: typeof import("../commands/DUMP"); + EVAL_RO: typeof import("../commands/EVAL_RO"); + evalRo: typeof import("../commands/EVAL_RO"); + EVAL: typeof import("../commands/EVAL"); + eval: typeof import("../commands/EVAL"); + EVALSHA: typeof import("../commands/EVALSHA"); + evalSha: typeof import("../commands/EVALSHA"); + EVALSHA_RO: typeof import("../commands/EVALSHA_RO"); + evalShaRo: typeof import("../commands/EVALSHA_RO"); + EXISTS: typeof import("../commands/EXISTS"); + exists: typeof import("../commands/EXISTS"); + EXPIRE: typeof import("../commands/EXPIRE"); + expire: typeof import("../commands/EXPIRE"); + EXPIREAT: typeof import("../commands/EXPIREAT"); + expireAt: typeof import("../commands/EXPIREAT"); + EXPIRETIME: typeof import("../commands/EXPIRETIME"); + expireTime: typeof import("../commands/EXPIRETIME"); + FCALL_RO: typeof import("../commands/FCALL_RO"); + fCallRo: typeof import("../commands/FCALL_RO"); + FCALL: typeof import("../commands/FCALL"); + fCall: typeof import("../commands/FCALL"); + GEOADD: typeof import("../commands/GEOADD"); + geoAdd: typeof import("../commands/GEOADD"); + GEODIST: typeof import("../commands/GEODIST"); + geoDist: typeof import("../commands/GEODIST"); + GEOHASH: typeof import("../commands/GEOHASH"); + geoHash: typeof import("../commands/GEOHASH"); + GEOPOS: typeof import("../commands/GEOPOS"); + geoPos: typeof import("../commands/GEOPOS"); + GEORADIUS_RO_WITH: typeof import("../commands/GEORADIUS_RO_WITH"); + geoRadiusRoWith: typeof import("../commands/GEORADIUS_RO_WITH"); + GEORADIUS_RO: typeof import("../commands/GEORADIUS_RO"); + geoRadiusRo: typeof import("../commands/GEORADIUS_RO"); + GEORADIUS_WITH: typeof import("../commands/GEORADIUS_WITH"); + geoRadiusWith: typeof import("../commands/GEORADIUS_WITH"); + GEORADIUS: typeof import("../commands/GEORADIUS"); + geoRadius: typeof import("../commands/GEORADIUS"); + GEORADIUSBYMEMBER_RO_WITH: typeof import("../commands/GEORADIUSBYMEMBER_RO_WITH"); + geoRadiusByMemberRoWith: typeof import("../commands/GEORADIUSBYMEMBER_RO_WITH"); + GEORADIUSBYMEMBER_RO: typeof import("../commands/GEORADIUSBYMEMBER_RO"); + geoRadiusByMemberRo: typeof import("../commands/GEORADIUSBYMEMBER_RO"); + GEORADIUSBYMEMBER_WITH: typeof import("../commands/GEORADIUSBYMEMBER_WITH"); + geoRadiusByMemberWith: typeof import("../commands/GEORADIUSBYMEMBER_WITH"); + GEORADIUSBYMEMBER: typeof import("../commands/GEORADIUSBYMEMBER"); + geoRadiusByMember: typeof import("../commands/GEORADIUSBYMEMBER"); + GEORADIUSBYMEMBERSTORE: typeof import("../commands/GEORADIUSBYMEMBERSTORE"); + geoRadiusByMemberStore: typeof import("../commands/GEORADIUSBYMEMBERSTORE"); + GEORADIUSSTORE: typeof import("../commands/GEORADIUSSTORE"); + geoRadiusStore: typeof import("../commands/GEORADIUSSTORE"); + GEOSEARCH_WITH: typeof import("../commands/GEOSEARCH_WITH"); + geoSearchWith: typeof import("../commands/GEOSEARCH_WITH"); + GEOSEARCH: typeof import("../commands/GEOSEARCH"); + geoSearch: typeof import("../commands/GEOSEARCH"); + GEOSEARCHSTORE: typeof import("../commands/GEOSEARCHSTORE"); + geoSearchStore: typeof import("../commands/GEOSEARCHSTORE"); + GET: typeof import("../commands/GET"); + get: typeof import("../commands/GET"); + GETBIT: typeof import("../commands/GETBIT"); + getBit: typeof import("../commands/GETBIT"); + GETDEL: typeof import("../commands/GETDEL"); + getDel: typeof import("../commands/GETDEL"); + GETEX: typeof import("../commands/GETEX"); + getEx: typeof import("../commands/GETEX"); + GETRANGE: typeof import("../commands/GETRANGE"); + getRange: typeof import("../commands/GETRANGE"); + GETSET: typeof import("../commands/GETSET"); + getSet: typeof import("../commands/GETSET"); + HDEL: typeof import("../commands/HDEL"); + hDel: typeof import("../commands/HDEL"); + HEXISTS: typeof import("../commands/HEXISTS"); + hExists: typeof import("../commands/HEXISTS"); + HEXPIRE: typeof import("../commands/HEXPIRE"); + hExpire: typeof import("../commands/HEXPIRE"); + HEXPIREAT: typeof import("../commands/HEXPIREAT"); + hExpireAt: typeof import("../commands/HEXPIREAT"); + HEXPIRETIME: typeof import("../commands/HEXPIRETIME"); + hExpireTime: typeof import("../commands/HEXPIRETIME"); + HGET: typeof import("../commands/HGET"); + hGet: typeof import("../commands/HGET"); + HGETALL: typeof import("../commands/HGETALL"); + hGetAll: typeof import("../commands/HGETALL"); + HINCRBY: typeof import("../commands/HINCRBY"); + hIncrBy: typeof import("../commands/HINCRBY"); + HINCRBYFLOAT: typeof import("../commands/HINCRBYFLOAT"); + hIncrByFloat: typeof import("../commands/HINCRBYFLOAT"); + HKEYS: typeof import("../commands/HKEYS"); + hKeys: typeof import("../commands/HKEYS"); + HLEN: typeof import("../commands/HLEN"); + hLen: typeof import("../commands/HLEN"); + HMGET: typeof import("../commands/HMGET"); + hmGet: typeof import("../commands/HMGET"); + HPERSIST: typeof import("../commands/HPERSIST"); + hPersist: typeof import("../commands/HPERSIST"); + HPEXPIRE: typeof import("../commands/HPEXPIRE"); + hpExpire: typeof import("../commands/HPEXPIRE"); + HPEXPIREAT: typeof import("../commands/HPEXPIREAT"); + hpExpireAt: typeof import("../commands/HPEXPIREAT"); + HPEXPIRETIME: typeof import("../commands/HPEXPIRETIME"); + hpExpireTime: typeof import("../commands/HPEXPIRETIME"); + HPTTL: typeof import("../commands/HPTTL"); + hpTTL: typeof import("../commands/HPTTL"); + HRANDFIELD_COUNT_WITHVALUES: typeof import("../commands/HRANDFIELD_COUNT_WITHVALUES"); + hRandFieldCountWithValues: typeof import("../commands/HRANDFIELD_COUNT_WITHVALUES"); + HRANDFIELD_COUNT: typeof import("../commands/HRANDFIELD_COUNT"); + hRandFieldCount: typeof import("../commands/HRANDFIELD_COUNT"); + HRANDFIELD: typeof import("../commands/HRANDFIELD"); + hRandField: typeof import("../commands/HRANDFIELD"); + HSCAN: typeof import("../commands/HSCAN"); + hScan: typeof import("../commands/HSCAN"); + HSCAN_NOVALUES: typeof import("../commands/HSCAN_NOVALUES"); + hScanNoValues: typeof import("../commands/HSCAN_NOVALUES"); + HSET: typeof import("../commands/HSET"); + hSet: typeof import("../commands/HSET"); + HSETNX: typeof import("../commands/HSETNX"); + hSetNX: typeof import("../commands/HSETNX"); + HSTRLEN: typeof import("../commands/HSTRLEN"); + hStrLen: typeof import("../commands/HSTRLEN"); + HTTL: typeof import("../commands/HTTL"); + hTTL: typeof import("../commands/HTTL"); + HVALS: typeof import("../commands/HVALS"); + hVals: typeof import("../commands/HVALS"); + INCR: typeof import("../commands/INCR"); + incr: typeof import("../commands/INCR"); + INCRBY: typeof import("../commands/INCRBY"); + incrBy: typeof import("../commands/INCRBY"); + INCRBYFLOAT: typeof import("../commands/INCRBYFLOAT"); + incrByFloat: typeof import("../commands/INCRBYFLOAT"); + LCS_IDX_WITHMATCHLEN: typeof import("../commands/LCS_IDX_WITHMATCHLEN"); + lcsIdxWithMatchLen: typeof import("../commands/LCS_IDX_WITHMATCHLEN"); + LCS_IDX: typeof import("../commands/LCS_IDX"); + lcsIdx: typeof import("../commands/LCS_IDX"); + LCS_LEN: typeof import("../commands/LCS_LEN"); + lcsLen: typeof import("../commands/LCS_LEN"); + LCS: typeof import("../commands/LCS"); + lcs: typeof import("../commands/LCS"); + LINDEX: typeof import("../commands/LINDEX"); + lIndex: typeof import("../commands/LINDEX"); + LINSERT: typeof import("../commands/LINSERT"); + lInsert: typeof import("../commands/LINSERT"); + LLEN: typeof import("../commands/LLEN"); + lLen: typeof import("../commands/LLEN"); + LMOVE: typeof import("../commands/LMOVE"); + lMove: typeof import("../commands/LMOVE"); + LMPOP: typeof import("../commands/LMPOP"); + lmPop: typeof import("../commands/LMPOP"); + LPOP_COUNT: typeof import("../commands/LPOP_COUNT"); + lPopCount: typeof import("../commands/LPOP_COUNT"); + LPOP: typeof import("../commands/LPOP"); + lPop: typeof import("../commands/LPOP"); + LPOS_COUNT: typeof import("../commands/LPOS_COUNT"); + lPosCount: typeof import("../commands/LPOS_COUNT"); + LPOS: typeof import("../commands/LPOS"); + lPos: typeof import("../commands/LPOS"); + LPUSH: typeof import("../commands/LPUSH"); + lPush: typeof import("../commands/LPUSH"); + LPUSHX: typeof import("../commands/LPUSHX"); + lPushX: typeof import("../commands/LPUSHX"); + LRANGE: typeof import("../commands/LRANGE"); + lRange: typeof import("../commands/LRANGE"); + LREM: typeof import("../commands/LREM"); + lRem: typeof import("../commands/LREM"); + LSET: typeof import("../commands/LSET"); + lSet: typeof import("../commands/LSET"); + LTRIM: typeof import("../commands/LTRIM"); + lTrim: typeof import("../commands/LTRIM"); + MGET: typeof import("../commands/MGET"); + mGet: typeof import("../commands/MGET"); + MIGRATE: typeof import("../commands/MIGRATE"); + migrate: typeof import("../commands/MIGRATE"); + MSET: typeof import("../commands/MSET"); + mSet: typeof import("../commands/MSET"); + MSETNX: typeof import("../commands/MSETNX"); + mSetNX: typeof import("../commands/MSETNX"); + OBJECT_ENCODING: typeof import("../commands/OBJECT_ENCODING"); + objectEncoding: typeof import("../commands/OBJECT_ENCODING"); + OBJECT_FREQ: typeof import("../commands/OBJECT_FREQ"); + objectFreq: typeof import("../commands/OBJECT_FREQ"); + OBJECT_IDLETIME: typeof import("../commands/OBJECT_IDLETIME"); + objectIdleTime: typeof import("../commands/OBJECT_IDLETIME"); + OBJECT_REFCOUNT: typeof import("../commands/OBJECT_REFCOUNT"); + objectRefCount: typeof import("../commands/OBJECT_REFCOUNT"); + PERSIST: typeof import("../commands/PERSIST"); + persist: typeof import("../commands/PERSIST"); + PEXPIRE: typeof import("../commands/PEXPIRE"); + pExpire: typeof import("../commands/PEXPIRE"); + PEXPIREAT: typeof import("../commands/PEXPIREAT"); + pExpireAt: typeof import("../commands/PEXPIREAT"); + PEXPIRETIME: typeof import("../commands/PEXPIRETIME"); + pExpireTime: typeof import("../commands/PEXPIRETIME"); + PFADD: typeof import("../commands/PFADD"); + pfAdd: typeof import("../commands/PFADD"); + PFCOUNT: typeof import("../commands/PFCOUNT"); + pfCount: typeof import("../commands/PFCOUNT"); + PFMERGE: typeof import("../commands/PFMERGE"); + pfMerge: typeof import("../commands/PFMERGE"); + PSETEX: typeof import("../commands/PSETEX"); + pSetEx: typeof import("../commands/PSETEX"); + PTTL: typeof import("../commands/PTTL"); + pTTL: typeof import("../commands/PTTL"); + PUBLISH: typeof import("../commands/PUBLISH"); + publish: typeof import("../commands/PUBLISH"); + RENAME: typeof import("../commands/RENAME"); + rename: typeof import("../commands/RENAME"); + RENAMENX: typeof import("../commands/RENAMENX"); + renameNX: typeof import("../commands/RENAMENX"); + RESTORE: typeof import("../commands/RESTORE"); + restore: typeof import("../commands/RESTORE"); + RPOP_COUNT: typeof import("../commands/RPOP_COUNT"); + rPopCount: typeof import("../commands/RPOP_COUNT"); + RPOP: typeof import("../commands/RPOP"); + rPop: typeof import("../commands/RPOP"); + RPOPLPUSH: typeof import("../commands/RPOPLPUSH"); + rPopLPush: typeof import("../commands/RPOPLPUSH"); + RPUSH: typeof import("../commands/RPUSH"); + rPush: typeof import("../commands/RPUSH"); + RPUSHX: typeof import("../commands/RPUSHX"); + rPushX: typeof import("../commands/RPUSHX"); + SADD: typeof import("../commands/SADD"); + sAdd: typeof import("../commands/SADD"); + SCARD: typeof import("../commands/SCARD"); + sCard: typeof import("../commands/SCARD"); + SDIFF: typeof import("../commands/SDIFF"); + sDiff: typeof import("../commands/SDIFF"); + SDIFFSTORE: typeof import("../commands/SDIFFSTORE"); + sDiffStore: typeof import("../commands/SDIFFSTORE"); + SINTER: typeof import("../commands/SINTER"); + sInter: typeof import("../commands/SINTER"); + SINTERCARD: typeof import("../commands/SINTERCARD"); + sInterCard: typeof import("../commands/SINTERCARD"); + SINTERSTORE: typeof import("../commands/SINTERSTORE"); + sInterStore: typeof import("../commands/SINTERSTORE"); + SET: typeof import("../commands/SET"); + set: typeof import("../commands/SET"); + SETBIT: typeof import("../commands/SETBIT"); + setBit: typeof import("../commands/SETBIT"); + SETEX: typeof import("../commands/SETEX"); + setEx: typeof import("../commands/SETEX"); + SETNX: typeof import("../commands/SETNX"); + setNX: typeof import("../commands/SETNX"); + SETRANGE: typeof import("../commands/SETRANGE"); + setRange: typeof import("../commands/SETRANGE"); + SISMEMBER: typeof import("../commands/SISMEMBER"); + sIsMember: typeof import("../commands/SISMEMBER"); + SMEMBERS: typeof import("../commands/SMEMBERS"); + sMembers: typeof import("../commands/SMEMBERS"); + SMISMEMBER: typeof import("../commands/SMISMEMBER"); + smIsMember: typeof import("../commands/SMISMEMBER"); + SMOVE: typeof import("../commands/SMOVE"); + sMove: typeof import("../commands/SMOVE"); + SORT_RO: typeof import("../commands/SORT_RO"); + sortRo: typeof import("../commands/SORT_RO"); + SORT_STORE: typeof import("../commands/SORT_STORE"); + sortStore: typeof import("../commands/SORT_STORE"); + SORT: typeof import("../commands/SORT"); + sort: typeof import("../commands/SORT"); + SPOP: typeof import("../commands/SPOP"); + sPop: typeof import("../commands/SPOP"); + SPUBLISH: typeof import("../commands/SPUBLISH"); + sPublish: typeof import("../commands/SPUBLISH"); + SRANDMEMBER_COUNT: typeof import("../commands/SRANDMEMBER_COUNT"); + sRandMemberCount: typeof import("../commands/SRANDMEMBER_COUNT"); + SRANDMEMBER: typeof import("../commands/SRANDMEMBER"); + sRandMember: typeof import("../commands/SRANDMEMBER"); + SREM: typeof import("../commands/SREM"); + sRem: typeof import("../commands/SREM"); + SSCAN: typeof import("../commands/SSCAN"); + sScan: typeof import("../commands/SSCAN"); + STRLEN: typeof import("../commands/STRLEN"); + strLen: typeof import("../commands/STRLEN"); + SUNION: typeof import("../commands/SUNION"); + sUnion: typeof import("../commands/SUNION"); + SUNIONSTORE: typeof import("../commands/SUNIONSTORE"); + sUnionStore: typeof import("../commands/SUNIONSTORE"); + TOUCH: typeof import("../commands/TOUCH"); + touch: typeof import("../commands/TOUCH"); + TTL: typeof import("../commands/TTL"); + ttl: typeof import("../commands/TTL"); + TYPE: typeof import("../commands/TYPE"); + type: typeof import("../commands/TYPE"); + UNLINK: typeof import("../commands/UNLINK"); + unlink: typeof import("../commands/UNLINK"); + WATCH: typeof import("../commands/WATCH"); + watch: typeof import("../commands/WATCH"); + XACK: typeof import("../commands/XACK"); + xAck: typeof import("../commands/XACK"); + XADD: typeof import("../commands/XADD"); + xAdd: typeof import("../commands/XADD"); + XAUTOCLAIM_JUSTID: typeof import("../commands/XAUTOCLAIM_JUSTID"); + xAutoClaimJustId: typeof import("../commands/XAUTOCLAIM_JUSTID"); + XAUTOCLAIM: typeof import("../commands/XAUTOCLAIM"); + xAutoClaim: typeof import("../commands/XAUTOCLAIM"); + XCLAIM: typeof import("../commands/XCLAIM"); + xClaim: typeof import("../commands/XCLAIM"); + XCLAIM_JUSTID: typeof import("../commands/XCLAIM_JUSTID"); + xClaimJustId: typeof import("../commands/XCLAIM_JUSTID"); + XDEL: typeof import("../commands/XDEL"); + xDel: typeof import("../commands/XDEL"); + XGROUP_CREATE: typeof import("../commands/XGROUP_CREATE"); + xGroupCreate: typeof import("../commands/XGROUP_CREATE"); + XGROUP_CREATECONSUMER: typeof import("../commands/XGROUP_CREATECONSUMER"); + xGroupCreateConsumer: typeof import("../commands/XGROUP_CREATECONSUMER"); + XGROUP_DELCONSUMER: typeof import("../commands/XGROUP_DELCONSUMER"); + xGroupDelConsumer: typeof import("../commands/XGROUP_DELCONSUMER"); + XGROUP_DESTROY: typeof import("../commands/XGROUP_DESTROY"); + xGroupDestroy: typeof import("../commands/XGROUP_DESTROY"); + XGROUP_SETID: typeof import("../commands/XGROUP_SETID"); + xGroupSetId: typeof import("../commands/XGROUP_SETID"); + XINFO_CONSUMERS: typeof import("../commands/XINFO_CONSUMERS"); + xInfoConsumers: typeof import("../commands/XINFO_CONSUMERS"); + XINFO_GROUPS: typeof import("../commands/XINFO_GROUPS"); + xInfoGroups: typeof import("../commands/XINFO_GROUPS"); + XINFO_STREAM: typeof import("../commands/XINFO_STREAM"); + xInfoStream: typeof import("../commands/XINFO_STREAM"); + XLEN: typeof import("../commands/XLEN"); + xLen: typeof import("../commands/XLEN"); + XPENDING_RANGE: typeof import("../commands/XPENDING_RANGE"); + xPendingRange: typeof import("../commands/XPENDING_RANGE"); + XPENDING: typeof import("../commands/XPENDING"); + xPending: typeof import("../commands/XPENDING"); + XRANGE: typeof import("../commands/XRANGE"); + xRange: typeof import("../commands/XRANGE"); + XREAD: typeof import("../commands/XREAD"); + xRead: typeof import("../commands/XREAD"); + XREADGROUP: typeof import("../commands/XREADGROUP"); + xReadGroup: typeof import("../commands/XREADGROUP"); + XREVRANGE: typeof import("../commands/XREVRANGE"); + xRevRange: typeof import("../commands/XREVRANGE"); + XSETID: typeof import("../commands/XSETID"); + xSetId: typeof import("../commands/XSETID"); + XTRIM: typeof import("../commands/XTRIM"); + xTrim: typeof import("../commands/XTRIM"); + ZADD: typeof import("../commands/ZADD"); + zAdd: typeof import("../commands/ZADD"); + ZCARD: typeof import("../commands/ZCARD"); + zCard: typeof import("../commands/ZCARD"); + ZCOUNT: typeof import("../commands/ZCOUNT"); + zCount: typeof import("../commands/ZCOUNT"); + ZDIFF_WITHSCORES: typeof import("../commands/ZDIFF_WITHSCORES"); + zDiffWithScores: typeof import("../commands/ZDIFF_WITHSCORES"); + ZDIFF: typeof import("../commands/ZDIFF"); + zDiff: typeof import("../commands/ZDIFF"); + ZDIFFSTORE: typeof import("../commands/ZDIFFSTORE"); + zDiffStore: typeof import("../commands/ZDIFFSTORE"); + ZINCRBY: typeof import("../commands/ZINCRBY"); + zIncrBy: typeof import("../commands/ZINCRBY"); + ZINTER_WITHSCORES: typeof import("../commands/ZINTER_WITHSCORES"); + zInterWithScores: typeof import("../commands/ZINTER_WITHSCORES"); + ZINTER: typeof import("../commands/ZINTER"); + zInter: typeof import("../commands/ZINTER"); + ZINTERCARD: typeof import("../commands/ZINTERCARD"); + zInterCard: typeof import("../commands/ZINTERCARD"); + ZINTERSTORE: typeof import("../commands/ZINTERSTORE"); + zInterStore: typeof import("../commands/ZINTERSTORE"); + ZLEXCOUNT: typeof import("../commands/ZLEXCOUNT"); + zLexCount: typeof import("../commands/ZLEXCOUNT"); + ZMPOP: typeof import("../commands/ZMPOP"); + zmPop: typeof import("../commands/ZMPOP"); + ZMSCORE: typeof import("../commands/ZMSCORE"); + zmScore: typeof import("../commands/ZMSCORE"); + ZPOPMAX_COUNT: typeof import("../commands/ZPOPMAX_COUNT"); + zPopMaxCount: typeof import("../commands/ZPOPMAX_COUNT"); + ZPOPMAX: typeof import("../commands/ZPOPMAX"); + zPopMax: typeof import("../commands/ZPOPMAX"); + ZPOPMIN_COUNT: typeof import("../commands/ZPOPMIN_COUNT"); + zPopMinCount: typeof import("../commands/ZPOPMIN_COUNT"); + ZPOPMIN: typeof import("../commands/ZPOPMIN"); + zPopMin: typeof import("../commands/ZPOPMIN"); + ZRANDMEMBER_COUNT_WITHSCORES: typeof import("../commands/ZRANDMEMBER_COUNT_WITHSCORES"); + zRandMemberCountWithScores: typeof import("../commands/ZRANDMEMBER_COUNT_WITHSCORES"); + ZRANDMEMBER_COUNT: typeof import("../commands/ZRANDMEMBER_COUNT"); + zRandMemberCount: typeof import("../commands/ZRANDMEMBER_COUNT"); + ZRANDMEMBER: typeof import("../commands/ZRANDMEMBER"); + zRandMember: typeof import("../commands/ZRANDMEMBER"); + ZRANGE_WITHSCORES: typeof import("../commands/ZRANGE_WITHSCORES"); + zRangeWithScores: typeof import("../commands/ZRANGE_WITHSCORES"); + ZRANGE: typeof import("../commands/ZRANGE"); + zRange: typeof import("../commands/ZRANGE"); + ZRANGEBYLEX: typeof import("../commands/ZRANGEBYLEX"); + zRangeByLex: typeof import("../commands/ZRANGEBYLEX"); + ZRANGEBYSCORE_WITHSCORES: typeof import("../commands/ZRANGEBYSCORE_WITHSCORES"); + zRangeByScoreWithScores: typeof import("../commands/ZRANGEBYSCORE_WITHSCORES"); + ZRANGEBYSCORE: typeof import("../commands/ZRANGEBYSCORE"); + zRangeByScore: typeof import("../commands/ZRANGEBYSCORE"); + ZRANGESTORE: typeof import("../commands/ZRANGESTORE"); + zRangeStore: typeof import("../commands/ZRANGESTORE"); + ZRANK: typeof import("../commands/ZRANK"); + zRank: typeof import("../commands/ZRANK"); + ZREM: typeof import("../commands/ZREM"); + zRem: typeof import("../commands/ZREM"); + ZREMRANGEBYLEX: typeof import("../commands/ZREMRANGEBYLEX"); + zRemRangeByLex: typeof import("../commands/ZREMRANGEBYLEX"); + ZREMRANGEBYRANK: typeof import("../commands/ZREMRANGEBYRANK"); + zRemRangeByRank: typeof import("../commands/ZREMRANGEBYRANK"); + ZREMRANGEBYSCORE: typeof import("../commands/ZREMRANGEBYSCORE"); + zRemRangeByScore: typeof import("../commands/ZREMRANGEBYSCORE"); + ZREVRANK: typeof import("../commands/ZREVRANK"); + zRevRank: typeof import("../commands/ZREVRANK"); + ZSCAN: typeof import("../commands/ZSCAN"); + zScan: typeof import("../commands/ZSCAN"); + ZSCORE: typeof import("../commands/ZSCORE"); + zScore: typeof import("../commands/ZSCORE"); + ZUNION_WITHSCORES: typeof import("../commands/ZUNION_WITHSCORES"); + zUnionWithScores: typeof import("../commands/ZUNION_WITHSCORES"); + ZUNION: typeof import("../commands/ZUNION"); + zUnion: typeof import("../commands/ZUNION"); + ZUNIONSTORE: typeof import("../commands/ZUNIONSTORE"); + zUnionStore: typeof import("../commands/ZUNIONSTORE"); +}; +export default _default; diff --git a/node_modules/@redis/client/dist/lib/client/commands.js b/node_modules/@redis/client/dist/lib/client/commands.js new file mode 100644 index 0000000..4b4dfb6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/commands.js @@ -0,0 +1,375 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const commands_1 = require("../cluster/commands"); +const ACL_CAT = require("../commands/ACL_CAT"); +const ACL_DELUSER = require("../commands/ACL_DELUSER"); +const ACL_DRYRUN = require("../commands/ACL_DRYRUN"); +const ACL_GENPASS = require("../commands/ACL_GENPASS"); +const ACL_GETUSER = require("../commands/ACL_GETUSER"); +const ACL_LIST = require("../commands/ACL_LIST"); +const ACL_LOAD = require("../commands/ACL_LOAD"); +const ACL_LOG_RESET = require("../commands/ACL_LOG_RESET"); +const ACL_LOG = require("../commands/ACL_LOG"); +const ACL_SAVE = require("../commands/ACL_SAVE"); +const ACL_SETUSER = require("../commands/ACL_SETUSER"); +const ACL_USERS = require("../commands/ACL_USERS"); +const ACL_WHOAMI = require("../commands/ACL_WHOAMI"); +const ASKING = require("../commands/ASKING"); +const AUTH = require("../commands/AUTH"); +const BGREWRITEAOF = require("../commands/BGREWRITEAOF"); +const BGSAVE = require("../commands/BGSAVE"); +const CLIENT_CACHING = require("../commands/CLIENT_CACHING"); +const CLIENT_GETNAME = require("../commands/CLIENT_GETNAME"); +const CLIENT_GETREDIR = require("../commands/CLIENT_GETREDIR"); +const CLIENT_ID = require("../commands/CLIENT_ID"); +const CLIENT_KILL = require("../commands/CLIENT_KILL"); +const CLIENT_LIST = require("../commands/CLIENT_LIST"); +const CLIENT_NO_EVICT = require("../commands/CLIENT_NO-EVICT"); +const CLIENT_NO_TOUCH = require("../commands/CLIENT_NO-TOUCH"); +const CLIENT_PAUSE = require("../commands/CLIENT_PAUSE"); +const CLIENT_SETNAME = require("../commands/CLIENT_SETNAME"); +const CLIENT_TRACKING = require("../commands/CLIENT_TRACKING"); +const CLIENT_TRACKINGINFO = require("../commands/CLIENT_TRACKINGINFO"); +const CLIENT_UNPAUSE = require("../commands/CLIENT_UNPAUSE"); +const CLIENT_INFO = require("../commands/CLIENT_INFO"); +const CLUSTER_ADDSLOTS = require("../commands/CLUSTER_ADDSLOTS"); +const CLUSTER_ADDSLOTSRANGE = require("../commands/CLUSTER_ADDSLOTSRANGE"); +const CLUSTER_BUMPEPOCH = require("../commands/CLUSTER_BUMPEPOCH"); +const CLUSTER_COUNT_FAILURE_REPORTS = require("../commands/CLUSTER_COUNT-FAILURE-REPORTS"); +const CLUSTER_COUNTKEYSINSLOT = require("../commands/CLUSTER_COUNTKEYSINSLOT"); +const CLUSTER_DELSLOTS = require("../commands/CLUSTER_DELSLOTS"); +const CLUSTER_DELSLOTSRANGE = require("../commands/CLUSTER_DELSLOTSRANGE"); +const CLUSTER_FAILOVER = require("../commands/CLUSTER_FAILOVER"); +const CLUSTER_FLUSHSLOTS = require("../commands/CLUSTER_FLUSHSLOTS"); +const CLUSTER_FORGET = require("../commands/CLUSTER_FORGET"); +const CLUSTER_GETKEYSINSLOT = require("../commands/CLUSTER_GETKEYSINSLOT"); +const CLUSTER_INFO = require("../commands/CLUSTER_INFO"); +const CLUSTER_KEYSLOT = require("../commands/CLUSTER_KEYSLOT"); +const CLUSTER_LINKS = require("../commands/CLUSTER_LINKS"); +const CLUSTER_MEET = require("../commands/CLUSTER_MEET"); +const CLUSTER_MYID = require("../commands/CLUSTER_MYID"); +const CLUSTER_MYSHARDID = require("../commands/CLUSTER_MYSHARDID"); +const CLUSTER_NODES = require("../commands/CLUSTER_NODES"); +const CLUSTER_REPLICAS = require("../commands/CLUSTER_REPLICAS"); +const CLUSTER_REPLICATE = require("../commands/CLUSTER_REPLICATE"); +const CLUSTER_RESET = require("../commands/CLUSTER_RESET"); +const CLUSTER_SAVECONFIG = require("../commands/CLUSTER_SAVECONFIG"); +const CLUSTER_SET_CONFIG_EPOCH = require("../commands/CLUSTER_SET-CONFIG-EPOCH"); +const CLUSTER_SETSLOT = require("../commands/CLUSTER_SETSLOT"); +const CLUSTER_SLOTS = require("../commands/CLUSTER_SLOTS"); +const COMMAND_COUNT = require("../commands/COMMAND_COUNT"); +const COMMAND_GETKEYS = require("../commands/COMMAND_GETKEYS"); +const COMMAND_GETKEYSANDFLAGS = require("../commands/COMMAND_GETKEYSANDFLAGS"); +const COMMAND_INFO = require("../commands/COMMAND_INFO"); +const COMMAND_LIST = require("../commands/COMMAND_LIST"); +const COMMAND = require("../commands/COMMAND"); +const CONFIG_GET = require("../commands/CONFIG_GET"); +const CONFIG_RESETASTAT = require("../commands/CONFIG_RESETSTAT"); +const CONFIG_REWRITE = require("../commands/CONFIG_REWRITE"); +const CONFIG_SET = require("../commands/CONFIG_SET"); +const DBSIZE = require("../commands/DBSIZE"); +const DISCARD = require("../commands/DISCARD"); +const ECHO = require("../commands/ECHO"); +const FAILOVER = require("../commands/FAILOVER"); +const FLUSHALL = require("../commands/FLUSHALL"); +const FLUSHDB = require("../commands/FLUSHDB"); +const FUNCTION_DELETE = require("../commands/FUNCTION_DELETE"); +const FUNCTION_DUMP = require("../commands/FUNCTION_DUMP"); +const FUNCTION_FLUSH = require("../commands/FUNCTION_FLUSH"); +const FUNCTION_KILL = require("../commands/FUNCTION_KILL"); +const FUNCTION_LIST_WITHCODE = require("../commands/FUNCTION_LIST_WITHCODE"); +const FUNCTION_LIST = require("../commands/FUNCTION_LIST"); +const FUNCTION_LOAD = require("../commands/FUNCTION_LOAD"); +const FUNCTION_RESTORE = require("../commands/FUNCTION_RESTORE"); +const FUNCTION_STATS = require("../commands/FUNCTION_STATS"); +const HELLO = require("../commands/HELLO"); +const INFO = require("../commands/INFO"); +const KEYS = require("../commands/KEYS"); +const LASTSAVE = require("../commands/LASTSAVE"); +const LATENCY_DOCTOR = require("../commands/LATENCY_DOCTOR"); +const LATENCY_GRAPH = require("../commands/LATENCY_GRAPH"); +const LATENCY_HISTORY = require("../commands/LATENCY_HISTORY"); +const LATENCY_LATEST = require("../commands/LATENCY_LATEST"); +const LOLWUT = require("../commands/LOLWUT"); +const MEMORY_DOCTOR = require("../commands/MEMORY_DOCTOR"); +const MEMORY_MALLOC_STATS = require("../commands/MEMORY_MALLOC-STATS"); +const MEMORY_PURGE = require("../commands/MEMORY_PURGE"); +const MEMORY_STATS = require("../commands/MEMORY_STATS"); +const MEMORY_USAGE = require("../commands/MEMORY_USAGE"); +const MODULE_LIST = require("../commands/MODULE_LIST"); +const MODULE_LOAD = require("../commands/MODULE_LOAD"); +const MODULE_UNLOAD = require("../commands/MODULE_UNLOAD"); +const MOVE = require("../commands/MOVE"); +const PING = require("../commands/PING"); +const PUBSUB_CHANNELS = require("../commands/PUBSUB_CHANNELS"); +const PUBSUB_NUMPAT = require("../commands/PUBSUB_NUMPAT"); +const PUBSUB_NUMSUB = require("../commands/PUBSUB_NUMSUB"); +const PUBSUB_SHARDCHANNELS = require("../commands/PUBSUB_SHARDCHANNELS"); +const PUBSUB_SHARDNUMSUB = require("../commands/PUBSUB_SHARDNUMSUB"); +const RANDOMKEY = require("../commands/RANDOMKEY"); +const READONLY = require("../commands/READONLY"); +const READWRITE = require("../commands/READWRITE"); +const REPLICAOF = require("../commands/REPLICAOF"); +const RESTORE_ASKING = require("../commands/RESTORE-ASKING"); +const ROLE = require("../commands/ROLE"); +const SAVE = require("../commands/SAVE"); +const SCAN = require("../commands/SCAN"); +const SCRIPT_DEBUG = require("../commands/SCRIPT_DEBUG"); +const SCRIPT_EXISTS = require("../commands/SCRIPT_EXISTS"); +const SCRIPT_FLUSH = require("../commands/SCRIPT_FLUSH"); +const SCRIPT_KILL = require("../commands/SCRIPT_KILL"); +const SCRIPT_LOAD = require("../commands/SCRIPT_LOAD"); +const SHUTDOWN = require("../commands/SHUTDOWN"); +const SWAPDB = require("../commands/SWAPDB"); +const TIME = require("../commands/TIME"); +const UNWATCH = require("../commands/UNWATCH"); +const WAIT = require("../commands/WAIT"); +exports.default = { + ...commands_1.default, + ACL_CAT, + aclCat: ACL_CAT, + ACL_DELUSER, + aclDelUser: ACL_DELUSER, + ACL_DRYRUN, + aclDryRun: ACL_DRYRUN, + ACL_GENPASS, + aclGenPass: ACL_GENPASS, + ACL_GETUSER, + aclGetUser: ACL_GETUSER, + ACL_LIST, + aclList: ACL_LIST, + ACL_LOAD, + aclLoad: ACL_LOAD, + ACL_LOG_RESET, + aclLogReset: ACL_LOG_RESET, + ACL_LOG, + aclLog: ACL_LOG, + ACL_SAVE, + aclSave: ACL_SAVE, + ACL_SETUSER, + aclSetUser: ACL_SETUSER, + ACL_USERS, + aclUsers: ACL_USERS, + ACL_WHOAMI, + aclWhoAmI: ACL_WHOAMI, + ASKING, + asking: ASKING, + AUTH, + auth: AUTH, + BGREWRITEAOF, + bgRewriteAof: BGREWRITEAOF, + BGSAVE, + bgSave: BGSAVE, + CLIENT_CACHING, + clientCaching: CLIENT_CACHING, + CLIENT_GETNAME, + clientGetName: CLIENT_GETNAME, + CLIENT_GETREDIR, + clientGetRedir: CLIENT_GETREDIR, + CLIENT_ID, + clientId: CLIENT_ID, + CLIENT_KILL, + clientKill: CLIENT_KILL, + 'CLIENT_NO-EVICT': CLIENT_NO_EVICT, + clientNoEvict: CLIENT_NO_EVICT, + 'CLIENT_NO-TOUCH': CLIENT_NO_TOUCH, + clientNoTouch: CLIENT_NO_TOUCH, + CLIENT_LIST, + clientList: CLIENT_LIST, + CLIENT_PAUSE, + clientPause: CLIENT_PAUSE, + CLIENT_SETNAME, + clientSetName: CLIENT_SETNAME, + CLIENT_TRACKING, + clientTracking: CLIENT_TRACKING, + CLIENT_TRACKINGINFO, + clientTrackingInfo: CLIENT_TRACKINGINFO, + CLIENT_UNPAUSE, + clientUnpause: CLIENT_UNPAUSE, + CLIENT_INFO, + clientInfo: CLIENT_INFO, + CLUSTER_ADDSLOTS, + clusterAddSlots: CLUSTER_ADDSLOTS, + CLUSTER_ADDSLOTSRANGE, + clusterAddSlotsRange: CLUSTER_ADDSLOTSRANGE, + CLUSTER_BUMPEPOCH, + clusterBumpEpoch: CLUSTER_BUMPEPOCH, + CLUSTER_COUNT_FAILURE_REPORTS, + clusterCountFailureReports: CLUSTER_COUNT_FAILURE_REPORTS, + CLUSTER_COUNTKEYSINSLOT, + clusterCountKeysInSlot: CLUSTER_COUNTKEYSINSLOT, + CLUSTER_DELSLOTS, + clusterDelSlots: CLUSTER_DELSLOTS, + CLUSTER_DELSLOTSRANGE, + clusterDelSlotsRange: CLUSTER_DELSLOTSRANGE, + CLUSTER_FAILOVER, + clusterFailover: CLUSTER_FAILOVER, + CLUSTER_FLUSHSLOTS, + clusterFlushSlots: CLUSTER_FLUSHSLOTS, + CLUSTER_FORGET, + clusterForget: CLUSTER_FORGET, + CLUSTER_GETKEYSINSLOT, + clusterGetKeysInSlot: CLUSTER_GETKEYSINSLOT, + CLUSTER_INFO, + clusterInfo: CLUSTER_INFO, + CLUSTER_KEYSLOT, + clusterKeySlot: CLUSTER_KEYSLOT, + CLUSTER_LINKS, + clusterLinks: CLUSTER_LINKS, + CLUSTER_MEET, + clusterMeet: CLUSTER_MEET, + CLUSTER_MYID, + clusterMyId: CLUSTER_MYID, + CLUSTER_MYSHARDID, + clusterMyShardId: CLUSTER_MYSHARDID, + CLUSTER_NODES, + clusterNodes: CLUSTER_NODES, + CLUSTER_REPLICAS, + clusterReplicas: CLUSTER_REPLICAS, + CLUSTER_REPLICATE, + clusterReplicate: CLUSTER_REPLICATE, + CLUSTER_RESET, + clusterReset: CLUSTER_RESET, + CLUSTER_SAVECONFIG, + clusterSaveConfig: CLUSTER_SAVECONFIG, + CLUSTER_SET_CONFIG_EPOCH, + clusterSetConfigEpoch: CLUSTER_SET_CONFIG_EPOCH, + CLUSTER_SETSLOT, + clusterSetSlot: CLUSTER_SETSLOT, + CLUSTER_SLOTS, + clusterSlots: CLUSTER_SLOTS, + COMMAND_COUNT, + commandCount: COMMAND_COUNT, + COMMAND_GETKEYS, + commandGetKeys: COMMAND_GETKEYS, + COMMAND_GETKEYSANDFLAGS, + commandGetKeysAndFlags: COMMAND_GETKEYSANDFLAGS, + COMMAND_INFO, + commandInfo: COMMAND_INFO, + COMMAND_LIST, + commandList: COMMAND_LIST, + COMMAND, + command: COMMAND, + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_RESETASTAT, + configResetStat: CONFIG_RESETASTAT, + CONFIG_REWRITE, + configRewrite: CONFIG_REWRITE, + CONFIG_SET, + configSet: CONFIG_SET, + DBSIZE, + dbSize: DBSIZE, + DISCARD, + discard: DISCARD, + ECHO, + echo: ECHO, + FAILOVER, + failover: FAILOVER, + FLUSHALL, + flushAll: FLUSHALL, + FLUSHDB, + flushDb: FLUSHDB, + FUNCTION_DELETE, + functionDelete: FUNCTION_DELETE, + FUNCTION_DUMP, + functionDump: FUNCTION_DUMP, + FUNCTION_FLUSH, + functionFlush: FUNCTION_FLUSH, + FUNCTION_KILL, + functionKill: FUNCTION_KILL, + FUNCTION_LIST_WITHCODE, + functionListWithCode: FUNCTION_LIST_WITHCODE, + FUNCTION_LIST, + functionList: FUNCTION_LIST, + FUNCTION_LOAD, + functionLoad: FUNCTION_LOAD, + FUNCTION_RESTORE, + functionRestore: FUNCTION_RESTORE, + FUNCTION_STATS, + functionStats: FUNCTION_STATS, + HELLO, + hello: HELLO, + INFO, + info: INFO, + KEYS, + keys: KEYS, + LASTSAVE, + lastSave: LASTSAVE, + LATENCY_DOCTOR, + latencyDoctor: LATENCY_DOCTOR, + LATENCY_GRAPH, + latencyGraph: LATENCY_GRAPH, + LATENCY_HISTORY, + latencyHistory: LATENCY_HISTORY, + LATENCY_LATEST, + latencyLatest: LATENCY_LATEST, + LOLWUT, + lolwut: LOLWUT, + MEMORY_DOCTOR, + memoryDoctor: MEMORY_DOCTOR, + 'MEMORY_MALLOC-STATS': MEMORY_MALLOC_STATS, + memoryMallocStats: MEMORY_MALLOC_STATS, + MEMORY_PURGE, + memoryPurge: MEMORY_PURGE, + MEMORY_STATS, + memoryStats: MEMORY_STATS, + MEMORY_USAGE, + memoryUsage: MEMORY_USAGE, + MODULE_LIST, + moduleList: MODULE_LIST, + MODULE_LOAD, + moduleLoad: MODULE_LOAD, + MODULE_UNLOAD, + moduleUnload: MODULE_UNLOAD, + MOVE, + move: MOVE, + PING, + ping: PING, + PUBSUB_CHANNELS, + pubSubChannels: PUBSUB_CHANNELS, + PUBSUB_NUMPAT, + pubSubNumPat: PUBSUB_NUMPAT, + PUBSUB_NUMSUB, + pubSubNumSub: PUBSUB_NUMSUB, + PUBSUB_SHARDCHANNELS, + pubSubShardChannels: PUBSUB_SHARDCHANNELS, + PUBSUB_SHARDNUMSUB, + pubSubShardNumSub: PUBSUB_SHARDNUMSUB, + RANDOMKEY, + randomKey: RANDOMKEY, + READONLY, + readonly: READONLY, + READWRITE, + readwrite: READWRITE, + REPLICAOF, + replicaOf: REPLICAOF, + 'RESTORE-ASKING': RESTORE_ASKING, + restoreAsking: RESTORE_ASKING, + ROLE, + role: ROLE, + SAVE, + save: SAVE, + SCAN, + scan: SCAN, + SCRIPT_DEBUG, + scriptDebug: SCRIPT_DEBUG, + SCRIPT_EXISTS, + scriptExists: SCRIPT_EXISTS, + SCRIPT_FLUSH, + scriptFlush: SCRIPT_FLUSH, + SCRIPT_KILL, + scriptKill: SCRIPT_KILL, + SCRIPT_LOAD, + scriptLoad: SCRIPT_LOAD, + SHUTDOWN, + shutdown: SHUTDOWN, + SWAPDB, + swapDb: SWAPDB, + TIME, + time: TIME, + UNWATCH, + unwatch: UNWATCH, + WAIT, + wait: WAIT +}; diff --git a/node_modules/@redis/client/dist/lib/client/index.d.ts b/node_modules/@redis/client/dist/lib/client/index.d.ts new file mode 100644 index 0000000..e4f2202 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/index.d.ts @@ -0,0 +1,148 @@ +/// +import COMMANDS from './commands'; +import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandRawReply, RedisCommandReply, RedisFunctions, RedisModules, RedisExtensions, RedisScript, RedisScripts, RedisCommandSignature, ConvertArgumentType, RedisFunction, ExcludeMappedString } from '../commands'; +import { RedisSocketOptions } from './socket'; +import { QueueCommandOptions } from './commands-queue'; +import { RedisClientMultiCommandType } from './multi-command'; +import { RedisMultiQueuedCommand } from '../multi-command'; +import { EventEmitter } from 'events'; +import { CommandOptions } from '../command-options'; +import { ScanOptions, ZMember } from '../commands/generic-transformers'; +import { ScanCommandOptions } from '../commands/SCAN'; +import { HScanTuple } from '../commands/HSCAN'; +import { Options as PoolOptions } from 'generic-pool'; +import { PubSubType, PubSubListener, PubSubTypeListeners, ChannelListeners } from './pub-sub'; +export interface RedisClientOptions extends RedisExtensions { + /** + * `redis[s]://[[username][:password]@][host][:port][/db-number]` + * See [`redis`](https://www.iana.org/assignments/uri-schemes/prov/redis) and [`rediss`](https://www.iana.org/assignments/uri-schemes/prov/rediss) IANA registration for more details + */ + url?: string; + /** + * Socket connection properties + */ + socket?: RedisSocketOptions; + /** + * ACL username ([see ACL guide](https://redis.io/topics/acl)) + */ + username?: string; + /** + * ACL password or the old "--requirepass" password + */ + password?: string; + /** + * Client name ([see `CLIENT SETNAME`](https://redis.io/commands/client-setname)) + */ + name?: string; + /** + * Redis database number (see [`SELECT`](https://redis.io/commands/select) command) + */ + database?: number; + /** + * Maximum length of the client's internal command queue + */ + commandsQueueMaxLength?: number; + /** + * When `true`, commands are rejected when the client is reconnecting. + * When `false`, commands are queued for execution after reconnection. + */ + disableOfflineQueue?: boolean; + /** + * Connect in [`READONLY`](https://redis.io/commands/readonly) mode + */ + readonly?: boolean; + legacyMode?: boolean; + isolationPoolOptions?: PoolOptions; + /** + * Send `PING` command at interval (in ms). + * Useful with Redis deployments that do not use TCP Keep-Alive. + */ + pingInterval?: number; + /** + * If set to true, disables sending client identifier (user-agent like message) to the redis server + */ + disableClientInfo?: boolean; + /** + * Tag to append to library name that is sent to the Redis server + */ + clientInfoTag?: string; +} +type WithCommands = { + [P in keyof typeof COMMANDS]: RedisCommandSignature<(typeof COMMANDS)[P]>; +}; +export type WithModules = { + [P in keyof M as ExcludeMappedString

]: { + [C in keyof M[P] as ExcludeMappedString]: RedisCommandSignature; + }; +}; +export type WithFunctions = { + [P in keyof F as ExcludeMappedString

]: { + [FF in keyof F[P] as ExcludeMappedString]: RedisCommandSignature; + }; +}; +export type WithScripts = { + [P in keyof S as ExcludeMappedString

]: RedisCommandSignature; +}; +export type RedisClientType, F extends RedisFunctions = Record, S extends RedisScripts = Record> = RedisClient & WithCommands & WithModules & WithFunctions & WithScripts; +export type InstantiableRedisClient = new (options?: RedisClientOptions) => RedisClientType; +export interface ClientCommandOptions extends QueueCommandOptions { + isolated?: boolean; +} +export default class RedisClient extends EventEmitter { + #private; + static commandOptions(options: T): CommandOptions; + commandOptions: typeof RedisClient.commandOptions; + static extend(extensions?: RedisExtensions): InstantiableRedisClient; + static create(options?: RedisClientOptions): RedisClientType; + static parseURL(url: string): RedisClientOptions; + get options(): RedisClientOptions | undefined; + get isOpen(): boolean; + get isReady(): boolean; + get isPubSubActive(): boolean; + get v4(): Record; + constructor(options?: RedisClientOptions); + duplicate(overrides?: Partial>): RedisClientType; + connect(): Promise>; + commandsExecutor(command: C, args: Array): Promise>; + sendCommand(args: RedisCommandArguments, options?: ClientCommandOptions): Promise; + functionsExecuter(fn: F, args: Array, name: string): Promise>; + executeFunction(name: string, fn: RedisFunction, args: RedisCommandArguments, options?: ClientCommandOptions): Promise; + scriptsExecuter(script: S, args: Array): Promise>; + executeScript(script: RedisScript, args: RedisCommandArguments, options?: ClientCommandOptions): Promise; + SELECT(db: number): Promise; + SELECT(options: CommandOptions, db: number): Promise; + select: { + (db: number): Promise; + (options: CommandOptions, db: number): Promise; + }; + SUBSCRIBE(channels: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + subscribe: (channels: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + UNSUBSCRIBE(channels?: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + unsubscribe: (channels?: string | Array, listener?: PubSubListener | undefined, bufferMode?: T | undefined) => Promise; + PSUBSCRIBE(patterns: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + pSubscribe: (patterns: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + PUNSUBSCRIBE(patterns?: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + pUnsubscribe: (patterns?: string | Array, listener?: PubSubListener | undefined, bufferMode?: T | undefined) => Promise; + SSUBSCRIBE(channels: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + sSubscribe: (channels: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + SUNSUBSCRIBE(channels?: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + sUnsubscribe: (channels?: string | Array, listener?: PubSubListener | undefined, bufferMode?: T | undefined) => Promise; + getPubSubListeners(type: PubSubType): PubSubTypeListeners; + extendPubSubChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): Promise; + extendPubSubListeners(type: PubSubType, listeners: PubSubTypeListeners): Promise; + QUIT(): Promise; + quit: () => Promise; + executeIsolated(fn: (client: RedisClientType) => T | Promise): Promise; + MULTI(): RedisClientMultiCommandType; + multi: () => RedisClientMultiCommandType; + multiExecutor(commands: Array, selectedDB?: number, chainId?: symbol): Promise>; + scanIterator(options?: ScanCommandOptions): AsyncIterable; + hScanIterator(key: string, options?: ScanOptions): AsyncIterable>; + hScanNoValuesIterator(key: string, options?: ScanOptions): AsyncIterable>; + sScanIterator(key: string, options?: ScanOptions): AsyncIterable; + zScanIterator(key: string, options?: ScanOptions): AsyncIterable>; + disconnect(): Promise; + ref(): void; + unref(): void; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/client/index.js b/node_modules/@redis/client/dist/lib/client/index.js new file mode 100644 index 0000000..5b7d58e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/index.js @@ -0,0 +1,563 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _RedisClient_instances, _a, _RedisClient_options, _RedisClient_socket, _RedisClient_queue, _RedisClient_isolationPool, _RedisClient_v4, _RedisClient_selectedDB, _RedisClient_initiateOptions, _RedisClient_initiateQueue, _RedisClient_initiateSocket, _RedisClient_initiateIsolationPool, _RedisClient_legacyMode, _RedisClient_legacySendCommand, _RedisClient_defineLegacyCommand, _RedisClient_pingTimer, _RedisClient_setPingTimer, _RedisClient_sendCommand, _RedisClient_pubSubCommand, _RedisClient_tick, _RedisClient_addMultiCommands, _RedisClient_destroyIsolationPool; +Object.defineProperty(exports, "__esModule", { value: true }); +const commands_1 = require("./commands"); +const socket_1 = require("./socket"); +const commands_queue_1 = require("./commands-queue"); +const multi_command_1 = require("./multi-command"); +const events_1 = require("events"); +const command_options_1 = require("../command-options"); +const commander_1 = require("../commander"); +const generic_pool_1 = require("generic-pool"); +const errors_1 = require("../errors"); +const url_1 = require("url"); +const pub_sub_1 = require("./pub-sub"); +const package_json_1 = require("../../package.json"); +class RedisClient extends events_1.EventEmitter { + static commandOptions(options) { + return (0, command_options_1.commandOptions)(options); + } + static extend(extensions) { + const Client = (0, commander_1.attachExtensions)({ + BaseClass: _a, + modulesExecutor: _a.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: _a.prototype.functionsExecuter, + functions: extensions?.functions, + scriptsExecutor: _a.prototype.scriptsExecuter, + scripts: extensions?.scripts + }); + if (Client !== _a) { + Client.prototype.Multi = multi_command_1.default.extend(extensions); + } + return Client; + } + static create(options) { + return new (_a.extend(options))(options); + } + static parseURL(url) { + // https://www.iana.org/assignments/uri-schemes/prov/redis + const { hostname, port, protocol, username, password, pathname } = new url_1.URL(url), parsed = { + socket: { + host: hostname + } + }; + if (protocol === 'rediss:') { + parsed.socket.tls = true; + } + else if (protocol !== 'redis:') { + throw new TypeError('Invalid protocol'); + } + if (port) { + parsed.socket.port = Number(port); + } + if (username) { + parsed.username = decodeURIComponent(username); + } + if (password) { + parsed.password = decodeURIComponent(password); + } + if (pathname.length > 1) { + const database = Number(pathname.substring(1)); + if (isNaN(database)) { + throw new TypeError('Invalid pathname'); + } + parsed.database = database; + } + return parsed; + } + get options() { + return __classPrivateFieldGet(this, _RedisClient_options, "f"); + } + get isOpen() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen; + } + get isReady() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").isReady; + } + get isPubSubActive() { + return __classPrivateFieldGet(this, _RedisClient_queue, "f").isPubSubActive; + } + get v4() { + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode) { + throw new Error('the client is not in "legacy mode"'); + } + return __classPrivateFieldGet(this, _RedisClient_v4, "f"); + } + constructor(options) { + super(); + _RedisClient_instances.add(this); + Object.defineProperty(this, "commandOptions", { + enumerable: true, + configurable: true, + writable: true, + value: _a.commandOptions + }); + _RedisClient_options.set(this, void 0); + _RedisClient_socket.set(this, void 0); + _RedisClient_queue.set(this, void 0); + _RedisClient_isolationPool.set(this, void 0); + _RedisClient_v4.set(this, {}); + _RedisClient_selectedDB.set(this, 0); + _RedisClient_pingTimer.set(this, void 0); + Object.defineProperty(this, "select", { + enumerable: true, + configurable: true, + writable: true, + value: this.SELECT + }); + Object.defineProperty(this, "subscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUBSCRIBE + }); + Object.defineProperty(this, "unsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.UNSUBSCRIBE + }); + Object.defineProperty(this, "pSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PSUBSCRIBE + }); + Object.defineProperty(this, "pUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PUNSUBSCRIBE + }); + Object.defineProperty(this, "sSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SSUBSCRIBE + }); + Object.defineProperty(this, "sUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUNSUBSCRIBE + }); + Object.defineProperty(this, "quit", { + enumerable: true, + configurable: true, + writable: true, + value: this.QUIT + }); + Object.defineProperty(this, "multi", { + enumerable: true, + configurable: true, + writable: true, + value: this.MULTI + }); + __classPrivateFieldSet(this, _RedisClient_options, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateOptions).call(this, options), "f"); + __classPrivateFieldSet(this, _RedisClient_queue, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateQueue).call(this), "f"); + __classPrivateFieldSet(this, _RedisClient_socket, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateSocket).call(this), "f"); + // should be initiated in connect, not here + // TODO: consider breaking in v5 + __classPrivateFieldSet(this, _RedisClient_isolationPool, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateIsolationPool).call(this), "f"); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacyMode).call(this); + } + duplicate(overrides) { + return new (Object.getPrototypeOf(this).constructor)({ + ...__classPrivateFieldGet(this, _RedisClient_options, "f"), + ...overrides + }); + } + async connect() { + // see comment in constructor + __classPrivateFieldSet(this, _RedisClient_isolationPool, __classPrivateFieldGet(this, _RedisClient_isolationPool, "f") ?? __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateIsolationPool).call(this), "f"); + await __classPrivateFieldGet(this, _RedisClient_socket, "f").connect(); + return this; + } + async commandsExecutor(command, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args); + return (0, commander_1.transformCommandReply)(command, await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options), redisArgs.preserve); + } + sendCommand(args, options) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, args, options); + } + async functionsExecuter(fn, args, name) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args); + return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, redisArgs, options), redisArgs.preserve); + } + executeFunction(name, fn, args, options) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, (0, commander_1.fCallArguments)(name, fn, args), options); + } + async scriptsExecuter(script, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args); + return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, redisArgs, options), redisArgs.preserve); + } + async executeScript(script, args, options) { + const redisArgs = ['EVALSHA', script.SHA1]; + if (script.NUMBER_OF_KEYS !== undefined) { + redisArgs.push(script.NUMBER_OF_KEYS.toString()); + } + redisArgs.push(...args); + try { + return await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options); + } + catch (err) { + if (!err?.message?.startsWith?.('NOSCRIPT')) { + throw err; + } + redisArgs[0] = 'EVAL'; + redisArgs[1] = script.SCRIPT; + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options); + } + } + async SELECT(options, db) { + if (!(0, command_options_1.isCommandOptions)(options)) { + db = options; + options = null; + } + await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, ['SELECT', db.toString()], options); + __classPrivateFieldSet(this, _RedisClient_selectedDB, db, "f"); + } + SUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode)); + } + UNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode)); + } + PSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode)); + } + PUNSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode)); + } + SSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode)); + } + SUNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode)); + } + getPubSubListeners(type) { + return __classPrivateFieldGet(this, _RedisClient_queue, "f").getPubSubListeners(type); + } + extendPubSubChannelListeners(type, channel, listeners) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").extendPubSubChannelListeners(type, channel, listeners)); + } + extendPubSubListeners(type, listeners) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").extendPubSubListeners(type, listeners)); + } + QUIT() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").quit(async () => { + if (__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")) + clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")); + const quitPromise = __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['QUIT']); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + const [reply] = await Promise.all([ + quitPromise, + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_destroyIsolationPool).call(this) + ]); + return reply; + }); + } + executeIsolated(fn) { + if (!__classPrivateFieldGet(this, _RedisClient_isolationPool, "f")) + return Promise.reject(new errors_1.ClientClosedError()); + return __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").use(fn); + } + MULTI() { + return new this.Multi(this.multiExecutor.bind(this), __classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode); + } + async multiExecutor(commands, selectedDB, chainId) { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen) { + return Promise.reject(new errors_1.ClientClosedError()); + } + const promise = chainId ? + // if `chainId` has a value, it's a `MULTI` (and not "pipeline") - need to add the `MULTI` and `EXEC` commands + Promise.all([ + __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['MULTI'], { chainId }), + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_addMultiCommands).call(this, commands, chainId), + __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['EXEC'], { chainId }) + ]) : + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_addMultiCommands).call(this, commands); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + const results = await promise; + if (selectedDB !== undefined) { + __classPrivateFieldSet(this, _RedisClient_selectedDB, selectedDB, "f"); + } + return results; + } + async *scanIterator(options) { + let cursor = 0; + do { + const reply = await this.scan(cursor, options); + cursor = reply.cursor; + for (const key of reply.keys) { + yield key; + } + } while (cursor !== 0); + } + async *hScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.hScan(key, cursor, options); + cursor = reply.cursor; + for (const tuple of reply.tuples) { + yield tuple; + } + } while (cursor !== 0); + } + async *hScanNoValuesIterator(key, options) { + let cursor = 0; + do { + const reply = await this.hScanNoValues(key, cursor, options); + cursor = reply.cursor; + for (const k of reply.keys) { + yield k; + } + } while (cursor !== 0); + } + async *sScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.sScan(key, cursor, options); + cursor = reply.cursor; + for (const member of reply.members) { + yield member; + } + } while (cursor !== 0); + } + async *zScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.zScan(key, cursor, options); + cursor = reply.cursor; + for (const member of reply.members) { + yield member; + } + } while (cursor !== 0); + } + async disconnect() { + if (__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")) + clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")); + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushAll(new errors_1.DisconnectsClientError()); + __classPrivateFieldGet(this, _RedisClient_socket, "f").disconnect(); + await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_destroyIsolationPool).call(this); + } + ref() { + __classPrivateFieldGet(this, _RedisClient_socket, "f").ref(); + } + unref() { + __classPrivateFieldGet(this, _RedisClient_socket, "f").unref(); + } +} +_a = RedisClient, _RedisClient_options = new WeakMap(), _RedisClient_socket = new WeakMap(), _RedisClient_queue = new WeakMap(), _RedisClient_isolationPool = new WeakMap(), _RedisClient_v4 = new WeakMap(), _RedisClient_selectedDB = new WeakMap(), _RedisClient_pingTimer = new WeakMap(), _RedisClient_instances = new WeakSet(), _RedisClient_initiateOptions = function _RedisClient_initiateOptions(options) { + if (options?.url) { + const parsed = _a.parseURL(options.url); + if (options.socket) { + parsed.socket = Object.assign(options.socket, parsed.socket); + } + Object.assign(options, parsed); + } + if (options?.database) { + __classPrivateFieldSet(this, _RedisClient_selectedDB, options.database, "f"); + } + return options; +}, _RedisClient_initiateQueue = function _RedisClient_initiateQueue() { + return new commands_queue_1.default(__classPrivateFieldGet(this, _RedisClient_options, "f")?.commandsQueueMaxLength, (channel, listeners) => this.emit('sharded-channel-moved', channel, listeners)); +}, _RedisClient_initiateSocket = function _RedisClient_initiateSocket() { + const socketInitiator = async () => { + const promises = []; + if (__classPrivateFieldGet(this, _RedisClient_selectedDB, "f") !== 0) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['SELECT', __classPrivateFieldGet(this, _RedisClient_selectedDB, "f").toString()], { asap: true })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.readonly) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.READONLY.transformArguments(), { asap: true })); + } + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.disableClientInfo) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['CLIENT', 'SETINFO', 'LIB-VER', package_json_1.version], { asap: true }).catch(err => { + if (!(err instanceof errors_1.ErrorReply)) { + throw err; + } + })); + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand([ + 'CLIENT', 'SETINFO', 'LIB-NAME', + __classPrivateFieldGet(this, _RedisClient_options, "f")?.clientInfoTag ? `node-redis(${__classPrivateFieldGet(this, _RedisClient_options, "f").clientInfoTag})` : 'node-redis' + ], { asap: true }).catch(err => { + if (!(err instanceof errors_1.ErrorReply)) { + throw err; + } + })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.name) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.CLIENT_SETNAME.transformArguments(__classPrivateFieldGet(this, _RedisClient_options, "f").name), { asap: true })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.username || __classPrivateFieldGet(this, _RedisClient_options, "f")?.password) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.AUTH.transformArguments({ + username: __classPrivateFieldGet(this, _RedisClient_options, "f").username, + password: __classPrivateFieldGet(this, _RedisClient_options, "f").password ?? '' + }), { asap: true })); + } + const resubscribePromise = __classPrivateFieldGet(this, _RedisClient_queue, "f").resubscribe(); + if (resubscribePromise) { + promises.push(resubscribePromise); + } + if (promises.length) { + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this, true); + await Promise.all(promises); + } + }; + return new socket_1.default(socketInitiator, __classPrivateFieldGet(this, _RedisClient_options, "f")?.socket) + .on('data', chunk => __classPrivateFieldGet(this, _RedisClient_queue, "f").onReplyChunk(chunk)) + .on('error', err => { + this.emit('error', err); + if (__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen && !__classPrivateFieldGet(this, _RedisClient_options, "f")?.disableOfflineQueue) { + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushWaitingForReply(err); + } + else { + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushAll(err); + } + }) + .on('connect', () => { + this.emit('connect'); + }) + .on('ready', () => { + this.emit('ready'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_setPingTimer).call(this); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + }) + .on('reconnecting', () => this.emit('reconnecting')) + .on('drain', () => __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this)) + .on('end', () => this.emit('end')); +}, _RedisClient_initiateIsolationPool = function _RedisClient_initiateIsolationPool() { + return (0, generic_pool_1.createPool)({ + create: async () => { + const duplicate = this.duplicate({ + isolationPoolOptions: undefined + }).on('error', err => this.emit('error', err)); + await duplicate.connect(); + return duplicate; + }, + destroy: client => client.disconnect() + }, __classPrivateFieldGet(this, _RedisClient_options, "f")?.isolationPoolOptions); +}, _RedisClient_legacyMode = function _RedisClient_legacyMode() { + var _b, _c; + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode) + return; + __classPrivateFieldGet(this, _RedisClient_v4, "f").sendCommand = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).bind(this); + this.sendCommand = (...args) => { + const result = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacySendCommand).call(this, ...args); + if (result) { + result.promise + .then(reply => result.callback(null, reply)) + .catch(err => result.callback(err)); + } + }; + for (const [name, command] of Object.entries(commands_1.default)) { + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, name, command); + (_b = this)[_c = name.toLowerCase()] ?? (_b[_c] = this[name]); + } + // hard coded commands + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'SELECT'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'select'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'SUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'subscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'PSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'pSubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'UNSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'unsubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'PUNSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'pUnsubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'QUIT'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'quit'); +}, _RedisClient_legacySendCommand = function _RedisClient_legacySendCommand(...args) { + const callback = typeof args[args.length - 1] === 'function' ? + args.pop() : + undefined; + const promise = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, (0, commander_1.transformLegacyCommandArguments)(args)); + if (callback) + return { + promise, + callback + }; + promise.catch(err => this.emit('error', err)); +}, _RedisClient_defineLegacyCommand = function _RedisClient_defineLegacyCommand(name, command) { + __classPrivateFieldGet(this, _RedisClient_v4, "f")[name] = this[name].bind(this); + this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ? + (...args) => { + const result = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacySendCommand).call(this, name, ...args); + if (result) { + result.promise + .then(reply => result.callback(null, command.transformReply(reply))) + .catch(err => result.callback(err)); + } + } : + (...args) => this.sendCommand(name, ...args); +}, _RedisClient_setPingTimer = function _RedisClient_setPingTimer() { + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.pingInterval || !__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady) + return; + clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")); + __classPrivateFieldSet(this, _RedisClient_pingTimer, setTimeout(() => { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady) + return; + // using #sendCommand to support legacy mode + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, ['PING']) + .then(reply => this.emit('ping-interval', reply)) + .catch(err => this.emit('error', err)) + .finally(() => __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_setPingTimer).call(this)); + }, __classPrivateFieldGet(this, _RedisClient_options, "f").pingInterval), "f"); +}, _RedisClient_sendCommand = function _RedisClient_sendCommand(args, options) { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen) { + return Promise.reject(new errors_1.ClientClosedError()); + } + else if (options?.isolated) { + return this.executeIsolated(isolatedClient => isolatedClient.sendCommand(args, { + ...options, + isolated: false + })); + } + else if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady && __classPrivateFieldGet(this, _RedisClient_options, "f")?.disableOfflineQueue) { + return Promise.reject(new errors_1.ClientOfflineError()); + } + const promise = __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(args, options); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + return promise; +}, _RedisClient_pubSubCommand = function _RedisClient_pubSubCommand(promise) { + if (promise === undefined) + return Promise.resolve(); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + return promise; +}, _RedisClient_tick = function _RedisClient_tick(force = false) { + if (__classPrivateFieldGet(this, _RedisClient_socket, "f").writableNeedDrain || (!force && !__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady)) { + return; + } + __classPrivateFieldGet(this, _RedisClient_socket, "f").cork(); + while (!__classPrivateFieldGet(this, _RedisClient_socket, "f").writableNeedDrain) { + const args = __classPrivateFieldGet(this, _RedisClient_queue, "f").getCommandToSend(); + if (args === undefined) + break; + __classPrivateFieldGet(this, _RedisClient_socket, "f").writeCommand(args); + } +}, _RedisClient_addMultiCommands = function _RedisClient_addMultiCommands(commands, chainId) { + return Promise.all(commands.map(({ args }) => __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(args, { chainId }))); +}, _RedisClient_destroyIsolationPool = async function _RedisClient_destroyIsolationPool() { + await __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").drain(); + await __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").clear(); + __classPrivateFieldSet(this, _RedisClient_isolationPool, undefined, "f"); +}; +exports.default = RedisClient; +(0, commander_1.attachCommands)({ + BaseClass: RedisClient, + commands: commands_1.default, + executor: RedisClient.prototype.commandsExecutor +}); +RedisClient.prototype.Multi = multi_command_1.default; diff --git a/node_modules/@redis/client/dist/lib/client/multi-command.d.ts b/node_modules/@redis/client/dist/lib/client/multi-command.d.ts new file mode 100644 index 0000000..0893589 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/multi-command.d.ts @@ -0,0 +1,39 @@ +import COMMANDS from './commands'; +import { RedisCommand, RedisCommandArguments, RedisCommandRawReply, RedisFunctions, RedisModules, RedisExtensions, RedisScript, RedisScripts, ExcludeMappedString, RedisFunction } from '../commands'; +import { RedisMultiQueuedCommand } from '../multi-command'; +type CommandSignature = (...args: Parameters) => RedisClientMultiCommandType; +type WithCommands = { + [P in keyof typeof COMMANDS]: CommandSignature<(typeof COMMANDS)[P], M, F, S>; +}; +type WithModules = { + [P in keyof M as ExcludeMappedString

]: { + [C in keyof M[P] as ExcludeMappedString]: CommandSignature; + }; +}; +type WithFunctions = { + [P in keyof F as ExcludeMappedString

]: { + [FF in keyof F[P] as ExcludeMappedString]: CommandSignature; + }; +}; +type WithScripts = { + [P in keyof S as ExcludeMappedString

]: CommandSignature; +}; +export type RedisClientMultiCommandType = RedisClientMultiCommand & WithCommands & WithModules & WithFunctions & WithScripts; +type InstantiableRedisMultiCommand = new (...args: ConstructorParameters) => RedisClientMultiCommandType; +export type RedisClientMultiExecutor = (queue: Array, selectedDB?: number, chainId?: symbol) => Promise>; +export default class RedisClientMultiCommand { + #private; + static extend(extensions?: RedisExtensions): InstantiableRedisMultiCommand; + readonly v4: Record; + constructor(executor: RedisClientMultiExecutor, legacyMode?: boolean); + commandsExecutor(command: RedisCommand, args: Array): this; + SELECT(db: number, transformReply?: RedisCommand['transformReply']): this; + select: (db: number, transformReply?: RedisCommand['transformReply']) => this; + addCommand(args: RedisCommandArguments, transformReply?: RedisCommand['transformReply']): this; + functionsExecutor(fn: RedisFunction, args: Array, name: string): this; + scriptsExecutor(script: RedisScript, args: Array): this; + exec(execAsPipeline?: boolean): Promise>; + EXEC: (execAsPipeline?: boolean) => Promise>; + execAsPipeline(): Promise>; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/client/multi-command.js b/node_modules/@redis/client/dist/lib/client/multi-command.js new file mode 100644 index 0000000..4d43c8f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/multi-command.js @@ -0,0 +1,130 @@ +"use strict"; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _RedisClientMultiCommand_instances, _RedisClientMultiCommand_multi, _RedisClientMultiCommand_executor, _RedisClientMultiCommand_selectedDB, _RedisClientMultiCommand_legacyMode, _RedisClientMultiCommand_defineLegacyCommand; +Object.defineProperty(exports, "__esModule", { value: true }); +const commands_1 = require("./commands"); +const multi_command_1 = require("../multi-command"); +const commander_1 = require("../commander"); +class RedisClientMultiCommand { + static extend(extensions) { + return (0, commander_1.attachExtensions)({ + BaseClass: RedisClientMultiCommand, + modulesExecutor: RedisClientMultiCommand.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: RedisClientMultiCommand.prototype.functionsExecutor, + functions: extensions?.functions, + scriptsExecutor: RedisClientMultiCommand.prototype.scriptsExecutor, + scripts: extensions?.scripts + }); + } + constructor(executor, legacyMode = false) { + _RedisClientMultiCommand_instances.add(this); + _RedisClientMultiCommand_multi.set(this, new multi_command_1.default()); + _RedisClientMultiCommand_executor.set(this, void 0); + Object.defineProperty(this, "v4", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + _RedisClientMultiCommand_selectedDB.set(this, void 0); + Object.defineProperty(this, "select", { + enumerable: true, + configurable: true, + writable: true, + value: this.SELECT + }); + Object.defineProperty(this, "EXEC", { + enumerable: true, + configurable: true, + writable: true, + value: this.exec + }); + __classPrivateFieldSet(this, _RedisClientMultiCommand_executor, executor, "f"); + if (legacyMode) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, "m", _RedisClientMultiCommand_legacyMode).call(this); + } + } + commandsExecutor(command, args) { + return this.addCommand(command.transformArguments(...args), command.transformReply); + } + SELECT(db, transformReply) { + __classPrivateFieldSet(this, _RedisClientMultiCommand_selectedDB, db, "f"); + return this.addCommand(['SELECT', db.toString()], transformReply); + } + addCommand(args, transformReply) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand(args, transformReply); + return this; + } + functionsExecutor(fn, args, name) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addFunction(name, fn, args); + return this; + } + scriptsExecutor(script, args) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addScript(script, args); + return this; + } + async exec(execAsPipeline = false) { + if (execAsPipeline) { + return this.execAsPipeline(); + } + return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").handleExecReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, "f"), multi_command_1.default.generateChainId())); + } + async execAsPipeline() { + if (__classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue.length === 0) + return []; + return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").transformReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, "f"))); + } +} +_RedisClientMultiCommand_multi = new WeakMap(), _RedisClientMultiCommand_executor = new WeakMap(), _RedisClientMultiCommand_selectedDB = new WeakMap(), _RedisClientMultiCommand_instances = new WeakSet(), _RedisClientMultiCommand_legacyMode = function _RedisClientMultiCommand_legacyMode() { + var _a, _b; + this.v4.addCommand = this.addCommand.bind(this); + this.addCommand = (...args) => { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand((0, commander_1.transformLegacyCommandArguments)(args)); + return this; + }; + this.v4.exec = this.exec.bind(this); + this.exec = (callback) => { + this.v4.exec() + .then((reply) => { + if (!callback) + return; + callback(null, reply); + }) + .catch((err) => { + if (!callback) { + // this.emit('error', err); + return; + } + callback(err); + }); + }; + for (const [name, command] of Object.entries(commands_1.default)) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, "m", _RedisClientMultiCommand_defineLegacyCommand).call(this, name, command); + (_a = this)[_b = name.toLowerCase()] ?? (_a[_b] = this[name]); + } +}, _RedisClientMultiCommand_defineLegacyCommand = function _RedisClientMultiCommand_defineLegacyCommand(name, command) { + this.v4[name] = this[name].bind(this.v4); + this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ? + (...args) => { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand([name, ...(0, commander_1.transformLegacyCommandArguments)(args)], command.transformReply); + return this; + } : + (...args) => this.addCommand(name, ...args); +}; +exports.default = RedisClientMultiCommand; +(0, commander_1.attachCommands)({ + BaseClass: RedisClientMultiCommand, + commands: commands_1.default, + executor: RedisClientMultiCommand.prototype.commandsExecutor +}); diff --git a/node_modules/@redis/client/dist/lib/client/pub-sub.d.ts b/node_modules/@redis/client/dist/lib/client/pub-sub.d.ts new file mode 100644 index 0000000..ffd2783 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/pub-sub.d.ts @@ -0,0 +1,50 @@ +/// +import { RedisCommandArgument } from "../commands"; +export declare enum PubSubType { + CHANNELS = "CHANNELS", + PATTERNS = "PATTERNS", + SHARDED = "SHARDED" +} +export type PubSubListener = (message: T, channel: T) => unknown; +export interface ChannelListeners { + unsubscribing: boolean; + buffers: Set>; + strings: Set>; +} +export type PubSubTypeListeners = Map; +export type PubSubCommand = ReturnType; +export declare class PubSub { + #private; + static isStatusReply(reply: Array): boolean; + static isShardedUnsubscribe(reply: Array): boolean; + get isActive(): boolean; + subscribe(type: PubSubType, channels: string | Array, listener: PubSubListener, returnBuffers?: T): { + args: RedisCommandArgument[]; + channelsCounter: number; + resolve: () => void; + reject: () => void; + } | undefined; + extendChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): { + args: (string | Buffer)[]; + channelsCounter: number; + resolve: () => number; + reject: () => void; + } | undefined; + extendTypeListeners(type: PubSubType, listeners: PubSubTypeListeners): { + args: RedisCommandArgument[]; + channelsCounter: number; + resolve: () => number; + reject: () => void; + } | undefined; + unsubscribe(type: PubSubType, channels?: string | Array, listener?: PubSubListener, returnBuffers?: T): { + args: RedisCommandArgument[]; + channelsCounter: number; + resolve: () => void; + reject: undefined; + } | undefined; + reset(): void; + resubscribe(): Array; + handleMessageReply(reply: Array): boolean; + removeShardedListeners(channel: string): ChannelListeners; + getTypeListeners(type: PubSubType): PubSubTypeListeners; +} diff --git a/node_modules/@redis/client/dist/lib/client/pub-sub.js b/node_modules/@redis/client/dist/lib/client/pub-sub.js new file mode 100644 index 0000000..fabaa99 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/pub-sub.js @@ -0,0 +1,306 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _PubSub_instances, _a, _PubSub_channelsArray, _PubSub_listenersSet, _PubSub_subscribing, _PubSub_isActive, _PubSub_listeners, _PubSub_extendChannelListeners, _PubSub_unsubscribeCommand, _PubSub_updateIsActive, _PubSub_emitPubSubMessage; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PubSub = exports.PubSubType = void 0; +var PubSubType; +(function (PubSubType) { + PubSubType["CHANNELS"] = "CHANNELS"; + PubSubType["PATTERNS"] = "PATTERNS"; + PubSubType["SHARDED"] = "SHARDED"; +})(PubSubType || (exports.PubSubType = PubSubType = {})); +const COMMANDS = { + [PubSubType.CHANNELS]: { + subscribe: Buffer.from('subscribe'), + unsubscribe: Buffer.from('unsubscribe'), + message: Buffer.from('message') + }, + [PubSubType.PATTERNS]: { + subscribe: Buffer.from('psubscribe'), + unsubscribe: Buffer.from('punsubscribe'), + message: Buffer.from('pmessage') + }, + [PubSubType.SHARDED]: { + subscribe: Buffer.from('ssubscribe'), + unsubscribe: Buffer.from('sunsubscribe'), + message: Buffer.from('smessage') + } +}; +class PubSub { + constructor() { + _PubSub_instances.add(this); + _PubSub_subscribing.set(this, 0); + _PubSub_isActive.set(this, false); + _PubSub_listeners.set(this, { + [PubSubType.CHANNELS]: new Map(), + [PubSubType.PATTERNS]: new Map(), + [PubSubType.SHARDED]: new Map() + }); + } + static isStatusReply(reply) { + return (COMMANDS[PubSubType.CHANNELS].subscribe.equals(reply[0]) || + COMMANDS[PubSubType.CHANNELS].unsubscribe.equals(reply[0]) || + COMMANDS[PubSubType.PATTERNS].subscribe.equals(reply[0]) || + COMMANDS[PubSubType.PATTERNS].unsubscribe.equals(reply[0]) || + COMMANDS[PubSubType.SHARDED].subscribe.equals(reply[0])); + } + static isShardedUnsubscribe(reply) { + return COMMANDS[PubSubType.SHARDED].unsubscribe.equals(reply[0]); + } + get isActive() { + return __classPrivateFieldGet(this, _PubSub_isActive, "f"); + } + subscribe(type, channels, listener, returnBuffers) { + var _b; + const args = [COMMANDS[type].subscribe], channelsArray = __classPrivateFieldGet(_a, _a, "m", _PubSub_channelsArray).call(_a, channels); + for (const channel of channelsArray) { + let channelListeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!channelListeners || channelListeners.unsubscribing) { + args.push(channel); + } + } + if (args.length === 1) { + // all channels are already subscribed, add listeners without issuing a command + for (const channel of channelsArray) { + __classPrivateFieldGet(_a, _a, "m", _PubSub_listenersSet).call(_a, __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel), returnBuffers).add(listener); + } + return; + } + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args, + channelsCounter: args.length - 1, + resolve: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + for (const channel of channelsArray) { + let listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!listeners) { + listeners = { + unsubscribing: false, + buffers: new Set(), + strings: new Set() + }; + __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].set(channel, listeners); + } + __classPrivateFieldGet(_a, _a, "m", _PubSub_listenersSet).call(_a, listeners, returnBuffers).add(listener); + } + }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + extendChannelListeners(type, channel, listeners) { + var _b; + if (!__classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_extendChannelListeners).call(this, type, channel, listeners)) + return; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args: [ + COMMANDS[type].subscribe, + channel + ], + channelsCounter: 1, + resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + extendTypeListeners(type, listeners) { + var _b; + const args = [COMMANDS[type].subscribe]; + for (const [channel, channelListeners] of listeners) { + if (__classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_extendChannelListeners).call(this, type, channel, channelListeners)) { + args.push(channel); + } + } + if (args.length === 1) + return; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args, + channelsCounter: args.length - 1, + resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + unsubscribe(type, channels, listener, returnBuffers) { + const listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type]; + if (!channels) { + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe], + // cannot use `this.#subscribed` because there might be some `SUBSCRIBE` commands in the queue + // cannot use `this.#subscribed + this.#subscribing` because some `SUBSCRIBE` commands might fail + NaN, () => listeners.clear()); + } + const channelsArray = __classPrivateFieldGet(_a, _a, "m", _PubSub_channelsArray).call(_a, channels); + if (!listener) { + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe, ...channelsArray], channelsArray.length, () => { + for (const channel of channelsArray) { + listeners.delete(channel); + } + }); + } + const args = [COMMANDS[type].unsubscribe]; + for (const channel of channelsArray) { + const sets = listeners.get(channel); + if (sets) { + let current, other; + if (returnBuffers) { + current = sets.buffers; + other = sets.strings; + } + else { + current = sets.strings; + other = sets.buffers; + } + const currentSize = current.has(listener) ? current.size - 1 : current.size; + if (currentSize !== 0 || other.size !== 0) + continue; + sets.unsubscribing = true; + } + args.push(channel); + } + if (args.length === 1) { + // all channels has other listeners, + // delete the listeners without issuing a command + for (const channel of channelsArray) { + __classPrivateFieldGet(_a, _a, "m", _PubSub_listenersSet).call(_a, listeners.get(channel), returnBuffers).delete(listener); + } + return; + } + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, args, args.length - 1, () => { + for (const channel of channelsArray) { + const sets = listeners.get(channel); + if (!sets) + continue; + (returnBuffers ? sets.buffers : sets.strings).delete(listener); + if (sets.buffers.size === 0 && sets.strings.size === 0) { + listeners.delete(channel); + } + } + }); + } + reset() { + __classPrivateFieldSet(this, _PubSub_isActive, false, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, 0, "f"); + } + resubscribe() { + var _b; + const commands = []; + for (const [type, listeners] of Object.entries(__classPrivateFieldGet(this, _PubSub_listeners, "f"))) { + if (!listeners.size) + continue; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + const callback = () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }; + commands.push({ + args: [ + COMMANDS[type].subscribe, + ...listeners.keys() + ], + channelsCounter: listeners.size, + resolve: callback, + reject: callback + }); + } + return commands; + } + handleMessageReply(reply) { + if (COMMANDS[PubSubType.CHANNELS].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.CHANNELS, reply[2], reply[1]); + return true; + } + else if (COMMANDS[PubSubType.PATTERNS].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.PATTERNS, reply[3], reply[2], reply[1]); + return true; + } + else if (COMMANDS[PubSubType.SHARDED].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.SHARDED, reply[2], reply[1]); + return true; + } + return false; + } + removeShardedListeners(channel) { + const listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.SHARDED].get(channel); + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.SHARDED].delete(channel); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + return listeners; + } + getTypeListeners(type) { + return __classPrivateFieldGet(this, _PubSub_listeners, "f")[type]; + } +} +exports.PubSub = PubSub; +_a = PubSub, _PubSub_subscribing = new WeakMap(), _PubSub_isActive = new WeakMap(), _PubSub_listeners = new WeakMap(), _PubSub_instances = new WeakSet(), _PubSub_channelsArray = function _PubSub_channelsArray(channels) { + return (Array.isArray(channels) ? channels : [channels]); +}, _PubSub_listenersSet = function _PubSub_listenersSet(listeners, returnBuffers) { + return (returnBuffers ? listeners.buffers : listeners.strings); +}, _PubSub_extendChannelListeners = function _PubSub_extendChannelListeners(type, channel, listeners) { + const existingListeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!existingListeners) { + __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].set(channel, listeners); + return true; + } + for (const listener of listeners.buffers) { + existingListeners.buffers.add(listener); + } + for (const listener of listeners.strings) { + existingListeners.strings.add(listener); + } + return false; +}, _PubSub_unsubscribeCommand = function _PubSub_unsubscribeCommand(args, channelsCounter, removeListeners) { + return { + args, + channelsCounter, + resolve: () => { + removeListeners(); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + }, + reject: undefined // use the same structure as `subscribe` + }; +}, _PubSub_updateIsActive = function _PubSub_updateIsActive() { + __classPrivateFieldSet(this, _PubSub_isActive, (__classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.CHANNELS].size !== 0 || + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.PATTERNS].size !== 0 || + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.SHARDED].size !== 0 || + __classPrivateFieldGet(this, _PubSub_subscribing, "f") !== 0), "f"); +}, _PubSub_emitPubSubMessage = function _PubSub_emitPubSubMessage(type, message, channel, pattern) { + const keyString = (pattern ?? channel).toString(), listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(keyString); + if (!listeners) + return; + for (const listener of listeners.buffers) { + listener(message, channel); + } + if (!listeners.strings.size) + return; + const channelString = pattern ? channel.toString() : keyString, messageString = channelString === '__redis__:invalidate' ? + // https://github.com/redis/redis/pull/7469 + // https://github.com/redis/redis/issues/7463 + (message === null ? null : message.map(x => x.toString())) : + message.toString(); + for (const listener of listeners.strings) { + listener(messageString, channelString); + } +}; diff --git a/node_modules/@redis/client/dist/lib/client/socket.d.ts b/node_modules/@redis/client/dist/lib/client/socket.d.ts new file mode 100644 index 0000000..e793807 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/socket.d.ts @@ -0,0 +1,52 @@ +/// +/// +/// +import { EventEmitter } from 'events'; +import * as net from 'net'; +import * as tls from 'tls'; +import { RedisCommandArguments } from '../commands'; +export interface RedisSocketCommonOptions { + /** + * Connection Timeout (in milliseconds) + */ + connectTimeout?: number; + /** + * Toggle [`Nagle's algorithm`](https://nodejs.org/api/net.html#net_socket_setnodelay_nodelay) + */ + noDelay?: boolean; + /** + * Toggle [`keep-alive`](https://nodejs.org/api/net.html#net_socket_setkeepalive_enable_initialdelay) + */ + keepAlive?: number | false; + /** + * When the socket closes unexpectedly (without calling `.quit()`/`.disconnect()`), the client uses `reconnectStrategy` to decide what to do. The following values are supported: + * 1. `false` -> do not reconnect, close the client and flush the command queue. + * 2. `number` -> wait for `X` milliseconds before reconnecting. + * 3. `(retries: number, cause: Error) => false | number | Error` -> `number` is the same as configuring a `number` directly, `Error` is the same as `false`, but with a custom error. + * Defaults to `retries => Math.min(retries * 50, 500)` + */ + reconnectStrategy?: false | number | ((retries: number, cause: Error) => false | Error | number); +} +type RedisNetSocketOptions = Partial & { + tls?: false; +}; +export interface RedisTlsSocketOptions extends tls.ConnectionOptions { + tls: true; +} +export type RedisSocketOptions = RedisSocketCommonOptions & (RedisNetSocketOptions | RedisTlsSocketOptions); +export type RedisSocketInitiator = () => Promise; +export default class RedisSocket extends EventEmitter { + #private; + get isOpen(): boolean; + get isReady(): boolean; + get writableNeedDrain(): boolean; + constructor(initiator: RedisSocketInitiator, options?: RedisSocketOptions); + connect(): Promise; + writeCommand(args: RedisCommandArguments): void; + disconnect(): void; + quit(fn: () => Promise): Promise; + cork(): void; + ref(): void; + unref(): void; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/client/socket.js b/node_modules/@redis/client/dist/lib/client/socket.js new file mode 100644 index 0000000..3baa08b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/client/socket.js @@ -0,0 +1,233 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _RedisSocket_instances, _a, _RedisSocket_initiateOptions, _RedisSocket_isTlsSocket, _RedisSocket_initiator, _RedisSocket_options, _RedisSocket_socket, _RedisSocket_isOpen, _RedisSocket_isReady, _RedisSocket_writableNeedDrain, _RedisSocket_isSocketUnrefed, _RedisSocket_reconnectStrategy, _RedisSocket_shouldReconnect, _RedisSocket_connect, _RedisSocket_createSocket, _RedisSocket_createNetSocket, _RedisSocket_createTlsSocket, _RedisSocket_onSocketError, _RedisSocket_disconnect, _RedisSocket_isCorked; +Object.defineProperty(exports, "__esModule", { value: true }); +const events_1 = require("events"); +const net = require("net"); +const tls = require("tls"); +const errors_1 = require("../errors"); +const utils_1 = require("../utils"); +class RedisSocket extends events_1.EventEmitter { + get isOpen() { + return __classPrivateFieldGet(this, _RedisSocket_isOpen, "f"); + } + get isReady() { + return __classPrivateFieldGet(this, _RedisSocket_isReady, "f"); + } + get writableNeedDrain() { + return __classPrivateFieldGet(this, _RedisSocket_writableNeedDrain, "f"); + } + constructor(initiator, options) { + super(); + _RedisSocket_instances.add(this); + _RedisSocket_initiator.set(this, void 0); + _RedisSocket_options.set(this, void 0); + _RedisSocket_socket.set(this, void 0); + _RedisSocket_isOpen.set(this, false); + _RedisSocket_isReady.set(this, false); + // `writable.writableNeedDrain` was added in v15.2.0 and therefore can't be used + // https://nodejs.org/api/stream.html#stream_writable_writableneeddrain + _RedisSocket_writableNeedDrain.set(this, false); + _RedisSocket_isSocketUnrefed.set(this, false); + _RedisSocket_isCorked.set(this, false); + __classPrivateFieldSet(this, _RedisSocket_initiator, initiator, "f"); + __classPrivateFieldSet(this, _RedisSocket_options, __classPrivateFieldGet(_a, _a, "m", _RedisSocket_initiateOptions).call(_a, options), "f"); + } + async connect() { + if (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new Error('Socket already opened'); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, true, "f"); + return __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this); + } + writeCommand(args) { + if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f")) { + throw new errors_1.ClientClosedError(); + } + for (const toWrite of args) { + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, !__classPrivateFieldGet(this, _RedisSocket_socket, "f").write(toWrite), "f"); + } + } + disconnect() { + if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new errors_1.ClientClosedError(); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this); + } + async quit(fn) { + if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new errors_1.ClientClosedError(); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + const reply = await fn(); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this); + return reply; + } + cork() { + if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f") || __classPrivateFieldGet(this, _RedisSocket_isCorked, "f")) { + return; + } + __classPrivateFieldGet(this, _RedisSocket_socket, "f").cork(); + __classPrivateFieldSet(this, _RedisSocket_isCorked, true, "f"); + setImmediate(() => { + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.uncork(); + __classPrivateFieldSet(this, _RedisSocket_isCorked, false, "f"); + }); + } + ref() { + __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, false, "f"); + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.ref(); + } + unref() { + __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, true, "f"); + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.unref(); + } +} +_a = RedisSocket, _RedisSocket_initiator = new WeakMap(), _RedisSocket_options = new WeakMap(), _RedisSocket_socket = new WeakMap(), _RedisSocket_isOpen = new WeakMap(), _RedisSocket_isReady = new WeakMap(), _RedisSocket_writableNeedDrain = new WeakMap(), _RedisSocket_isSocketUnrefed = new WeakMap(), _RedisSocket_isCorked = new WeakMap(), _RedisSocket_instances = new WeakSet(), _RedisSocket_initiateOptions = function _RedisSocket_initiateOptions(options) { + var _b, _c; + options ?? (options = {}); + if (!options.path) { + (_b = options).port ?? (_b.port = 6379); + (_c = options).host ?? (_c.host = 'localhost'); + } + options.connectTimeout ?? (options.connectTimeout = 5000); + options.keepAlive ?? (options.keepAlive = 5000); + options.noDelay ?? (options.noDelay = true); + return options; +}, _RedisSocket_isTlsSocket = function _RedisSocket_isTlsSocket(options) { + return options.tls === true; +}, _RedisSocket_reconnectStrategy = function _RedisSocket_reconnectStrategy(retries, cause) { + if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === false) { + return false; + } + else if (typeof __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === 'number') { + return __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy; + } + else if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy) { + try { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy(retries, cause); + if (retryIn !== false && !(retryIn instanceof Error) && typeof retryIn !== 'number') { + throw new TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`); + } + return retryIn; + } + catch (err) { + this.emit('error', err); + } + } + return Math.min(retries * 50, 500); +}, _RedisSocket_shouldReconnect = function _RedisSocket_shouldReconnect(retries, cause) { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_reconnectStrategy).call(this, retries, cause); + if (retryIn === false) { + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + this.emit('error', cause); + return cause; + } + else if (retryIn instanceof Error) { + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + this.emit('error', cause); + return new errors_1.ReconnectStrategyError(retryIn, cause); + } + return retryIn; +}, _RedisSocket_connect = async function _RedisSocket_connect() { + let retries = 0; + do { + try { + __classPrivateFieldSet(this, _RedisSocket_socket, await __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createSocket).call(this), "f"); + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f"); + this.emit('connect'); + try { + await __classPrivateFieldGet(this, _RedisSocket_initiator, "f").call(this); + } + catch (err) { + __classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy(); + __classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f"); + throw err; + } + __classPrivateFieldSet(this, _RedisSocket_isReady, true, "f"); + this.emit('ready'); + } + catch (err) { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, retries++, err); + if (typeof retryIn !== 'number') { + throw retryIn; + } + this.emit('error', err); + await (0, utils_1.promiseTimeout)(retryIn); + this.emit('reconnecting'); + } + } while (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && !__classPrivateFieldGet(this, _RedisSocket_isReady, "f")); +}, _RedisSocket_createSocket = function _RedisSocket_createSocket() { + return new Promise((resolve, reject) => { + const { connectEvent, socket } = __classPrivateFieldGet(_a, _a, "m", _RedisSocket_isTlsSocket).call(_a, __classPrivateFieldGet(this, _RedisSocket_options, "f")) ? + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createTlsSocket).call(this) : + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createNetSocket).call(this); + if (__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout) { + socket.setTimeout(__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout, () => socket.destroy(new errors_1.ConnectionTimeoutError())); + } + if (__classPrivateFieldGet(this, _RedisSocket_isSocketUnrefed, "f")) { + socket.unref(); + } + socket + .setNoDelay(__classPrivateFieldGet(this, _RedisSocket_options, "f").noDelay) + .once('error', reject) + .once(connectEvent, () => { + socket + .setTimeout(0) + // https://github.com/nodejs/node/issues/31663 + .setKeepAlive(__classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive !== false, __classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive || 0) + .off('error', reject) + .once('error', (err) => __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, err)) + .once('close', hadError => { + if (!hadError && __classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && __classPrivateFieldGet(this, _RedisSocket_socket, "f") === socket) { + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, new errors_1.SocketClosedUnexpectedlyError()); + } + }) + .on('drain', () => { + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f"); + this.emit('drain'); + }) + .on('data', data => this.emit('data', data)); + resolve(socket); + }); + }); +}, _RedisSocket_createNetSocket = function _RedisSocket_createNetSocket() { + return { + connectEvent: 'connect', + socket: net.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO + }; +}, _RedisSocket_createTlsSocket = function _RedisSocket_createTlsSocket() { + return { + connectEvent: 'secureConnect', + socket: tls.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO + }; +}, _RedisSocket_onSocketError = function _RedisSocket_onSocketError(err) { + const wasReady = __classPrivateFieldGet(this, _RedisSocket_isReady, "f"); + __classPrivateFieldSet(this, _RedisSocket_isReady, false, "f"); + this.emit('error', err); + if (!wasReady || !__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") || typeof __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, 0, err) !== 'number') + return; + this.emit('reconnecting'); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this).catch(() => { + // the error was already emitted, silently ignore it + }); +}, _RedisSocket_disconnect = function _RedisSocket_disconnect() { + __classPrivateFieldSet(this, _RedisSocket_isReady, false, "f"); + if (__classPrivateFieldGet(this, _RedisSocket_socket, "f")) { + __classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy(); + __classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f"); + } + this.emit('end'); +}; +exports.default = RedisSocket; diff --git a/node_modules/@redis/client/dist/lib/cluster/cluster-slots.d.ts b/node_modules/@redis/client/dist/lib/cluster/cluster-slots.d.ts new file mode 100644 index 0000000..1a2d153 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/cluster-slots.d.ts @@ -0,0 +1,60 @@ +/// +import { RedisClientType } from '../client'; +import { RedisClusterOptions } from '.'; +import { RedisCommandArgument, RedisFunctions, RedisModules, RedisScripts } from '../commands'; +import { ChannelListeners } from '../client/pub-sub'; +import { EventEmitter } from 'stream'; +interface NodeAddress { + host: string; + port: number; +} +export type NodeAddressMap = { + [address: string]: NodeAddress; +} | ((address: string) => NodeAddress | undefined); +type ValueOrPromise = T | Promise; +type ClientOrPromise = ValueOrPromise>; +export interface Node { + address: string; + client?: ClientOrPromise; +} +export interface ShardNode extends Node { + id: string; + host: string; + port: number; + readonly: boolean; +} +export interface MasterNode extends ShardNode { + pubSubClient?: ClientOrPromise; +} +export interface Shard { + master: MasterNode; + replicas?: Array>; + nodesIterator?: IterableIterator>; +} +export type PubSubNode = Required>; +export type OnShardedChannelMovedError = (err: unknown, channel: string, listeners?: ChannelListeners) => void; +export default class RedisClusterSlots { + #private; + slots: Shard[]; + shards: Shard[]; + masters: ShardNode[]; + replicas: ShardNode[]; + readonly nodeByAddress: Map | MasterNode>; + pubSubNode?: PubSubNode; + get isOpen(): boolean; + constructor(options: RedisClusterOptions, emit: EventEmitter['emit']); + connect(): Promise; + nodeClient(node: ShardNode): ClientOrPromise; + rediscover(startWith: RedisClientType): Promise; + quit(): Promise; + disconnect(): Promise; + getClient(firstKey: RedisCommandArgument | undefined, isReadonly: boolean | undefined): ClientOrPromise; + getRandomNode(): ShardNode; + getSlotRandomNode(slotNumber: number): ShardNode; + getMasterByAddress(address: string): ClientOrPromise | undefined; + getPubSubClient(): ClientOrPromise; + executeUnsubscribeCommand(unsubscribe: (client: RedisClientType) => Promise): Promise; + getShardedPubSubClient(channel: string): ClientOrPromise; + executeShardedUnsubscribeCommand(channel: string, unsubscribe: (client: RedisClientType) => Promise): Promise; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/cluster/cluster-slots.js b/node_modules/@redis/client/dist/lib/cluster/cluster-slots.js new file mode 100644 index 0000000..2a3e133 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/cluster-slots.js @@ -0,0 +1,434 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _RedisClusterSlots_instances, _a, _RedisClusterSlots_SLOTS, _RedisClusterSlots_options, _RedisClusterSlots_Client, _RedisClusterSlots_emit, _RedisClusterSlots_isOpen, _RedisClusterSlots_discoverWithRootNodes, _RedisClusterSlots_resetSlots, _RedisClusterSlots_discover, _RedisClusterSlots_getShards, _RedisClusterSlots_getNodeAddress, _RedisClusterSlots_clientOptionsDefaults, _RedisClusterSlots_initiateSlotNode, _RedisClusterSlots_createClient, _RedisClusterSlots_createNodeClient, _RedisClusterSlots_runningRediscoverPromise, _RedisClusterSlots_rediscover, _RedisClusterSlots_destroy, _RedisClusterSlots_execOnNodeClient, _RedisClusterSlots_iterateAllNodes, _RedisClusterSlots_randomNodeIterator, _RedisClusterSlots_slotNodesIterator, _RedisClusterSlots_initiatePubSubClient, _RedisClusterSlots_initiateShardedPubSubClient; +Object.defineProperty(exports, "__esModule", { value: true }); +const client_1 = require("../client"); +const errors_1 = require("../errors"); +const util_1 = require("util"); +const pub_sub_1 = require("../client/pub-sub"); +// We need to use 'require', because it's not possible with Typescript to import +// function that are exported as 'module.exports = function`, without esModuleInterop +// set to true. +const calculateSlot = require('cluster-key-slot'); +class RedisClusterSlots { + get isOpen() { + return __classPrivateFieldGet(this, _RedisClusterSlots_isOpen, "f"); + } + constructor(options, emit) { + _RedisClusterSlots_instances.add(this); + _RedisClusterSlots_options.set(this, void 0); + _RedisClusterSlots_Client.set(this, void 0); + _RedisClusterSlots_emit.set(this, void 0); + Object.defineProperty(this, "slots", { + enumerable: true, + configurable: true, + writable: true, + value: new Array(__classPrivateFieldGet(_a, _a, "f", _RedisClusterSlots_SLOTS)) + }); + Object.defineProperty(this, "shards", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "masters", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "replicas", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "nodeByAddress", { + enumerable: true, + configurable: true, + writable: true, + value: new Map() + }); + Object.defineProperty(this, "pubSubNode", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + _RedisClusterSlots_isOpen.set(this, false); + _RedisClusterSlots_runningRediscoverPromise.set(this, void 0); + _RedisClusterSlots_randomNodeIterator.set(this, void 0); + __classPrivateFieldSet(this, _RedisClusterSlots_options, options, "f"); + __classPrivateFieldSet(this, _RedisClusterSlots_Client, client_1.default.extend(options), "f"); + __classPrivateFieldSet(this, _RedisClusterSlots_emit, emit, "f"); + } + async connect() { + if (__classPrivateFieldGet(this, _RedisClusterSlots_isOpen, "f")) { + throw new Error('Cluster already open'); + } + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, true, "f"); + try { + await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discoverWithRootNodes).call(this); + } + catch (err) { + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, "f"); + throw err; + } + } + nodeClient(node) { + return node.client ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createNodeClient).call(this, node); + } + async rediscover(startWith) { + __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, "f") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_rediscover).call(this, startWith) + .finally(() => __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, undefined, "f")), "f"); + return __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, "f"); + } + quit() { + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_destroy).call(this, client => client.quit()); + } + disconnect() { + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_destroy).call(this, client => client.disconnect()); + } + getClient(firstKey, isReadonly) { + if (!firstKey) { + return this.nodeClient(this.getRandomNode()); + } + const slotNumber = calculateSlot(firstKey); + if (!isReadonly) { + return this.nodeClient(this.slots[slotNumber].master); + } + return this.nodeClient(this.getSlotRandomNode(slotNumber)); + } + getRandomNode() { + __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, "f") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_iterateAllNodes).call(this), "f"); + return __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, "f").next().value; + } + getSlotRandomNode(slotNumber) { + const slot = this.slots[slotNumber]; + if (!slot.replicas?.length) { + return slot.master; + } + slot.nodesIterator ?? (slot.nodesIterator = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_slotNodesIterator).call(this, slot)); + return slot.nodesIterator.next().value; + } + getMasterByAddress(address) { + const master = this.nodeByAddress.get(address); + if (!master) + return; + return this.nodeClient(master); + } + getPubSubClient() { + return this.pubSubNode ? + this.pubSubNode.client : + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiatePubSubClient).call(this); + } + async executeUnsubscribeCommand(unsubscribe) { + const client = await this.getPubSubClient(); + await unsubscribe(client); + if (!client.isPubSubActive && client.isOpen) { + await client.disconnect(); + this.pubSubNode = undefined; + } + } + getShardedPubSubClient(channel) { + const { master } = this.slots[calculateSlot(channel)]; + return master.pubSubClient ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateShardedPubSubClient).call(this, master); + } + async executeShardedUnsubscribeCommand(channel, unsubscribe) { + const { master } = this.slots[calculateSlot(channel)]; + if (!master.pubSubClient) + return Promise.resolve(); + const client = await master.pubSubClient; + await unsubscribe(client); + if (!client.isPubSubActive && client.isOpen) { + await client.disconnect(); + master.pubSubClient = undefined; + } + } +} +_a = RedisClusterSlots, _RedisClusterSlots_options = new WeakMap(), _RedisClusterSlots_Client = new WeakMap(), _RedisClusterSlots_emit = new WeakMap(), _RedisClusterSlots_isOpen = new WeakMap(), _RedisClusterSlots_runningRediscoverPromise = new WeakMap(), _RedisClusterSlots_randomNodeIterator = new WeakMap(), _RedisClusterSlots_instances = new WeakSet(), _RedisClusterSlots_discoverWithRootNodes = async function _RedisClusterSlots_discoverWithRootNodes() { + let start = Math.floor(Math.random() * __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes.length); + for (let i = start; i < __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes.length; i++) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes[i])) + return; + } + for (let i = 0; i < start; i++) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes[i])) + return; + } + throw new errors_1.RootNodesUnavailableError(); +}, _RedisClusterSlots_resetSlots = function _RedisClusterSlots_resetSlots() { + this.slots = new Array(__classPrivateFieldGet(_a, _a, "f", _RedisClusterSlots_SLOTS)); + this.shards = []; + this.masters = []; + this.replicas = []; + __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, undefined, "f"); +}, _RedisClusterSlots_discover = async function _RedisClusterSlots_discover(rootNode) { + const addressesInUse = new Set(); + try { + const shards = await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_getShards).call(this, rootNode), promises = [], eagerConnect = __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").minimizeConnections !== true; + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_resetSlots).call(this); + for (const { from, to, master, replicas } of shards) { + const shard = { + master: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateSlotNode).call(this, master, false, eagerConnect, addressesInUse, promises) + }; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").useReplicas) { + shard.replicas = replicas.map(replica => __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateSlotNode).call(this, replica, true, eagerConnect, addressesInUse, promises)); + } + this.shards.push(shard); + for (let i = from; i <= to; i++) { + this.slots[i] = shard; + } + } + if (this.pubSubNode && !addressesInUse.has(this.pubSubNode.address)) { + if (util_1.types.isPromise(this.pubSubNode.client)) { + promises.push(this.pubSubNode.client.then(client => client.disconnect())); + this.pubSubNode = undefined; + } + else { + promises.push(this.pubSubNode.client.disconnect()); + const channelsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.CHANNELS), patternsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.PATTERNS); + if (channelsListeners.size || patternsListeners.size) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiatePubSubClient).call(this, { + [pub_sub_1.PubSubType.CHANNELS]: channelsListeners, + [pub_sub_1.PubSubType.PATTERNS]: patternsListeners + })); + } + } + } + for (const [address, node] of this.nodeByAddress.entries()) { + if (addressesInUse.has(address)) + continue; + if (node.client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, node.client, client => client.disconnect())); + } + const { pubSubClient } = node; + if (pubSubClient) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, pubSubClient, client => client.disconnect())); + } + this.nodeByAddress.delete(address); + } + await Promise.all(promises); + return true; + } + catch (err) { + __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err); + return false; + } +}, _RedisClusterSlots_getShards = async function _RedisClusterSlots_getShards(rootNode) { + const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, "f"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_clientOptionsDefaults).call(this, rootNode, true)); + client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err)); + await client.connect(); + try { + // using `CLUSTER SLOTS` and not `CLUSTER SHARDS` to support older versions + return await client.clusterSlots(); + } + finally { + await client.disconnect(); + } +}, _RedisClusterSlots_getNodeAddress = function _RedisClusterSlots_getNodeAddress(address) { + switch (typeof __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap) { + case 'object': + return __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap[address]; + case 'function': + return __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap(address); + } +}, _RedisClusterSlots_clientOptionsDefaults = function _RedisClusterSlots_clientOptionsDefaults(options, disableReconnect) { + let result; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults) { + let socket; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults.socket) { + socket = { + ...__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults.socket, + ...options?.socket + }; + } + else { + socket = options?.socket; + } + result = { + ...__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults, + ...options, + socket + }; + } + else { + result = options; + } + if (disableReconnect) { + result ?? (result = {}); + result.socket ?? (result.socket = {}); + result.socket.reconnectStrategy = false; + } + return result; +}, _RedisClusterSlots_initiateSlotNode = function _RedisClusterSlots_initiateSlotNode({ id, ip, port }, readonly, eagerConnent, addressesInUse, promises) { + const address = `${ip}:${port}`; + addressesInUse.add(address); + let node = this.nodeByAddress.get(address); + if (!node) { + node = { + id, + host: ip, + port, + address, + readonly, + client: undefined + }; + if (eagerConnent) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createNodeClient).call(this, node)); + } + this.nodeByAddress.set(address, node); + } + (readonly ? this.replicas : this.masters).push(node); + return node; +}, _RedisClusterSlots_createClient = async function _RedisClusterSlots_createClient(node, readonly = node.readonly) { + const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, "f"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_clientOptionsDefaults).call(this, { + socket: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_getNodeAddress).call(this, node.address) ?? { + host: node.host, + port: node.port + }, + readonly + })); + client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err)); + await client.connect(); + return client; +}, _RedisClusterSlots_createNodeClient = function _RedisClusterSlots_createNodeClient(node) { + const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, node) + .then(client => { + node.client = client; + return client; + }) + .catch(err => { + node.client = undefined; + throw err; + }); + node.client = promise; + return promise; +}, _RedisClusterSlots_rediscover = async function _RedisClusterSlots_rediscover(startWith) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, startWith.options)) + return; + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discoverWithRootNodes).call(this); +}, _RedisClusterSlots_destroy = async function _RedisClusterSlots_destroy(fn) { + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, "f"); + const promises = []; + for (const { master, replicas } of this.shards) { + if (master.client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, master.client, fn)); + } + if (master.pubSubClient) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, master.pubSubClient, fn)); + } + if (replicas) { + for (const { client } of replicas) { + if (client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, client, fn)); + } + } + } + } + if (this.pubSubNode) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, this.pubSubNode.client, fn)); + this.pubSubNode = undefined; + } + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_resetSlots).call(this); + this.nodeByAddress.clear(); + await Promise.allSettled(promises); +}, _RedisClusterSlots_execOnNodeClient = function _RedisClusterSlots_execOnNodeClient(client, fn) { + return util_1.types.isPromise(client) ? + client.then(fn) : + fn(client); +}, _RedisClusterSlots_iterateAllNodes = function* _RedisClusterSlots_iterateAllNodes() { + let i = Math.floor(Math.random() * (this.masters.length + this.replicas.length)); + if (i < this.masters.length) { + do { + yield this.masters[i]; + } while (++i < this.masters.length); + for (const replica of this.replicas) { + yield replica; + } + } + else { + i -= this.masters.length; + do { + yield this.replicas[i]; + } while (++i < this.replicas.length); + } + while (true) { + for (const master of this.masters) { + yield master; + } + for (const replica of this.replicas) { + yield replica; + } + } +}, _RedisClusterSlots_slotNodesIterator = function* _RedisClusterSlots_slotNodesIterator(slot) { + let i = Math.floor(Math.random() * (1 + slot.replicas.length)); + if (i < slot.replicas.length) { + do { + yield slot.replicas[i]; + } while (++i < slot.replicas.length); + } + while (true) { + yield slot.master; + for (const replica of slot.replicas) { + yield replica; + } + } +}, _RedisClusterSlots_initiatePubSubClient = async function _RedisClusterSlots_initiatePubSubClient(toResubscribe) { + const index = Math.floor(Math.random() * (this.masters.length + this.replicas.length)), node = index < this.masters.length ? + this.masters[index] : + this.replicas[index - this.masters.length]; + this.pubSubNode = { + address: node.address, + client: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, node, true) + .then(async (client) => { + if (toResubscribe) { + await Promise.all([ + client.extendPubSubListeners(pub_sub_1.PubSubType.CHANNELS, toResubscribe[pub_sub_1.PubSubType.CHANNELS]), + client.extendPubSubListeners(pub_sub_1.PubSubType.PATTERNS, toResubscribe[pub_sub_1.PubSubType.PATTERNS]) + ]); + } + this.pubSubNode.client = client; + return client; + }) + .catch(err => { + this.pubSubNode = undefined; + throw err; + }) + }; + return this.pubSubNode.client; +}, _RedisClusterSlots_initiateShardedPubSubClient = function _RedisClusterSlots_initiateShardedPubSubClient(master) { + const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, master, true) + .then(client => { + client.on('server-sunsubscribe', async (channel, listeners) => { + try { + await this.rediscover(client); + const redirectTo = await this.getShardedPubSubClient(channel); + redirectTo.extendPubSubChannelListeners(pub_sub_1.PubSubType.SHARDED, channel, listeners); + } + catch (err) { + __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'sharded-shannel-moved-error', err, channel, listeners); + } + }); + master.pubSubClient = client; + return client; + }) + .catch(err => { + master.pubSubClient = undefined; + throw err; + }); + master.pubSubClient = promise; + return promise; +}; +_RedisClusterSlots_SLOTS = { value: 16384 }; +exports.default = RedisClusterSlots; diff --git a/node_modules/@redis/client/dist/lib/cluster/commands.d.ts b/node_modules/@redis/client/dist/lib/cluster/commands.d.ts new file mode 100644 index 0000000..a07f0d4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/commands.d.ts @@ -0,0 +1,669 @@ +import * as APPEND from '../commands/APPEND'; +import * as BITCOUNT from '../commands/BITCOUNT'; +import * as BITFIELD_RO from '../commands/BITFIELD_RO'; +import * as BITFIELD from '../commands/BITFIELD'; +import * as BITOP from '../commands/BITOP'; +import * as BITPOS from '../commands/BITPOS'; +import * as BLMOVE from '../commands/BLMOVE'; +import * as BLMPOP from '../commands/BLMPOP'; +import * as BLPOP from '../commands/BLPOP'; +import * as BRPOP from '../commands/BRPOP'; +import * as BRPOPLPUSH from '../commands/BRPOPLPUSH'; +import * as BZMPOP from '../commands/BZMPOP'; +import * as BZPOPMAX from '../commands/BZPOPMAX'; +import * as BZPOPMIN from '../commands/BZPOPMIN'; +import * as COPY from '../commands/COPY'; +import * as DECR from '../commands/DECR'; +import * as DECRBY from '../commands/DECRBY'; +import * as DEL from '../commands/DEL'; +import * as DUMP from '../commands/DUMP'; +import * as EVAL_RO from '../commands/EVAL_RO'; +import * as EVAL from '../commands/EVAL'; +import * as EVALSHA_RO from '../commands/EVALSHA_RO'; +import * as EVALSHA from '../commands/EVALSHA'; +import * as EXISTS from '../commands/EXISTS'; +import * as EXPIRE from '../commands/EXPIRE'; +import * as EXPIREAT from '../commands/EXPIREAT'; +import * as EXPIRETIME from '../commands/EXPIRETIME'; +import * as FCALL_RO from '../commands/FCALL_RO'; +import * as FCALL from '../commands/FCALL'; +import * as GEOADD from '../commands/GEOADD'; +import * as GEODIST from '../commands/GEODIST'; +import * as GEOHASH from '../commands/GEOHASH'; +import * as GEOPOS from '../commands/GEOPOS'; +import * as GEORADIUS_RO_WITH from '../commands/GEORADIUS_RO_WITH'; +import * as GEORADIUS_RO from '../commands/GEORADIUS_RO'; +import * as GEORADIUS_WITH from '../commands/GEORADIUS_WITH'; +import * as GEORADIUS from '../commands/GEORADIUS'; +import * as GEORADIUSBYMEMBER_RO_WITH from '../commands/GEORADIUSBYMEMBER_RO_WITH'; +import * as GEORADIUSBYMEMBER_RO from '../commands/GEORADIUSBYMEMBER_RO'; +import * as GEORADIUSBYMEMBER_WITH from '../commands/GEORADIUSBYMEMBER_WITH'; +import * as GEORADIUSBYMEMBER from '../commands/GEORADIUSBYMEMBER'; +import * as GEORADIUSBYMEMBERSTORE from '../commands/GEORADIUSBYMEMBERSTORE'; +import * as GEORADIUSSTORE from '../commands/GEORADIUSSTORE'; +import * as GEOSEARCH_WITH from '../commands/GEOSEARCH_WITH'; +import * as GEOSEARCH from '../commands/GEOSEARCH'; +import * as GEOSEARCHSTORE from '../commands/GEOSEARCHSTORE'; +import * as GET from '../commands/GET'; +import * as GETBIT from '../commands/GETBIT'; +import * as GETDEL from '../commands/GETDEL'; +import * as GETEX from '../commands/GETEX'; +import * as GETRANGE from '../commands/GETRANGE'; +import * as GETSET from '../commands/GETSET'; +import * as HDEL from '../commands/HDEL'; +import * as HEXISTS from '../commands/HEXISTS'; +import * as HEXPIRE from '../commands/HEXPIRE'; +import * as HEXPIREAT from '../commands/HEXPIREAT'; +import * as HEXPIRETIME from '../commands/HEXPIRETIME'; +import * as HGET from '../commands/HGET'; +import * as HGETALL from '../commands/HGETALL'; +import * as HINCRBY from '../commands/HINCRBY'; +import * as HINCRBYFLOAT from '../commands/HINCRBYFLOAT'; +import * as HKEYS from '../commands/HKEYS'; +import * as HLEN from '../commands/HLEN'; +import * as HMGET from '../commands/HMGET'; +import * as HPERSIST from '../commands/HPERSIST'; +import * as HPEXPIRE from '../commands/HPEXPIRE'; +import * as HPEXPIREAT from '../commands/HPEXPIREAT'; +import * as HPEXPIRETIME from '../commands/HPEXPIRETIME'; +import * as HPTTL from '../commands/HPTTL'; +import * as HRANDFIELD_COUNT_WITHVALUES from '../commands/HRANDFIELD_COUNT_WITHVALUES'; +import * as HRANDFIELD_COUNT from '../commands/HRANDFIELD_COUNT'; +import * as HRANDFIELD from '../commands/HRANDFIELD'; +import * as HSCAN from '../commands/HSCAN'; +import * as HSCAN_NOVALUES from '../commands/HSCAN_NOVALUES'; +import * as HSET from '../commands/HSET'; +import * as HSETNX from '../commands/HSETNX'; +import * as HSTRLEN from '../commands/HSTRLEN'; +import * as HTTL from '../commands/HTTL'; +import * as HVALS from '../commands/HVALS'; +import * as INCR from '../commands/INCR'; +import * as INCRBY from '../commands/INCRBY'; +import * as INCRBYFLOAT from '../commands/INCRBYFLOAT'; +import * as LCS_IDX_WITHMATCHLEN from '../commands/LCS_IDX_WITHMATCHLEN'; +import * as LCS_IDX from '../commands/LCS_IDX'; +import * as LCS_LEN from '../commands/LCS_LEN'; +import * as LCS from '../commands/LCS'; +import * as LINDEX from '../commands/LINDEX'; +import * as LINSERT from '../commands/LINSERT'; +import * as LLEN from '../commands/LLEN'; +import * as LMOVE from '../commands/LMOVE'; +import * as LMPOP from '../commands/LMPOP'; +import * as LPOP_COUNT from '../commands/LPOP_COUNT'; +import * as LPOP from '../commands/LPOP'; +import * as LPOS_COUNT from '../commands/LPOS_COUNT'; +import * as LPOS from '../commands/LPOS'; +import * as LPUSH from '../commands/LPUSH'; +import * as LPUSHX from '../commands/LPUSHX'; +import * as LRANGE from '../commands/LRANGE'; +import * as LREM from '../commands/LREM'; +import * as LSET from '../commands/LSET'; +import * as LTRIM from '../commands/LTRIM'; +import * as MGET from '../commands/MGET'; +import * as MIGRATE from '../commands/MIGRATE'; +import * as MSET from '../commands/MSET'; +import * as MSETNX from '../commands/MSETNX'; +import * as OBJECT_ENCODING from '../commands/OBJECT_ENCODING'; +import * as OBJECT_FREQ from '../commands/OBJECT_FREQ'; +import * as OBJECT_IDLETIME from '../commands/OBJECT_IDLETIME'; +import * as OBJECT_REFCOUNT from '../commands/OBJECT_REFCOUNT'; +import * as PERSIST from '../commands/PERSIST'; +import * as PEXPIRE from '../commands/PEXPIRE'; +import * as PEXPIREAT from '../commands/PEXPIREAT'; +import * as PEXPIRETIME from '../commands/PEXPIRETIME'; +import * as PFADD from '../commands/PFADD'; +import * as PFCOUNT from '../commands/PFCOUNT'; +import * as PFMERGE from '../commands/PFMERGE'; +import * as PSETEX from '../commands/PSETEX'; +import * as PTTL from '../commands/PTTL'; +import * as PUBLISH from '../commands/PUBLISH'; +import * as RENAME from '../commands/RENAME'; +import * as RENAMENX from '../commands/RENAMENX'; +import * as RESTORE from '../commands/RESTORE'; +import * as RPOP_COUNT from '../commands/RPOP_COUNT'; +import * as RPOP from '../commands/RPOP'; +import * as RPOPLPUSH from '../commands/RPOPLPUSH'; +import * as RPUSH from '../commands/RPUSH'; +import * as RPUSHX from '../commands/RPUSHX'; +import * as SADD from '../commands/SADD'; +import * as SCARD from '../commands/SCARD'; +import * as SDIFF from '../commands/SDIFF'; +import * as SDIFFSTORE from '../commands/SDIFFSTORE'; +import * as SET from '../commands/SET'; +import * as SETBIT from '../commands/SETBIT'; +import * as SETEX from '../commands/SETEX'; +import * as SETNX from '../commands/SETNX'; +import * as SETRANGE from '../commands/SETRANGE'; +import * as SINTER from '../commands/SINTER'; +import * as SINTERCARD from '../commands/SINTERCARD'; +import * as SINTERSTORE from '../commands/SINTERSTORE'; +import * as SISMEMBER from '../commands/SISMEMBER'; +import * as SMEMBERS from '../commands/SMEMBERS'; +import * as SMISMEMBER from '../commands/SMISMEMBER'; +import * as SMOVE from '../commands/SMOVE'; +import * as SORT_RO from '../commands/SORT_RO'; +import * as SORT_STORE from '../commands/SORT_STORE'; +import * as SORT from '../commands/SORT'; +import * as SPOP from '../commands/SPOP'; +import * as SPUBLISH from '../commands/SPUBLISH'; +import * as SRANDMEMBER_COUNT from '../commands/SRANDMEMBER_COUNT'; +import * as SRANDMEMBER from '../commands/SRANDMEMBER'; +import * as SREM from '../commands/SREM'; +import * as SSCAN from '../commands/SSCAN'; +import * as STRLEN from '../commands/STRLEN'; +import * as SUNION from '../commands/SUNION'; +import * as SUNIONSTORE from '../commands/SUNIONSTORE'; +import * as TOUCH from '../commands/TOUCH'; +import * as TTL from '../commands/TTL'; +import * as TYPE from '../commands/TYPE'; +import * as UNLINK from '../commands/UNLINK'; +import * as WATCH from '../commands/WATCH'; +import * as XACK from '../commands/XACK'; +import * as XADD from '../commands/XADD'; +import * as XAUTOCLAIM_JUSTID from '../commands/XAUTOCLAIM_JUSTID'; +import * as XAUTOCLAIM from '../commands/XAUTOCLAIM'; +import * as XCLAIM_JUSTID from '../commands/XCLAIM_JUSTID'; +import * as XCLAIM from '../commands/XCLAIM'; +import * as XDEL from '../commands/XDEL'; +import * as XGROUP_CREATE from '../commands/XGROUP_CREATE'; +import * as XGROUP_CREATECONSUMER from '../commands/XGROUP_CREATECONSUMER'; +import * as XGROUP_DELCONSUMER from '../commands/XGROUP_DELCONSUMER'; +import * as XGROUP_DESTROY from '../commands/XGROUP_DESTROY'; +import * as XGROUP_SETID from '../commands/XGROUP_SETID'; +import * as XINFO_CONSUMERS from '../commands/XINFO_CONSUMERS'; +import * as XINFO_GROUPS from '../commands/XINFO_GROUPS'; +import * as XINFO_STREAM from '../commands/XINFO_STREAM'; +import * as XLEN from '../commands/XLEN'; +import * as XPENDING_RANGE from '../commands/XPENDING_RANGE'; +import * as XPENDING from '../commands/XPENDING'; +import * as XRANGE from '../commands/XRANGE'; +import * as XREAD from '../commands/XREAD'; +import * as XREADGROUP from '../commands/XREADGROUP'; +import * as XREVRANGE from '../commands/XREVRANGE'; +import * as XSETID from '../commands/XSETID'; +import * as XTRIM from '../commands/XTRIM'; +import * as ZADD from '../commands/ZADD'; +import * as ZCARD from '../commands/ZCARD'; +import * as ZCOUNT from '../commands/ZCOUNT'; +import * as ZDIFF_WITHSCORES from '../commands/ZDIFF_WITHSCORES'; +import * as ZDIFF from '../commands/ZDIFF'; +import * as ZDIFFSTORE from '../commands/ZDIFFSTORE'; +import * as ZINCRBY from '../commands/ZINCRBY'; +import * as ZINTER_WITHSCORES from '../commands/ZINTER_WITHSCORES'; +import * as ZINTER from '../commands/ZINTER'; +import * as ZINTERCARD from '../commands/ZINTERCARD'; +import * as ZINTERSTORE from '../commands/ZINTERSTORE'; +import * as ZLEXCOUNT from '../commands/ZLEXCOUNT'; +import * as ZMPOP from '../commands/ZMPOP'; +import * as ZMSCORE from '../commands/ZMSCORE'; +import * as ZPOPMAX_COUNT from '../commands/ZPOPMAX_COUNT'; +import * as ZPOPMAX from '../commands/ZPOPMAX'; +import * as ZPOPMIN_COUNT from '../commands/ZPOPMIN_COUNT'; +import * as ZPOPMIN from '../commands/ZPOPMIN'; +import * as ZRANDMEMBER_COUNT_WITHSCORES from '../commands/ZRANDMEMBER_COUNT_WITHSCORES'; +import * as ZRANDMEMBER_COUNT from '../commands/ZRANDMEMBER_COUNT'; +import * as ZRANDMEMBER from '../commands/ZRANDMEMBER'; +import * as ZRANGE_WITHSCORES from '../commands/ZRANGE_WITHSCORES'; +import * as ZRANGE from '../commands/ZRANGE'; +import * as ZRANGEBYLEX from '../commands/ZRANGEBYLEX'; +import * as ZRANGEBYSCORE_WITHSCORES from '../commands/ZRANGEBYSCORE_WITHSCORES'; +import * as ZRANGEBYSCORE from '../commands/ZRANGEBYSCORE'; +import * as ZRANGESTORE from '../commands/ZRANGESTORE'; +import * as ZRANK from '../commands/ZRANK'; +import * as ZREM from '../commands/ZREM'; +import * as ZREMRANGEBYLEX from '../commands/ZREMRANGEBYLEX'; +import * as ZREMRANGEBYRANK from '../commands/ZREMRANGEBYRANK'; +import * as ZREMRANGEBYSCORE from '../commands/ZREMRANGEBYSCORE'; +import * as ZREVRANK from '../commands/ZREVRANK'; +import * as ZSCAN from '../commands/ZSCAN'; +import * as ZSCORE from '../commands/ZSCORE'; +import * as ZUNION_WITHSCORES from '../commands/ZUNION_WITHSCORES'; +import * as ZUNION from '../commands/ZUNION'; +import * as ZUNIONSTORE from '../commands/ZUNIONSTORE'; +declare const _default: { + APPEND: typeof APPEND; + append: typeof APPEND; + BITCOUNT: typeof BITCOUNT; + bitCount: typeof BITCOUNT; + BITFIELD_RO: typeof BITFIELD_RO; + bitFieldRo: typeof BITFIELD_RO; + BITFIELD: typeof BITFIELD; + bitField: typeof BITFIELD; + BITOP: typeof BITOP; + bitOp: typeof BITOP; + BITPOS: typeof BITPOS; + bitPos: typeof BITPOS; + BLMOVE: typeof BLMOVE; + blMove: typeof BLMOVE; + BLMPOP: typeof BLMPOP; + blmPop: typeof BLMPOP; + BLPOP: typeof BLPOP; + blPop: typeof BLPOP; + BRPOP: typeof BRPOP; + brPop: typeof BRPOP; + BRPOPLPUSH: typeof BRPOPLPUSH; + brPopLPush: typeof BRPOPLPUSH; + BZMPOP: typeof BZMPOP; + bzmPop: typeof BZMPOP; + BZPOPMAX: typeof BZPOPMAX; + bzPopMax: typeof BZPOPMAX; + BZPOPMIN: typeof BZPOPMIN; + bzPopMin: typeof BZPOPMIN; + COPY: typeof COPY; + copy: typeof COPY; + DECR: typeof DECR; + decr: typeof DECR; + DECRBY: typeof DECRBY; + decrBy: typeof DECRBY; + DEL: typeof DEL; + del: typeof DEL; + DUMP: typeof DUMP; + dump: typeof DUMP; + EVAL_RO: typeof EVAL_RO; + evalRo: typeof EVAL_RO; + EVAL: typeof EVAL; + eval: typeof EVAL; + EVALSHA: typeof EVALSHA; + evalSha: typeof EVALSHA; + EVALSHA_RO: typeof EVALSHA_RO; + evalShaRo: typeof EVALSHA_RO; + EXISTS: typeof EXISTS; + exists: typeof EXISTS; + EXPIRE: typeof EXPIRE; + expire: typeof EXPIRE; + EXPIREAT: typeof EXPIREAT; + expireAt: typeof EXPIREAT; + EXPIRETIME: typeof EXPIRETIME; + expireTime: typeof EXPIRETIME; + FCALL_RO: typeof FCALL_RO; + fCallRo: typeof FCALL_RO; + FCALL: typeof FCALL; + fCall: typeof FCALL; + GEOADD: typeof GEOADD; + geoAdd: typeof GEOADD; + GEODIST: typeof GEODIST; + geoDist: typeof GEODIST; + GEOHASH: typeof GEOHASH; + geoHash: typeof GEOHASH; + GEOPOS: typeof GEOPOS; + geoPos: typeof GEOPOS; + GEORADIUS_RO_WITH: typeof GEORADIUS_RO_WITH; + geoRadiusRoWith: typeof GEORADIUS_RO_WITH; + GEORADIUS_RO: typeof GEORADIUS_RO; + geoRadiusRo: typeof GEORADIUS_RO; + GEORADIUS_WITH: typeof GEORADIUS_WITH; + geoRadiusWith: typeof GEORADIUS_WITH; + GEORADIUS: typeof GEORADIUS; + geoRadius: typeof GEORADIUS; + GEORADIUSBYMEMBER_RO_WITH: typeof GEORADIUSBYMEMBER_RO_WITH; + geoRadiusByMemberRoWith: typeof GEORADIUSBYMEMBER_RO_WITH; + GEORADIUSBYMEMBER_RO: typeof GEORADIUSBYMEMBER_RO; + geoRadiusByMemberRo: typeof GEORADIUSBYMEMBER_RO; + GEORADIUSBYMEMBER_WITH: typeof GEORADIUSBYMEMBER_WITH; + geoRadiusByMemberWith: typeof GEORADIUSBYMEMBER_WITH; + GEORADIUSBYMEMBER: typeof GEORADIUSBYMEMBER; + geoRadiusByMember: typeof GEORADIUSBYMEMBER; + GEORADIUSBYMEMBERSTORE: typeof GEORADIUSBYMEMBERSTORE; + geoRadiusByMemberStore: typeof GEORADIUSBYMEMBERSTORE; + GEORADIUSSTORE: typeof GEORADIUSSTORE; + geoRadiusStore: typeof GEORADIUSSTORE; + GEOSEARCH_WITH: typeof GEOSEARCH_WITH; + geoSearchWith: typeof GEOSEARCH_WITH; + GEOSEARCH: typeof GEOSEARCH; + geoSearch: typeof GEOSEARCH; + GEOSEARCHSTORE: typeof GEOSEARCHSTORE; + geoSearchStore: typeof GEOSEARCHSTORE; + GET: typeof GET; + get: typeof GET; + GETBIT: typeof GETBIT; + getBit: typeof GETBIT; + GETDEL: typeof GETDEL; + getDel: typeof GETDEL; + GETEX: typeof GETEX; + getEx: typeof GETEX; + GETRANGE: typeof GETRANGE; + getRange: typeof GETRANGE; + GETSET: typeof GETSET; + getSet: typeof GETSET; + HDEL: typeof HDEL; + hDel: typeof HDEL; + HEXISTS: typeof HEXISTS; + hExists: typeof HEXISTS; + HEXPIRE: typeof HEXPIRE; + hExpire: typeof HEXPIRE; + HEXPIREAT: typeof HEXPIREAT; + hExpireAt: typeof HEXPIREAT; + HEXPIRETIME: typeof HEXPIRETIME; + hExpireTime: typeof HEXPIRETIME; + HGET: typeof HGET; + hGet: typeof HGET; + HGETALL: typeof HGETALL; + hGetAll: typeof HGETALL; + HINCRBY: typeof HINCRBY; + hIncrBy: typeof HINCRBY; + HINCRBYFLOAT: typeof HINCRBYFLOAT; + hIncrByFloat: typeof HINCRBYFLOAT; + HKEYS: typeof HKEYS; + hKeys: typeof HKEYS; + HLEN: typeof HLEN; + hLen: typeof HLEN; + HMGET: typeof HMGET; + hmGet: typeof HMGET; + HPERSIST: typeof HPERSIST; + hPersist: typeof HPERSIST; + HPEXPIRE: typeof HPEXPIRE; + hpExpire: typeof HPEXPIRE; + HPEXPIREAT: typeof HPEXPIREAT; + hpExpireAt: typeof HPEXPIREAT; + HPEXPIRETIME: typeof HPEXPIRETIME; + hpExpireTime: typeof HPEXPIRETIME; + HPTTL: typeof HPTTL; + hpTTL: typeof HPTTL; + HRANDFIELD_COUNT_WITHVALUES: typeof HRANDFIELD_COUNT_WITHVALUES; + hRandFieldCountWithValues: typeof HRANDFIELD_COUNT_WITHVALUES; + HRANDFIELD_COUNT: typeof HRANDFIELD_COUNT; + hRandFieldCount: typeof HRANDFIELD_COUNT; + HRANDFIELD: typeof HRANDFIELD; + hRandField: typeof HRANDFIELD; + HSCAN: typeof HSCAN; + hScan: typeof HSCAN; + HSCAN_NOVALUES: typeof HSCAN_NOVALUES; + hScanNoValues: typeof HSCAN_NOVALUES; + HSET: typeof HSET; + hSet: typeof HSET; + HSETNX: typeof HSETNX; + hSetNX: typeof HSETNX; + HSTRLEN: typeof HSTRLEN; + hStrLen: typeof HSTRLEN; + HTTL: typeof HTTL; + hTTL: typeof HTTL; + HVALS: typeof HVALS; + hVals: typeof HVALS; + INCR: typeof INCR; + incr: typeof INCR; + INCRBY: typeof INCRBY; + incrBy: typeof INCRBY; + INCRBYFLOAT: typeof INCRBYFLOAT; + incrByFloat: typeof INCRBYFLOAT; + LCS_IDX_WITHMATCHLEN: typeof LCS_IDX_WITHMATCHLEN; + lcsIdxWithMatchLen: typeof LCS_IDX_WITHMATCHLEN; + LCS_IDX: typeof LCS_IDX; + lcsIdx: typeof LCS_IDX; + LCS_LEN: typeof LCS_LEN; + lcsLen: typeof LCS_LEN; + LCS: typeof LCS; + lcs: typeof LCS; + LINDEX: typeof LINDEX; + lIndex: typeof LINDEX; + LINSERT: typeof LINSERT; + lInsert: typeof LINSERT; + LLEN: typeof LLEN; + lLen: typeof LLEN; + LMOVE: typeof LMOVE; + lMove: typeof LMOVE; + LMPOP: typeof LMPOP; + lmPop: typeof LMPOP; + LPOP_COUNT: typeof LPOP_COUNT; + lPopCount: typeof LPOP_COUNT; + LPOP: typeof LPOP; + lPop: typeof LPOP; + LPOS_COUNT: typeof LPOS_COUNT; + lPosCount: typeof LPOS_COUNT; + LPOS: typeof LPOS; + lPos: typeof LPOS; + LPUSH: typeof LPUSH; + lPush: typeof LPUSH; + LPUSHX: typeof LPUSHX; + lPushX: typeof LPUSHX; + LRANGE: typeof LRANGE; + lRange: typeof LRANGE; + LREM: typeof LREM; + lRem: typeof LREM; + LSET: typeof LSET; + lSet: typeof LSET; + LTRIM: typeof LTRIM; + lTrim: typeof LTRIM; + MGET: typeof MGET; + mGet: typeof MGET; + MIGRATE: typeof MIGRATE; + migrate: typeof MIGRATE; + MSET: typeof MSET; + mSet: typeof MSET; + MSETNX: typeof MSETNX; + mSetNX: typeof MSETNX; + OBJECT_ENCODING: typeof OBJECT_ENCODING; + objectEncoding: typeof OBJECT_ENCODING; + OBJECT_FREQ: typeof OBJECT_FREQ; + objectFreq: typeof OBJECT_FREQ; + OBJECT_IDLETIME: typeof OBJECT_IDLETIME; + objectIdleTime: typeof OBJECT_IDLETIME; + OBJECT_REFCOUNT: typeof OBJECT_REFCOUNT; + objectRefCount: typeof OBJECT_REFCOUNT; + PERSIST: typeof PERSIST; + persist: typeof PERSIST; + PEXPIRE: typeof PEXPIRE; + pExpire: typeof PEXPIRE; + PEXPIREAT: typeof PEXPIREAT; + pExpireAt: typeof PEXPIREAT; + PEXPIRETIME: typeof PEXPIRETIME; + pExpireTime: typeof PEXPIRETIME; + PFADD: typeof PFADD; + pfAdd: typeof PFADD; + PFCOUNT: typeof PFCOUNT; + pfCount: typeof PFCOUNT; + PFMERGE: typeof PFMERGE; + pfMerge: typeof PFMERGE; + PSETEX: typeof PSETEX; + pSetEx: typeof PSETEX; + PTTL: typeof PTTL; + pTTL: typeof PTTL; + PUBLISH: typeof PUBLISH; + publish: typeof PUBLISH; + RENAME: typeof RENAME; + rename: typeof RENAME; + RENAMENX: typeof RENAMENX; + renameNX: typeof RENAMENX; + RESTORE: typeof RESTORE; + restore: typeof RESTORE; + RPOP_COUNT: typeof RPOP_COUNT; + rPopCount: typeof RPOP_COUNT; + RPOP: typeof RPOP; + rPop: typeof RPOP; + RPOPLPUSH: typeof RPOPLPUSH; + rPopLPush: typeof RPOPLPUSH; + RPUSH: typeof RPUSH; + rPush: typeof RPUSH; + RPUSHX: typeof RPUSHX; + rPushX: typeof RPUSHX; + SADD: typeof SADD; + sAdd: typeof SADD; + SCARD: typeof SCARD; + sCard: typeof SCARD; + SDIFF: typeof SDIFF; + sDiff: typeof SDIFF; + SDIFFSTORE: typeof SDIFFSTORE; + sDiffStore: typeof SDIFFSTORE; + SINTER: typeof SINTER; + sInter: typeof SINTER; + SINTERCARD: typeof SINTERCARD; + sInterCard: typeof SINTERCARD; + SINTERSTORE: typeof SINTERSTORE; + sInterStore: typeof SINTERSTORE; + SET: typeof SET; + set: typeof SET; + SETBIT: typeof SETBIT; + setBit: typeof SETBIT; + SETEX: typeof SETEX; + setEx: typeof SETEX; + SETNX: typeof SETNX; + setNX: typeof SETNX; + SETRANGE: typeof SETRANGE; + setRange: typeof SETRANGE; + SISMEMBER: typeof SISMEMBER; + sIsMember: typeof SISMEMBER; + SMEMBERS: typeof SMEMBERS; + sMembers: typeof SMEMBERS; + SMISMEMBER: typeof SMISMEMBER; + smIsMember: typeof SMISMEMBER; + SMOVE: typeof SMOVE; + sMove: typeof SMOVE; + SORT_RO: typeof SORT_RO; + sortRo: typeof SORT_RO; + SORT_STORE: typeof SORT_STORE; + sortStore: typeof SORT_STORE; + SORT: typeof SORT; + sort: typeof SORT; + SPOP: typeof SPOP; + sPop: typeof SPOP; + SPUBLISH: typeof SPUBLISH; + sPublish: typeof SPUBLISH; + SRANDMEMBER_COUNT: typeof SRANDMEMBER_COUNT; + sRandMemberCount: typeof SRANDMEMBER_COUNT; + SRANDMEMBER: typeof SRANDMEMBER; + sRandMember: typeof SRANDMEMBER; + SREM: typeof SREM; + sRem: typeof SREM; + SSCAN: typeof SSCAN; + sScan: typeof SSCAN; + STRLEN: typeof STRLEN; + strLen: typeof STRLEN; + SUNION: typeof SUNION; + sUnion: typeof SUNION; + SUNIONSTORE: typeof SUNIONSTORE; + sUnionStore: typeof SUNIONSTORE; + TOUCH: typeof TOUCH; + touch: typeof TOUCH; + TTL: typeof TTL; + ttl: typeof TTL; + TYPE: typeof TYPE; + type: typeof TYPE; + UNLINK: typeof UNLINK; + unlink: typeof UNLINK; + WATCH: typeof WATCH; + watch: typeof WATCH; + XACK: typeof XACK; + xAck: typeof XACK; + XADD: typeof XADD; + xAdd: typeof XADD; + XAUTOCLAIM_JUSTID: typeof XAUTOCLAIM_JUSTID; + xAutoClaimJustId: typeof XAUTOCLAIM_JUSTID; + XAUTOCLAIM: typeof XAUTOCLAIM; + xAutoClaim: typeof XAUTOCLAIM; + XCLAIM: typeof XCLAIM; + xClaim: typeof XCLAIM; + XCLAIM_JUSTID: typeof XCLAIM_JUSTID; + xClaimJustId: typeof XCLAIM_JUSTID; + XDEL: typeof XDEL; + xDel: typeof XDEL; + XGROUP_CREATE: typeof XGROUP_CREATE; + xGroupCreate: typeof XGROUP_CREATE; + XGROUP_CREATECONSUMER: typeof XGROUP_CREATECONSUMER; + xGroupCreateConsumer: typeof XGROUP_CREATECONSUMER; + XGROUP_DELCONSUMER: typeof XGROUP_DELCONSUMER; + xGroupDelConsumer: typeof XGROUP_DELCONSUMER; + XGROUP_DESTROY: typeof XGROUP_DESTROY; + xGroupDestroy: typeof XGROUP_DESTROY; + XGROUP_SETID: typeof XGROUP_SETID; + xGroupSetId: typeof XGROUP_SETID; + XINFO_CONSUMERS: typeof XINFO_CONSUMERS; + xInfoConsumers: typeof XINFO_CONSUMERS; + XINFO_GROUPS: typeof XINFO_GROUPS; + xInfoGroups: typeof XINFO_GROUPS; + XINFO_STREAM: typeof XINFO_STREAM; + xInfoStream: typeof XINFO_STREAM; + XLEN: typeof XLEN; + xLen: typeof XLEN; + XPENDING_RANGE: typeof XPENDING_RANGE; + xPendingRange: typeof XPENDING_RANGE; + XPENDING: typeof XPENDING; + xPending: typeof XPENDING; + XRANGE: typeof XRANGE; + xRange: typeof XRANGE; + XREAD: typeof XREAD; + xRead: typeof XREAD; + XREADGROUP: typeof XREADGROUP; + xReadGroup: typeof XREADGROUP; + XREVRANGE: typeof XREVRANGE; + xRevRange: typeof XREVRANGE; + XSETID: typeof XSETID; + xSetId: typeof XSETID; + XTRIM: typeof XTRIM; + xTrim: typeof XTRIM; + ZADD: typeof ZADD; + zAdd: typeof ZADD; + ZCARD: typeof ZCARD; + zCard: typeof ZCARD; + ZCOUNT: typeof ZCOUNT; + zCount: typeof ZCOUNT; + ZDIFF_WITHSCORES: typeof ZDIFF_WITHSCORES; + zDiffWithScores: typeof ZDIFF_WITHSCORES; + ZDIFF: typeof ZDIFF; + zDiff: typeof ZDIFF; + ZDIFFSTORE: typeof ZDIFFSTORE; + zDiffStore: typeof ZDIFFSTORE; + ZINCRBY: typeof ZINCRBY; + zIncrBy: typeof ZINCRBY; + ZINTER_WITHSCORES: typeof ZINTER_WITHSCORES; + zInterWithScores: typeof ZINTER_WITHSCORES; + ZINTER: typeof ZINTER; + zInter: typeof ZINTER; + ZINTERCARD: typeof ZINTERCARD; + zInterCard: typeof ZINTERCARD; + ZINTERSTORE: typeof ZINTERSTORE; + zInterStore: typeof ZINTERSTORE; + ZLEXCOUNT: typeof ZLEXCOUNT; + zLexCount: typeof ZLEXCOUNT; + ZMPOP: typeof ZMPOP; + zmPop: typeof ZMPOP; + ZMSCORE: typeof ZMSCORE; + zmScore: typeof ZMSCORE; + ZPOPMAX_COUNT: typeof ZPOPMAX_COUNT; + zPopMaxCount: typeof ZPOPMAX_COUNT; + ZPOPMAX: typeof ZPOPMAX; + zPopMax: typeof ZPOPMAX; + ZPOPMIN_COUNT: typeof ZPOPMIN_COUNT; + zPopMinCount: typeof ZPOPMIN_COUNT; + ZPOPMIN: typeof ZPOPMIN; + zPopMin: typeof ZPOPMIN; + ZRANDMEMBER_COUNT_WITHSCORES: typeof ZRANDMEMBER_COUNT_WITHSCORES; + zRandMemberCountWithScores: typeof ZRANDMEMBER_COUNT_WITHSCORES; + ZRANDMEMBER_COUNT: typeof ZRANDMEMBER_COUNT; + zRandMemberCount: typeof ZRANDMEMBER_COUNT; + ZRANDMEMBER: typeof ZRANDMEMBER; + zRandMember: typeof ZRANDMEMBER; + ZRANGE_WITHSCORES: typeof ZRANGE_WITHSCORES; + zRangeWithScores: typeof ZRANGE_WITHSCORES; + ZRANGE: typeof ZRANGE; + zRange: typeof ZRANGE; + ZRANGEBYLEX: typeof ZRANGEBYLEX; + zRangeByLex: typeof ZRANGEBYLEX; + ZRANGEBYSCORE_WITHSCORES: typeof ZRANGEBYSCORE_WITHSCORES; + zRangeByScoreWithScores: typeof ZRANGEBYSCORE_WITHSCORES; + ZRANGEBYSCORE: typeof ZRANGEBYSCORE; + zRangeByScore: typeof ZRANGEBYSCORE; + ZRANGESTORE: typeof ZRANGESTORE; + zRangeStore: typeof ZRANGESTORE; + ZRANK: typeof ZRANK; + zRank: typeof ZRANK; + ZREM: typeof ZREM; + zRem: typeof ZREM; + ZREMRANGEBYLEX: typeof ZREMRANGEBYLEX; + zRemRangeByLex: typeof ZREMRANGEBYLEX; + ZREMRANGEBYRANK: typeof ZREMRANGEBYRANK; + zRemRangeByRank: typeof ZREMRANGEBYRANK; + ZREMRANGEBYSCORE: typeof ZREMRANGEBYSCORE; + zRemRangeByScore: typeof ZREMRANGEBYSCORE; + ZREVRANK: typeof ZREVRANK; + zRevRank: typeof ZREVRANK; + ZSCAN: typeof ZSCAN; + zScan: typeof ZSCAN; + ZSCORE: typeof ZSCORE; + zScore: typeof ZSCORE; + ZUNION_WITHSCORES: typeof ZUNION_WITHSCORES; + zUnionWithScores: typeof ZUNION_WITHSCORES; + ZUNION: typeof ZUNION; + zUnion: typeof ZUNION; + ZUNIONSTORE: typeof ZUNIONSTORE; + zUnionStore: typeof ZUNIONSTORE; +}; +export default _default; diff --git a/node_modules/@redis/client/dist/lib/cluster/commands.js b/node_modules/@redis/client/dist/lib/cluster/commands.js new file mode 100644 index 0000000..76719ed --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/commands.js @@ -0,0 +1,670 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const APPEND = require("../commands/APPEND"); +const BITCOUNT = require("../commands/BITCOUNT"); +const BITFIELD_RO = require("../commands/BITFIELD_RO"); +const BITFIELD = require("../commands/BITFIELD"); +const BITOP = require("../commands/BITOP"); +const BITPOS = require("../commands/BITPOS"); +const BLMOVE = require("../commands/BLMOVE"); +const BLMPOP = require("../commands/BLMPOP"); +const BLPOP = require("../commands/BLPOP"); +const BRPOP = require("../commands/BRPOP"); +const BRPOPLPUSH = require("../commands/BRPOPLPUSH"); +const BZMPOP = require("../commands/BZMPOP"); +const BZPOPMAX = require("../commands/BZPOPMAX"); +const BZPOPMIN = require("../commands/BZPOPMIN"); +const COPY = require("../commands/COPY"); +const DECR = require("../commands/DECR"); +const DECRBY = require("../commands/DECRBY"); +const DEL = require("../commands/DEL"); +const DUMP = require("../commands/DUMP"); +const EVAL_RO = require("../commands/EVAL_RO"); +const EVAL = require("../commands/EVAL"); +const EVALSHA_RO = require("../commands/EVALSHA_RO"); +const EVALSHA = require("../commands/EVALSHA"); +const EXISTS = require("../commands/EXISTS"); +const EXPIRE = require("../commands/EXPIRE"); +const EXPIREAT = require("../commands/EXPIREAT"); +const EXPIRETIME = require("../commands/EXPIRETIME"); +const FCALL_RO = require("../commands/FCALL_RO"); +const FCALL = require("../commands/FCALL"); +const GEOADD = require("../commands/GEOADD"); +const GEODIST = require("../commands/GEODIST"); +const GEOHASH = require("../commands/GEOHASH"); +const GEOPOS = require("../commands/GEOPOS"); +const GEORADIUS_RO_WITH = require("../commands/GEORADIUS_RO_WITH"); +const GEORADIUS_RO = require("../commands/GEORADIUS_RO"); +const GEORADIUS_WITH = require("../commands/GEORADIUS_WITH"); +const GEORADIUS = require("../commands/GEORADIUS"); +const GEORADIUSBYMEMBER_RO_WITH = require("../commands/GEORADIUSBYMEMBER_RO_WITH"); +const GEORADIUSBYMEMBER_RO = require("../commands/GEORADIUSBYMEMBER_RO"); +const GEORADIUSBYMEMBER_WITH = require("../commands/GEORADIUSBYMEMBER_WITH"); +const GEORADIUSBYMEMBER = require("../commands/GEORADIUSBYMEMBER"); +const GEORADIUSBYMEMBERSTORE = require("../commands/GEORADIUSBYMEMBERSTORE"); +const GEORADIUSSTORE = require("../commands/GEORADIUSSTORE"); +const GEOSEARCH_WITH = require("../commands/GEOSEARCH_WITH"); +const GEOSEARCH = require("../commands/GEOSEARCH"); +const GEOSEARCHSTORE = require("../commands/GEOSEARCHSTORE"); +const GET = require("../commands/GET"); +const GETBIT = require("../commands/GETBIT"); +const GETDEL = require("../commands/GETDEL"); +const GETEX = require("../commands/GETEX"); +const GETRANGE = require("../commands/GETRANGE"); +const GETSET = require("../commands/GETSET"); +const HDEL = require("../commands/HDEL"); +const HEXISTS = require("../commands/HEXISTS"); +const HEXPIRE = require("../commands/HEXPIRE"); +const HEXPIREAT = require("../commands/HEXPIREAT"); +const HEXPIRETIME = require("../commands/HEXPIRETIME"); +const HGET = require("../commands/HGET"); +const HGETALL = require("../commands/HGETALL"); +const HINCRBY = require("../commands/HINCRBY"); +const HINCRBYFLOAT = require("../commands/HINCRBYFLOAT"); +const HKEYS = require("../commands/HKEYS"); +const HLEN = require("../commands/HLEN"); +const HMGET = require("../commands/HMGET"); +const HPERSIST = require("../commands/HPERSIST"); +const HPEXPIRE = require("../commands/HPEXPIRE"); +const HPEXPIREAT = require("../commands/HPEXPIREAT"); +const HPEXPIRETIME = require("../commands/HPEXPIRETIME"); +const HPTTL = require("../commands/HPTTL"); +const HRANDFIELD_COUNT_WITHVALUES = require("../commands/HRANDFIELD_COUNT_WITHVALUES"); +const HRANDFIELD_COUNT = require("../commands/HRANDFIELD_COUNT"); +const HRANDFIELD = require("../commands/HRANDFIELD"); +const HSCAN = require("../commands/HSCAN"); +const HSCAN_NOVALUES = require("../commands/HSCAN_NOVALUES"); +const HSET = require("../commands/HSET"); +const HSETNX = require("../commands/HSETNX"); +const HSTRLEN = require("../commands/HSTRLEN"); +const HTTL = require("../commands/HTTL"); +const HVALS = require("../commands/HVALS"); +const INCR = require("../commands/INCR"); +const INCRBY = require("../commands/INCRBY"); +const INCRBYFLOAT = require("../commands/INCRBYFLOAT"); +const LCS_IDX_WITHMATCHLEN = require("../commands/LCS_IDX_WITHMATCHLEN"); +const LCS_IDX = require("../commands/LCS_IDX"); +const LCS_LEN = require("../commands/LCS_LEN"); +const LCS = require("../commands/LCS"); +const LINDEX = require("../commands/LINDEX"); +const LINSERT = require("../commands/LINSERT"); +const LLEN = require("../commands/LLEN"); +const LMOVE = require("../commands/LMOVE"); +const LMPOP = require("../commands/LMPOP"); +const LPOP_COUNT = require("../commands/LPOP_COUNT"); +const LPOP = require("../commands/LPOP"); +const LPOS_COUNT = require("../commands/LPOS_COUNT"); +const LPOS = require("../commands/LPOS"); +const LPUSH = require("../commands/LPUSH"); +const LPUSHX = require("../commands/LPUSHX"); +const LRANGE = require("../commands/LRANGE"); +const LREM = require("../commands/LREM"); +const LSET = require("../commands/LSET"); +const LTRIM = require("../commands/LTRIM"); +const MGET = require("../commands/MGET"); +const MIGRATE = require("../commands/MIGRATE"); +const MSET = require("../commands/MSET"); +const MSETNX = require("../commands/MSETNX"); +const OBJECT_ENCODING = require("../commands/OBJECT_ENCODING"); +const OBJECT_FREQ = require("../commands/OBJECT_FREQ"); +const OBJECT_IDLETIME = require("../commands/OBJECT_IDLETIME"); +const OBJECT_REFCOUNT = require("../commands/OBJECT_REFCOUNT"); +const PERSIST = require("../commands/PERSIST"); +const PEXPIRE = require("../commands/PEXPIRE"); +const PEXPIREAT = require("../commands/PEXPIREAT"); +const PEXPIRETIME = require("../commands/PEXPIRETIME"); +const PFADD = require("../commands/PFADD"); +const PFCOUNT = require("../commands/PFCOUNT"); +const PFMERGE = require("../commands/PFMERGE"); +const PSETEX = require("../commands/PSETEX"); +const PTTL = require("../commands/PTTL"); +const PUBLISH = require("../commands/PUBLISH"); +const RENAME = require("../commands/RENAME"); +const RENAMENX = require("../commands/RENAMENX"); +const RESTORE = require("../commands/RESTORE"); +const RPOP_COUNT = require("../commands/RPOP_COUNT"); +const RPOP = require("../commands/RPOP"); +const RPOPLPUSH = require("../commands/RPOPLPUSH"); +const RPUSH = require("../commands/RPUSH"); +const RPUSHX = require("../commands/RPUSHX"); +const SADD = require("../commands/SADD"); +const SCARD = require("../commands/SCARD"); +const SDIFF = require("../commands/SDIFF"); +const SDIFFSTORE = require("../commands/SDIFFSTORE"); +const SET = require("../commands/SET"); +const SETBIT = require("../commands/SETBIT"); +const SETEX = require("../commands/SETEX"); +const SETNX = require("../commands/SETNX"); +const SETRANGE = require("../commands/SETRANGE"); +const SINTER = require("../commands/SINTER"); +const SINTERCARD = require("../commands/SINTERCARD"); +const SINTERSTORE = require("../commands/SINTERSTORE"); +const SISMEMBER = require("../commands/SISMEMBER"); +const SMEMBERS = require("../commands/SMEMBERS"); +const SMISMEMBER = require("../commands/SMISMEMBER"); +const SMOVE = require("../commands/SMOVE"); +const SORT_RO = require("../commands/SORT_RO"); +const SORT_STORE = require("../commands/SORT_STORE"); +const SORT = require("../commands/SORT"); +const SPOP = require("../commands/SPOP"); +const SPUBLISH = require("../commands/SPUBLISH"); +const SRANDMEMBER_COUNT = require("../commands/SRANDMEMBER_COUNT"); +const SRANDMEMBER = require("../commands/SRANDMEMBER"); +const SREM = require("../commands/SREM"); +const SSCAN = require("../commands/SSCAN"); +const STRLEN = require("../commands/STRLEN"); +const SUNION = require("../commands/SUNION"); +const SUNIONSTORE = require("../commands/SUNIONSTORE"); +const TOUCH = require("../commands/TOUCH"); +const TTL = require("../commands/TTL"); +const TYPE = require("../commands/TYPE"); +const UNLINK = require("../commands/UNLINK"); +const WATCH = require("../commands/WATCH"); +const XACK = require("../commands/XACK"); +const XADD = require("../commands/XADD"); +const XAUTOCLAIM_JUSTID = require("../commands/XAUTOCLAIM_JUSTID"); +const XAUTOCLAIM = require("../commands/XAUTOCLAIM"); +const XCLAIM_JUSTID = require("../commands/XCLAIM_JUSTID"); +const XCLAIM = require("../commands/XCLAIM"); +const XDEL = require("../commands/XDEL"); +const XGROUP_CREATE = require("../commands/XGROUP_CREATE"); +const XGROUP_CREATECONSUMER = require("../commands/XGROUP_CREATECONSUMER"); +const XGROUP_DELCONSUMER = require("../commands/XGROUP_DELCONSUMER"); +const XGROUP_DESTROY = require("../commands/XGROUP_DESTROY"); +const XGROUP_SETID = require("../commands/XGROUP_SETID"); +const XINFO_CONSUMERS = require("../commands/XINFO_CONSUMERS"); +const XINFO_GROUPS = require("../commands/XINFO_GROUPS"); +const XINFO_STREAM = require("../commands/XINFO_STREAM"); +const XLEN = require("../commands/XLEN"); +const XPENDING_RANGE = require("../commands/XPENDING_RANGE"); +const XPENDING = require("../commands/XPENDING"); +const XRANGE = require("../commands/XRANGE"); +const XREAD = require("../commands/XREAD"); +const XREADGROUP = require("../commands/XREADGROUP"); +const XREVRANGE = require("../commands/XREVRANGE"); +const XSETID = require("../commands/XSETID"); +const XTRIM = require("../commands/XTRIM"); +const ZADD = require("../commands/ZADD"); +const ZCARD = require("../commands/ZCARD"); +const ZCOUNT = require("../commands/ZCOUNT"); +const ZDIFF_WITHSCORES = require("../commands/ZDIFF_WITHSCORES"); +const ZDIFF = require("../commands/ZDIFF"); +const ZDIFFSTORE = require("../commands/ZDIFFSTORE"); +const ZINCRBY = require("../commands/ZINCRBY"); +const ZINTER_WITHSCORES = require("../commands/ZINTER_WITHSCORES"); +const ZINTER = require("../commands/ZINTER"); +const ZINTERCARD = require("../commands/ZINTERCARD"); +const ZINTERSTORE = require("../commands/ZINTERSTORE"); +const ZLEXCOUNT = require("../commands/ZLEXCOUNT"); +const ZMPOP = require("../commands/ZMPOP"); +const ZMSCORE = require("../commands/ZMSCORE"); +const ZPOPMAX_COUNT = require("../commands/ZPOPMAX_COUNT"); +const ZPOPMAX = require("../commands/ZPOPMAX"); +const ZPOPMIN_COUNT = require("../commands/ZPOPMIN_COUNT"); +const ZPOPMIN = require("../commands/ZPOPMIN"); +const ZRANDMEMBER_COUNT_WITHSCORES = require("../commands/ZRANDMEMBER_COUNT_WITHSCORES"); +const ZRANDMEMBER_COUNT = require("../commands/ZRANDMEMBER_COUNT"); +const ZRANDMEMBER = require("../commands/ZRANDMEMBER"); +const ZRANGE_WITHSCORES = require("../commands/ZRANGE_WITHSCORES"); +const ZRANGE = require("../commands/ZRANGE"); +const ZRANGEBYLEX = require("../commands/ZRANGEBYLEX"); +const ZRANGEBYSCORE_WITHSCORES = require("../commands/ZRANGEBYSCORE_WITHSCORES"); +const ZRANGEBYSCORE = require("../commands/ZRANGEBYSCORE"); +const ZRANGESTORE = require("../commands/ZRANGESTORE"); +const ZRANK = require("../commands/ZRANK"); +const ZREM = require("../commands/ZREM"); +const ZREMRANGEBYLEX = require("../commands/ZREMRANGEBYLEX"); +const ZREMRANGEBYRANK = require("../commands/ZREMRANGEBYRANK"); +const ZREMRANGEBYSCORE = require("../commands/ZREMRANGEBYSCORE"); +const ZREVRANK = require("../commands/ZREVRANK"); +const ZSCAN = require("../commands/ZSCAN"); +const ZSCORE = require("../commands/ZSCORE"); +const ZUNION_WITHSCORES = require("../commands/ZUNION_WITHSCORES"); +const ZUNION = require("../commands/ZUNION"); +const ZUNIONSTORE = require("../commands/ZUNIONSTORE"); +exports.default = { + APPEND, + append: APPEND, + BITCOUNT, + bitCount: BITCOUNT, + BITFIELD_RO, + bitFieldRo: BITFIELD_RO, + BITFIELD, + bitField: BITFIELD, + BITOP, + bitOp: BITOP, + BITPOS, + bitPos: BITPOS, + BLMOVE, + blMove: BLMOVE, + BLMPOP, + blmPop: BLMPOP, + BLPOP, + blPop: BLPOP, + BRPOP, + brPop: BRPOP, + BRPOPLPUSH, + brPopLPush: BRPOPLPUSH, + BZMPOP, + bzmPop: BZMPOP, + BZPOPMAX, + bzPopMax: BZPOPMAX, + BZPOPMIN, + bzPopMin: BZPOPMIN, + COPY, + copy: COPY, + DECR, + decr: DECR, + DECRBY, + decrBy: DECRBY, + DEL, + del: DEL, + DUMP, + dump: DUMP, + EVAL_RO, + evalRo: EVAL_RO, + EVAL, + eval: EVAL, + EVALSHA, + evalSha: EVALSHA, + EVALSHA_RO, + evalShaRo: EVALSHA_RO, + EXISTS, + exists: EXISTS, + EXPIRE, + expire: EXPIRE, + EXPIREAT, + expireAt: EXPIREAT, + EXPIRETIME, + expireTime: EXPIRETIME, + FCALL_RO, + fCallRo: FCALL_RO, + FCALL, + fCall: FCALL, + GEOADD, + geoAdd: GEOADD, + GEODIST, + geoDist: GEODIST, + GEOHASH, + geoHash: GEOHASH, + GEOPOS, + geoPos: GEOPOS, + GEORADIUS_RO_WITH, + geoRadiusRoWith: GEORADIUS_RO_WITH, + GEORADIUS_RO, + geoRadiusRo: GEORADIUS_RO, + GEORADIUS_WITH, + geoRadiusWith: GEORADIUS_WITH, + GEORADIUS, + geoRadius: GEORADIUS, + GEORADIUSBYMEMBER_RO_WITH, + geoRadiusByMemberRoWith: GEORADIUSBYMEMBER_RO_WITH, + GEORADIUSBYMEMBER_RO, + geoRadiusByMemberRo: GEORADIUSBYMEMBER_RO, + GEORADIUSBYMEMBER_WITH, + geoRadiusByMemberWith: GEORADIUSBYMEMBER_WITH, + GEORADIUSBYMEMBER, + geoRadiusByMember: GEORADIUSBYMEMBER, + GEORADIUSBYMEMBERSTORE, + geoRadiusByMemberStore: GEORADIUSBYMEMBERSTORE, + GEORADIUSSTORE, + geoRadiusStore: GEORADIUSSTORE, + GEOSEARCH_WITH, + geoSearchWith: GEOSEARCH_WITH, + GEOSEARCH, + geoSearch: GEOSEARCH, + GEOSEARCHSTORE, + geoSearchStore: GEOSEARCHSTORE, + GET, + get: GET, + GETBIT, + getBit: GETBIT, + GETDEL, + getDel: GETDEL, + GETEX, + getEx: GETEX, + GETRANGE, + getRange: GETRANGE, + GETSET, + getSet: GETSET, + HDEL, + hDel: HDEL, + HEXISTS, + hExists: HEXISTS, + HEXPIRE, + hExpire: HEXPIRE, + HEXPIREAT, + hExpireAt: HEXPIREAT, + HEXPIRETIME, + hExpireTime: HEXPIRETIME, + HGET, + hGet: HGET, + HGETALL, + hGetAll: HGETALL, + HINCRBY, + hIncrBy: HINCRBY, + HINCRBYFLOAT, + hIncrByFloat: HINCRBYFLOAT, + HKEYS, + hKeys: HKEYS, + HLEN, + hLen: HLEN, + HMGET, + hmGet: HMGET, + HPERSIST, + hPersist: HPERSIST, + HPEXPIRE, + hpExpire: HPEXPIRE, + HPEXPIREAT, + hpExpireAt: HPEXPIREAT, + HPEXPIRETIME, + hpExpireTime: HPEXPIRETIME, + HPTTL, + hpTTL: HPTTL, + HRANDFIELD_COUNT_WITHVALUES, + hRandFieldCountWithValues: HRANDFIELD_COUNT_WITHVALUES, + HRANDFIELD_COUNT, + hRandFieldCount: HRANDFIELD_COUNT, + HRANDFIELD, + hRandField: HRANDFIELD, + HSCAN, + hScan: HSCAN, + HSCAN_NOVALUES, + hScanNoValues: HSCAN_NOVALUES, + HSET, + hSet: HSET, + HSETNX, + hSetNX: HSETNX, + HSTRLEN, + hStrLen: HSTRLEN, + HTTL, + hTTL: HTTL, + HVALS, + hVals: HVALS, + INCR, + incr: INCR, + INCRBY, + incrBy: INCRBY, + INCRBYFLOAT, + incrByFloat: INCRBYFLOAT, + LCS_IDX_WITHMATCHLEN, + lcsIdxWithMatchLen: LCS_IDX_WITHMATCHLEN, + LCS_IDX, + lcsIdx: LCS_IDX, + LCS_LEN, + lcsLen: LCS_LEN, + LCS, + lcs: LCS, + LINDEX, + lIndex: LINDEX, + LINSERT, + lInsert: LINSERT, + LLEN, + lLen: LLEN, + LMOVE, + lMove: LMOVE, + LMPOP, + lmPop: LMPOP, + LPOP_COUNT, + lPopCount: LPOP_COUNT, + LPOP, + lPop: LPOP, + LPOS_COUNT, + lPosCount: LPOS_COUNT, + LPOS, + lPos: LPOS, + LPUSH, + lPush: LPUSH, + LPUSHX, + lPushX: LPUSHX, + LRANGE, + lRange: LRANGE, + LREM, + lRem: LREM, + LSET, + lSet: LSET, + LTRIM, + lTrim: LTRIM, + MGET, + mGet: MGET, + MIGRATE, + migrate: MIGRATE, + MSET, + mSet: MSET, + MSETNX, + mSetNX: MSETNX, + OBJECT_ENCODING, + objectEncoding: OBJECT_ENCODING, + OBJECT_FREQ, + objectFreq: OBJECT_FREQ, + OBJECT_IDLETIME, + objectIdleTime: OBJECT_IDLETIME, + OBJECT_REFCOUNT, + objectRefCount: OBJECT_REFCOUNT, + PERSIST, + persist: PERSIST, + PEXPIRE, + pExpire: PEXPIRE, + PEXPIREAT, + pExpireAt: PEXPIREAT, + PEXPIRETIME, + pExpireTime: PEXPIRETIME, + PFADD, + pfAdd: PFADD, + PFCOUNT, + pfCount: PFCOUNT, + PFMERGE, + pfMerge: PFMERGE, + PSETEX, + pSetEx: PSETEX, + PTTL, + pTTL: PTTL, + PUBLISH, + publish: PUBLISH, + RENAME, + rename: RENAME, + RENAMENX, + renameNX: RENAMENX, + RESTORE, + restore: RESTORE, + RPOP_COUNT, + rPopCount: RPOP_COUNT, + RPOP, + rPop: RPOP, + RPOPLPUSH, + rPopLPush: RPOPLPUSH, + RPUSH, + rPush: RPUSH, + RPUSHX, + rPushX: RPUSHX, + SADD, + sAdd: SADD, + SCARD, + sCard: SCARD, + SDIFF, + sDiff: SDIFF, + SDIFFSTORE, + sDiffStore: SDIFFSTORE, + SINTER, + sInter: SINTER, + SINTERCARD, + sInterCard: SINTERCARD, + SINTERSTORE, + sInterStore: SINTERSTORE, + SET, + set: SET, + SETBIT, + setBit: SETBIT, + SETEX, + setEx: SETEX, + SETNX, + setNX: SETNX, + SETRANGE, + setRange: SETRANGE, + SISMEMBER, + sIsMember: SISMEMBER, + SMEMBERS, + sMembers: SMEMBERS, + SMISMEMBER, + smIsMember: SMISMEMBER, + SMOVE, + sMove: SMOVE, + SORT_RO, + sortRo: SORT_RO, + SORT_STORE, + sortStore: SORT_STORE, + SORT, + sort: SORT, + SPOP, + sPop: SPOP, + SPUBLISH, + sPublish: SPUBLISH, + SRANDMEMBER_COUNT, + sRandMemberCount: SRANDMEMBER_COUNT, + SRANDMEMBER, + sRandMember: SRANDMEMBER, + SREM, + sRem: SREM, + SSCAN, + sScan: SSCAN, + STRLEN, + strLen: STRLEN, + SUNION, + sUnion: SUNION, + SUNIONSTORE, + sUnionStore: SUNIONSTORE, + TOUCH, + touch: TOUCH, + TTL, + ttl: TTL, + TYPE, + type: TYPE, + UNLINK, + unlink: UNLINK, + WATCH, + watch: WATCH, + XACK, + xAck: XACK, + XADD, + xAdd: XADD, + XAUTOCLAIM_JUSTID, + xAutoClaimJustId: XAUTOCLAIM_JUSTID, + XAUTOCLAIM, + xAutoClaim: XAUTOCLAIM, + XCLAIM, + xClaim: XCLAIM, + XCLAIM_JUSTID, + xClaimJustId: XCLAIM_JUSTID, + XDEL, + xDel: XDEL, + XGROUP_CREATE, + xGroupCreate: XGROUP_CREATE, + XGROUP_CREATECONSUMER, + xGroupCreateConsumer: XGROUP_CREATECONSUMER, + XGROUP_DELCONSUMER, + xGroupDelConsumer: XGROUP_DELCONSUMER, + XGROUP_DESTROY, + xGroupDestroy: XGROUP_DESTROY, + XGROUP_SETID, + xGroupSetId: XGROUP_SETID, + XINFO_CONSUMERS, + xInfoConsumers: XINFO_CONSUMERS, + XINFO_GROUPS, + xInfoGroups: XINFO_GROUPS, + XINFO_STREAM, + xInfoStream: XINFO_STREAM, + XLEN, + xLen: XLEN, + XPENDING_RANGE, + xPendingRange: XPENDING_RANGE, + XPENDING, + xPending: XPENDING, + XRANGE, + xRange: XRANGE, + XREAD, + xRead: XREAD, + XREADGROUP, + xReadGroup: XREADGROUP, + XREVRANGE, + xRevRange: XREVRANGE, + XSETID, + xSetId: XSETID, + XTRIM, + xTrim: XTRIM, + ZADD, + zAdd: ZADD, + ZCARD, + zCard: ZCARD, + ZCOUNT, + zCount: ZCOUNT, + ZDIFF_WITHSCORES, + zDiffWithScores: ZDIFF_WITHSCORES, + ZDIFF, + zDiff: ZDIFF, + ZDIFFSTORE, + zDiffStore: ZDIFFSTORE, + ZINCRBY, + zIncrBy: ZINCRBY, + ZINTER_WITHSCORES, + zInterWithScores: ZINTER_WITHSCORES, + ZINTER, + zInter: ZINTER, + ZINTERCARD, + zInterCard: ZINTERCARD, + ZINTERSTORE, + zInterStore: ZINTERSTORE, + ZLEXCOUNT, + zLexCount: ZLEXCOUNT, + ZMPOP, + zmPop: ZMPOP, + ZMSCORE, + zmScore: ZMSCORE, + ZPOPMAX_COUNT, + zPopMaxCount: ZPOPMAX_COUNT, + ZPOPMAX, + zPopMax: ZPOPMAX, + ZPOPMIN_COUNT, + zPopMinCount: ZPOPMIN_COUNT, + ZPOPMIN, + zPopMin: ZPOPMIN, + ZRANDMEMBER_COUNT_WITHSCORES, + zRandMemberCountWithScores: ZRANDMEMBER_COUNT_WITHSCORES, + ZRANDMEMBER_COUNT, + zRandMemberCount: ZRANDMEMBER_COUNT, + ZRANDMEMBER, + zRandMember: ZRANDMEMBER, + ZRANGE_WITHSCORES, + zRangeWithScores: ZRANGE_WITHSCORES, + ZRANGE, + zRange: ZRANGE, + ZRANGEBYLEX, + zRangeByLex: ZRANGEBYLEX, + ZRANGEBYSCORE_WITHSCORES, + zRangeByScoreWithScores: ZRANGEBYSCORE_WITHSCORES, + ZRANGEBYSCORE, + zRangeByScore: ZRANGEBYSCORE, + ZRANGESTORE, + zRangeStore: ZRANGESTORE, + ZRANK, + zRank: ZRANK, + ZREM, + zRem: ZREM, + ZREMRANGEBYLEX, + zRemRangeByLex: ZREMRANGEBYLEX, + ZREMRANGEBYRANK, + zRemRangeByRank: ZREMRANGEBYRANK, + ZREMRANGEBYSCORE, + zRemRangeByScore: ZREMRANGEBYSCORE, + ZREVRANK, + zRevRank: ZREVRANK, + ZSCAN, + zScan: ZSCAN, + ZSCORE, + zScore: ZSCORE, + ZUNION_WITHSCORES, + zUnionWithScores: ZUNION_WITHSCORES, + ZUNION, + zUnion: ZUNION, + ZUNIONSTORE, + zUnionStore: ZUNIONSTORE +}; diff --git a/node_modules/@redis/client/dist/lib/cluster/index.d.ts b/node_modules/@redis/client/dist/lib/cluster/index.d.ts new file mode 100644 index 0000000..195a30c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/index.d.ts @@ -0,0 +1,93 @@ +/// +import COMMANDS from './commands'; +import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandRawReply, RedisCommandReply, RedisFunctions, RedisModules, RedisExtensions, RedisScript, RedisScripts, RedisCommandSignature, RedisFunction } from '../commands'; +import { ClientCommandOptions, RedisClientOptions, RedisClientType, WithFunctions, WithModules, WithScripts } from '../client'; +import { NodeAddressMap, ShardNode } from './cluster-slots'; +import { EventEmitter } from 'events'; +import { RedisClusterMultiCommandType } from './multi-command'; +import { PubSubListener } from '../client/pub-sub'; +export type RedisClusterClientOptions = Omit; +export interface RedisClusterOptions, F extends RedisFunctions = Record, S extends RedisScripts = Record> extends RedisExtensions { + /** + * Should contain details for some of the cluster nodes that the client will use to discover + * the "cluster topology". We recommend including details for at least 3 nodes here. + */ + rootNodes: Array; + /** + * Default values used for every client in the cluster. Use this to specify global values, + * for example: ACL credentials, timeouts, TLS configuration etc. + */ + defaults?: Partial; + /** + * When `true`, `.connect()` will only discover the cluster topology, without actually connecting to all the nodes. + * Useful for short-term or PubSub-only connections. + */ + minimizeConnections?: boolean; + /** + * When `true`, distribute load by executing readonly commands (such as `GET`, `GEOSEARCH`, etc.) across all cluster nodes. When `false`, only use master nodes. + */ + useReplicas?: boolean; + /** + * The maximum number of times a command will be redirected due to `MOVED` or `ASK` errors. + */ + maxCommandRedirections?: number; + /** + * Mapping between the addresses in the cluster (see `CLUSTER SHARDS`) and the addresses the client should connect to + * Useful when the cluster is running on another network + * + */ + nodeAddressMap?: NodeAddressMap; +} +type WithCommands = { + [P in keyof typeof COMMANDS]: RedisCommandSignature<(typeof COMMANDS)[P]>; +}; +export type RedisClusterType, F extends RedisFunctions = Record, S extends RedisScripts = Record> = RedisCluster & WithCommands & WithModules & WithFunctions & WithScripts; +export default class RedisCluster extends EventEmitter { + #private; + static extractFirstKey(command: RedisCommand, originalArgs: Array, redisArgs: RedisCommandArguments): RedisCommandArgument | undefined; + static create(options?: RedisClusterOptions): RedisClusterType; + get slots(): import("./cluster-slots").Shard[]; + get shards(): import("./cluster-slots").Shard[]; + get masters(): ShardNode[]; + get replicas(): ShardNode[]; + get nodeByAddress(): Map | import("./cluster-slots").MasterNode>; + get pubSubNode(): Required> | undefined; + get isOpen(): boolean; + constructor(options: RedisClusterOptions); + duplicate(overrides?: Partial>): RedisClusterType; + connect(): Promise; + commandsExecutor(command: C, args: Array): Promise>; + sendCommand(firstKey: RedisCommandArgument | undefined, isReadonly: boolean | undefined, args: RedisCommandArguments, options?: ClientCommandOptions): Promise; + functionsExecutor(fn: F, args: Array, name: string): Promise>; + executeFunction(name: string, fn: RedisFunction, originalArgs: Array, redisArgs: RedisCommandArguments, options?: ClientCommandOptions): Promise; + scriptsExecutor(script: S, args: Array): Promise>; + executeScript(script: RedisScript, originalArgs: Array, redisArgs: RedisCommandArguments, options?: ClientCommandOptions): Promise; + MULTI(routing?: RedisCommandArgument): RedisClusterMultiCommandType; + multi: (routing?: RedisCommandArgument) => RedisClusterMultiCommandType; + SUBSCRIBE(channels: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + subscribe: (channels: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + UNSUBSCRIBE(channels?: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + unsubscribe: (channels?: string | Array, listener?: PubSubListener, bufferMode?: T | undefined) => Promise; + PSUBSCRIBE(patterns: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + pSubscribe: (patterns: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + PUNSUBSCRIBE(patterns?: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + pUnsubscribe: (patterns?: string | Array, listener?: PubSubListener | undefined, bufferMode?: T | undefined) => Promise; + SSUBSCRIBE(channels: string | Array, listener: PubSubListener, bufferMode?: T): Promise; + sSubscribe: (channels: string | Array, listener: PubSubListener, bufferMode?: T | undefined) => Promise; + SUNSUBSCRIBE(channels: string | Array, listener?: PubSubListener, bufferMode?: T): Promise; + sUnsubscribe: (channels: string | Array, listener?: PubSubListener | undefined, bufferMode?: T | undefined) => Promise; + quit(): Promise; + disconnect(): Promise; + nodeClient(node: ShardNode): RedisClientType | Promise>; + getRandomNode(): ShardNode; + getSlotRandomNode(slot: number): ShardNode; + /** + * @deprecated use `.masters` instead + */ + getMasters(): ShardNode[]; + /** + * @deprecated use `.slots[]` instead + */ + getSlotMaster(slot: number): import("./cluster-slots").MasterNode; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/cluster/index.js b/node_modules/@redis/client/dist/lib/cluster/index.js new file mode 100644 index 0000000..826aa75 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/index.js @@ -0,0 +1,254 @@ +"use strict"; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var _RedisCluster_instances, _RedisCluster_options, _RedisCluster_slots, _RedisCluster_Multi, _RedisCluster_execute; +Object.defineProperty(exports, "__esModule", { value: true }); +const commands_1 = require("./commands"); +const cluster_slots_1 = require("./cluster-slots"); +const commander_1 = require("../commander"); +const events_1 = require("events"); +const multi_command_1 = require("./multi-command"); +const errors_1 = require("../errors"); +class RedisCluster extends events_1.EventEmitter { + static extractFirstKey(command, originalArgs, redisArgs) { + if (command.FIRST_KEY_INDEX === undefined) { + return undefined; + } + else if (typeof command.FIRST_KEY_INDEX === 'number') { + return redisArgs[command.FIRST_KEY_INDEX]; + } + return command.FIRST_KEY_INDEX(...originalArgs); + } + static create(options) { + return new ((0, commander_1.attachExtensions)({ + BaseClass: RedisCluster, + modulesExecutor: RedisCluster.prototype.commandsExecutor, + modules: options?.modules, + functionsExecutor: RedisCluster.prototype.functionsExecutor, + functions: options?.functions, + scriptsExecutor: RedisCluster.prototype.scriptsExecutor, + scripts: options?.scripts + }))(options); + } + get slots() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").slots; + } + get shards() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").shards; + } + get masters() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").masters; + } + get replicas() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").replicas; + } + get nodeByAddress() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").nodeByAddress; + } + get pubSubNode() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").pubSubNode; + } + get isOpen() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").isOpen; + } + constructor(options) { + super(); + _RedisCluster_instances.add(this); + _RedisCluster_options.set(this, void 0); + _RedisCluster_slots.set(this, void 0); + _RedisCluster_Multi.set(this, void 0); + Object.defineProperty(this, "multi", { + enumerable: true, + configurable: true, + writable: true, + value: this.MULTI + }); + Object.defineProperty(this, "subscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUBSCRIBE + }); + Object.defineProperty(this, "unsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.UNSUBSCRIBE + }); + Object.defineProperty(this, "pSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PSUBSCRIBE + }); + Object.defineProperty(this, "pUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PUNSUBSCRIBE + }); + Object.defineProperty(this, "sSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SSUBSCRIBE + }); + Object.defineProperty(this, "sUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUNSUBSCRIBE + }); + __classPrivateFieldSet(this, _RedisCluster_options, options, "f"); + __classPrivateFieldSet(this, _RedisCluster_slots, new cluster_slots_1.default(options, this.emit.bind(this)), "f"); + __classPrivateFieldSet(this, _RedisCluster_Multi, multi_command_1.default.extend(options), "f"); + } + duplicate(overrides) { + return new (Object.getPrototypeOf(this).constructor)({ + ...__classPrivateFieldGet(this, _RedisCluster_options, "f"), + ...overrides + }); + } + connect() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").connect(); + } + async commandsExecutor(command, args) { + const { jsArgs, args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args); + return (0, commander_1.transformCommandReply)(command, await this.sendCommand(RedisCluster.extractFirstKey(command, jsArgs, redisArgs), command.IS_READ_ONLY, redisArgs, options), redisArgs.preserve); + } + async sendCommand(firstKey, isReadonly, args, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, firstKey, isReadonly, client => client.sendCommand(args, options)); + } + async functionsExecutor(fn, args, name) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args); + return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, args, redisArgs, options), redisArgs.preserve); + } + async executeFunction(name, fn, originalArgs, redisArgs, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(fn, originalArgs, redisArgs), fn.IS_READ_ONLY, client => client.executeFunction(name, fn, redisArgs, options)); + } + async scriptsExecutor(script, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args); + return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, args, redisArgs, options), redisArgs.preserve); + } + async executeScript(script, originalArgs, redisArgs, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(script, originalArgs, redisArgs), script.IS_READ_ONLY, client => client.executeScript(script, redisArgs, options)); + } + MULTI(routing) { + return new (__classPrivateFieldGet(this, _RedisCluster_Multi, "f"))((commands, firstKey, chainId) => { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, firstKey, false, client => client.multiExecutor(commands, undefined, chainId)); + }, routing); + } + async SUBSCRIBE(channels, listener, bufferMode) { + return (await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getPubSubClient()) + .SUBSCRIBE(channels, listener, bufferMode); + } + async UNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeUnsubscribeCommand(client => client.UNSUBSCRIBE(channels, listener, bufferMode)); + } + async PSUBSCRIBE(patterns, listener, bufferMode) { + return (await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getPubSubClient()) + .PSUBSCRIBE(patterns, listener, bufferMode); + } + async PUNSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeUnsubscribeCommand(client => client.PUNSUBSCRIBE(patterns, listener, bufferMode)); + } + async SSUBSCRIBE(channels, listener, bufferMode) { + const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, "f").maxCommandRedirections ?? 16, firstChannel = Array.isArray(channels) ? channels[0] : channels; + let client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getShardedPubSubClient(firstChannel); + for (let i = 0;; i++) { + try { + return await client.SSUBSCRIBE(channels, listener, bufferMode); + } + catch (err) { + if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) { + throw err; + } + if (err.message.startsWith('MOVED')) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getShardedPubSubClient(firstChannel); + continue; + } + throw err; + } + } + } + SUNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeShardedUnsubscribeCommand(Array.isArray(channels) ? channels[0] : channels, client => client.SUNSUBSCRIBE(channels, listener, bufferMode)); + } + quit() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").quit(); + } + disconnect() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").disconnect(); + } + nodeClient(node) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").nodeClient(node); + } + getRandomNode() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").getRandomNode(); + } + getSlotRandomNode(slot) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").getSlotRandomNode(slot); + } + /** + * @deprecated use `.masters` instead + */ + getMasters() { + return this.masters; + } + /** + * @deprecated use `.slots[]` instead + */ + getSlotMaster(slot) { + return this.slots[slot].master; + } +} +_RedisCluster_options = new WeakMap(), _RedisCluster_slots = new WeakMap(), _RedisCluster_Multi = new WeakMap(), _RedisCluster_instances = new WeakSet(), _RedisCluster_execute = async function _RedisCluster_execute(firstKey, isReadonly, executor) { + const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, "f").maxCommandRedirections ?? 16; + let client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getClient(firstKey, isReadonly); + for (let i = 0;; i++) { + try { + return await executor(client); + } + catch (err) { + if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) { + throw err; + } + if (err.message.startsWith('ASK')) { + const address = err.message.substring(err.message.lastIndexOf(' ') + 1); + let redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getMasterByAddress(address); + if (!redirectTo) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getMasterByAddress(address); + } + if (!redirectTo) { + throw new Error(`Cannot find node ${address}`); + } + await redirectTo.asking(); + client = redirectTo; + continue; + } + else if (err.message.startsWith('MOVED')) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getClient(firstKey, isReadonly); + continue; + } + throw err; + } + } +}; +exports.default = RedisCluster; +(0, commander_1.attachCommands)({ + BaseClass: RedisCluster, + commands: commands_1.default, + executor: RedisCluster.prototype.commandsExecutor +}); diff --git a/node_modules/@redis/client/dist/lib/cluster/multi-command.d.ts b/node_modules/@redis/client/dist/lib/cluster/multi-command.d.ts new file mode 100644 index 0000000..84a02c9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/multi-command.d.ts @@ -0,0 +1,36 @@ +import COMMANDS from './commands'; +import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandRawReply, RedisFunctions, RedisModules, RedisExtensions, RedisScript, RedisScripts, ExcludeMappedString, RedisFunction } from '../commands'; +import { RedisMultiQueuedCommand } from '../multi-command'; +type RedisClusterMultiCommandSignature = (...args: Parameters) => RedisClusterMultiCommandType; +type WithCommands = { + [P in keyof typeof COMMANDS]: RedisClusterMultiCommandSignature<(typeof COMMANDS)[P], M, F, S>; +}; +type WithModules = { + [P in keyof M as ExcludeMappedString

]: { + [C in keyof M[P] as ExcludeMappedString]: RedisClusterMultiCommandSignature; + }; +}; +type WithFunctions = { + [P in keyof F as ExcludeMappedString

]: { + [FF in keyof F[P] as ExcludeMappedString]: RedisClusterMultiCommandSignature; + }; +}; +type WithScripts = { + [P in keyof S as ExcludeMappedString

]: RedisClusterMultiCommandSignature; +}; +export type RedisClusterMultiCommandType = RedisClusterMultiCommand & WithCommands & WithModules & WithFunctions & WithScripts; +export type InstantiableRedisClusterMultiCommandType = new (...args: ConstructorParameters) => RedisClusterMultiCommandType; +export type RedisClusterMultiExecutor = (queue: Array, firstKey?: RedisCommandArgument, chainId?: symbol) => Promise>; +export default class RedisClusterMultiCommand { + #private; + static extend(extensions?: RedisExtensions): InstantiableRedisClusterMultiCommandType; + constructor(executor: RedisClusterMultiExecutor, firstKey?: RedisCommandArgument); + commandsExecutor(command: RedisCommand, args: Array): this; + addCommand(firstKey: RedisCommandArgument | undefined, args: RedisCommandArguments, transformReply?: RedisCommand['transformReply']): this; + functionsExecutor(fn: RedisFunction, args: Array, name: string): this; + scriptsExecutor(script: RedisScript, args: Array): this; + exec(execAsPipeline?: boolean): Promise>; + EXEC: (execAsPipeline?: boolean) => Promise>; + execAsPipeline(): Promise>; +} +export {}; diff --git a/node_modules/@redis/client/dist/lib/cluster/multi-command.js b/node_modules/@redis/client/dist/lib/cluster/multi-command.js new file mode 100644 index 0000000..1e8e797 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/cluster/multi-command.js @@ -0,0 +1,80 @@ +"use strict"; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _RedisClusterMultiCommand_multi, _RedisClusterMultiCommand_executor, _RedisClusterMultiCommand_firstKey; +Object.defineProperty(exports, "__esModule", { value: true }); +const commands_1 = require("./commands"); +const multi_command_1 = require("../multi-command"); +const commander_1 = require("../commander"); +const _1 = require("."); +class RedisClusterMultiCommand { + static extend(extensions) { + return (0, commander_1.attachExtensions)({ + BaseClass: RedisClusterMultiCommand, + modulesExecutor: RedisClusterMultiCommand.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: RedisClusterMultiCommand.prototype.functionsExecutor, + functions: extensions?.functions, + scriptsExecutor: RedisClusterMultiCommand.prototype.scriptsExecutor, + scripts: extensions?.scripts + }); + } + constructor(executor, firstKey) { + _RedisClusterMultiCommand_multi.set(this, new multi_command_1.default()); + _RedisClusterMultiCommand_executor.set(this, void 0); + _RedisClusterMultiCommand_firstKey.set(this, void 0); + Object.defineProperty(this, "EXEC", { + enumerable: true, + configurable: true, + writable: true, + value: this.exec + }); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_executor, executor, "f"); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, firstKey, "f"); + } + commandsExecutor(command, args) { + const transformedArguments = command.transformArguments(...args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(command, args, transformedArguments), "f"); + return this.addCommand(undefined, transformedArguments, command.transformReply); + } + addCommand(firstKey, args, transformReply) { + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? firstKey, "f"); + __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addCommand(args, transformReply); + return this; + } + functionsExecutor(fn, args, name) { + const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addFunction(name, fn, args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(fn, args, transformedArguments), "f"); + return this; + } + scriptsExecutor(script, args) { + const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addScript(script, args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(script, args, transformedArguments), "f"); + return this; + } + async exec(execAsPipeline = false) { + if (execAsPipeline) { + return this.execAsPipeline(); + } + return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").handleExecReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f"), multi_command_1.default.generateChainId())); + } + async execAsPipeline() { + return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").transformReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f"))); + } +} +_RedisClusterMultiCommand_multi = new WeakMap(), _RedisClusterMultiCommand_executor = new WeakMap(), _RedisClusterMultiCommand_firstKey = new WeakMap(); +exports.default = RedisClusterMultiCommand; +(0, commander_1.attachCommands)({ + BaseClass: RedisClusterMultiCommand, + commands: commands_1.default, + executor: RedisClusterMultiCommand.prototype.commandsExecutor +}); diff --git a/node_modules/@redis/client/dist/lib/command-options.d.ts b/node_modules/@redis/client/dist/lib/command-options.d.ts new file mode 100644 index 0000000..58cbd46 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/command-options.d.ts @@ -0,0 +1,7 @@ +declare const symbol: unique symbol; +export type CommandOptions = T & { + readonly [symbol]: true; +}; +export declare function commandOptions(options: T): CommandOptions; +export declare function isCommandOptions(options: any): options is CommandOptions; +export {}; diff --git a/node_modules/@redis/client/dist/lib/command-options.js b/node_modules/@redis/client/dist/lib/command-options.js new file mode 100644 index 0000000..d337994 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/command-options.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isCommandOptions = exports.commandOptions = void 0; +const symbol = Symbol('Command Options'); +function commandOptions(options) { + options[symbol] = true; + return options; +} +exports.commandOptions = commandOptions; +function isCommandOptions(options) { + return options?.[symbol] === true; +} +exports.isCommandOptions = isCommandOptions; diff --git a/node_modules/@redis/client/dist/lib/commander.d.ts b/node_modules/@redis/client/dist/lib/commander.d.ts new file mode 100644 index 0000000..207fd12 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commander.d.ts @@ -0,0 +1,30 @@ +import { ClientCommandOptions } from './client'; +import { CommandOptions } from './command-options'; +import { RedisCommand, RedisCommandArgument, RedisCommandArguments, RedisCommandReply, RedisFunction, RedisFunctions, RedisModules, RedisScript, RedisScripts } from './commands'; +type Instantiable = new (...args: Array) => T; +type CommandsExecutor = (command: C, args: Array, name: string) => unknown; +interface AttachCommandsConfig { + BaseClass: Instantiable; + commands: Record; + executor: CommandsExecutor; +} +export declare function attachCommands({ BaseClass, commands, executor }: AttachCommandsConfig): void; +interface AttachExtensionsConfig { + BaseClass: T; + modulesExecutor: CommandsExecutor; + modules?: RedisModules; + functionsExecutor: CommandsExecutor; + functions?: RedisFunctions; + scriptsExecutor: CommandsExecutor; + scripts?: RedisScripts; +} +export declare function attachExtensions(config: AttachExtensionsConfig): any; +export declare function transformCommandArguments(command: RedisCommand, args: Array): { + jsArgs: Array; + args: RedisCommandArguments; + options: CommandOptions | undefined; +}; +export declare function transformLegacyCommandArguments(args: Array): Array; +export declare function transformCommandReply(command: C, rawReply: unknown, preserved: unknown): RedisCommandReply; +export declare function fCallArguments(name: RedisCommandArgument, fn: RedisFunction, args: RedisCommandArguments): RedisCommandArguments; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commander.js b/node_modules/@redis/client/dist/lib/commander.js new file mode 100644 index 0000000..28c15dd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commander.js @@ -0,0 +1,103 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fCallArguments = exports.transformCommandReply = exports.transformLegacyCommandArguments = exports.transformCommandArguments = exports.attachExtensions = exports.attachCommands = void 0; +const command_options_1 = require("./command-options"); +function attachCommands({ BaseClass, commands, executor }) { + for (const [name, command] of Object.entries(commands)) { + BaseClass.prototype[name] = function (...args) { + return executor.call(this, command, args, name); + }; + } +} +exports.attachCommands = attachCommands; +function attachExtensions(config) { + let Commander; + if (config.modules) { + Commander = attachWithNamespaces({ + BaseClass: config.BaseClass, + namespaces: config.modules, + executor: config.modulesExecutor + }); + } + if (config.functions) { + Commander = attachWithNamespaces({ + BaseClass: Commander ?? config.BaseClass, + namespaces: config.functions, + executor: config.functionsExecutor + }); + } + if (config.scripts) { + Commander ?? (Commander = class extends config.BaseClass { + }); + attachCommands({ + BaseClass: Commander, + commands: config.scripts, + executor: config.scriptsExecutor + }); + } + return Commander ?? config.BaseClass; +} +exports.attachExtensions = attachExtensions; +function attachWithNamespaces({ BaseClass, namespaces, executor }) { + const Commander = class extends BaseClass { + constructor(...args) { + super(...args); + for (const namespace of Object.keys(namespaces)) { + this[namespace] = Object.create(this[namespace], { + self: { + value: this + } + }); + } + } + }; + for (const [namespace, commands] of Object.entries(namespaces)) { + Commander.prototype[namespace] = {}; + for (const [name, command] of Object.entries(commands)) { + Commander.prototype[namespace][name] = function (...args) { + return executor.call(this.self, command, args, name); + }; + } + } + return Commander; +} +function transformCommandArguments(command, args) { + let options; + if ((0, command_options_1.isCommandOptions)(args[0])) { + options = args[0]; + args = args.slice(1); + } + return { + jsArgs: args, + args: command.transformArguments(...args), + options + }; +} +exports.transformCommandArguments = transformCommandArguments; +function transformLegacyCommandArguments(args) { + return args.flat().map(arg => { + return typeof arg === 'number' || arg instanceof Date ? + arg.toString() : + arg; + }); +} +exports.transformLegacyCommandArguments = transformLegacyCommandArguments; +function transformCommandReply(command, rawReply, preserved) { + if (!command.transformReply) { + return rawReply; + } + return command.transformReply(rawReply, preserved); +} +exports.transformCommandReply = transformCommandReply; +function fCallArguments(name, fn, args) { + const actualArgs = [ + fn.IS_READ_ONLY ? 'FCALL_RO' : 'FCALL', + name + ]; + if (fn.NUMBER_OF_KEYS !== undefined) { + actualArgs.push(fn.NUMBER_OF_KEYS.toString()); + } + actualArgs.push(...args); + return actualArgs; +} +exports.fCallArguments = fCallArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_CAT.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_CAT.d.ts new file mode 100644 index 0000000..8df4390 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_CAT.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(categoryName?: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_CAT.js b/node_modules/@redis/client/dist/lib/commands/ACL_CAT.js new file mode 100644 index 0000000..b6fce00 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_CAT.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(categoryName) { + const args = ['ACL', 'CAT']; + if (categoryName) { + args.push(categoryName); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.d.ts new file mode 100644 index 0000000..d4abe17 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(username: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js b/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js new file mode 100644 index 0000000..9a43ae3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_DELUSER.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(username) { + return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'DELUSER'], username); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.d.ts new file mode 100644 index 0000000..11f1d9a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(username: RedisCommandArgument, command: Array): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js b/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js new file mode 100644 index 0000000..0e4f0f6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_DRYRUN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(username, command) { + return [ + 'ACL', + 'DRYRUN', + username, + ...command + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.d.ts new file mode 100644 index 0000000..5f85023 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(bits?: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js b/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js new file mode 100644 index 0000000..cd2a3a7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_GENPASS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(bits) { + const args = ['ACL', 'GENPASS']; + if (bits) { + args.push(bits.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.d.ts new file mode 100644 index 0000000..2574a35 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.d.ts @@ -0,0 +1,26 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(username: RedisCommandArgument): RedisCommandArguments; +type AclGetUserRawReply = [ + 'flags', + Array, + 'passwords', + Array, + 'commands', + RedisCommandArgument, + 'keys', + Array | RedisCommandArgument, + 'channels', + Array | RedisCommandArgument, + 'selectors' | undefined, + Array> | undefined +]; +interface AclUser { + flags: Array; + passwords: Array; + commands: RedisCommandArgument; + keys: Array | RedisCommandArgument; + channels: Array | RedisCommandArgument; + selectors?: Array>; +} +export declare function transformReply(reply: AclGetUserRawReply): AclUser; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js b/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js new file mode 100644 index 0000000..6e58582 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_GETUSER.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(username) { + return ['ACL', 'GETUSER', username]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + flags: reply[1], + passwords: reply[3], + commands: reply[5], + keys: reply[7], + channels: reply[9], + selectors: reply[11] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LIST.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_LIST.d.ts new file mode 100644 index 0000000..5e7c41d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LIST.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LIST.js b/node_modules/@redis/client/dist/lib/commands/ACL_LIST.js new file mode 100644 index 0000000..fa806d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LIST.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LIST']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js b/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js new file mode 100644 index 0000000..d433e3b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOAD.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LOAD']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOG.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_LOG.d.ts new file mode 100644 index 0000000..1534451 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOG.d.ts @@ -0,0 +1,29 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(count?: number): RedisCommandArguments; +type AclLogRawReply = [ + _: RedisCommandArgument, + count: number, + _: RedisCommandArgument, + reason: RedisCommandArgument, + _: RedisCommandArgument, + context: RedisCommandArgument, + _: RedisCommandArgument, + object: RedisCommandArgument, + _: RedisCommandArgument, + username: RedisCommandArgument, + _: RedisCommandArgument, + ageSeconds: RedisCommandArgument, + _: RedisCommandArgument, + clientInfo: RedisCommandArgument +]; +interface AclLog { + count: number; + reason: RedisCommandArgument; + context: RedisCommandArgument; + object: RedisCommandArgument; + username: RedisCommandArgument; + ageSeconds: number; + clientInfo: RedisCommandArgument; +} +export declare function transformReply(reply: Array): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOG.js b/node_modules/@redis/client/dist/lib/commands/ACL_LOG.js new file mode 100644 index 0000000..e943bee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOG.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(count) { + const args = ['ACL', 'LOG']; + if (count) { + args.push(count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(log => ({ + count: log[1], + reason: log[3], + context: log[5], + object: log[7], + username: log[9], + ageSeconds: Number(log[11]), + clientInfo: log[13] + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js b/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js new file mode 100644 index 0000000..1a57c0b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_LOG_RESET.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LOG', 'RESET']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js b/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js new file mode 100644 index 0000000..e793f9d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_SAVE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'SAVE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.d.ts new file mode 100644 index 0000000..2a9b744 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(username: RedisCommandArgument, rule: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js b/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js new file mode 100644 index 0000000..2421845 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_SETUSER.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(username, rule) { + return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'SETUSER', username], rule); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_USERS.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_USERS.d.ts new file mode 100644 index 0000000..5e7c41d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_USERS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_USERS.js b/node_modules/@redis/client/dist/lib/commands/ACL_USERS.js new file mode 100644 index 0000000..3895e5c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_USERS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'USERS']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.d.ts b/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js b/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js new file mode 100644 index 0000000..38996a7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ACL_WHOAMI.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'WHOAMI']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/APPEND.d.ts b/node_modules/@redis/client/dist/lib/commands/APPEND.d.ts new file mode 100644 index 0000000..0db828a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/APPEND.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, value: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/APPEND.js b/node_modules/@redis/client/dist/lib/commands/APPEND.js new file mode 100644 index 0000000..93dc4bb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/APPEND.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['APPEND', key, value]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ASKING.d.ts b/node_modules/@redis/client/dist/lib/commands/ASKING.d.ts new file mode 100644 index 0000000..fdf0501 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ASKING.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments, RedisCommandArgument } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ASKING.js b/node_modules/@redis/client/dist/lib/commands/ASKING.js new file mode 100644 index 0000000..3485abd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ASKING.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['ASKING']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/AUTH.d.ts b/node_modules/@redis/client/dist/lib/commands/AUTH.d.ts new file mode 100644 index 0000000..befe182 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/AUTH.d.ts @@ -0,0 +1,7 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export interface AuthOptions { + username?: RedisCommandArgument; + password: RedisCommandArgument; +} +export declare function transformArguments({ username, password }: AuthOptions): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/AUTH.js b/node_modules/@redis/client/dist/lib/commands/AUTH.js new file mode 100644 index 0000000..35ec3b0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/AUTH.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments({ username, password }) { + if (!username) { + return ['AUTH', password]; + } + return ['AUTH', username, password]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.d.ts b/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js b/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js new file mode 100644 index 0000000..dc7fd6d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BGREWRITEAOF.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['BGREWRITEAOF']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BGSAVE.d.ts b/node_modules/@redis/client/dist/lib/commands/BGSAVE.d.ts new file mode 100644 index 0000000..4631dcc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BGSAVE.d.ts @@ -0,0 +1,7 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +interface BgSaveOptions { + SCHEDULE?: true; +} +export declare function transformArguments(options?: BgSaveOptions): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BGSAVE.js b/node_modules/@redis/client/dist/lib/commands/BGSAVE.js new file mode 100644 index 0000000..899e2b9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BGSAVE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['BGSAVE']; + if (options?.SCHEDULE) { + args.push('SCHEDULE'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BITCOUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/BITCOUNT.d.ts new file mode 100644 index 0000000..4d94255 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITCOUNT.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface BitCountRange { + start: number; + end: number; + mode?: 'BYTE' | 'BIT'; +} +export declare function transformArguments(key: RedisCommandArgument, range?: BitCountRange): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BITCOUNT.js b/node_modules/@redis/client/dist/lib/commands/BITCOUNT.js new file mode 100644 index 0000000..73131b7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITCOUNT.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, range) { + const args = ['BITCOUNT', key]; + if (range) { + args.push(range.start.toString(), range.end.toString()); + if (range.mode) { + args.push(range.mode); + } + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BITFIELD.d.ts b/node_modules/@redis/client/dist/lib/commands/BITFIELD.d.ts new file mode 100644 index 0000000..f7932fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITFIELD.d.ts @@ -0,0 +1,26 @@ +export declare const FIRST_KEY_INDEX = 1; +export type BitFieldEncoding = `${'i' | 'u'}${number}`; +export interface BitFieldOperation { + operation: S; +} +export interface BitFieldGetOperation extends BitFieldOperation<'GET'> { + encoding: BitFieldEncoding; + offset: number | string; +} +interface BitFieldSetOperation extends BitFieldOperation<'SET'> { + encoding: BitFieldEncoding; + offset: number | string; + value: number; +} +interface BitFieldIncrByOperation extends BitFieldOperation<'INCRBY'> { + encoding: BitFieldEncoding; + offset: number | string; + increment: number; +} +interface BitFieldOverflowOperation extends BitFieldOperation<'OVERFLOW'> { + behavior: string; +} +type BitFieldOperations = Array; +export declare function transformArguments(key: string, operations: BitFieldOperations): Array; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BITFIELD.js b/node_modules/@redis/client/dist/lib/commands/BITFIELD.js new file mode 100644 index 0000000..0550f21 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITFIELD.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, operations) { + const args = ['BITFIELD', key]; + for (const options of operations) { + switch (options.operation) { + case 'GET': + args.push('GET', options.encoding, options.offset.toString()); + break; + case 'SET': + args.push('SET', options.encoding, options.offset.toString(), options.value.toString()); + break; + case 'INCRBY': + args.push('INCRBY', options.encoding, options.offset.toString(), options.increment.toString()); + break; + case 'OVERFLOW': + args.push('OVERFLOW', options.behavior); + break; + } + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.d.ts new file mode 100644 index 0000000..72c8a79 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.d.ts @@ -0,0 +1,7 @@ +import { BitFieldGetOperation } from './BITFIELD'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +type BitFieldRoOperations = Array & Partial>>; +export declare function transformArguments(key: string, operations: BitFieldRoOperations): Array; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js b/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js new file mode 100644 index 0000000..5021750 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITFIELD_RO.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, operations) { + const args = ['BITFIELD_RO', key]; + for (const operation of operations) { + args.push('GET', operation.encoding, operation.offset.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BITOP.d.ts b/node_modules/@redis/client/dist/lib/commands/BITOP.d.ts new file mode 100644 index 0000000..12d506d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITOP.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +type BitOperations = 'AND' | 'OR' | 'XOR' | 'NOT'; +export declare function transformArguments(operation: BitOperations, destKey: RedisCommandArgument, key: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BITOP.js b/node_modules/@redis/client/dist/lib/commands/BITOP.js new file mode 100644 index 0000000..1cab80b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITOP.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(operation, destKey, key) { + return (0, generic_transformers_1.pushVerdictArguments)(['BITOP', operation, destKey], key); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BITPOS.d.ts b/node_modules/@redis/client/dist/lib/commands/BITPOS.d.ts new file mode 100644 index 0000000..4e32356 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITPOS.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { BitValue } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, bit: BitValue, start?: number, end?: number, mode?: 'BYTE' | 'BIT'): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/BITPOS.js b/node_modules/@redis/client/dist/lib/commands/BITPOS.js new file mode 100644 index 0000000..bd880ea --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BITPOS.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, bit, start, end, mode) { + const args = ['BITPOS', key, bit.toString()]; + if (typeof start === 'number') { + args.push(start.toString()); + } + if (typeof end === 'number') { + args.push(end.toString()); + } + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BLMOVE.d.ts b/node_modules/@redis/client/dist/lib/commands/BLMOVE.d.ts new file mode 100644 index 0000000..e641a59 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLMOVE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ListSide } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument, sourceDirection: ListSide, destinationDirection: ListSide, timeout: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/BLMOVE.js b/node_modules/@redis/client/dist/lib/commands/BLMOVE.js new file mode 100644 index 0000000..cfa4233 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLMOVE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, sourceDirection, destinationDirection, timeout) { + return [ + 'BLMOVE', + source, + destination, + sourceDirection, + destinationDirection, + timeout.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BLMPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/BLMPOP.d.ts new file mode 100644 index 0000000..157bbcb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLMPOP.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { LMPopOptions, ListSide } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 3; +export declare function transformArguments(timeout: number, keys: RedisCommandArgument | Array, side: ListSide, options?: LMPopOptions): RedisCommandArguments; +export { transformReply } from './LMPOP'; diff --git a/node_modules/@redis/client/dist/lib/commands/BLMPOP.js b/node_modules/@redis/client/dist/lib/commands/BLMPOP.js new file mode 100644 index 0000000..046bb86 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLMPOP.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 3; +function transformArguments(timeout, keys, side, options) { + return (0, generic_transformers_1.transformLMPopArguments)(['BLMPOP', timeout.toString()], keys, side, options); +} +exports.transformArguments = transformArguments; +var LMPOP_1 = require("./LMPOP"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return LMPOP_1.transformReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/BLPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/BLPOP.d.ts new file mode 100644 index 0000000..8195564 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLPOP.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(keys: RedisCommandArgument | Array, timeout: number): RedisCommandArguments; +type BLPopRawReply = null | [RedisCommandArgument, RedisCommandArgument]; +type BLPopReply = null | { + key: RedisCommandArgument; + element: RedisCommandArgument; +}; +export declare function transformReply(reply: BLPopRawReply): BLPopReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BLPOP.js b/node_modules/@redis/client/dist/lib/commands/BLPOP.js new file mode 100644 index 0000000..46682ac --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BLPOP.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(keys, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BLPOP'], keys); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply === null) + return null; + return { + key: reply[0], + element: reply[1] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/BRPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/BRPOP.d.ts new file mode 100644 index 0000000..7d3c79f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BRPOP.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array, timeout: number): RedisCommandArguments; +export { transformReply } from './BLPOP'; diff --git a/node_modules/@redis/client/dist/lib/commands/BRPOP.js b/node_modules/@redis/client/dist/lib/commands/BRPOP.js new file mode 100644 index 0000000..64b7f2c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BRPOP.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BRPOP'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +var BLPOP_1 = require("./BLPOP"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return BLPOP_1.transformReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.d.ts new file mode 100644 index 0000000..72cf017 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument, timeout: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js b/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js new file mode 100644 index 0000000..31e3e1b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BRPOPLPUSH.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, timeout) { + return ['BRPOPLPUSH', source, destination, timeout.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/BZMPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/BZMPOP.d.ts new file mode 100644 index 0000000..a79d87b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZMPOP.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { SortedSetSide, ZMPopOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 3; +export declare function transformArguments(timeout: number, keys: RedisCommandArgument | Array, side: SortedSetSide, options?: ZMPopOptions): RedisCommandArguments; +export { transformReply } from './ZMPOP'; diff --git a/node_modules/@redis/client/dist/lib/commands/BZMPOP.js b/node_modules/@redis/client/dist/lib/commands/BZMPOP.js new file mode 100644 index 0000000..d219eb2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZMPOP.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 3; +function transformArguments(timeout, keys, side, options) { + return (0, generic_transformers_1.transformZMPopArguments)(['BZMPOP', timeout.toString()], keys, side, options); +} +exports.transformArguments = transformArguments; +var ZMPOP_1 = require("./ZMPOP"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return ZMPOP_1.transformReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.d.ts b/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.d.ts new file mode 100644 index 0000000..f619c17 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ZMember } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array, timeout: number): RedisCommandArguments; +type ZMemberRawReply = [key: RedisCommandArgument, value: RedisCommandArgument, score: RedisCommandArgument] | null; +type BZPopMaxReply = (ZMember & { + key: RedisCommandArgument; +}) | null; +export declare function transformReply(reply: ZMemberRawReply): BZPopMaxReply | null; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js b/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js new file mode 100644 index 0000000..ef9a41e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZPOPMAX.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMAX'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (!reply) + return null; + return { + key: reply[0], + value: reply[1], + score: (0, generic_transformers_1.transformNumberInfinityReply)(reply[2]) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.d.ts b/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.d.ts new file mode 100644 index 0000000..5e88b8f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array, timeout: number): RedisCommandArguments; +export { transformReply } from './BZPOPMAX'; diff --git a/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js b/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js new file mode 100644 index 0000000..b55ee96 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/BZPOPMIN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMIN'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +var BZPOPMAX_1 = require("./BZPOPMAX"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return BZPOPMAX_1.transformReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.d.ts new file mode 100644 index 0000000..be851a4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.d.ts @@ -0,0 +1,4 @@ +/// +import { RedisCommandArguments } from '.'; +export declare function transformArguments(value: boolean): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js new file mode 100644 index 0000000..fe230a2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_CACHING.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(value) { + return [ + 'CLIENT', + 'CACHING', + value ? 'YES' : 'NO' + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.d.ts new file mode 100644 index 0000000..658ceee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): string | null; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js new file mode 100644 index 0000000..ee67ae8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETNAME.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'GETNAME']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.d.ts new file mode 100644 index 0000000..a911ea1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js new file mode 100644 index 0000000..b4285c9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_GETREDIR.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'GETREDIR']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.d.ts new file mode 100644 index 0000000..14244d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js new file mode 100644 index 0000000..1429e4b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_ID.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['CLIENT', 'ID']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.d.ts new file mode 100644 index 0000000..04f28d1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.d.ts @@ -0,0 +1,33 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export interface ClientInfoReply { + id: number; + addr: string; + laddr?: string; + fd: number; + name: string; + age: number; + idle: number; + flags: string; + db: number; + sub: number; + psub: number; + ssub?: number; + multi: number; + qbuf: number; + qbufFree: number; + argvMem?: number; + multiMem?: number; + obl: number; + oll: number; + omem: number; + totMem?: number; + events: string; + cmd: string; + user?: string; + redir?: number; + resp?: number; + libName?: string; + libVer?: string; +} +export declare function transformReply(rawReply: string): ClientInfoReply; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js new file mode 100644 index 0000000..b46cb47 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_INFO.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['CLIENT', 'INFO']; +} +exports.transformArguments = transformArguments; +const CLIENT_INFO_REGEX = /([^\s=]+)=([^\s]*)/g; +function transformReply(rawReply) { + const map = {}; + for (const item of rawReply.matchAll(CLIENT_INFO_REGEX)) { + map[item[1]] = item[2]; + } + const reply = { + id: Number(map.id), + addr: map.addr, + fd: Number(map.fd), + name: map.name, + age: Number(map.age), + idle: Number(map.idle), + flags: map.flags, + db: Number(map.db), + sub: Number(map.sub), + psub: Number(map.psub), + multi: Number(map.multi), + qbuf: Number(map.qbuf), + qbufFree: Number(map['qbuf-free']), + argvMem: Number(map['argv-mem']), + obl: Number(map.obl), + oll: Number(map.oll), + omem: Number(map.omem), + totMem: Number(map['tot-mem']), + events: map.events, + cmd: map.cmd, + user: map.user, + libName: map['lib-name'], + libVer: map['lib-ver'], + }; + if (map.laddr !== undefined) { + reply.laddr = map.laddr; + } + if (map.redir !== undefined) { + reply.redir = Number(map.redir); + } + if (map.ssub !== undefined) { + reply.ssub = Number(map.ssub); + } + if (map['multi-mem'] !== undefined) { + reply.multiMem = Number(map['multi-mem']); + } + if (map.resp !== undefined) { + reply.resp = Number(map.resp); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.d.ts new file mode 100644 index 0000000..ddc8af1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.d.ts @@ -0,0 +1,38 @@ +import { RedisCommandArguments } from '.'; +export declare enum ClientKillFilters { + ADDRESS = "ADDR", + LOCAL_ADDRESS = "LADDR", + ID = "ID", + TYPE = "TYPE", + USER = "USER", + SKIP_ME = "SKIPME", + MAXAGE = "MAXAGE" +} +interface KillFilter { + filter: T; +} +interface KillAddress extends KillFilter { + address: `${string}:${number}`; +} +interface KillLocalAddress extends KillFilter { + localAddress: `${string}:${number}`; +} +interface KillId extends KillFilter { + id: number | `${number}`; +} +interface KillType extends KillFilter { + type: 'normal' | 'master' | 'replica' | 'pubsub'; +} +interface KillUser extends KillFilter { + username: string; +} +type KillSkipMe = ClientKillFilters.SKIP_ME | (KillFilter & { + skipMe: boolean; +}); +interface KillMaxAge extends KillFilter { + maxAge: number; +} +type KillFilters = KillAddress | KillLocalAddress | KillId | KillType | KillUser | KillSkipMe | KillMaxAge; +export declare function transformArguments(filters: KillFilters | Array): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js new file mode 100644 index 0000000..eaa2b89 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_KILL.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.ClientKillFilters = void 0; +var ClientKillFilters; +(function (ClientKillFilters) { + ClientKillFilters["ADDRESS"] = "ADDR"; + ClientKillFilters["LOCAL_ADDRESS"] = "LADDR"; + ClientKillFilters["ID"] = "ID"; + ClientKillFilters["TYPE"] = "TYPE"; + ClientKillFilters["USER"] = "USER"; + ClientKillFilters["SKIP_ME"] = "SKIPME"; + ClientKillFilters["MAXAGE"] = "MAXAGE"; +})(ClientKillFilters || (exports.ClientKillFilters = ClientKillFilters = {})); +function transformArguments(filters) { + const args = ['CLIENT', 'KILL']; + if (Array.isArray(filters)) { + for (const filter of filters) { + pushFilter(args, filter); + } + } + else { + pushFilter(args, filters); + } + return args; +} +exports.transformArguments = transformArguments; +function pushFilter(args, filter) { + if (filter === ClientKillFilters.SKIP_ME) { + args.push('SKIPME'); + return; + } + args.push(filter.filter); + switch (filter.filter) { + case ClientKillFilters.ADDRESS: + args.push(filter.address); + break; + case ClientKillFilters.LOCAL_ADDRESS: + args.push(filter.localAddress); + break; + case ClientKillFilters.ID: + args.push(typeof filter.id === 'number' ? + filter.id.toString() : + filter.id); + break; + case ClientKillFilters.TYPE: + args.push(filter.type); + break; + case ClientKillFilters.USER: + args.push(filter.username); + break; + case ClientKillFilters.SKIP_ME: + args.push(filter.skipMe ? 'yes' : 'no'); + break; + case ClientKillFilters.MAXAGE: + args.push(filter.maxAge.toString()); + break; + } +} diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.d.ts new file mode 100644 index 0000000..7c2d4a8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.d.ts @@ -0,0 +1,15 @@ +import { RedisCommandArguments, RedisCommandArgument } from '.'; +import { ClientInfoReply } from './CLIENT_INFO'; +interface ListFilterType { + TYPE: 'NORMAL' | 'MASTER' | 'REPLICA' | 'PUBSUB'; + ID?: never; +} +interface ListFilterId { + ID: Array; + TYPE?: never; +} +export type ListFilter = ListFilterType | ListFilterId; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(filter?: ListFilter): RedisCommandArguments; +export declare function transformReply(rawReply: string): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js new file mode 100644 index 0000000..bdf8694 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_LIST.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +const CLIENT_INFO_1 = require("./CLIENT_INFO"); +exports.IS_READ_ONLY = true; +function transformArguments(filter) { + let args = ['CLIENT', 'LIST']; + if (filter) { + if (filter.TYPE !== undefined) { + args.push('TYPE', filter.TYPE); + } + else { + args.push('ID'); + args = (0, generic_transformers_1.pushVerdictArguments)(args, filter.ID); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const split = rawReply.split('\n'), length = split.length - 1, reply = []; + for (let i = 0; i < length; i++) { + reply.push((0, CLIENT_INFO_1.transformReply)(split[i])); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.d.ts new file mode 100644 index 0000000..be851a4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.d.ts @@ -0,0 +1,4 @@ +/// +import { RedisCommandArguments } from '.'; +export declare function transformArguments(value: boolean): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js new file mode 100644 index 0000000..f2331e7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-EVICT.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(value) { + return [ + 'CLIENT', + 'NO-EVICT', + value ? 'ON' : 'OFF' + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.d.ts new file mode 100644 index 0000000..be851a4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.d.ts @@ -0,0 +1,4 @@ +/// +import { RedisCommandArguments } from '.'; +export declare function transformArguments(value: boolean): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js new file mode 100644 index 0000000..2c72957 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_NO-TOUCH.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(value) { + return [ + 'CLIENT', + 'NO-TOUCH', + value ? 'ON' : 'OFF' + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.d.ts new file mode 100644 index 0000000..09294c0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.d.ts @@ -0,0 +1,4 @@ +/// +import { RedisCommandArguments } from '.'; +export declare function transformArguments(timeout: number, mode?: 'WRITE' | 'ALL'): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js new file mode 100644 index 0000000..127c0d5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_PAUSE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(timeout, mode) { + const args = [ + 'CLIENT', + 'PAUSE', + timeout.toString() + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.d.ts new file mode 100644 index 0000000..11c70f3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(name: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js new file mode 100644 index 0000000..2dacf4d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_SETNAME.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(name) { + return ['CLIENT', 'SETNAME', name]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.d.ts new file mode 100644 index 0000000..072d4c5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.d.ts @@ -0,0 +1,20 @@ +/// +import { RedisCommandArgument, RedisCommandArguments } from '.'; +interface CommonOptions { + REDIRECT?: number; + NOLOOP?: boolean; +} +interface BroadcastOptions { + BCAST?: boolean; + PREFIX?: RedisCommandArgument | Array; +} +interface OptInOptions { + OPTIN?: boolean; +} +interface OptOutOptions { + OPTOUT?: boolean; +} +type ClientTrackingOptions = CommonOptions & (BroadcastOptions | OptInOptions | OptOutOptions); +export declare function transformArguments(mode: M, options?: M extends true ? ClientTrackingOptions : undefined): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js new file mode 100644 index 0000000..24817a8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKING.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode, options) { + const args = [ + 'CLIENT', + 'TRACKING', + mode ? 'ON' : 'OFF' + ]; + if (mode) { + if (options?.REDIRECT) { + args.push('REDIRECT', options.REDIRECT.toString()); + } + if (isBroadcast(options)) { + args.push('BCAST'); + if (options?.PREFIX) { + if (Array.isArray(options.PREFIX)) { + for (const prefix of options.PREFIX) { + args.push('PREFIX', prefix); + } + } + else { + args.push('PREFIX', options.PREFIX); + } + } + } + else if (isOptIn(options)) { + args.push('OPTIN'); + } + else if (isOptOut(options)) { + args.push('OPTOUT'); + } + if (options?.NOLOOP) { + args.push('NOLOOP'); + } + } + return args; +} +exports.transformArguments = transformArguments; +function isBroadcast(options) { + return options?.BCAST === true; +} +function isOptIn(options) { + return options?.OPTIN === true; +} +function isOptOut(options) { + return options?.OPTOUT === true; +} diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.d.ts new file mode 100644 index 0000000..2c7519a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.d.ts @@ -0,0 +1,17 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +type RawReply = [ + 'flags', + Array, + 'redirect', + number, + 'prefixes', + Array +]; +interface Reply { + flags: Set; + redirect: number; + prefixes: Array; +} +export declare function transformReply(reply: RawReply): Reply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js new file mode 100644 index 0000000..8b38d3e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_TRACKINGINFO.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'TRACKINGINFO']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + flags: new Set(reply[1]), + redirect: reply[3], + prefixes: reply[5] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.d.ts b/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.d.ts new file mode 100644 index 0000000..85ed25f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.d.ts @@ -0,0 +1,4 @@ +/// +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): 'OK' | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js b/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js new file mode 100644 index 0000000..8b34bec --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLIENT_UNPAUSE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'UNPAUSE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.d.ts new file mode 100644 index 0000000..a7379a2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(slots: number | Array): RedisCommandArguments; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js new file mode 100644 index 0000000..be3c57f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(slots) { + return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'ADDSLOTS'], slots); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.d.ts new file mode 100644 index 0000000..d300f0a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +import { SlotRange } from './generic-transformers'; +export declare function transformArguments(ranges: SlotRange | Array): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js new file mode 100644 index 0000000..2f5a581 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_ADDSLOTSRANGE.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(ranges) { + return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'ADDSLOTSRANGE'], ranges); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.d.ts new file mode 100644 index 0000000..4c0c07c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): 'BUMPED' | 'STILL'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js new file mode 100644 index 0000000..7d9928a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_BUMPEPOCH.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'BUMPEPOCH']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.d.ts new file mode 100644 index 0000000..fe4cef2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(nodeId: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js new file mode 100644 index 0000000..84d3e42 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNT-FAILURE-REPORTS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'COUNT-FAILURE-REPORTS', nodeId]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.d.ts new file mode 100644 index 0000000..8b2d0da --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(slot: number): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js new file mode 100644 index 0000000..de29644 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_COUNTKEYSINSLOT.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(slot) { + return ['CLUSTER', 'COUNTKEYSINSLOT', slot.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.d.ts new file mode 100644 index 0000000..7fd38c2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(slots: number | Array): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js new file mode 100644 index 0000000..ba06017 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(slots) { + return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'DELSLOTS'], slots); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.d.ts new file mode 100644 index 0000000..d300f0a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +import { SlotRange } from './generic-transformers'; +export declare function transformArguments(ranges: SlotRange | Array): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js new file mode 100644 index 0000000..bf57903 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_DELSLOTSRANGE.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(ranges) { + return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'DELSLOTSRANGE'], ranges); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.d.ts new file mode 100644 index 0000000..83cd679 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.d.ts @@ -0,0 +1,6 @@ +export declare enum FailoverModes { + FORCE = "FORCE", + TAKEOVER = "TAKEOVER" +} +export declare function transformArguments(mode?: FailoverModes): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js new file mode 100644 index 0000000..2709cfe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FAILOVER.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FailoverModes = void 0; +var FailoverModes; +(function (FailoverModes) { + FailoverModes["FORCE"] = "FORCE"; + FailoverModes["TAKEOVER"] = "TAKEOVER"; +})(FailoverModes || (exports.FailoverModes = FailoverModes = {})); +function transformArguments(mode) { + const args = ['CLUSTER', 'FAILOVER']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.d.ts new file mode 100644 index 0000000..42b48b6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js new file mode 100644 index 0000000..3ce25ee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FLUSHSLOTS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'FLUSHSLOTS']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.d.ts new file mode 100644 index 0000000..f820b9f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(nodeId: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js new file mode 100644 index 0000000..177eb52 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_FORGET.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'FORGET', nodeId]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.d.ts new file mode 100644 index 0000000..b234842 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(slot: number, count: number): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js new file mode 100644 index 0000000..a151bda --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_GETKEYSINSLOT.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(slot, count) { + return ['CLUSTER', 'GETKEYSINSLOT', slot.toString(), count.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.d.ts new file mode 100644 index 0000000..7f6d965 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.d.ts @@ -0,0 +1,21 @@ +export declare function transformArguments(): Array; +interface ClusterInfoReply { + state: string; + slots: { + assigned: number; + ok: number; + pfail: number; + fail: number; + }; + knownNodes: number; + size: number; + currentEpoch: number; + myEpoch: number; + stats: { + messagesSent: number; + messagesReceived: number; + }; +} +export declare function transformReply(reply: string): ClusterInfoReply; +export declare function extractLineValue(line: string): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js new file mode 100644 index 0000000..3a81925 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_INFO.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.extractLineValue = exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'INFO']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const lines = reply.split('\r\n'); + return { + state: extractLineValue(lines[0]), + slots: { + assigned: Number(extractLineValue(lines[1])), + ok: Number(extractLineValue(lines[2])), + pfail: Number(extractLineValue(lines[3])), + fail: Number(extractLineValue(lines[4])) + }, + knownNodes: Number(extractLineValue(lines[5])), + size: Number(extractLineValue(lines[6])), + currentEpoch: Number(extractLineValue(lines[7])), + myEpoch: Number(extractLineValue(lines[8])), + stats: { + messagesSent: Number(extractLineValue(lines[9])), + messagesReceived: Number(extractLineValue(lines[10])) + } + }; +} +exports.transformReply = transformReply; +function extractLineValue(line) { + return line.substring(line.indexOf(':') + 1); +} +exports.extractLineValue = extractLineValue; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.d.ts new file mode 100644 index 0000000..181d809 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(key: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js new file mode 100644 index 0000000..d4ba8d7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_KEYSLOT.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(key) { + return ['CLUSTER', 'KEYSLOT', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.d.ts new file mode 100644 index 0000000..13bb777 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.d.ts @@ -0,0 +1,25 @@ +export declare function transformArguments(): Array; +type ClusterLinksRawReply = Array<[ + 'direction', + string, + 'node', + string, + 'createTime', + number, + 'events', + string, + 'send-buffer-allocated', + number, + 'send-buffer-used', + number +]>; +type ClusterLinksReply = Array<{ + direction: string; + node: string; + createTime: number; + events: string; + sendBufferAllocated: number; + sendBufferUsed: number; +}>; +export declare function transformReply(reply: ClusterLinksRawReply): ClusterLinksReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js new file mode 100644 index 0000000..815fd7a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_LINKS.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'LINKS']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(peerLink => ({ + direction: peerLink[1], + node: peerLink[3], + createTime: Number(peerLink[5]), + events: peerLink[7], + sendBufferAllocated: Number(peerLink[9]), + sendBufferUsed: Number(peerLink[11]) + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.d.ts new file mode 100644 index 0000000..00af6a9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(ip: string, port: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js new file mode 100644 index 0000000..5a32515 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MEET.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(ip, port) { + return ['CLUSTER', 'MEET', ip, port.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js new file mode 100644 index 0000000..184b4fa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYID.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'MYID']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.d.ts new file mode 100644 index 0000000..2e0d31e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.d.ts @@ -0,0 +1,4 @@ +/// +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): string[]; +export declare function transformReply(): string | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js new file mode 100644 index 0000000..269a2a4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_MYSHARDID.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['CLUSTER', 'MYSHARDID']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.d.ts new file mode 100644 index 0000000..52d4e3d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.d.ts @@ -0,0 +1,28 @@ +export declare function transformArguments(): Array; +export declare enum RedisClusterNodeLinkStates { + CONNECTED = "connected", + DISCONNECTED = "disconnected" +} +interface RedisClusterNodeAddress { + host: string; + port: number; + cport: number | null; +} +export interface RedisClusterReplicaNode extends RedisClusterNodeAddress { + id: string; + address: string; + flags: Array; + pingSent: number; + pongRecv: number; + configEpoch: number; + linkState: RedisClusterNodeLinkStates; +} +export interface RedisClusterMasterNode extends RedisClusterReplicaNode { + slots: Array<{ + from: number; + to: number; + }>; + replicas: Array; +} +export declare function transformReply(reply: string): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js new file mode 100644 index 0000000..a88989e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_NODES.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.RedisClusterNodeLinkStates = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'NODES']; +} +exports.transformArguments = transformArguments; +var RedisClusterNodeLinkStates; +(function (RedisClusterNodeLinkStates) { + RedisClusterNodeLinkStates["CONNECTED"] = "connected"; + RedisClusterNodeLinkStates["DISCONNECTED"] = "disconnected"; +})(RedisClusterNodeLinkStates || (exports.RedisClusterNodeLinkStates = RedisClusterNodeLinkStates = {})); +function transformReply(reply) { + const lines = reply.split('\n'); + lines.pop(); // last line is empty + const mastersMap = new Map(), replicasMap = new Map(); + for (const line of lines) { + const [id, address, flags, masterId, pingSent, pongRecv, configEpoch, linkState, ...slots] = line.split(' '), node = { + id, + address, + ...transformNodeAddress(address), + flags: flags.split(','), + pingSent: Number(pingSent), + pongRecv: Number(pongRecv), + configEpoch: Number(configEpoch), + linkState: linkState + }; + if (masterId === '-') { + let replicas = replicasMap.get(id); + if (!replicas) { + replicas = []; + replicasMap.set(id, replicas); + } + mastersMap.set(id, { + ...node, + slots: slots.map(slot => { + // TODO: importing & exporting (https://redis.io/commands/cluster-nodes#special-slot-entries) + const [fromString, toString] = slot.split('-', 2), from = Number(fromString); + return { + from, + to: toString ? Number(toString) : from + }; + }), + replicas + }); + } + else { + const replicas = replicasMap.get(masterId); + if (!replicas) { + replicasMap.set(masterId, [node]); + } + else { + replicas.push(node); + } + } + } + return [...mastersMap.values()]; +} +exports.transformReply = transformReply; +function transformNodeAddress(address) { + const indexOfColon = address.lastIndexOf(':'), indexOfAt = address.indexOf('@', indexOfColon), host = address.substring(0, indexOfColon); + if (indexOfAt === -1) { + return { + host, + port: Number(address.substring(indexOfColon + 1)), + cport: null + }; + } + return { + host: address.substring(0, indexOfColon), + port: Number(address.substring(indexOfColon + 1, indexOfAt)), + cport: Number(address.substring(indexOfAt + 1)) + }; +} diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.d.ts new file mode 100644 index 0000000..73e9e4b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(nodeId: string): Array; +export { transformReply } from './CLUSTER_NODES'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js new file mode 100644 index 0000000..bc83f4e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICAS.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'REPLICAS', nodeId]; +} +exports.transformArguments = transformArguments; +var CLUSTER_NODES_1 = require("./CLUSTER_NODES"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return CLUSTER_NODES_1.transformReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.d.ts new file mode 100644 index 0000000..f820b9f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(nodeId: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js new file mode 100644 index 0000000..931b74c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_REPLICATE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'REPLICATE', nodeId]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.d.ts new file mode 100644 index 0000000..dfb60c3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(mode?: 'HARD' | 'SOFT'): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js new file mode 100644 index 0000000..da95cd0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_RESET.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['CLUSTER', 'RESET']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.d.ts new file mode 100644 index 0000000..42b48b6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js new file mode 100644 index 0000000..2742c94 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SAVECONFIG.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'SAVECONFIG']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.d.ts new file mode 100644 index 0000000..f580d42 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(configEpoch: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js new file mode 100644 index 0000000..b4d3b73 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SET-CONFIG-EPOCH.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(configEpoch) { + return ['CLUSTER', 'SET-CONFIG-EPOCH', configEpoch.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.d.ts new file mode 100644 index 0000000..aae29e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.d.ts @@ -0,0 +1,8 @@ +export declare enum ClusterSlotStates { + IMPORTING = "IMPORTING", + MIGRATING = "MIGRATING", + STABLE = "STABLE", + NODE = "NODE" +} +export declare function transformArguments(slot: number, state: ClusterSlotStates, nodeId?: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js new file mode 100644 index 0000000..bf726e1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SETSLOT.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.ClusterSlotStates = void 0; +var ClusterSlotStates; +(function (ClusterSlotStates) { + ClusterSlotStates["IMPORTING"] = "IMPORTING"; + ClusterSlotStates["MIGRATING"] = "MIGRATING"; + ClusterSlotStates["STABLE"] = "STABLE"; + ClusterSlotStates["NODE"] = "NODE"; +})(ClusterSlotStates || (exports.ClusterSlotStates = ClusterSlotStates = {})); +function transformArguments(slot, state, nodeId) { + const args = ['CLUSTER', 'SETSLOT', slot.toString(), state]; + if (nodeId) { + args.push(nodeId); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.d.ts b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.d.ts new file mode 100644 index 0000000..76888e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.d.ts @@ -0,0 +1,22 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +type ClusterSlotsRawNode = [ip: string, port: number, id: string]; +type ClusterSlotsRawReply = Array<[ + from: number, + to: number, + master: ClusterSlotsRawNode, + ...replicas: Array +]>; +export interface ClusterSlotsNode { + ip: string; + port: number; + id: string; +} +export type ClusterSlotsReply = Array<{ + from: number; + to: number; + master: ClusterSlotsNode; + replicas: Array; +}>; +export declare function transformReply(reply: ClusterSlotsRawReply): ClusterSlotsReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js new file mode 100644 index 0000000..1ee9206 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CLUSTER_SLOTS.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'SLOTS']; +} +exports.transformArguments = transformArguments; +; +function transformReply(reply) { + return reply.map(([from, to, master, ...replicas]) => { + return { + from, + to, + master: transformNode(master), + replicas: replicas.map(transformNode) + }; + }); +} +exports.transformReply = transformReply; +function transformNode([ip, port, id]) { + return { + ip, + port, + id + }; +} diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND.d.ts new file mode 100644 index 0000000..f1730e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { CommandRawReply, CommandReply } from './generic-transformers'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND.js b/node_modules/@redis/client/dist/lib/commands/COMMAND.js new file mode 100644 index 0000000..b482a91 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['COMMAND']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(generic_transformers_1.transformCommandReply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.d.ts new file mode 100644 index 0000000..a2461a3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js b/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js new file mode 100644 index 0000000..c417a38 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_COUNT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['COMMAND', 'COUNT']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.d.ts new file mode 100644 index 0000000..8979786 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(args: Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js new file mode 100644 index 0000000..8a3e57e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(args) { + return ['COMMAND', 'GETKEYS', ...args]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.d.ts new file mode 100644 index 0000000..2dcb14c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.d.ts @@ -0,0 +1,13 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(args: Array): RedisCommandArguments; +type KeysAndFlagsRawReply = Array<[ + RedisCommandArgument, + RedisCommandArguments +]>; +type KeysAndFlagsReply = Array<{ + key: RedisCommandArgument; + flags: RedisCommandArguments; +}>; +export declare function transformReply(reply: KeysAndFlagsRawReply): KeysAndFlagsReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js new file mode 100644 index 0000000..76c0fcd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_GETKEYSANDFLAGS.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(args) { + return ['COMMAND', 'GETKEYSANDFLAGS', ...args]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([key, flags]) => ({ + key, + flags + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.d.ts new file mode 100644 index 0000000..80fce32 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { CommandRawReply, CommandReply } from './generic-transformers'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(commands: Array): RedisCommandArguments; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js b/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js new file mode 100644 index 0000000..552c991 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_INFO.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments(commands) { + return ['COMMAND', 'INFO', ...commands]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(command => command ? (0, generic_transformers_1.transformCommandReply)(command) : null); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.d.ts b/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.d.ts new file mode 100644 index 0000000..7f8bdaa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare enum FilterBy { + MODULE = "MODULE", + ACLCAT = "ACLCAT", + PATTERN = "PATTERN" +} +interface Filter { + filterBy: FilterBy; + value: string; +} +export declare function transformArguments(filter?: Filter): RedisCommandArguments; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js b/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js new file mode 100644 index 0000000..ffda6c2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COMMAND_LIST.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FilterBy = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +var FilterBy; +(function (FilterBy) { + FilterBy["MODULE"] = "MODULE"; + FilterBy["ACLCAT"] = "ACLCAT"; + FilterBy["PATTERN"] = "PATTERN"; +})(FilterBy || (exports.FilterBy = FilterBy = {})); +function transformArguments(filter) { + const args = ['COMMAND', 'LIST']; + if (filter) { + args.push('FILTERBY', filter.filterBy, filter.value); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.d.ts b/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.d.ts new file mode 100644 index 0000000..063a85a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(parameter: string): Array; +export { transformTuplesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js b/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js new file mode 100644 index 0000000..646c774 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_GET.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(parameter) { + return ['CONFIG', 'GET', parameter]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.d.ts b/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js b/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js new file mode 100644 index 0000000..debd3b2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_RESETSTAT.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CONFIG', 'RESETSTAT']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.d.ts b/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js b/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js new file mode 100644 index 0000000..b78ddbc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_REWRITE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['CONFIG', 'REWRITE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.d.ts b/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.d.ts new file mode 100644 index 0000000..a6deda1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +type SingleParameter = [parameter: RedisCommandArgument, value: RedisCommandArgument]; +type MultipleParameters = [config: Record]; +export declare function transformArguments(...[parameterOrConfig, value]: SingleParameter | MultipleParameters): RedisCommandArguments; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js b/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js new file mode 100644 index 0000000..6af6707 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/CONFIG_SET.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(...[parameterOrConfig, value]) { + const args = ['CONFIG', 'SET']; + if (typeof parameterOrConfig === 'string') { + args.push(parameterOrConfig, value); + } + else { + for (const [key, value] of Object.entries(parameterOrConfig)) { + args.push(key, value); + } + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/COPY.d.ts b/node_modules/@redis/client/dist/lib/commands/COPY.d.ts new file mode 100644 index 0000000..d266fee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COPY.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +interface CopyCommandOptions { + destinationDb?: number; + replace?: boolean; +} +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument, options?: CopyCommandOptions): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/COPY.js b/node_modules/@redis/client/dist/lib/commands/COPY.js new file mode 100644 index 0000000..e6090a6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/COPY.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, options) { + const args = ['COPY', source, destination]; + if (options?.destinationDb) { + args.push('DB', options.destinationDb.toString()); + } + if (options?.replace) { + args.push('REPLACE'); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/DBSIZE.d.ts b/node_modules/@redis/client/dist/lib/commands/DBSIZE.d.ts new file mode 100644 index 0000000..14244d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DBSIZE.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/DBSIZE.js b/node_modules/@redis/client/dist/lib/commands/DBSIZE.js new file mode 100644 index 0000000..c50332d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DBSIZE.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['DBSIZE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/DECR.d.ts b/node_modules/@redis/client/dist/lib/commands/DECR.d.ts new file mode 100644 index 0000000..c35a19c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DECR.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/DECR.js b/node_modules/@redis/client/dist/lib/commands/DECR.js new file mode 100644 index 0000000..a7fbc3d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DECR.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['DECR', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/DECRBY.d.ts b/node_modules/@redis/client/dist/lib/commands/DECRBY.d.ts new file mode 100644 index 0000000..65d04dc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DECRBY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, decrement: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/DECRBY.js b/node_modules/@redis/client/dist/lib/commands/DECRBY.js new file mode 100644 index 0000000..f119275 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DECRBY.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, decrement) { + return ['DECRBY', key, decrement.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/DEL.d.ts b/node_modules/@redis/client/dist/lib/commands/DEL.d.ts new file mode 100644 index 0000000..8c2d71e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DEL.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/DEL.js b/node_modules/@redis/client/dist/lib/commands/DEL.js new file mode 100644 index 0000000..bc2a5c0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DEL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['DEL'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/DISCARD.d.ts b/node_modules/@redis/client/dist/lib/commands/DISCARD.d.ts new file mode 100644 index 0000000..3e8dbce --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DISCARD.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument } from '.'; +export declare function transformArguments(): Array; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/DISCARD.js b/node_modules/@redis/client/dist/lib/commands/DISCARD.js new file mode 100644 index 0000000..eb19c5f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DISCARD.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['DISCARD']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/DUMP.d.ts b/node_modules/@redis/client/dist/lib/commands/DUMP.d.ts new file mode 100644 index 0000000..287366c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DUMP.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/DUMP.js b/node_modules/@redis/client/dist/lib/commands/DUMP.js new file mode 100644 index 0000000..9b3d68a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/DUMP.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['DUMP', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ECHO.d.ts b/node_modules/@redis/client/dist/lib/commands/ECHO.d.ts new file mode 100644 index 0000000..144daca --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ECHO.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(message: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/ECHO.js b/node_modules/@redis/client/dist/lib/commands/ECHO.js new file mode 100644 index 0000000..06370d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ECHO.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(message) { + return ['ECHO', message]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EVAL.d.ts b/node_modules/@redis/client/dist/lib/commands/EVAL.d.ts new file mode 100644 index 0000000..f084f6f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVAL.d.ts @@ -0,0 +1,3 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare function transformArguments(script: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/EVAL.js b/node_modules/@redis/client/dist/lib/commands/EVAL.js new file mode 100644 index 0000000..f159be6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVAL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(script, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVAL', script], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EVALSHA.d.ts b/node_modules/@redis/client/dist/lib/commands/EVALSHA.d.ts new file mode 100644 index 0000000..1e07b96 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVALSHA.d.ts @@ -0,0 +1,3 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare function transformArguments(sha1: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/EVALSHA.js b/node_modules/@redis/client/dist/lib/commands/EVALSHA.js new file mode 100644 index 0000000..6339378 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVALSHA.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(sha1, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA', sha1], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.d.ts new file mode 100644 index 0000000..ba5e8fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.d.ts @@ -0,0 +1,4 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(sha1: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js b/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js new file mode 100644 index 0000000..7eead4d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVALSHA_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(sha1, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA_RO', sha1], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EVAL_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/EVAL_RO.d.ts new file mode 100644 index 0000000..327b45b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVAL_RO.d.ts @@ -0,0 +1,4 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(script: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/EVAL_RO.js b/node_modules/@redis/client/dist/lib/commands/EVAL_RO.js new file mode 100644 index 0000000..9aae49f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EVAL_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(script, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVAL_RO', script], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EXISTS.d.ts b/node_modules/@redis/client/dist/lib/commands/EXISTS.d.ts new file mode 100644 index 0000000..4401897 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXISTS.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/EXISTS.js b/node_modules/@redis/client/dist/lib/commands/EXISTS.js new file mode 100644 index 0000000..e389339 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXISTS.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['EXISTS'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIRE.d.ts b/node_modules/@redis/client/dist/lib/commands/EXPIRE.d.ts new file mode 100644 index 0000000..c226f18 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIRE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, seconds: number, mode?: 'NX' | 'XX' | 'GT' | 'LT'): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIRE.js b/node_modules/@redis/client/dist/lib/commands/EXPIRE.js new file mode 100644 index 0000000..143d0b6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIRE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, seconds, mode) { + const args = ['EXPIRE', key, seconds.toString()]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIREAT.d.ts b/node_modules/@redis/client/dist/lib/commands/EXPIREAT.d.ts new file mode 100644 index 0000000..44d630b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIREAT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, timestamp: number | Date, mode?: 'NX' | 'XX' | 'GT' | 'LT'): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIREAT.js b/node_modules/@redis/client/dist/lib/commands/EXPIREAT.js new file mode 100644 index 0000000..88c9f54 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIREAT.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timestamp, mode) { + const args = [ + 'EXPIREAT', + key, + (0, generic_transformers_1.transformEXAT)(timestamp) + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.d.ts b/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.d.ts new file mode 100644 index 0000000..c35a19c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js b/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js new file mode 100644 index 0000000..3e0c4e2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/EXPIRETIME.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['EXPIRETIME', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FAILOVER.d.ts b/node_modules/@redis/client/dist/lib/commands/FAILOVER.d.ts new file mode 100644 index 0000000..8d74bf9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FAILOVER.d.ts @@ -0,0 +1,12 @@ +interface FailoverOptions { + TO?: { + host: string; + port: number; + FORCE?: true; + }; + ABORT?: true; + TIMEOUT?: number; +} +export declare function transformArguments(options?: FailoverOptions): Array; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/FAILOVER.js b/node_modules/@redis/client/dist/lib/commands/FAILOVER.js new file mode 100644 index 0000000..e6db685 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FAILOVER.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['FAILOVER']; + if (options?.TO) { + args.push('TO', options.TO.host, options.TO.port.toString()); + if (options.TO.FORCE) { + args.push('FORCE'); + } + } + if (options?.ABORT) { + args.push('ABORT'); + } + if (options?.TIMEOUT) { + args.push('TIMEOUT', options.TIMEOUT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FCALL.d.ts b/node_modules/@redis/client/dist/lib/commands/FCALL.d.ts new file mode 100644 index 0000000..79da897 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FCALL.d.ts @@ -0,0 +1,3 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare function transformArguments(fn: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/FCALL.js b/node_modules/@redis/client/dist/lib/commands/FCALL.js new file mode 100644 index 0000000..eb75f71 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FCALL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(fn, options) { + return (0, generic_transformers_1.pushEvalArguments)(['FCALL', fn], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FCALL_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/FCALL_RO.d.ts new file mode 100644 index 0000000..b963229 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FCALL_RO.d.ts @@ -0,0 +1,4 @@ +import { evalFirstKeyIndex, EvalOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX: typeof evalFirstKeyIndex; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(fn: string, options?: EvalOptions): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/FCALL_RO.js b/node_modules/@redis/client/dist/lib/commands/FCALL_RO.js new file mode 100644 index 0000000..e086497 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FCALL_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(fn, options) { + return (0, generic_transformers_1.pushEvalArguments)(['FCALL_RO', fn], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FLUSHALL.d.ts b/node_modules/@redis/client/dist/lib/commands/FLUSHALL.d.ts new file mode 100644 index 0000000..b0a35d1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FLUSHALL.d.ts @@ -0,0 +1,6 @@ +export declare enum RedisFlushModes { + ASYNC = "ASYNC", + SYNC = "SYNC" +} +export declare function transformArguments(mode?: RedisFlushModes): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/FLUSHALL.js b/node_modules/@redis/client/dist/lib/commands/FLUSHALL.js new file mode 100644 index 0000000..38c1ff1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FLUSHALL.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.RedisFlushModes = void 0; +var RedisFlushModes; +(function (RedisFlushModes) { + RedisFlushModes["ASYNC"] = "ASYNC"; + RedisFlushModes["SYNC"] = "SYNC"; +})(RedisFlushModes || (exports.RedisFlushModes = RedisFlushModes = {})); +function transformArguments(mode) { + const args = ['FLUSHALL']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FLUSHDB.d.ts b/node_modules/@redis/client/dist/lib/commands/FLUSHDB.d.ts new file mode 100644 index 0000000..34c668d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FLUSHDB.d.ts @@ -0,0 +1,3 @@ +import { RedisFlushModes } from './FLUSHALL'; +export declare function transformArguments(mode?: RedisFlushModes): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/FLUSHDB.js b/node_modules/@redis/client/dist/lib/commands/FLUSHDB.js new file mode 100644 index 0000000..3d52b30 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FLUSHDB.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['FLUSHDB']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.d.ts new file mode 100644 index 0000000..bffe6ff --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(library: string): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js new file mode 100644 index 0000000..750d230 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DELETE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(library) { + return ['FUNCTION', 'DELETE', library]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.d.ts new file mode 100644 index 0000000..2cb83d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js new file mode 100644 index 0000000..a372bf0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_DUMP.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'DUMP']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.d.ts new file mode 100644 index 0000000..782dfae --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(mode?: 'ASYNC' | 'SYNC'): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js new file mode 100644 index 0000000..b922cfa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_FLUSH.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['FUNCTION', 'FLUSH']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.d.ts new file mode 100644 index 0000000..add4a5f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js new file mode 100644 index 0000000..a19919f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_KILL.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'KILL']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.d.ts new file mode 100644 index 0000000..95fc892 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +import { FunctionListItemReply, FunctionListRawItemReply } from './generic-transformers'; +export declare function transformArguments(pattern?: string): RedisCommandArguments; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js new file mode 100644 index 0000000..216ee6b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(pattern) { + const args = ['FUNCTION', 'LIST']; + if (pattern) { + args.push(pattern); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(generic_transformers_1.transformFunctionListItemReply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.d.ts new file mode 100644 index 0000000..5ae6a77 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.d.ts @@ -0,0 +1,13 @@ +import { RedisCommandArguments } from '.'; +import { FunctionListItemReply, FunctionListRawItemReply } from './generic-transformers'; +export declare function transformArguments(pattern?: string): RedisCommandArguments; +type FunctionListWithCodeRawItemReply = [ + ...FunctionListRawItemReply, + 'library_code', + string +]; +interface FunctionListWithCodeItemReply extends FunctionListItemReply { + libraryCode: string; +} +export declare function transformReply(reply: Array): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js new file mode 100644 index 0000000..3ac65dc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LIST_WITHCODE.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +const FUNCTION_LIST_1 = require("./FUNCTION_LIST"); +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(pattern) { + const args = (0, FUNCTION_LIST_1.transformArguments)(pattern); + args.push('WITHCODE'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(library => ({ + ...(0, generic_transformers_1.transformFunctionListItemReply)(library), + libraryCode: library[7] + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.d.ts new file mode 100644 index 0000000..da91865 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.d.ts @@ -0,0 +1,7 @@ +import { RedisCommandArguments } from '.'; +interface FunctionLoadOptions { + REPLACE?: boolean; +} +export declare function transformArguments(code: string, options?: FunctionLoadOptions): RedisCommandArguments; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js new file mode 100644 index 0000000..51892a0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_LOAD.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(code, options) { + const args = ['FUNCTION', 'LOAD']; + if (options?.REPLACE) { + args.push('REPLACE'); + } + args.push(code); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.d.ts new file mode 100644 index 0000000..6d1188e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(dump: RedisCommandArgument, mode?: 'FLUSH' | 'APPEND' | 'REPLACE'): RedisCommandArguments; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js new file mode 100644 index 0000000..2d368bf --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_RESTORE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(dump, mode) { + const args = ['FUNCTION', 'RESTORE', dump]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.d.ts b/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.d.ts new file mode 100644 index 0000000..a170273 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.d.ts @@ -0,0 +1,28 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +type FunctionStatsRawReply = [ + 'running_script', + null | [ + 'name', + string, + 'command', + string, + 'duration_ms', + number + ], + 'engines', + Array +]; +interface FunctionStatsReply { + runningScript: null | { + name: string; + command: string; + durationMs: number; + }; + engines: Record; +} +export declare function transformReply(reply: FunctionStatsRawReply): FunctionStatsReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js b/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js new file mode 100644 index 0000000..27c7de4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/FUNCTION_STATS.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'STATS']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const engines = Object.create(null); + for (let i = 0; i < reply[3].length; i++) { + engines[reply[3][i]] = { + librariesCount: reply[3][++i][1], + functionsCount: reply[3][i][3] + }; + } + return { + runningScript: reply[1] === null ? null : { + name: reply[1][1], + command: reply[1][3], + durationMs: reply[1][5] + }, + engines + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOADD.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOADD.d.ts new file mode 100644 index 0000000..38967d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOADD.d.ts @@ -0,0 +1,20 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoCoordinates } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +interface GeoMember extends GeoCoordinates { + member: RedisCommandArgument; +} +interface NX { + NX?: true; +} +interface XX { + XX?: true; +} +type SetGuards = NX | XX; +interface GeoAddCommonOptions { + CH?: true; +} +type GeoAddOptions = SetGuards & GeoAddCommonOptions; +export declare function transformArguments(key: RedisCommandArgument, toAdd: GeoMember | Array, options?: GeoAddOptions): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOADD.js b/node_modules/@redis/client/dist/lib/commands/GEOADD.js new file mode 100644 index 0000000..966758b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOADD.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, toAdd, options) { + const args = ['GEOADD', key]; + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + if (options?.CH) { + args.push('CH'); + } + for (const { longitude, latitude, member } of (Array.isArray(toAdd) ? toAdd : [toAdd])) { + args.push(longitude.toString(), latitude.toString(), member); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEODIST.d.ts b/node_modules/@redis/client/dist/lib/commands/GEODIST.d.ts new file mode 100644 index 0000000..e3064e4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEODIST.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoUnits } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member1: RedisCommandArgument, member2: RedisCommandArgument, unit?: GeoUnits): RedisCommandArguments; +export declare function transformReply(reply: RedisCommandArgument | null): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/GEODIST.js b/node_modules/@redis/client/dist/lib/commands/GEODIST.js new file mode 100644 index 0000000..e9f67d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEODIST.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member1, member2, unit) { + const args = ['GEODIST', key, member1, member2]; + if (unit) { + args.push(unit); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply === null ? null : Number(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOHASH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOHASH.d.ts new file mode 100644 index 0000000..fab2cad --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOHASH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOHASH.js b/node_modules/@redis/client/dist/lib/commands/GEOHASH.js new file mode 100644 index 0000000..e53d5ea --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOHASH.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['GEOHASH', key], member); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOPOS.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOPOS.d.ts new file mode 100644 index 0000000..e209890 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOPOS.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument | Array): RedisCommandArguments; +type GeoCoordinatesRawReply = Array<[RedisCommandArgument, RedisCommandArgument] | null>; +interface GeoCoordinates { + longitude: RedisCommandArgument; + latitude: RedisCommandArgument; +} +export declare function transformReply(reply: GeoCoordinatesRawReply): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOPOS.js b/node_modules/@redis/client/dist/lib/commands/GEOPOS.js new file mode 100644 index 0000000..c1d90e8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOPOS.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['GEOPOS', key], member); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(coordinates => coordinates === null ? null : { + longitude: coordinates[0], + latitude: coordinates[1] + }); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUS.d.ts new file mode 100644 index 0000000..7574a1a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchOptions, GeoCoordinates, GeoUnits } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, coordinates: GeoCoordinates, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUS.js new file mode 100644 index 0000000..8329111 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, coordinates, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS'], key, coordinates, radius, unit, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.d.ts new file mode 100644 index 0000000..c801788 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchOptions, GeoUnits } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: string, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js new file mode 100644 index 0000000..18bb292 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.d.ts new file mode 100644 index 0000000..b602982 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoUnits, GeoRadiusStoreOptions } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUSBYMEMBER'; +export declare function transformArguments(key: RedisCommandArgument, member: string, radius: number, unit: GeoUnits, destination: RedisCommandArgument, options?: GeoRadiusStoreOptions): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.js new file mode 100644 index 0000000..8a91761 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBERSTORE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +var GEORADIUSBYMEMBER_1 = require("./GEORADIUSBYMEMBER"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.IS_READ_ONLY; } }); +function transformArguments(key, member, radius, unit, destination, options) { + return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, destination, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.d.ts new file mode 100644 index 0000000..c801788 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchOptions, GeoUnits } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: string, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js new file mode 100644 index 0000000..7e0c7e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER_RO'], key, member, radius, unit, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.d.ts new file mode 100644 index 0000000..65a34ff --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoReplyWith, GeoSearchOptions, GeoUnits } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUSBYMEMBER_RO'; +export declare function transformArguments(key: RedisCommandArgument, member: string, radius: number, unit: GeoUnits, replyWith: Array, options?: GeoSearchOptions): RedisCommandArguments; +export { transformGeoMembersWithReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js new file mode 100644 index 0000000..dc095b2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_RO_WITH.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUSBYMEMBER_RO_1 = require("./GEORADIUSBYMEMBER_RO"); +var GEORADIUSBYMEMBER_RO_2 = require("./GEORADIUSBYMEMBER_RO"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.IS_READ_ONLY; } }); +function transformArguments(key, member, radius, unit, replyWith, options) { + const args = (0, GEORADIUSBYMEMBER_RO_1.transformArguments)(key, member, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.d.ts new file mode 100644 index 0000000..d5976c1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoReplyWith, GeoSearchOptions, GeoUnits } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUSBYMEMBER'; +export declare function transformArguments(key: RedisCommandArgument, member: string, radius: number, unit: GeoUnits, replyWith: Array, options?: GeoSearchOptions): RedisCommandArguments; +export { transformGeoMembersWithReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js new file mode 100644 index 0000000..c8b18eb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSBYMEMBER_WITH.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUSBYMEMBER_1 = require("./GEORADIUSBYMEMBER"); +var GEORADIUSBYMEMBER_2 = require("./GEORADIUSBYMEMBER"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.IS_READ_ONLY; } }); +function transformArguments(key, member, radius, unit, replyWith, options) { + const args = (0, GEORADIUSBYMEMBER_1.transformArguments)(key, member, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.d.ts new file mode 100644 index 0000000..272ba5d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoCoordinates, GeoUnits, GeoRadiusStoreOptions } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUS'; +export declare function transformArguments(key: RedisCommandArgument, coordinates: GeoCoordinates, radius: number, unit: GeoUnits, destination: RedisCommandArgument, options?: GeoRadiusStoreOptions): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.js new file mode 100644 index 0000000..eec23ef --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUSSTORE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +var GEORADIUS_1 = require("./GEORADIUS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUS_1.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUS_1.IS_READ_ONLY; } }); +function transformArguments(key, coordinates, radius, unit, destination, options) { + return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUS'], key, coordinates, radius, unit, destination, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.d.ts new file mode 100644 index 0000000..7574a1a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchOptions, GeoCoordinates, GeoUnits } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, coordinates: GeoCoordinates, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js new file mode 100644 index 0000000..7f34dad --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, coordinates, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS_RO'], key, coordinates, radius, unit, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.d.ts new file mode 100644 index 0000000..ce99bdd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoReplyWith, GeoSearchOptions, GeoCoordinates, GeoUnits } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUS_RO'; +export declare function transformArguments(key: RedisCommandArgument, coordinates: GeoCoordinates, radius: number, unit: GeoUnits, replyWith: Array, options?: GeoSearchOptions): RedisCommandArguments; +export { transformGeoMembersWithReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js new file mode 100644 index 0000000..a83fbb1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_RO_WITH.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUS_RO_1 = require("./GEORADIUS_RO"); +var GEORADIUS_RO_2 = require("./GEORADIUS_RO"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUS_RO_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUS_RO_2.IS_READ_ONLY; } }); +function transformArguments(key, coordinates, radius, unit, replyWith, options) { + const args = (0, GEORADIUS_RO_1.transformArguments)(key, coordinates, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.d.ts new file mode 100644 index 0000000..96f887c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoReplyWith, GeoSearchOptions, GeoCoordinates, GeoUnits } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEORADIUS'; +export declare function transformArguments(key: RedisCommandArgument, coordinates: GeoCoordinates, radius: number, unit: GeoUnits, replyWith: Array, options?: GeoSearchOptions): RedisCommandArguments; +export { transformGeoMembersWithReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js new file mode 100644 index 0000000..e146b00 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEORADIUS_WITH.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUS_1 = require("./GEORADIUS"); +var GEORADIUS_2 = require("./GEORADIUS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEORADIUS_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEORADIUS_2.IS_READ_ONLY; } }); +function transformArguments(key, coordinates, radius, unit, replyWith, options) { + const args = (0, GEORADIUS_1.transformArguments)(key, coordinates, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.d.ts new file mode 100644 index 0000000..2205100 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchFrom, GeoSearchBy, GeoSearchOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, from: GeoSearchFrom, by: GeoSearchBy, options?: GeoSearchOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js new file mode 100644 index 0000000..b2e2aca --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, from, by, options) { + return (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCH'], key, from, by, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.d.ts new file mode 100644 index 0000000..1ac151e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchFrom, GeoSearchBy, GeoSearchOptions } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEOSEARCH'; +interface GeoSearchStoreOptions extends GeoSearchOptions { + STOREDIST?: true; +} +export declare function transformArguments(destination: RedisCommandArgument, source: RedisCommandArgument, from: GeoSearchFrom, by: GeoSearchBy, options?: GeoSearchStoreOptions): RedisCommandArguments; +export declare function transformReply(reply: number): number; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js b/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js new file mode 100644 index 0000000..da510e6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCHSTORE.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +var GEOSEARCH_1 = require("./GEOSEARCH"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEOSEARCH_1.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEOSEARCH_1.IS_READ_ONLY; } }); +function transformArguments(destination, source, from, by, options) { + const args = (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCHSTORE', destination], source, from, by, options); + if (options?.STOREDIST) { + args.push('STOREDIST'); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (typeof reply !== 'number') { + throw new TypeError(`https://github.com/redis/redis/issues/9261`); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.d.ts b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.d.ts new file mode 100644 index 0000000..852416d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { GeoSearchFrom, GeoSearchBy, GeoReplyWith, GeoSearchOptions } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './GEOSEARCH'; +export declare function transformArguments(key: RedisCommandArgument, from: GeoSearchFrom, by: GeoSearchBy, replyWith: Array, options?: GeoSearchOptions): RedisCommandArguments; +export { transformGeoMembersWithReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js new file mode 100644 index 0000000..3fb418f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GEOSEARCH_WITH.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEOSEARCH_1 = require("./GEOSEARCH"); +var GEOSEARCH_2 = require("./GEOSEARCH"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return GEOSEARCH_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return GEOSEARCH_2.IS_READ_ONLY; } }); +function transformArguments(key, from, by, replyWith, options) { + const args = (0, GEOSEARCH_1.transformArguments)(key, from, by, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/GET.d.ts b/node_modules/@redis/client/dist/lib/commands/GET.d.ts new file mode 100644 index 0000000..ac0d54c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GET.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/GET.js b/node_modules/@redis/client/dist/lib/commands/GET.js new file mode 100644 index 0000000..8bb9de2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GET.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['GET', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GETBIT.d.ts b/node_modules/@redis/client/dist/lib/commands/GETBIT.d.ts new file mode 100644 index 0000000..6eaeaf5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETBIT.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { BitValue } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, offset: number): RedisCommandArguments; +export declare function transformReply(): BitValue; diff --git a/node_modules/@redis/client/dist/lib/commands/GETBIT.js b/node_modules/@redis/client/dist/lib/commands/GETBIT.js new file mode 100644 index 0000000..9ad7b33 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETBIT.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, offset) { + return ['GETBIT', key, offset.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GETDEL.d.ts b/node_modules/@redis/client/dist/lib/commands/GETDEL.d.ts new file mode 100644 index 0000000..15f87fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETDEL.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/GETDEL.js b/node_modules/@redis/client/dist/lib/commands/GETDEL.js new file mode 100644 index 0000000..cd80218 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETDEL.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GETDEL', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GETEX.d.ts b/node_modules/@redis/client/dist/lib/commands/GETEX.d.ts new file mode 100644 index 0000000..7d7f1f4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETEX.d.ts @@ -0,0 +1,16 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +type GetExModes = { + EX: number; +} | { + PX: number; +} | { + EXAT: number | Date; +} | { + PXAT: number | Date; +} | { + PERSIST: true; +}; +export declare function transformArguments(key: RedisCommandArgument, mode: GetExModes): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/GETEX.js b/node_modules/@redis/client/dist/lib/commands/GETEX.js new file mode 100644 index 0000000..897c824 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETEX.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, mode) { + const args = ['GETEX', key]; + if ('EX' in mode) { + args.push('EX', mode.EX.toString()); + } + else if ('PX' in mode) { + args.push('PX', mode.PX.toString()); + } + else if ('EXAT' in mode) { + args.push('EXAT', (0, generic_transformers_1.transformEXAT)(mode.EXAT)); + } + else if ('PXAT' in mode) { + args.push('PXAT', (0, generic_transformers_1.transformPXAT)(mode.PXAT)); + } + else { // PERSIST + args.push('PERSIST'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GETRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/GETRANGE.d.ts new file mode 100644 index 0000000..c28240e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETRANGE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, start: number, end: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/GETRANGE.js b/node_modules/@redis/client/dist/lib/commands/GETRANGE.js new file mode 100644 index 0000000..32e1527 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETRANGE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end) { + return ['GETRANGE', key, start.toString(), end.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/GETSET.d.ts b/node_modules/@redis/client/dist/lib/commands/GETSET.d.ts new file mode 100644 index 0000000..c2aad11 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETSET.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, value: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/GETSET.js b/node_modules/@redis/client/dist/lib/commands/GETSET.js new file mode 100644 index 0000000..972d126 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/GETSET.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['GETSET', key, value]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HDEL.d.ts b/node_modules/@redis/client/dist/lib/commands/HDEL.d.ts new file mode 100644 index 0000000..b014f91 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HDEL.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/HDEL.js b/node_modules/@redis/client/dist/lib/commands/HDEL.js new file mode 100644 index 0000000..199d9d0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HDEL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return (0, generic_transformers_1.pushVerdictArguments)(['HDEL', key], field); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HELLO.d.ts b/node_modules/@redis/client/dist/lib/commands/HELLO.d.ts new file mode 100644 index 0000000..39d7058 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HELLO.d.ts @@ -0,0 +1,35 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { AuthOptions } from './AUTH'; +interface HelloOptions { + protover: number; + auth?: Required; + clientName?: string; +} +export declare function transformArguments(options?: HelloOptions): RedisCommandArguments; +type HelloRawReply = [ + _: never, + server: RedisCommandArgument, + _: never, + version: RedisCommandArgument, + _: never, + proto: number, + _: never, + id: number, + _: never, + mode: RedisCommandArgument, + _: never, + role: RedisCommandArgument, + _: never, + modules: Array +]; +interface HelloTransformedReply { + server: RedisCommandArgument; + version: RedisCommandArgument; + proto: number; + id: number; + mode: RedisCommandArgument; + role: RedisCommandArgument; + modules: Array; +} +export declare function transformReply(reply: HelloRawReply): HelloTransformedReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/HELLO.js b/node_modules/@redis/client/dist/lib/commands/HELLO.js new file mode 100644 index 0000000..b16d4ed --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HELLO.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['HELLO']; + if (options) { + args.push(options.protover.toString()); + if (options.auth) { + args.push('AUTH', options.auth.username, options.auth.password); + } + if (options.clientName) { + args.push('SETNAME', options.clientName); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + server: reply[1], + version: reply[3], + proto: reply[5], + id: reply[7], + mode: reply[9], + role: reply[11], + modules: reply[13] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXISTS.d.ts b/node_modules/@redis/client/dist/lib/commands/HEXISTS.d.ts new file mode 100644 index 0000000..1a9fd57 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXISTS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXISTS.js b/node_modules/@redis/client/dist/lib/commands/HEXISTS.js new file mode 100644 index 0000000..f659dab --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXISTS.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return ['HEXISTS', key, field]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIRE.d.ts b/node_modules/@redis/client/dist/lib/commands/HEXPIRE.d.ts new file mode 100644 index 0000000..5e7aab1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIRE.d.ts @@ -0,0 +1,23 @@ +import { RedisCommandArgument } from '.'; +/** + * @readonly + * @enum {number} + */ +export declare const HASH_EXPIRATION: { + /** @property {number} */ + /** The field does not exist */ + readonly FIELD_NOT_EXISTS: -2; + /** @property {number} */ + /** Specified NX | XX | GT | LT condition not met */ + readonly CONDITION_NOT_MET: 0; + /** @property {number} */ + /** Expiration time was set or updated */ + readonly UPDATED: 1; + /** @property {number} */ + /** Field deleted because the specified expiration time is in the past */ + readonly DELETED: 2; +}; +export type HashExpiration = typeof HASH_EXPIRATION[keyof typeof HASH_EXPIRATION]; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array, seconds: number, mode?: 'NX' | 'XX' | 'GT' | 'LT'): import(".").RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIRE.js b/node_modules/@redis/client/dist/lib/commands/HEXPIRE.js new file mode 100644 index 0000000..c6657d3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIRE.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = exports.HASH_EXPIRATION = void 0; +const generic_transformers_1 = require("./generic-transformers"); +/** + * @readonly + * @enum {number} + */ +exports.HASH_EXPIRATION = { + /** @property {number} */ + /** The field does not exist */ + FIELD_NOT_EXISTS: -2, + /** @property {number} */ + /** Specified NX | XX | GT | LT condition not met */ + CONDITION_NOT_MET: 0, + /** @property {number} */ + /** Expiration time was set or updated */ + UPDATED: 1, + /** @property {number} */ + /** Field deleted because the specified expiration time is in the past */ + DELETED: 2 +}; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, fields, seconds, mode) { + const args = ['HEXPIRE', key, seconds.toString()]; + if (mode) { + args.push(mode); + } + args.push('FIELDS'); + return (0, generic_transformers_1.pushVerdictArgument)(args, fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.d.ts b/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.d.ts new file mode 100644 index 0000000..f7e2764 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument } from '.'; +import { HashExpiration } from './HEXPIRE'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array, timestamp: number | Date, mode?: 'NX' | 'XX' | 'GT' | 'LT'): import(".").RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js b/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js new file mode 100644 index 0000000..a124a91 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIREAT.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, fields, timestamp, mode) { + const args = [ + 'HEXPIREAT', + key, + (0, generic_transformers_1.transformEXAT)(timestamp) + ]; + if (mode) { + args.push(mode); + } + args.push('FIELDS'); + return (0, generic_transformers_1.pushVerdictArgument)(args, fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.d.ts b/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.d.ts new file mode 100644 index 0000000..a129d25 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.d.ts @@ -0,0 +1,13 @@ +import { RedisCommandArgument } from '.'; +export declare const HASH_EXPIRATION_TIME: { + /** @property {number} */ + /** The field does not exist */ + readonly FIELD_NOT_EXISTS: -2; + /** @property {number} */ + /** The field exists but has no associated expire */ + readonly NO_EXPIRATION: -1; +}; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): import(".").RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js b/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js new file mode 100644 index 0000000..37cabd1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HEXPIRETIME.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = exports.HASH_EXPIRATION_TIME = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.HASH_EXPIRATION_TIME = { + /** @property {number} */ + /** The field does not exist */ + FIELD_NOT_EXISTS: -2, + /** @property {number} */ + /** The field exists but has no associated expire */ + NO_EXPIRATION: -1, +}; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArgument)(['HEXPIRETIME', key, 'FIELDS'], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HGET.d.ts b/node_modules/@redis/client/dist/lib/commands/HGET.d.ts new file mode 100644 index 0000000..09f0f49 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HGET.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | undefined; diff --git a/node_modules/@redis/client/dist/lib/commands/HGET.js b/node_modules/@redis/client/dist/lib/commands/HGET.js new file mode 100644 index 0000000..e45af1f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HGET.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, field) { + return ['HGET', key, field]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HGETALL.d.ts b/node_modules/@redis/client/dist/lib/commands/HGETALL.d.ts new file mode 100644 index 0000000..6e37bdd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HGETALL.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare const TRANSFORM_LEGACY_REPLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformTuplesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/HGETALL.js b/node_modules/@redis/client/dist/lib/commands/HGETALL.js new file mode 100644 index 0000000..871ea00 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HGETALL.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.TRANSFORM_LEGACY_REPLY = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +exports.TRANSFORM_LEGACY_REPLY = true; +function transformArguments(key) { + return ['HGETALL', key]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/HINCRBY.d.ts b/node_modules/@redis/client/dist/lib/commands/HINCRBY.d.ts new file mode 100644 index 0000000..ba2e705 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HINCRBY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument, increment: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/HINCRBY.js b/node_modules/@redis/client/dist/lib/commands/HINCRBY.js new file mode 100644 index 0000000..a47a501 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HINCRBY.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, increment) { + return ['HINCRBY', key, field, increment.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.d.ts b/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.d.ts new file mode 100644 index 0000000..ba2e705 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument, increment: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js b/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js new file mode 100644 index 0000000..dca7e8f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HINCRBYFLOAT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, increment) { + return ['HINCRBYFLOAT', key, field, increment.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HKEYS.d.ts b/node_modules/@redis/client/dist/lib/commands/HKEYS.d.ts new file mode 100644 index 0000000..b5c1c09 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HKEYS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HKEYS.js b/node_modules/@redis/client/dist/lib/commands/HKEYS.js new file mode 100644 index 0000000..e3da594 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HKEYS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HKEYS', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/HLEN.d.ts new file mode 100644 index 0000000..c35a19c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HLEN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/HLEN.js b/node_modules/@redis/client/dist/lib/commands/HLEN.js new file mode 100644 index 0000000..76687ff --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HLEN.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HLEN', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HMGET.d.ts b/node_modules/@redis/client/dist/lib/commands/HMGET.d.ts new file mode 100644 index 0000000..26b7c7c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HMGET.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HMGET.js b/node_modules/@redis/client/dist/lib/commands/HMGET.js new file mode 100644 index 0000000..2116543 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HMGET.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArguments)(['HMGET', key], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HPERSIST.d.ts b/node_modules/@redis/client/dist/lib/commands/HPERSIST.d.ts new file mode 100644 index 0000000..336a4d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPERSIST.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HPERSIST.js b/node_modules/@redis/client/dist/lib/commands/HPERSIST.js new file mode 100644 index 0000000..f2eb929 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPERSIST.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArgument)(['HPERSIST', key, 'FIELDS'], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.d.ts b/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.d.ts new file mode 100644 index 0000000..050ee87 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument } from '.'; +import { HashExpiration } from "./HEXPIRE"; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array, ms: number, mode?: 'NX' | 'XX' | 'GT' | 'LT'): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js b/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js new file mode 100644 index 0000000..a83ce3b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIRE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, fields, ms, mode) { + const args = ['HPEXPIRE', key, ms.toString()]; + if (mode) { + args.push(mode); + } + args.push('FIELDS'); + return (0, generic_transformers_1.pushVerdictArgument)(args, fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.d.ts b/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.d.ts new file mode 100644 index 0000000..a839ffc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument } from '.'; +import { HashExpiration } from './HEXPIRE'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array, timestamp: number | Date, mode?: 'NX' | 'XX' | 'GT' | 'LT'): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js b/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js new file mode 100644 index 0000000..6947263 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIREAT.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields, timestamp, mode) { + const args = ['HPEXPIREAT', key, (0, generic_transformers_1.transformPXAT)(timestamp)]; + if (mode) { + args.push(mode); + } + args.push('FIELDS'); + return (0, generic_transformers_1.pushVerdictArgument)(args, fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.d.ts b/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.d.ts new file mode 100644 index 0000000..f04cffd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js b/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js new file mode 100644 index 0000000..bf13ff1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPEXPIRETIME.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArgument)(['HPEXPIRETIME', key, 'FIELDS'], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HPTTL.d.ts b/node_modules/@redis/client/dist/lib/commands/HPTTL.d.ts new file mode 100644 index 0000000..f04cffd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPTTL.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HPTTL.js b/node_modules/@redis/client/dist/lib/commands/HPTTL.js new file mode 100644 index 0000000..71906b1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HPTTL.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArgument)(['HPTTL', key, 'FIELDS'], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.d.ts b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.d.ts new file mode 100644 index 0000000..ac0d54c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js new file mode 100644 index 0000000..d242aef --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['HRANDFIELD', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.d.ts new file mode 100644 index 0000000..ddfa26b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './HRANDFIELD'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js new file mode 100644 index 0000000..dfb13aa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const HRANDFIELD_1 = require("./HRANDFIELD"); +var HRANDFIELD_2 = require("./HRANDFIELD"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return HRANDFIELD_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return HRANDFIELD_2.IS_READ_ONLY; } }); +function transformArguments(key, count) { + return [ + ...(0, HRANDFIELD_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.d.ts b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.d.ts new file mode 100644 index 0000000..d18f62c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './HRANDFIELD_COUNT'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export { transformTuplesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js new file mode 100644 index 0000000..24556d2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HRANDFIELD_COUNT_WITHVALUES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const HRANDFIELD_COUNT_1 = require("./HRANDFIELD_COUNT"); +var HRANDFIELD_COUNT_2 = require("./HRANDFIELD_COUNT"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return HRANDFIELD_COUNT_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return HRANDFIELD_COUNT_2.IS_READ_ONLY; } }); +function transformArguments(key, count) { + return [ + ...(0, HRANDFIELD_COUNT_1.transformArguments)(key, count), + 'WITHVALUES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/HSCAN.d.ts b/node_modules/@redis/client/dist/lib/commands/HSCAN.d.ts new file mode 100644 index 0000000..4d4447e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSCAN.d.ts @@ -0,0 +1,16 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ScanOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, cursor: number, options?: ScanOptions): RedisCommandArguments; +export type HScanRawReply = [RedisCommandArgument, Array]; +export interface HScanTuple { + field: RedisCommandArgument; + value: RedisCommandArgument; +} +interface HScanReply { + cursor: number; + tuples: Array; +} +export declare function transformReply([cursor, rawTuples]: HScanRawReply): HScanReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/HSCAN.js b/node_modules/@redis/client/dist/lib/commands/HSCAN.js new file mode 100644 index 0000000..5930408 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSCAN.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'HSCAN', + key + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, rawTuples]) { + const parsedTuples = []; + for (let i = 0; i < rawTuples.length; i += 2) { + parsedTuples.push({ + field: rawTuples[i], + value: rawTuples[i + 1] + }); + } + return { + cursor: Number(cursor), + tuples: parsedTuples + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.d.ts b/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.d.ts new file mode 100644 index 0000000..196df8c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ScanOptions } from './generic-transformers'; +import { HScanRawReply } from './HSCAN'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './HSCAN'; +export declare function transformArguments(key: RedisCommandArgument, cursor: number, options?: ScanOptions): RedisCommandArguments; +interface HScanNoValuesReply { + cursor: number; + keys: Array; +} +export declare function transformReply([cursor, rawData]: HScanRawReply): HScanNoValuesReply; diff --git a/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js b/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js new file mode 100644 index 0000000..68db4ce --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSCAN_NOVALUES.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const HSCAN_1 = require("./HSCAN"); +var HSCAN_2 = require("./HSCAN"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return HSCAN_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return HSCAN_2.IS_READ_ONLY; } }); +function transformArguments(key, cursor, options) { + const args = (0, HSCAN_1.transformArguments)(key, cursor, options); + args.push('NOVALUES'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply([cursor, rawData]) { + return { + cursor: Number(cursor), + keys: rawData + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/HSET.d.ts b/node_modules/@redis/client/dist/lib/commands/HSET.d.ts new file mode 100644 index 0000000..7208ffe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSET.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +type Types = RedisCommandArgument | number; +type HSETObject = Record; +type HSETMap = Map; +type HSETTuples = Array<[Types, Types]> | Array; +type GenericArguments = [key: RedisCommandArgument]; +type SingleFieldArguments = [...generic: GenericArguments, field: Types, value: Types]; +type MultipleFieldsArguments = [...generic: GenericArguments, value: HSETObject | HSETMap | HSETTuples]; +export declare function transformArguments(...[key, value, fieldValue]: SingleFieldArguments | MultipleFieldsArguments): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/HSET.js b/node_modules/@redis/client/dist/lib/commands/HSET.js new file mode 100644 index 0000000..cb2b735 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSET.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(...[key, value, fieldValue]) { + const args = ['HSET', key]; + if (typeof value === 'string' || typeof value === 'number' || Buffer.isBuffer(value)) { + args.push(convertValue(value), convertValue(fieldValue)); + } + else if (value instanceof Map) { + pushMap(args, value); + } + else if (Array.isArray(value)) { + pushTuples(args, value); + } + else { + pushObject(args, value); + } + return args; +} +exports.transformArguments = transformArguments; +function pushMap(args, map) { + for (const [key, value] of map.entries()) { + args.push(convertValue(key), convertValue(value)); + } +} +function pushTuples(args, tuples) { + for (const tuple of tuples) { + if (Array.isArray(tuple)) { + pushTuples(args, tuple); + continue; + } + args.push(convertValue(tuple)); + } +} +function pushObject(args, object) { + for (const key of Object.keys(object)) { + args.push(convertValue(key), convertValue(object[key])); + } +} +function convertValue(value) { + return typeof value === 'number' ? + value.toString() : + value; +} diff --git a/node_modules/@redis/client/dist/lib/commands/HSETNX.d.ts b/node_modules/@redis/client/dist/lib/commands/HSETNX.d.ts new file mode 100644 index 0000000..8c115a0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSETNX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument, value: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/HSETNX.js b/node_modules/@redis/client/dist/lib/commands/HSETNX.js new file mode 100644 index 0000000..c450fc4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSETNX.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, value) { + return ['HSETNX', key, field, value]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/HSTRLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/HSTRLEN.d.ts new file mode 100644 index 0000000..cdffa17 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSTRLEN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, field: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/HSTRLEN.js b/node_modules/@redis/client/dist/lib/commands/HSTRLEN.js new file mode 100644 index 0000000..307213b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HSTRLEN.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return ['HSTRLEN', key, field]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HTTL.d.ts b/node_modules/@redis/client/dist/lib/commands/HTTL.d.ts new file mode 100644 index 0000000..f04cffd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HTTL.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, fields: RedisCommandArgument | Array): import(".").RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/HTTL.js b/node_modules/@redis/client/dist/lib/commands/HTTL.js new file mode 100644 index 0000000..3c93d1c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HTTL.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArgument)(['HTTL', key, 'FIELDS'], fields); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/HVALS.d.ts b/node_modules/@redis/client/dist/lib/commands/HVALS.d.ts new file mode 100644 index 0000000..b5c1c09 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HVALS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/HVALS.js b/node_modules/@redis/client/dist/lib/commands/HVALS.js new file mode 100644 index 0000000..f279fa1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/HVALS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HVALS', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/INCR.d.ts b/node_modules/@redis/client/dist/lib/commands/INCR.d.ts new file mode 100644 index 0000000..c35a19c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCR.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/INCR.js b/node_modules/@redis/client/dist/lib/commands/INCR.js new file mode 100644 index 0000000..1364aac --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCR.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['INCR', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/INCRBY.d.ts b/node_modules/@redis/client/dist/lib/commands/INCRBY.d.ts new file mode 100644 index 0000000..2ae5b5a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCRBY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, increment: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/INCRBY.js b/node_modules/@redis/client/dist/lib/commands/INCRBY.js new file mode 100644 index 0000000..4ecbab2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCRBY.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment) { + return ['INCRBY', key, increment.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.d.ts b/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.d.ts new file mode 100644 index 0000000..369c0f6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, increment: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js b/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js new file mode 100644 index 0000000..33d6bb2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INCRBYFLOAT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment) { + return ['INCRBYFLOAT', key, increment.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/INFO.d.ts b/node_modules/@redis/client/dist/lib/commands/INFO.d.ts new file mode 100644 index 0000000..8bec82b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INFO.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(section?: string): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/INFO.js b/node_modules/@redis/client/dist/lib/commands/INFO.js new file mode 100644 index 0000000..0711467 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/INFO.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(section) { + const args = ['INFO']; + if (section) { + args.push(section); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/KEYS.d.ts b/node_modules/@redis/client/dist/lib/commands/KEYS.d.ts new file mode 100644 index 0000000..afb77fe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/KEYS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(pattern: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/KEYS.js b/node_modules/@redis/client/dist/lib/commands/KEYS.js new file mode 100644 index 0000000..84a8b33 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/KEYS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(pattern) { + return ['KEYS', pattern]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LASTSAVE.d.ts b/node_modules/@redis/client/dist/lib/commands/LASTSAVE.d.ts new file mode 100644 index 0000000..6da05a0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LASTSAVE.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export declare function transformReply(reply: number): Date; diff --git a/node_modules/@redis/client/dist/lib/commands/LASTSAVE.js b/node_modules/@redis/client/dist/lib/commands/LASTSAVE.js new file mode 100644 index 0000000..c22924f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LASTSAVE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['LASTSAVE']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return new Date(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.d.ts b/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js b/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js new file mode 100644 index 0000000..426c33d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_DOCTOR.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['LATENCY', 'DOCTOR']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.d.ts b/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.d.ts new file mode 100644 index 0000000..60491ba --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +export type EventType = 'active-defrag-cycle' | 'aof-fsync-always' | 'aof-stat' | 'aof-rewrite-diff-write' | 'aof-rename' | 'aof-write' | 'aof-write-active-child' | 'aof-write-alone' | 'aof-write-pending-fsync' | 'command' | 'expire-cycle' | 'eviction-cycle' | 'eviction-del' | 'fast-command' | 'fork' | 'rdb-unlink-temp-file'; +export declare function transformArguments(event: EventType): RedisCommandArguments; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js b/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js new file mode 100644 index 0000000..1786777 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_GRAPH.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(event) { + return ['LATENCY', 'GRAPH', event]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.d.ts b/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.d.ts new file mode 100644 index 0000000..c9412d4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.d.ts @@ -0,0 +1,6 @@ +export type EventType = ('active-defrag-cycle' | 'aof-fsync-always' | 'aof-stat' | 'aof-rewrite-diff-write' | 'aof-rename' | 'aof-write' | 'aof-write-active-child' | 'aof-write-alone' | 'aof-write-pending-fsync' | 'command' | 'expire-cycle' | 'eviction-cycle' | 'eviction-del' | 'fast-command' | 'fork' | 'rdb-unlink-temp-file'); +export declare function transformArguments(event: EventType): string[]; +export declare function transformReply(): Array<[ + timestamp: number, + latency: number +]>; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js b/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js new file mode 100644 index 0000000..063da3e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_HISTORY.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(event) { + return ['LATENCY', 'HISTORY', event]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.d.ts b/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.d.ts new file mode 100644 index 0000000..f3f12b1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): Array<[ + name: string, + timestamp: number, + latestLatency: number, + allTimeLatency: number +]>; diff --git a/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js b/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js new file mode 100644 index 0000000..98f6733 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LATENCY_LATEST.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['LATENCY', 'LATEST']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS.d.ts b/node_modules/@redis/client/dist/lib/commands/LCS.d.ts new file mode 100644 index 0000000..3d9a628 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS.d.ts @@ -0,0 +1,6 @@ +/// +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key1: RedisCommandArgument, key2: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): string | Buffer; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS.js b/node_modules/@redis/client/dist/lib/commands/LCS.js new file mode 100644 index 0000000..b770199 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key1, key2) { + return [ + 'LCS', + key1, + key2 + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_IDX.d.ts b/node_modules/@redis/client/dist/lib/commands/LCS_IDX.d.ts new file mode 100644 index 0000000..1604e6e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_IDX.d.ts @@ -0,0 +1,21 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { RangeReply, RawRangeReply } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './LCS'; +export declare function transformArguments(key1: RedisCommandArgument, key2: RedisCommandArgument): RedisCommandArguments; +type RawReply = [ + 'matches', + Array<[ + key1: RawRangeReply, + key2: RawRangeReply + ]>, + 'len', + number +]; +interface Reply { + matches: Array<{ + key1: RangeReply; + key2: RangeReply; + }>; + length: number; +} +export declare function transformReply(reply: RawReply): Reply; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_IDX.js b/node_modules/@redis/client/dist/lib/commands/LCS_IDX.js new file mode 100644 index 0000000..c38132a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_IDX.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +const LCS_1 = require("./LCS"); +var LCS_2 = require("./LCS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } }); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('IDX'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + matches: reply[1].map(([key1, key2]) => ({ + key1: (0, generic_transformers_1.transformRangeReply)(key1), + key2: (0, generic_transformers_1.transformRangeReply)(key2) + })), + length: reply[3] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.d.ts new file mode 100644 index 0000000..89208da --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.d.ts @@ -0,0 +1,23 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { RangeReply, RawRangeReply } from './generic-transformers'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './LCS'; +export declare function transformArguments(key1: RedisCommandArgument, key2: RedisCommandArgument): RedisCommandArguments; +type RawReply = [ + 'matches', + Array<[ + key1: RawRangeReply, + key2: RawRangeReply, + length: number + ]>, + 'len', + number +]; +interface Reply { + matches: Array<{ + key1: RangeReply; + key2: RangeReply; + length: number; + }>; + length: number; +} +export declare function transformReply(reply: RawReply): Reply; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js b/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js new file mode 100644 index 0000000..e031d5e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_IDX_WITHMATCHLEN.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +const LCS_1 = require("./LCS"); +var LCS_2 = require("./LCS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } }); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('IDX', 'WITHMATCHLEN'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + matches: reply[1].map(([key1, key2, length]) => ({ + key1: (0, generic_transformers_1.transformRangeReply)(key1), + key2: (0, generic_transformers_1.transformRangeReply)(key2), + length + })), + length: reply[3] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_LEN.d.ts b/node_modules/@redis/client/dist/lib/commands/LCS_LEN.d.ts new file mode 100644 index 0000000..d8e90e1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_LEN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './LCS'; +export declare function transformArguments(key1: RedisCommandArgument, key2: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/LCS_LEN.js b/node_modules/@redis/client/dist/lib/commands/LCS_LEN.js new file mode 100644 index 0000000..cba853a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LCS_LEN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const LCS_1 = require("./LCS"); +var LCS_2 = require("./LCS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } }); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('LEN'); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LINDEX.d.ts b/node_modules/@redis/client/dist/lib/commands/LINDEX.d.ts new file mode 100644 index 0000000..aa5a007 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LINDEX.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, index: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/LINDEX.js b/node_modules/@redis/client/dist/lib/commands/LINDEX.js new file mode 100644 index 0000000..72b52cc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LINDEX.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, index) { + return ['LINDEX', key, index.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LINSERT.d.ts b/node_modules/@redis/client/dist/lib/commands/LINSERT.d.ts new file mode 100644 index 0000000..0ff1842 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LINSERT.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +type LInsertPosition = 'BEFORE' | 'AFTER'; +export declare function transformArguments(key: RedisCommandArgument, position: LInsertPosition, pivot: RedisCommandArgument, element: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/LINSERT.js b/node_modules/@redis/client/dist/lib/commands/LINSERT.js new file mode 100644 index 0000000..2e5b523 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LINSERT.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, position, pivot, element) { + return [ + 'LINSERT', + key, + position, + pivot, + element + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/LLEN.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LLEN.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/LLEN.js b/node_modules/@redis/client/dist/lib/commands/LLEN.js new file mode 100644 index 0000000..2c96584 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LLEN.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['LLEN', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LMOVE.d.ts b/node_modules/@redis/client/dist/lib/commands/LMOVE.d.ts new file mode 100644 index 0000000..6c43ddc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LMOVE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ListSide } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument, sourceSide: ListSide, destinationSide: ListSide): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/LMOVE.js b/node_modules/@redis/client/dist/lib/commands/LMOVE.js new file mode 100644 index 0000000..3d44d91 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LMOVE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, sourceSide, destinationSide) { + return [ + 'LMOVE', + source, + destination, + sourceSide, + destinationSide, + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LMPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/LMPOP.d.ts new file mode 100644 index 0000000..e411c3e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LMPOP.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { LMPopOptions, ListSide } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(keys: RedisCommandArgument | Array, side: ListSide, options?: LMPopOptions): RedisCommandArguments; +export declare function transformReply(): null | [ + key: string, + elements: Array +]; diff --git a/node_modules/@redis/client/dist/lib/commands/LMPOP.js b/node_modules/@redis/client/dist/lib/commands/LMPOP.js new file mode 100644 index 0000000..bf2ff9b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LMPOP.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(keys, side, options) { + return (0, generic_transformers_1.transformLMPopArguments)(['LMPOP'], keys, side, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LOLWUT.d.ts b/node_modules/@redis/client/dist/lib/commands/LOLWUT.d.ts new file mode 100644 index 0000000..78dd275 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LOLWUT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(version?: number, ...optionalArguments: Array): Array; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/LOLWUT.js b/node_modules/@redis/client/dist/lib/commands/LOLWUT.js new file mode 100644 index 0000000..20d6b61 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LOLWUT.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(version, ...optionalArguments) { + const args = ['LOLWUT']; + if (version) { + args.push('VERSION', version.toString(), ...optionalArguments.map(String)); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/LPOP.d.ts new file mode 100644 index 0000000..15f87fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOP.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOP.js b/node_modules/@redis/client/dist/lib/commands/LPOP.js new file mode 100644 index 0000000..84c99a4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOP.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['LPOP', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.d.ts new file mode 100644 index 0000000..e48bfcb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js b/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js new file mode 100644 index 0000000..c865e8e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOP_COUNT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + return ['LPOP', key, count.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOS.d.ts b/node_modules/@redis/client/dist/lib/commands/LPOS.d.ts new file mode 100644 index 0000000..816ba10 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOS.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export interface LPosOptions { + RANK?: number; + MAXLEN?: number; +} +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument, options?: LPosOptions): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOS.js b/node_modules/@redis/client/dist/lib/commands/LPOS.js new file mode 100644 index 0000000..72a47a0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOS.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, element, options) { + const args = ['LPOS', key, element]; + if (typeof options?.RANK === 'number') { + args.push('RANK', options.RANK.toString()); + } + if (typeof options?.MAXLEN === 'number') { + args.push('MAXLEN', options.MAXLEN.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.d.ts new file mode 100644 index 0000000..d009566 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { LPosOptions } from './LPOS'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './LPOS'; +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument, count: number, options?: LPosOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js b/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js new file mode 100644 index 0000000..0616a06 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPOS_COUNT.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +var LPOS_1 = require("./LPOS"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return LPOS_1.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return LPOS_1.IS_READ_ONLY; } }); +function transformArguments(key, element, count, options) { + const args = ['LPOS', key, element]; + if (typeof options?.RANK === 'number') { + args.push('RANK', options.RANK.toString()); + } + args.push('COUNT', count.toString()); + if (typeof options?.MAXLEN === 'number') { + args.push('MAXLEN', options.MAXLEN.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/LPUSH.d.ts new file mode 100644 index 0000000..9416327 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPUSH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, elements: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/LPUSH.js b/node_modules/@redis/client/dist/lib/commands/LPUSH.js new file mode 100644 index 0000000..1de8108 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPUSH.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, elements) { + return (0, generic_transformers_1.pushVerdictArguments)(['LPUSH', key], elements); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LPUSHX.d.ts b/node_modules/@redis/client/dist/lib/commands/LPUSHX.d.ts new file mode 100644 index 0000000..ce8878e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPUSHX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/LPUSHX.js b/node_modules/@redis/client/dist/lib/commands/LPUSHX.js new file mode 100644 index 0000000..8a45107 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LPUSHX.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['LPUSHX', key], element); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/LRANGE.d.ts new file mode 100644 index 0000000..4210b9d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LRANGE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, start: number, stop: number): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/LRANGE.js b/node_modules/@redis/client/dist/lib/commands/LRANGE.js new file mode 100644 index 0000000..fc6127c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LRANGE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, stop) { + return [ + 'LRANGE', + key, + start.toString(), + stop.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LREM.d.ts b/node_modules/@redis/client/dist/lib/commands/LREM.d.ts new file mode 100644 index 0000000..1bf4abc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LREM.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, count: number, element: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/LREM.js b/node_modules/@redis/client/dist/lib/commands/LREM.js new file mode 100644 index 0000000..b1a7257 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LREM.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count, element) { + return [ + 'LREM', + key, + count.toString(), + element + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LSET.d.ts b/node_modules/@redis/client/dist/lib/commands/LSET.d.ts new file mode 100644 index 0000000..0e9f263 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LSET.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, index: number, element: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/LSET.js b/node_modules/@redis/client/dist/lib/commands/LSET.js new file mode 100644 index 0000000..132494b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LSET.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, index, element) { + return [ + 'LSET', + key, + index.toString(), + element + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/LTRIM.d.ts b/node_modules/@redis/client/dist/lib/commands/LTRIM.d.ts new file mode 100644 index 0000000..de34a67 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LTRIM.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, start: number, stop: number): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/LTRIM.js b/node_modules/@redis/client/dist/lib/commands/LTRIM.js new file mode 100644 index 0000000..8c3e9ee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/LTRIM.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, start, stop) { + return [ + 'LTRIM', + key, + start.toString(), + stop.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.d.ts b/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js b/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js new file mode 100644 index 0000000..7efd2ea --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_DOCTOR.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'DOCTOR']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.d.ts b/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js b/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js new file mode 100644 index 0000000..e314ba2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_MALLOC-STATS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'MALLOC-STATS']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.d.ts b/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js b/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js new file mode 100644 index 0000000..c24f1c5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_PURGE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'PURGE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.d.ts b/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.d.ts new file mode 100644 index 0000000..cfaab6e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.d.ts @@ -0,0 +1,36 @@ +export declare function transformArguments(): Array; +interface MemoryStatsReply { + peakAllocated: number; + totalAllocated: number; + startupAllocated: number; + replicationBacklog: number; + clientsReplicas: number; + clientsNormal: number; + aofBuffer: number; + luaCaches: number; + overheadTotal: number; + keysCount: number; + keysBytesPerKey: number; + datasetBytes: number; + datasetPercentage: number; + peakPercentage: number; + allocatorAllocated?: number; + allocatorActive?: number; + allocatorResident?: number; + allocatorFragmentationRatio?: number; + allocatorFragmentationBytes?: number; + allocatorRssRatio?: number; + allocatorRssBytes?: number; + rssOverheadRatio?: number; + rssOverheadBytes?: number; + fragmentation?: number; + fragmentationBytes: number; + db: { + [key: number]: { + overheadHashtableMain: number; + overheadHashtableExpires: number; + }; + }; +} +export declare function transformReply(rawReply: Array>): MemoryStatsReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js b/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js new file mode 100644 index 0000000..eea30bb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_STATS.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'STATS']; +} +exports.transformArguments = transformArguments; +const FIELDS_MAPPING = { + 'peak.allocated': 'peakAllocated', + 'total.allocated': 'totalAllocated', + 'startup.allocated': 'startupAllocated', + 'replication.backlog': 'replicationBacklog', + 'clients.slaves': 'clientsReplicas', + 'clients.normal': 'clientsNormal', + 'aof.buffer': 'aofBuffer', + 'lua.caches': 'luaCaches', + 'overhead.total': 'overheadTotal', + 'keys.count': 'keysCount', + 'keys.bytes-per-key': 'keysBytesPerKey', + 'dataset.bytes': 'datasetBytes', + 'dataset.percentage': 'datasetPercentage', + 'peak.percentage': 'peakPercentage', + 'allocator.allocated': 'allocatorAllocated', + 'allocator.active': 'allocatorActive', + 'allocator.resident': 'allocatorResident', + 'allocator-fragmentation.ratio': 'allocatorFragmentationRatio', + 'allocator-fragmentation.bytes': 'allocatorFragmentationBytes', + 'allocator-rss.ratio': 'allocatorRssRatio', + 'allocator-rss.bytes': 'allocatorRssBytes', + 'rss-overhead.ratio': 'rssOverheadRatio', + 'rss-overhead.bytes': 'rssOverheadBytes', + 'fragmentation': 'fragmentation', + 'fragmentation.bytes': 'fragmentationBytes' +}, DB_FIELDS_MAPPING = { + 'overhead.hashtable.main': 'overheadHashtableMain', + 'overhead.hashtable.expires': 'overheadHashtableExpires' +}; +function transformReply(rawReply) { + const reply = { + db: {} + }; + for (let i = 0; i < rawReply.length; i += 2) { + const key = rawReply[i]; + if (key.startsWith('db.')) { + const dbTuples = rawReply[i + 1], db = {}; + for (let j = 0; j < dbTuples.length; j += 2) { + db[DB_FIELDS_MAPPING[dbTuples[j]]] = dbTuples[j + 1]; + } + reply.db[key.substring(3)] = db; + continue; + } + reply[FIELDS_MAPPING[key]] = Number(rawReply[i + 1]); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.d.ts b/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.d.ts new file mode 100644 index 0000000..274788a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.d.ts @@ -0,0 +1,8 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface MemoryUsageOptions { + SAMPLES?: number; +} +export declare function transformArguments(key: string, options?: MemoryUsageOptions): Array; +export declare function transformReply(): number | null; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js b/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js new file mode 100644 index 0000000..043d874 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MEMORY_USAGE.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + const args = ['MEMORY', 'USAGE', key]; + if (options?.SAMPLES) { + args.push('SAMPLES', options.SAMPLES.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MGET.d.ts b/node_modules/@redis/client/dist/lib/commands/MGET.d.ts new file mode 100644 index 0000000..e657213 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MGET.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/MGET.js b/node_modules/@redis/client/dist/lib/commands/MGET.js new file mode 100644 index 0000000..4ef34d8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MGET.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return ['MGET', ...keys]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MIGRATE.d.ts b/node_modules/@redis/client/dist/lib/commands/MIGRATE.d.ts new file mode 100644 index 0000000..548ff18 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MIGRATE.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { AuthOptions } from './AUTH'; +interface MigrateOptions { + COPY?: true; + REPLACE?: true; + AUTH?: AuthOptions; +} +export declare function transformArguments(host: RedisCommandArgument, port: number, key: RedisCommandArgument | Array, destinationDb: number, timeout: number, options?: MigrateOptions): RedisCommandArguments; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/MIGRATE.js b/node_modules/@redis/client/dist/lib/commands/MIGRATE.js new file mode 100644 index 0000000..2c38fb1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MIGRATE.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(host, port, key, destinationDb, timeout, options) { + const args = ['MIGRATE', host, port.toString()], isKeyArray = Array.isArray(key); + if (isKeyArray) { + args.push(''); + } + else { + args.push(key); + } + args.push(destinationDb.toString(), timeout.toString()); + if (options?.COPY) { + args.push('COPY'); + } + if (options?.REPLACE) { + args.push('REPLACE'); + } + if (options?.AUTH) { + if (options.AUTH.username) { + args.push('AUTH2', options.AUTH.username, options.AUTH.password); + } + else { + args.push('AUTH', options.AUTH.password); + } + } + if (isKeyArray) { + args.push('KEYS', ...key); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.d.ts b/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js b/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js new file mode 100644 index 0000000..4fe8c5b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_LIST.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['MODULE', 'LIST']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.d.ts b/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.d.ts new file mode 100644 index 0000000..f25f608 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(path: string, moduleArgs?: Array): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js b/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js new file mode 100644 index 0000000..34aeb4b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_LOAD.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(path, moduleArgs) { + const args = ['MODULE', 'LOAD', path]; + if (moduleArgs) { + args.push(...moduleArgs); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.d.ts b/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.d.ts new file mode 100644 index 0000000..ab218f9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(name: string): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js b/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js new file mode 100644 index 0000000..dbc9ac7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MODULE_UNLOAD.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(name) { + return ['MODULE', 'UNLOAD', name]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MOVE.d.ts b/node_modules/@redis/client/dist/lib/commands/MOVE.d.ts new file mode 100644 index 0000000..88d4956 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MOVE.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, db: number): Array; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/MOVE.js b/node_modules/@redis/client/dist/lib/commands/MOVE.js new file mode 100644 index 0000000..20c9b79 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MOVE.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, db) { + return ['MOVE', key, db.toString()]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/MSET.d.ts b/node_modules/@redis/client/dist/lib/commands/MSET.d.ts new file mode 100644 index 0000000..75d7cd1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MSET.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export type MSetArguments = Array<[RedisCommandArgument, RedisCommandArgument]> | Array | Record; +export declare function transformArguments(toSet: MSetArguments): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/MSET.js b/node_modules/@redis/client/dist/lib/commands/MSET.js new file mode 100644 index 0000000..7662311 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MSET.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toSet) { + const args = ['MSET']; + if (Array.isArray(toSet)) { + args.push(...toSet.flat()); + } + else { + for (const key of Object.keys(toSet)) { + args.push(key, toSet[key]); + } + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/MSETNX.d.ts b/node_modules/@redis/client/dist/lib/commands/MSETNX.d.ts new file mode 100644 index 0000000..cac4eae --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MSETNX.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { MSetArguments } from './MSET'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(toSet: MSetArguments): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/MSETNX.js b/node_modules/@redis/client/dist/lib/commands/MSETNX.js new file mode 100644 index 0000000..5ce398a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/MSETNX.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toSet) { + const args = ['MSETNX']; + if (Array.isArray(toSet)) { + args.push(...toSet.flat()); + } + else { + for (const key of Object.keys(toSet)) { + args.push(key, toSet[key]); + } + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.d.ts b/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.d.ts new file mode 100644 index 0000000..e9929b7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): string | null; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js b/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js new file mode 100644 index 0000000..2b493bc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_ENCODING.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'ENCODING', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.d.ts b/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.d.ts new file mode 100644 index 0000000..745bcb2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js b/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js new file mode 100644 index 0000000..8b20400 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_FREQ.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'FREQ', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.d.ts b/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.d.ts new file mode 100644 index 0000000..745bcb2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js b/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js new file mode 100644 index 0000000..d5f1144 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_IDLETIME.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'IDLETIME', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.d.ts new file mode 100644 index 0000000..745bcb2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js b/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js new file mode 100644 index 0000000..7ae4d66 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/OBJECT_REFCOUNT.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'REFCOUNT', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PERSIST.d.ts b/node_modules/@redis/client/dist/lib/commands/PERSIST.d.ts new file mode 100644 index 0000000..6da96dc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PERSIST.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/PERSIST.js b/node_modules/@redis/client/dist/lib/commands/PERSIST.js new file mode 100644 index 0000000..0430a7f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PERSIST.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['PERSIST', key]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIRE.d.ts b/node_modules/@redis/client/dist/lib/commands/PEXPIRE.d.ts new file mode 100644 index 0000000..2285fc3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIRE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, milliseconds: number, mode?: 'NX' | 'XX' | 'GT' | 'LT'): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIRE.js b/node_modules/@redis/client/dist/lib/commands/PEXPIRE.js new file mode 100644 index 0000000..6203297 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIRE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, milliseconds, mode) { + const args = ['PEXPIRE', key, milliseconds.toString()]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.d.ts b/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.d.ts new file mode 100644 index 0000000..0d3557a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, millisecondsTimestamp: number | Date, mode?: 'NX' | 'XX' | 'GT' | 'LT'): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js b/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js new file mode 100644 index 0000000..67318b0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIREAT.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, millisecondsTimestamp, mode) { + const args = [ + 'PEXPIREAT', + key, + (0, generic_transformers_1.transformPXAT)(millisecondsTimestamp) + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.d.ts b/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.d.ts new file mode 100644 index 0000000..c35a19c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js b/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js new file mode 100644 index 0000000..30ab6d9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PEXPIRETIME.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['PEXPIRETIME', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PFADD.d.ts b/node_modules/@redis/client/dist/lib/commands/PFADD.d.ts new file mode 100644 index 0000000..194c7c1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFADD.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument | Array): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/PFADD.js b/node_modules/@redis/client/dist/lib/commands/PFADD.js new file mode 100644 index 0000000..9c474a7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFADD.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFADD', key], element); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/PFCOUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/PFCOUNT.d.ts new file mode 100644 index 0000000..13e0651 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFCOUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/PFCOUNT.js b/node_modules/@redis/client/dist/lib/commands/PFCOUNT.js new file mode 100644 index 0000000..3a7a1da --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFCOUNT.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFCOUNT'], key); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PFMERGE.d.ts b/node_modules/@redis/client/dist/lib/commands/PFMERGE.d.ts new file mode 100644 index 0000000..d406d16 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFMERGE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(destination: string, source: string | Array): RedisCommandArguments; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/PFMERGE.js b/node_modules/@redis/client/dist/lib/commands/PFMERGE.js new file mode 100644 index 0000000..48305f9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PFMERGE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, source) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFMERGE', destination], source); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PING.d.ts b/node_modules/@redis/client/dist/lib/commands/PING.d.ts new file mode 100644 index 0000000..7b7545d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PING.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformArguments(message?: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/PING.js b/node_modules/@redis/client/dist/lib/commands/PING.js new file mode 100644 index 0000000..cfc7297 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PING.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(message) { + const args = ['PING']; + if (message) { + args.push(message); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PSETEX.d.ts b/node_modules/@redis/client/dist/lib/commands/PSETEX.d.ts new file mode 100644 index 0000000..167d175 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PSETEX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, milliseconds: number, value: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/PSETEX.js b/node_modules/@redis/client/dist/lib/commands/PSETEX.js new file mode 100644 index 0000000..c3e7b8d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PSETEX.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, milliseconds, value) { + return [ + 'PSETEX', + key, + milliseconds.toString(), + value + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PTTL.d.ts b/node_modules/@redis/client/dist/lib/commands/PTTL.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PTTL.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/PTTL.js b/node_modules/@redis/client/dist/lib/commands/PTTL.js new file mode 100644 index 0000000..c7e9cfc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PTTL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['PTTL', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBLISH.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBLISH.d.ts new file mode 100644 index 0000000..e636aa0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBLISH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(channel: RedisCommandArgument, message: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBLISH.js b/node_modules/@redis/client/dist/lib/commands/PUBLISH.js new file mode 100644 index 0000000..b2ca1b5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBLISH.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(channel, message) { + return ['PUBLISH', channel, message]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.d.ts new file mode 100644 index 0000000..e892c7b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(pattern?: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js b/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js new file mode 100644 index 0000000..f717e98 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_CHANNELS.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(pattern) { + const args = ['PUBSUB', 'CHANNELS']; + if (pattern) { + args.push(pattern); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.d.ts new file mode 100644 index 0000000..c3c75ec --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js new file mode 100644 index 0000000..81102b2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMPAT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['PUBSUB', 'NUMPAT']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.d.ts new file mode 100644 index 0000000..22ba677 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(channels?: Array | RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(rawReply: Array): Record; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js new file mode 100644 index 0000000..c4671b2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_NUMSUB.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments(channels) { + const args = ['PUBSUB', 'NUMSUB']; + if (channels) + return (0, generic_transformers_1.pushVerdictArguments)(args, channels); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const transformedReply = Object.create(null); + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply[rawReply[i]] = rawReply[i + 1]; + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.d.ts new file mode 100644 index 0000000..548c5fe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(pattern?: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js new file mode 100644 index 0000000..3b32c6b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDCHANNELS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(pattern) { + const args = ['PUBSUB', 'SHARDCHANNELS']; + if (pattern) + args.push(pattern); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.d.ts b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.d.ts new file mode 100644 index 0000000..22ba677 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(channels?: Array | RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(rawReply: Array): Record; diff --git a/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js new file mode 100644 index 0000000..0d32b64 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/PUBSUB_SHARDNUMSUB.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments(channels) { + const args = ['PUBSUB', 'SHARDNUMSUB']; + if (channels) + return (0, generic_transformers_1.pushVerdictArguments)(args, channels); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const transformedReply = Object.create(null); + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply[rawReply[i]] = rawReply[i + 1]; + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.d.ts b/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.d.ts new file mode 100644 index 0000000..5214486 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js b/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js new file mode 100644 index 0000000..34f6e1a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RANDOMKEY.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['RANDOMKEY']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/READONLY.d.ts b/node_modules/@redis/client/dist/lib/commands/READONLY.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/READONLY.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/READONLY.js b/node_modules/@redis/client/dist/lib/commands/READONLY.js new file mode 100644 index 0000000..1615646 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/READONLY.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['READONLY']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/READWRITE.d.ts b/node_modules/@redis/client/dist/lib/commands/READWRITE.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/READWRITE.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/READWRITE.js b/node_modules/@redis/client/dist/lib/commands/READWRITE.js new file mode 100644 index 0000000..10a4f88 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/READWRITE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['READWRITE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RENAME.d.ts b/node_modules/@redis/client/dist/lib/commands/RENAME.d.ts new file mode 100644 index 0000000..05cdf04 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RENAME.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, newKey: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/RENAME.js b/node_modules/@redis/client/dist/lib/commands/RENAME.js new file mode 100644 index 0000000..5148f7a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RENAME.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, newKey) { + return ['RENAME', key, newKey]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RENAMENX.d.ts b/node_modules/@redis/client/dist/lib/commands/RENAMENX.d.ts new file mode 100644 index 0000000..396dad0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RENAMENX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, newKey: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/RENAMENX.js b/node_modules/@redis/client/dist/lib/commands/RENAMENX.js new file mode 100644 index 0000000..1c5276a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RENAMENX.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, newKey) { + return ['RENAMENX', key, newKey]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/REPLICAOF.d.ts b/node_modules/@redis/client/dist/lib/commands/REPLICAOF.d.ts new file mode 100644 index 0000000..b40e18c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/REPLICAOF.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(host: string, port: number): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/REPLICAOF.js b/node_modules/@redis/client/dist/lib/commands/REPLICAOF.js new file mode 100644 index 0000000..1194dbf --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/REPLICAOF.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(host, port) { + return ['REPLICAOF', host, port.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.d.ts b/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js b/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js new file mode 100644 index 0000000..6c636b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RESTORE-ASKING.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['RESTORE-ASKING']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RESTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/RESTORE.d.ts new file mode 100644 index 0000000..97a8dc3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RESTORE.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface RestoreOptions { + REPLACE?: true; + ABSTTL?: true; + IDLETIME?: number; + FREQ?: number; +} +export declare function transformArguments(key: RedisCommandArgument, ttl: number, serializedValue: RedisCommandArgument, options?: RestoreOptions): RedisCommandArguments; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/RESTORE.js b/node_modules/@redis/client/dist/lib/commands/RESTORE.js new file mode 100644 index 0000000..86c9662 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RESTORE.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, ttl, serializedValue, options) { + const args = ['RESTORE', key, ttl.toString(), serializedValue]; + if (options?.REPLACE) { + args.push('REPLACE'); + } + if (options?.ABSTTL) { + args.push('ABSTTL'); + } + if (options?.IDLETIME) { + args.push('IDLETIME', options.IDLETIME.toString()); + } + if (options?.FREQ) { + args.push('FREQ', options.FREQ.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ROLE.d.ts b/node_modules/@redis/client/dist/lib/commands/ROLE.d.ts new file mode 100644 index 0000000..c6ca68a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ROLE.d.ts @@ -0,0 +1,32 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +interface RoleReplyInterface { + role: T; +} +type RoleMasterRawReply = ['master', number, Array<[string, string, string]>]; +interface RoleMasterReply extends RoleReplyInterface<'master'> { + replicationOffest: number; + replicas: Array<{ + ip: string; + port: number; + replicationOffest: number; + }>; +} +type RoleReplicaState = 'connect' | 'connecting' | 'sync' | 'connected'; +type RoleReplicaRawReply = ['slave', string, number, RoleReplicaState, number]; +interface RoleReplicaReply extends RoleReplyInterface<'slave'> { + master: { + ip: string; + port: number; + }; + state: RoleReplicaState; + dataReceived: number; +} +type RoleSentinelRawReply = ['sentinel', Array]; +interface RoleSentinelReply extends RoleReplyInterface<'sentinel'> { + masterNames: Array; +} +type RoleRawReply = RoleMasterRawReply | RoleReplicaRawReply | RoleSentinelRawReply; +type RoleReply = RoleMasterReply | RoleReplicaReply | RoleSentinelReply; +export declare function transformReply(reply: RoleRawReply): RoleReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ROLE.js b/node_modules/@redis/client/dist/lib/commands/ROLE.js new file mode 100644 index 0000000..30ede94 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ROLE.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['ROLE']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + switch (reply[0]) { + case 'master': + return { + role: 'master', + replicationOffest: reply[1], + replicas: reply[2].map(([ip, port, replicationOffest]) => ({ + ip, + port: Number(port), + replicationOffest: Number(replicationOffest) + })) + }; + case 'slave': + return { + role: 'slave', + master: { + ip: reply[1], + port: reply[2] + }, + state: reply[3], + dataReceived: reply[4] + }; + case 'sentinel': + return { + role: 'sentinel', + masterNames: reply[1] + }; + } +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/RPOP.d.ts new file mode 100644 index 0000000..15f87fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOP.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOP.js b/node_modules/@redis/client/dist/lib/commands/RPOP.js new file mode 100644 index 0000000..b5c9543 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOP.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['RPOP', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.d.ts new file mode 100644 index 0000000..86c0fad --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js b/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js new file mode 100644 index 0000000..d314c3d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOPLPUSH.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination) { + return ['RPOPLPUSH', source, destination]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.d.ts new file mode 100644 index 0000000..e48bfcb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export declare function transformReply(): Array | null; diff --git a/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js b/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js new file mode 100644 index 0000000..baf43bd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPOP_COUNT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + return ['RPOP', key, count.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RPUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/RPUSH.d.ts new file mode 100644 index 0000000..ce8878e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPUSH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/RPUSH.js b/node_modules/@redis/client/dist/lib/commands/RPUSH.js new file mode 100644 index 0000000..58b9de5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPUSH.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['RPUSH', key], element); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/RPUSHX.d.ts b/node_modules/@redis/client/dist/lib/commands/RPUSHX.d.ts new file mode 100644 index 0000000..ce8878e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPUSHX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, element: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/RPUSHX.js b/node_modules/@redis/client/dist/lib/commands/RPUSHX.js new file mode 100644 index 0000000..1eec61d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/RPUSHX.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['RPUSHX', key], element); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SADD.d.ts b/node_modules/@redis/client/dist/lib/commands/SADD.d.ts new file mode 100644 index 0000000..7586a6d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SADD.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, members: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SADD.js b/node_modules/@redis/client/dist/lib/commands/SADD.js new file mode 100644 index 0000000..f4b2072 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SADD.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return (0, generic_transformers_1.pushVerdictArguments)(['SADD', key], members); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SAVE.d.ts b/node_modules/@redis/client/dist/lib/commands/SAVE.d.ts new file mode 100644 index 0000000..3e8dbce --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SAVE.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArgument } from '.'; +export declare function transformArguments(): Array; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/SAVE.js b/node_modules/@redis/client/dist/lib/commands/SAVE.js new file mode 100644 index 0000000..051bb9c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SAVE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['SAVE']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SCAN.d.ts b/node_modules/@redis/client/dist/lib/commands/SCAN.d.ts new file mode 100644 index 0000000..0c95616 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCAN.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ScanOptions } from './generic-transformers'; +export declare const IS_READ_ONLY = true; +export interface ScanCommandOptions extends ScanOptions { + TYPE?: RedisCommandArgument; +} +export declare function transformArguments(cursor: number, options?: ScanCommandOptions): RedisCommandArguments; +type ScanRawReply = [string, Array]; +export interface ScanReply { + cursor: number; + keys: Array; +} +export declare function transformReply([cursor, keys]: ScanRawReply): ScanReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/SCAN.js b/node_modules/@redis/client/dist/lib/commands/SCAN.js new file mode 100644 index 0000000..584b4b0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCAN.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments(cursor, options) { + const args = (0, generic_transformers_1.pushScanArguments)(['SCAN'], cursor, options); + if (options?.TYPE) { + args.push('TYPE', options.TYPE); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply([cursor, keys]) { + return { + cursor: Number(cursor), + keys + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/SCARD.d.ts b/node_modules/@redis/client/dist/lib/commands/SCARD.d.ts new file mode 100644 index 0000000..c1eb736 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCARD.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SCARD.js b/node_modules/@redis/client/dist/lib/commands/SCARD.js new file mode 100644 index 0000000..4a1bdab --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCARD.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SCARD', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.d.ts b/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.d.ts new file mode 100644 index 0000000..56af8af --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(mode: 'YES' | 'SYNC' | 'NO'): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js b/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js new file mode 100644 index 0000000..15b9a0b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_DEBUG.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + return ['SCRIPT', 'DEBUG', mode]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.d.ts b/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.d.ts new file mode 100644 index 0000000..12fc6da --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '.'; +export declare function transformArguments(sha1: string | Array): RedisCommandArguments; +export { transformBooleanArrayReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js b/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js new file mode 100644 index 0000000..475c3b5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_EXISTS.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = require("./generic-transformers"); +function transformArguments(sha1) { + return (0, generic_transformers_1.pushVerdictArguments)(['SCRIPT', 'EXISTS'], sha1); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.d.ts b/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.d.ts new file mode 100644 index 0000000..8675eff --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(mode?: 'ASYNC' | 'SYNC'): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js b/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js new file mode 100644 index 0000000..207885f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_FLUSH.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['SCRIPT', 'FLUSH']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.d.ts b/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js b/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js new file mode 100644 index 0000000..33b5ea0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_KILL.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['SCRIPT', 'KILL']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.d.ts b/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.d.ts new file mode 100644 index 0000000..8995e3e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(script: string): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js b/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js new file mode 100644 index 0000000..41c0836 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SCRIPT_LOAD.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(script) { + return ['SCRIPT', 'LOAD', script]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SDIFF.d.ts b/node_modules/@redis/client/dist/lib/commands/SDIFF.d.ts new file mode 100644 index 0000000..354b335 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SDIFF.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SDIFF.js b/node_modules/@redis/client/dist/lib/commands/SDIFF.js new file mode 100644 index 0000000..10b3d18 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SDIFF.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SDIFF'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.d.ts new file mode 100644 index 0000000..cc3d9ec --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(destination: RedisCommandArgument, keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js b/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js new file mode 100644 index 0000000..c5dba76 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SDIFFSTORE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SDIFFSTORE', destination], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SET.d.ts b/node_modules/@redis/client/dist/lib/commands/SET.d.ts new file mode 100644 index 0000000..f7a2a2b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SET.d.ts @@ -0,0 +1,23 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +type MaximumOneOf = K extends keyof T ? { + [P in K]?: T[K]; +} & Partial, never>> : never; +type SetTTL = MaximumOneOf<{ + EX: number; + PX: number; + EXAT: number; + PXAT: number; + KEEPTTL: true; +}>; +type SetGuards = MaximumOneOf<{ + NX: true; + XX: true; +}>; +interface SetCommonOptions { + GET?: true; +} +export type SetOptions = SetTTL & SetGuards & SetCommonOptions; +export declare function transformArguments(key: RedisCommandArgument, value: RedisCommandArgument | number, options?: SetOptions): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/SET.js b/node_modules/@redis/client/dist/lib/commands/SET.js new file mode 100644 index 0000000..5470edb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SET.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + const args = [ + 'SET', + key, + typeof value === 'number' ? value.toString() : value + ]; + if (options?.EX !== undefined) { + args.push('EX', options.EX.toString()); + } + else if (options?.PX !== undefined) { + args.push('PX', options.PX.toString()); + } + else if (options?.EXAT !== undefined) { + args.push('EXAT', options.EXAT.toString()); + } + else if (options?.PXAT !== undefined) { + args.push('PXAT', options.PXAT.toString()); + } + else if (options?.KEEPTTL) { + args.push('KEEPTTL'); + } + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + if (options?.GET) { + args.push('GET'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SETBIT.d.ts b/node_modules/@redis/client/dist/lib/commands/SETBIT.d.ts new file mode 100644 index 0000000..e1bb713 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETBIT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { BitValue } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, offset: number, value: BitValue): RedisCommandArguments; +export declare function transformReply(): BitValue; diff --git a/node_modules/@redis/client/dist/lib/commands/SETBIT.js b/node_modules/@redis/client/dist/lib/commands/SETBIT.js new file mode 100644 index 0000000..87882a2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETBIT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, offset, value) { + return ['SETBIT', key, offset.toString(), value.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SETEX.d.ts b/node_modules/@redis/client/dist/lib/commands/SETEX.d.ts new file mode 100644 index 0000000..a89b023 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETEX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, seconds: number, value: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/SETEX.js b/node_modules/@redis/client/dist/lib/commands/SETEX.js new file mode 100644 index 0000000..4c61175 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETEX.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, seconds, value) { + return [ + 'SETEX', + key, + seconds.toString(), + value + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SETNX.d.ts b/node_modules/@redis/client/dist/lib/commands/SETNX.d.ts new file mode 100644 index 0000000..fd42e1d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETNX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, value: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/SETNX.js b/node_modules/@redis/client/dist/lib/commands/SETNX.js new file mode 100644 index 0000000..6745e4b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETNX.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['SETNX', key, value]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/SETRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/SETRANGE.d.ts new file mode 100644 index 0000000..b8239a6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETRANGE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, offset: number, value: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SETRANGE.js b/node_modules/@redis/client/dist/lib/commands/SETRANGE.js new file mode 100644 index 0000000..2d8502e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SETRANGE.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, offset, value) { + return ['SETRANGE', key, offset.toString(), value]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.d.ts b/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.d.ts new file mode 100644 index 0000000..88018cd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(mode?: 'NOSAVE' | 'SAVE'): Array; +export declare function transformReply(): void; diff --git a/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.js b/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.js new file mode 100644 index 0000000..05ab37d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SHUTDOWN.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['SHUTDOWN']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTER.d.ts b/node_modules/@redis/client/dist/lib/commands/SINTER.d.ts new file mode 100644 index 0000000..354b335 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTER.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTER.js b/node_modules/@redis/client/dist/lib/commands/SINTER.js new file mode 100644 index 0000000..5af0ecd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SINTER'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTERCARD.d.ts b/node_modules/@redis/client/dist/lib/commands/SINTERCARD.d.ts new file mode 100644 index 0000000..1606dd4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTERCARD.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: Array | RedisCommandArgument, limit?: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTERCARD.js b/node_modules/@redis/client/dist/lib/commands/SINTERCARD.js new file mode 100644 index 0000000..449b2b2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTERCARD.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, limit) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['SINTERCARD'], keys); + if (limit) { + args.push('LIMIT', limit.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.d.ts new file mode 100644 index 0000000..044a3a2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(destination: RedisCommandArgument, keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js b/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js new file mode 100644 index 0000000..c0b5e60 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SINTERSTORE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SINTERSTORE', destination], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SISMEMBER.d.ts b/node_modules/@redis/client/dist/lib/commands/SISMEMBER.d.ts new file mode 100644 index 0000000..c9f4031 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SISMEMBER.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/SISMEMBER.js b/node_modules/@redis/client/dist/lib/commands/SISMEMBER.js new file mode 100644 index 0000000..0baffee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SISMEMBER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, member) { + return ['SISMEMBER', key, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/SMEMBERS.d.ts b/node_modules/@redis/client/dist/lib/commands/SMEMBERS.d.ts new file mode 100644 index 0000000..b5c1c09 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMEMBERS.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SMEMBERS.js b/node_modules/@redis/client/dist/lib/commands/SMEMBERS.js new file mode 100644 index 0000000..ac54aba --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMEMBERS.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SMEMBERS', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.d.ts b/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.d.ts new file mode 100644 index 0000000..a17d5f6 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, members: Array): RedisCommandArguments; +export { transformBooleanArrayReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js b/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js new file mode 100644 index 0000000..dfa5ae3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMISMEMBER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return ['SMISMEMBER', key, ...members]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/SMOVE.d.ts b/node_modules/@redis/client/dist/lib/commands/SMOVE.d.ts new file mode 100644 index 0000000..7eee513 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMOVE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: RedisCommandArgument, destination: RedisCommandArgument, member: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/SMOVE.js b/node_modules/@redis/client/dist/lib/commands/SMOVE.js new file mode 100644 index 0000000..be14ce7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SMOVE.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, member) { + return ['SMOVE', source, destination, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/SORT.d.ts b/node_modules/@redis/client/dist/lib/commands/SORT.d.ts new file mode 100644 index 0000000..f63a21d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { SortOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, options?: SortOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SORT.js b/node_modules/@redis/client/dist/lib/commands/SORT.js new file mode 100644 index 0000000..706a57d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + return (0, generic_transformers_1.pushSortArguments)(['SORT', key], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SORT_RO.d.ts b/node_modules/@redis/client/dist/lib/commands/SORT_RO.d.ts new file mode 100644 index 0000000..d00bd97 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT_RO.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArguments } from '.'; +import { SortOptions } from "./generic-transformers"; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, options?: SortOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SORT_RO.js b/node_modules/@redis/client/dist/lib/commands/SORT_RO.js new file mode 100644 index 0000000..d8fa37d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT_RO.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + return (0, generic_transformers_1.pushSortArguments)(['SORT_RO', key], options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SORT_STORE.d.ts b/node_modules/@redis/client/dist/lib/commands/SORT_STORE.d.ts new file mode 100644 index 0000000..8d6b555 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT_STORE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { SortOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(source: string, destination: string, options?: SortOptions): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SORT_STORE.js b/node_modules/@redis/client/dist/lib/commands/SORT_STORE.js new file mode 100644 index 0000000..b5bc7ad --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SORT_STORE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const SORT_1 = require("./SORT"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, options) { + const args = (0, SORT_1.transformArguments)(source, options); + args.push('STORE', destination); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/SPOP.d.ts new file mode 100644 index 0000000..72cf152 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SPOP.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, count?: number): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SPOP.js b/node_modules/@redis/client/dist/lib/commands/SPOP.js new file mode 100644 index 0000000..51d8244 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SPOP.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + const args = ['SPOP', key]; + if (typeof count === 'number') { + args.push(count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SPUBLISH.d.ts b/node_modules/@redis/client/dist/lib/commands/SPUBLISH.d.ts new file mode 100644 index 0000000..d3d20d3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SPUBLISH.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const IS_READ_ONLY = true; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(channel: RedisCommandArgument, message: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SPUBLISH.js b/node_modules/@redis/client/dist/lib/commands/SPUBLISH.js new file mode 100644 index 0000000..8a18640 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SPUBLISH.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(channel, message) { + return ['SPUBLISH', channel, message]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.d.ts b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.d.ts new file mode 100644 index 0000000..15f87fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js new file mode 100644 index 0000000..cfd1cb3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SRANDMEMBER', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.d.ts new file mode 100644 index 0000000..b149d68 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX } from './SRANDMEMBER'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js new file mode 100644 index 0000000..6e0c4a3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SRANDMEMBER_COUNT.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const SRANDMEMBER_1 = require("./SRANDMEMBER"); +var SRANDMEMBER_2 = require("./SRANDMEMBER"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return SRANDMEMBER_2.FIRST_KEY_INDEX; } }); +function transformArguments(key, count) { + return [ + ...(0, SRANDMEMBER_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SREM.d.ts b/node_modules/@redis/client/dist/lib/commands/SREM.d.ts new file mode 100644 index 0000000..7586a6d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SREM.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, members: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SREM.js b/node_modules/@redis/client/dist/lib/commands/SREM.js new file mode 100644 index 0000000..121b1ef --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SREM.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return (0, generic_transformers_1.pushVerdictArguments)(['SREM', key], members); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SSCAN.d.ts b/node_modules/@redis/client/dist/lib/commands/SSCAN.d.ts new file mode 100644 index 0000000..b8bea7b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SSCAN.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ScanOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, cursor: number, options?: ScanOptions): RedisCommandArguments; +type SScanRawReply = [string, Array]; +interface SScanReply { + cursor: number; + members: Array; +} +export declare function transformReply([cursor, members]: SScanRawReply): SScanReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/SSCAN.js b/node_modules/@redis/client/dist/lib/commands/SSCAN.js new file mode 100644 index 0000000..e14f086 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SSCAN.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'SSCAN', + key, + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, members]) { + return { + cursor: Number(cursor), + members + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/STRLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/STRLEN.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/STRLEN.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/STRLEN.js b/node_modules/@redis/client/dist/lib/commands/STRLEN.js new file mode 100644 index 0000000..4786064 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/STRLEN.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['STRLEN', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SUNION.d.ts b/node_modules/@redis/client/dist/lib/commands/SUNION.d.ts new file mode 100644 index 0000000..354b335 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SUNION.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/SUNION.js b/node_modules/@redis/client/dist/lib/commands/SUNION.js new file mode 100644 index 0000000..d3d7521 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SUNION.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SUNION'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.d.ts new file mode 100644 index 0000000..cc3d9ec --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(destination: RedisCommandArgument, keys: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js b/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js new file mode 100644 index 0000000..93d85fd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SUNIONSTORE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SUNIONSTORE', destination], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/SWAPDB.d.ts b/node_modules/@redis/client/dist/lib/commands/SWAPDB.d.ts new file mode 100644 index 0000000..21e7bbd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SWAPDB.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(index1: number, index2: number): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/SWAPDB.js b/node_modules/@redis/client/dist/lib/commands/SWAPDB.js new file mode 100644 index 0000000..4967529 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/SWAPDB.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(index1, index2) { + return ['SWAPDB', index1.toString(), index2.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/TIME.d.ts b/node_modules/@redis/client/dist/lib/commands/TIME.d.ts new file mode 100644 index 0000000..806bc25 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TIME.d.ts @@ -0,0 +1,6 @@ +export declare function transformArguments(): Array; +interface TimeReply extends Date { + microseconds: number; +} +export declare function transformReply(reply: [string, string]): TimeReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/TIME.js b/node_modules/@redis/client/dist/lib/commands/TIME.js new file mode 100644 index 0000000..087bc18 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TIME.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['TIME']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const seconds = Number(reply[0]), microseconds = Number(reply[1]), d = new Date(seconds * 1000 + microseconds / 1000); + d.microseconds = microseconds; + return d; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/TOUCH.d.ts b/node_modules/@redis/client/dist/lib/commands/TOUCH.d.ts new file mode 100644 index 0000000..13e0651 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TOUCH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/TOUCH.js b/node_modules/@redis/client/dist/lib/commands/TOUCH.js new file mode 100644 index 0000000..96fe9fe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TOUCH.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOUCH'], key); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/TTL.d.ts b/node_modules/@redis/client/dist/lib/commands/TTL.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TTL.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/TTL.js b/node_modules/@redis/client/dist/lib/commands/TTL.js new file mode 100644 index 0000000..7a3949f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TTL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TTL', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/TYPE.d.ts b/node_modules/@redis/client/dist/lib/commands/TYPE.d.ts new file mode 100644 index 0000000..021d48e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TYPE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/TYPE.js b/node_modules/@redis/client/dist/lib/commands/TYPE.js new file mode 100644 index 0000000..53b79e7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/TYPE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TYPE', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/UNLINK.d.ts b/node_modules/@redis/client/dist/lib/commands/UNLINK.d.ts new file mode 100644 index 0000000..13e0651 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/UNLINK.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/UNLINK.js b/node_modules/@redis/client/dist/lib/commands/UNLINK.js new file mode 100644 index 0000000..7e8591c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/UNLINK.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['UNLINK'], key); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/UNWATCH.d.ts b/node_modules/@redis/client/dist/lib/commands/UNWATCH.d.ts new file mode 100644 index 0000000..f7ef9c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/UNWATCH.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/UNWATCH.js b/node_modules/@redis/client/dist/lib/commands/UNWATCH.js new file mode 100644 index 0000000..085fec8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/UNWATCH.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['UNWATCH']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/WAIT.d.ts b/node_modules/@redis/client/dist/lib/commands/WAIT.d.ts new file mode 100644 index 0000000..3b9e386 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/WAIT.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(numberOfReplicas: number, timeout: number): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/WAIT.js b/node_modules/@redis/client/dist/lib/commands/WAIT.js new file mode 100644 index 0000000..ad980ee --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/WAIT.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(numberOfReplicas, timeout) { + return ['WAIT', numberOfReplicas.toString(), timeout.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/WATCH.d.ts b/node_modules/@redis/client/dist/lib/commands/WATCH.d.ts new file mode 100644 index 0000000..2408532 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/WATCH.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string | Array): RedisCommandArguments; +export declare function transformReply(): string; diff --git a/node_modules/@redis/client/dist/lib/commands/WATCH.js b/node_modules/@redis/client/dist/lib/commands/WATCH.js new file mode 100644 index 0000000..2e4048a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/WATCH.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['WATCH'], key); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XACK.d.ts b/node_modules/@redis/client/dist/lib/commands/XACK.d.ts new file mode 100644 index 0000000..706f075 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XACK.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, id: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/XACK.js b/node_modules/@redis/client/dist/lib/commands/XACK.js new file mode 100644 index 0000000..07bd8db --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XACK.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, id) { + return (0, generic_transformers_1.pushVerdictArguments)(['XACK', key, group], id); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XADD.d.ts b/node_modules/@redis/client/dist/lib/commands/XADD.d.ts new file mode 100644 index 0000000..a5fee51 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XADD.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface XAddOptions { + NOMKSTREAM?: true; + TRIM?: { + strategy?: 'MAXLEN' | 'MINID'; + strategyModifier?: '=' | '~'; + threshold: number; + limit?: number; + }; +} +export declare function transformArguments(key: RedisCommandArgument, id: RedisCommandArgument, message: Record, options?: XAddOptions): RedisCommandArguments; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XADD.js b/node_modules/@redis/client/dist/lib/commands/XADD.js new file mode 100644 index 0000000..3eee1be --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XADD.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, id, message, options) { + const args = ['XADD', key]; + if (options?.NOMKSTREAM) { + args.push('NOMKSTREAM'); + } + if (options?.TRIM) { + if (options.TRIM.strategy) { + args.push(options.TRIM.strategy); + } + if (options.TRIM.strategyModifier) { + args.push(options.TRIM.strategyModifier); + } + args.push(options.TRIM.threshold.toString()); + if (options.TRIM.limit) { + args.push('LIMIT', options.TRIM.limit.toString()); + } + } + args.push(id); + for (const [key, value] of Object.entries(message)) { + args.push(key, value); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.d.ts b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.d.ts new file mode 100644 index 0000000..c3ddaac --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { StreamMessagesNullReply } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export interface XAutoClaimOptions { + COUNT?: number; +} +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, consumer: RedisCommandArgument, minIdleTime: number, start: string, options?: XAutoClaimOptions): RedisCommandArguments; +type XAutoClaimRawReply = [RedisCommandArgument, Array]; +interface XAutoClaimReply { + nextId: RedisCommandArgument; + messages: StreamMessagesNullReply; +} +export declare function transformReply(reply: XAutoClaimRawReply): XAutoClaimReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js new file mode 100644 index 0000000..6b93781 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, consumer, minIdleTime, start, options) { + const args = ['XAUTOCLAIM', key, group, consumer, minIdleTime.toString(), start]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + nextId: reply[0], + messages: (0, generic_transformers_1.transformStreamMessagesNullReply)(reply[1]) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.d.ts b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.d.ts new file mode 100644 index 0000000..373775f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { transformArguments as transformXAutoClaimArguments } from './XAUTOCLAIM'; +export { FIRST_KEY_INDEX } from './XAUTOCLAIM'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +type XAutoClaimJustIdRawReply = [RedisCommandArgument, Array]; +interface XAutoClaimJustIdReply { + nextId: RedisCommandArgument; + messages: Array; +} +export declare function transformReply(reply: XAutoClaimJustIdRawReply): XAutoClaimJustIdReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js new file mode 100644 index 0000000..8835b47 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XAUTOCLAIM_JUSTID.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const XAUTOCLAIM_1 = require("./XAUTOCLAIM"); +var XAUTOCLAIM_2 = require("./XAUTOCLAIM"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return XAUTOCLAIM_2.FIRST_KEY_INDEX; } }); +function transformArguments(...args) { + return [ + ...(0, XAUTOCLAIM_1.transformArguments)(...args), + 'JUSTID' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + nextId: reply[0], + messages: reply[1] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XCLAIM.d.ts b/node_modules/@redis/client/dist/lib/commands/XCLAIM.d.ts new file mode 100644 index 0000000..62d5fb7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XCLAIM.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export interface XClaimOptions { + IDLE?: number; + TIME?: number | Date; + RETRYCOUNT?: number; + FORCE?: true; +} +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, consumer: RedisCommandArgument, minIdleTime: number, id: RedisCommandArgument | Array, options?: XClaimOptions): RedisCommandArguments; +export { transformStreamMessagesNullReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XCLAIM.js b/node_modules/@redis/client/dist/lib/commands/XCLAIM.js new file mode 100644 index 0000000..b30c854 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XCLAIM.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, consumer, minIdleTime, id, options) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['XCLAIM', key, group, consumer, minIdleTime.toString()], id); + if (options?.IDLE) { + args.push('IDLE', options.IDLE.toString()); + } + if (options?.TIME) { + args.push('TIME', (typeof options.TIME === 'number' ? options.TIME : options.TIME.getTime()).toString()); + } + if (options?.RETRYCOUNT) { + args.push('RETRYCOUNT', options.RETRYCOUNT.toString()); + } + if (options?.FORCE) { + args.push('FORCE'); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformStreamMessagesNullReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.d.ts b/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.d.ts new file mode 100644 index 0000000..c0a206d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { transformArguments as transformXClaimArguments } from './XCLAIM'; +export { FIRST_KEY_INDEX } from './XCLAIM'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js b/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js new file mode 100644 index 0000000..ef7093b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XCLAIM_JUSTID.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const XCLAIM_1 = require("./XCLAIM"); +var XCLAIM_2 = require("./XCLAIM"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return XCLAIM_2.FIRST_KEY_INDEX; } }); +function transformArguments(...args) { + return [ + ...(0, XCLAIM_1.transformArguments)(...args), + 'JUSTID' + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XDEL.d.ts b/node_modules/@redis/client/dist/lib/commands/XDEL.d.ts new file mode 100644 index 0000000..5b4e2d3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XDEL.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, id: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/XDEL.js b/node_modules/@redis/client/dist/lib/commands/XDEL.js new file mode 100644 index 0000000..2713cea --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XDEL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, id) { + return (0, generic_transformers_1.pushVerdictArguments)(['XDEL', key], id); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.d.ts b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.d.ts new file mode 100644 index 0000000..eb83a0c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +interface XGroupCreateOptions { + MKSTREAM?: true; +} +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, id: RedisCommandArgument, options?: XGroupCreateOptions): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js new file mode 100644 index 0000000..4aa4976 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, id, options) { + const args = ['XGROUP', 'CREATE', key, group, id]; + if (options?.MKSTREAM) { + args.push('MKSTREAM'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.d.ts b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.d.ts new file mode 100644 index 0000000..2c88f0b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, consumer: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js new file mode 100644 index 0000000..2e533de --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_CREATECONSUMER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, consumer) { + return ['XGROUP', 'CREATECONSUMER', key, group, consumer]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.d.ts b/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.d.ts new file mode 100644 index 0000000..0e433e0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, consumer: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js b/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js new file mode 100644 index 0000000..32b1bd3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_DELCONSUMER.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, consumer) { + return ['XGROUP', 'DELCONSUMER', key, group, consumer]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.d.ts b/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.d.ts new file mode 100644 index 0000000..222c00b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument): RedisCommandArguments; +export { transformBooleanReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js b/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js new file mode 100644 index 0000000..043a5f4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_DESTROY.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group) { + return ['XGROUP', 'DESTROY', key, group]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.d.ts b/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.d.ts new file mode 100644 index 0000000..3e0f98d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, id: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument; diff --git a/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js b/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js new file mode 100644 index 0000000..0accac4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XGROUP_SETID.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, id) { + return ['XGROUP', 'SETID', key, group, id]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.d.ts b/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.d.ts new file mode 100644 index 0000000..23c4ec2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument): RedisCommandArguments; +type XInfoConsumersReply = Array<{ + name: RedisCommandArgument; + pending: number; + idle: number; + inactive: number; +}>; +export declare function transformReply(rawReply: Array): XInfoConsumersReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js b/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js new file mode 100644 index 0000000..ad0ebad --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_CONSUMERS.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key, group) { + return ['XINFO', 'CONSUMERS', key, group]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return rawReply.map(consumer => ({ + name: consumer[1], + pending: consumer[3], + idle: consumer[5], + inactive: consumer[7] + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.d.ts b/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.d.ts new file mode 100644 index 0000000..35f5216 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +type XInfoGroupsReply = Array<{ + name: RedisCommandArgument; + consumers: number; + pending: number; + lastDeliveredId: RedisCommandArgument; +}>; +export declare function transformReply(rawReply: Array): XInfoGroupsReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js b/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js new file mode 100644 index 0000000..45ede76 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_GROUPS.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XINFO', 'GROUPS', key]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return rawReply.map(group => ({ + name: group[1], + consumers: group[3], + pending: group[5], + lastDeliveredId: group[7] + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.d.ts b/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.d.ts new file mode 100644 index 0000000..18fc057 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.d.ts @@ -0,0 +1,16 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { StreamMessageReply } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +interface XInfoStreamReply { + length: number; + radixTreeKeys: number; + radixTreeNodes: number; + groups: number; + lastGeneratedId: RedisCommandArgument; + firstEntry: StreamMessageReply | null; + lastEntry: StreamMessageReply | null; +} +export declare function transformReply(rawReply: Array): XInfoStreamReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js b/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js new file mode 100644 index 0000000..f636807 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XINFO_STREAM.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XINFO', 'STREAM', key]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const parsedReply = {}; + for (let i = 0; i < rawReply.length; i += 2) { + switch (rawReply[i]) { + case 'length': + parsedReply.length = rawReply[i + 1]; + break; + case 'radix-tree-keys': + parsedReply.radixTreeKeys = rawReply[i + 1]; + break; + case 'radix-tree-nodes': + parsedReply.radixTreeNodes = rawReply[i + 1]; + break; + case 'groups': + parsedReply.groups = rawReply[i + 1]; + break; + case 'last-generated-id': + parsedReply.lastGeneratedId = rawReply[i + 1]; + break; + case 'first-entry': + parsedReply.firstEntry = rawReply[i + 1] ? { + id: rawReply[i + 1][0], + message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1]) + } : null; + break; + case 'last-entry': + parsedReply.lastEntry = rawReply[i + 1] ? { + id: rawReply[i + 1][0], + message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1]) + } : null; + break; + } + } + return parsedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XLEN.d.ts b/node_modules/@redis/client/dist/lib/commands/XLEN.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XLEN.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/XLEN.js b/node_modules/@redis/client/dist/lib/commands/XLEN.js new file mode 100644 index 0000000..cbac3ec --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XLEN.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XLEN', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XPENDING.d.ts b/node_modules/@redis/client/dist/lib/commands/XPENDING.d.ts new file mode 100644 index 0000000..bd166d5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XPENDING.d.ts @@ -0,0 +1,24 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument): RedisCommandArguments; +type XPendingRawReply = [ + pending: number, + firstId: RedisCommandArgument | null, + lastId: RedisCommandArgument | null, + consumers: Array<[ + name: RedisCommandArgument, + deliveriesCounter: RedisCommandArgument + ]> | null +]; +interface XPendingReply { + pending: number; + firstId: RedisCommandArgument | null; + lastId: RedisCommandArgument | null; + consumers: Array<{ + name: RedisCommandArgument; + deliveriesCounter: number; + }> | null; +} +export declare function transformReply(reply: XPendingRawReply): XPendingReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XPENDING.js b/node_modules/@redis/client/dist/lib/commands/XPENDING.js new file mode 100644 index 0000000..019c493 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XPENDING.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, group) { + return ['XPENDING', key, group]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + pending: reply[0], + firstId: reply[1], + lastId: reply[2], + consumers: reply[3] === null ? null : reply[3].map(([name, deliveriesCounter]) => ({ + name, + deliveriesCounter: Number(deliveriesCounter) + })) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.d.ts new file mode 100644 index 0000000..ca8e022 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.d.ts @@ -0,0 +1,22 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface XPendingRangeOptions { + IDLE?: number; + consumer?: RedisCommandArgument; +} +export declare function transformArguments(key: RedisCommandArgument, group: RedisCommandArgument, start: string, end: string, count: number, options?: XPendingRangeOptions): RedisCommandArguments; +type XPendingRangeRawReply = Array<[ + id: RedisCommandArgument, + consumer: RedisCommandArgument, + millisecondsSinceLastDelivery: number, + deliveriesCounter: number +]>; +type XPendingRangeReply = Array<{ + id: RedisCommandArgument; + owner: RedisCommandArgument; + millisecondsSinceLastDelivery: number; + deliveriesCounter: number; +}>; +export declare function transformReply(reply: XPendingRangeRawReply): XPendingRangeReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js b/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js new file mode 100644 index 0000000..2f051fb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XPENDING_RANGE.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, group, start, end, count, options) { + const args = ['XPENDING', key, group]; + if (options?.IDLE) { + args.push('IDLE', options.IDLE.toString()); + } + args.push(start, end, count.toString()); + if (options?.consumer) { + args.push(options.consumer); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([id, owner, millisecondsSinceLastDelivery, deliveriesCounter]) => ({ + id, + owner, + millisecondsSinceLastDelivery, + deliveriesCounter + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/XRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/XRANGE.d.ts new file mode 100644 index 0000000..a01cf54 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XRANGE.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface XRangeOptions { + COUNT?: number; +} +export declare function transformArguments(key: RedisCommandArgument, start: RedisCommandArgument, end: RedisCommandArgument, options?: XRangeOptions): RedisCommandArguments; +export { transformStreamMessagesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XRANGE.js b/node_modules/@redis/client/dist/lib/commands/XRANGE.js new file mode 100644 index 0000000..6817372 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XRANGE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end, options) { + const args = ['XRANGE', key, start, end]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XREAD.d.ts b/node_modules/@redis/client/dist/lib/commands/XREAD.d.ts new file mode 100644 index 0000000..a054dfe --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREAD.d.ts @@ -0,0 +1,13 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX: (streams: Array | XReadStream) => RedisCommandArgument; +export declare const IS_READ_ONLY = true; +interface XReadStream { + key: RedisCommandArgument; + id: RedisCommandArgument; +} +interface XReadOptions { + COUNT?: number; + BLOCK?: number; +} +export declare function transformArguments(streams: Array | XReadStream, options?: XReadOptions): RedisCommandArguments; +export { transformStreamsMessagesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XREAD.js b/node_modules/@redis/client/dist/lib/commands/XREAD.js new file mode 100644 index 0000000..e23b13d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREAD.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const FIRST_KEY_INDEX = (streams) => { + return Array.isArray(streams) ? streams[0].key : streams.key; +}; +exports.FIRST_KEY_INDEX = FIRST_KEY_INDEX; +exports.IS_READ_ONLY = true; +function transformArguments(streams, options) { + const args = ['XREAD']; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (typeof options?.BLOCK === 'number') { + args.push('BLOCK', options.BLOCK.toString()); + } + args.push('STREAMS'); + const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length; + for (let i = 0; i < streamsArray.length; i++) { + const stream = streamsArray[i]; + args[argsLength + i] = stream.key; + args[argsLength + streamsArray.length + i] = stream.id; + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XREADGROUP.d.ts b/node_modules/@redis/client/dist/lib/commands/XREADGROUP.d.ts new file mode 100644 index 0000000..11f648d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREADGROUP.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export interface XReadGroupStream { + key: RedisCommandArgument; + id: RedisCommandArgument; +} +export interface XReadGroupOptions { + COUNT?: number; + BLOCK?: number; + NOACK?: true; +} +export declare const FIRST_KEY_INDEX: (_group: RedisCommandArgument, _consumer: RedisCommandArgument, streams: Array | XReadGroupStream) => RedisCommandArgument; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(group: RedisCommandArgument, consumer: RedisCommandArgument, streams: Array | XReadGroupStream, options?: XReadGroupOptions): RedisCommandArguments; +export { transformStreamsMessagesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XREADGROUP.js b/node_modules/@redis/client/dist/lib/commands/XREADGROUP.js new file mode 100644 index 0000000..73da656 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREADGROUP.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const FIRST_KEY_INDEX = (_group, _consumer, streams) => { + return Array.isArray(streams) ? streams[0].key : streams.key; +}; +exports.FIRST_KEY_INDEX = FIRST_KEY_INDEX; +exports.IS_READ_ONLY = true; +function transformArguments(group, consumer, streams, options) { + const args = ['XREADGROUP', 'GROUP', group, consumer]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (typeof options?.BLOCK === 'number') { + args.push('BLOCK', options.BLOCK.toString()); + } + if (options?.NOACK) { + args.push('NOACK'); + } + args.push('STREAMS'); + const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length; + for (let i = 0; i < streamsArray.length; i++) { + const stream = streamsArray[i]; + args[argsLength + i] = stream.key; + args[argsLength + streamsArray.length + i] = stream.id; + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XREVRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/XREVRANGE.d.ts new file mode 100644 index 0000000..b5f4c05 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREVRANGE.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface XRangeRevOptions { + COUNT?: number; +} +export declare function transformArguments(key: RedisCommandArgument, start: RedisCommandArgument, end: RedisCommandArgument, options?: XRangeRevOptions): RedisCommandArguments; +export { transformStreamMessagesReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/XREVRANGE.js b/node_modules/@redis/client/dist/lib/commands/XREVRANGE.js new file mode 100644 index 0000000..242ac79 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XREVRANGE.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end, options) { + const args = ['XREVRANGE', key, start, end]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/XSETID.d.ts b/node_modules/@redis/client/dist/lib/commands/XSETID.d.ts new file mode 100644 index 0000000..ac55f65 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XSETID.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface XSetIdOptions { + ENTRIESADDED?: number; + MAXDELETEDID?: RedisCommandArgument; +} +export declare function transformArguments(key: RedisCommandArgument, lastId: RedisCommandArgument, options?: XSetIdOptions): RedisCommandArguments; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XSETID.js b/node_modules/@redis/client/dist/lib/commands/XSETID.js new file mode 100644 index 0000000..2212bbc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XSETID.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, lastId, options) { + const args = ['XSETID', key, lastId]; + if (options?.ENTRIESADDED) { + args.push('ENTRIESADDED', options.ENTRIESADDED.toString()); + } + if (options?.MAXDELETEDID) { + args.push('MAXDELETEDID', options.MAXDELETEDID); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/XTRIM.d.ts b/node_modules/@redis/client/dist/lib/commands/XTRIM.d.ts new file mode 100644 index 0000000..f90c4c7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XTRIM.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface XTrimOptions { + strategyModifier?: '=' | '~'; + LIMIT?: number; +} +export declare function transformArguments(key: RedisCommandArgument, strategy: 'MAXLEN' | 'MINID', threshold: number, options?: XTrimOptions): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/XTRIM.js b/node_modules/@redis/client/dist/lib/commands/XTRIM.js new file mode 100644 index 0000000..c2b7530 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/XTRIM.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, strategy, threshold, options) { + const args = ['XTRIM', key, strategy]; + if (options?.strategyModifier) { + args.push(options.strategyModifier); + } + args.push(threshold.toString()); + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZADD.d.ts b/node_modules/@redis/client/dist/lib/commands/ZADD.d.ts new file mode 100644 index 0000000..a269c33 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZADD.d.ts @@ -0,0 +1,24 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ZMember } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +interface NX { + NX?: true; +} +interface XX { + XX?: true; +} +interface LT { + LT?: true; +} +interface GT { + GT?: true; +} +interface CH { + CH?: true; +} +interface INCR { + INCR?: true; +} +type ZAddOptions = (NX | (XX & LT & GT)) & CH & INCR; +export declare function transformArguments(key: RedisCommandArgument, members: ZMember | Array, options?: ZAddOptions): RedisCommandArguments; +export { transformNumberInfinityReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZADD.js b/node_modules/@redis/client/dist/lib/commands/ZADD.js new file mode 100644 index 0000000..643d425 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZADD.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members, options) { + const args = ['ZADD', key]; + if (options?.NX) { + args.push('NX'); + } + else { + if (options?.XX) { + args.push('XX'); + } + if (options?.GT) { + args.push('GT'); + } + else if (options?.LT) { + args.push('LT'); + } + } + if (options?.CH) { + args.push('CH'); + } + if (options?.INCR) { + args.push('INCR'); + } + for (const { score, value } of (Array.isArray(members) ? members : [members])) { + args.push((0, generic_transformers_1.transformNumberInfinityArgument)(score), value); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZCARD.d.ts b/node_modules/@redis/client/dist/lib/commands/ZCARD.d.ts new file mode 100644 index 0000000..367e9b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZCARD.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZCARD.js b/node_modules/@redis/client/dist/lib/commands/ZCARD.js new file mode 100644 index 0000000..9ac6f61 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZCARD.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['ZCARD', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZCOUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/ZCOUNT.d.ts new file mode 100644 index 0000000..c80e931 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZCOUNT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument | number, max: RedisCommandArgument | number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZCOUNT.js b/node_modules/@redis/client/dist/lib/commands/ZCOUNT.js new file mode 100644 index 0000000..04ab60e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZCOUNT.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max) { + return [ + 'ZCOUNT', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFF.d.ts b/node_modules/@redis/client/dist/lib/commands/ZDIFF.d.ts new file mode 100644 index 0000000..b6b465b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFF.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: Array | RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFF.js b/node_modules/@redis/client/dist/lib/commands/ZDIFF.js new file mode 100644 index 0000000..94386d0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFF.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFF'], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.d.ts new file mode 100644 index 0000000..556dbef --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(destination: RedisCommandArgument, keys: Array | RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js b/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js new file mode 100644 index 0000000..da3ef86 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFFSTORE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFFSTORE', destination], keys); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.d.ts new file mode 100644 index 0000000..ef74c30 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { transformArguments as transformZDiffArguments } from './ZDIFF'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZDIFF'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js new file mode 100644 index 0000000..2d1c953 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZDIFF_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZDIFF_1 = require("./ZDIFF"); +var ZDIFF_2 = require("./ZDIFF"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZDIFF_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZDIFF_2.IS_READ_ONLY; } }); +function transformArguments(...args) { + return [ + ...(0, ZDIFF_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZINCRBY.d.ts b/node_modules/@redis/client/dist/lib/commands/ZINCRBY.d.ts new file mode 100644 index 0000000..92378f7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINCRBY.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, increment: number, member: RedisCommandArgument): RedisCommandArguments; +export { transformNumberInfinityReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINCRBY.js b/node_modules/@redis/client/dist/lib/commands/ZINCRBY.js new file mode 100644 index 0000000..3ca7e2f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINCRBY.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment, member) { + return [ + 'ZINCRBY', + key, + (0, generic_transformers_1.transformNumberInfinityArgument)(increment), + member + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTER.d.ts b/node_modules/@redis/client/dist/lib/commands/ZINTER.d.ts new file mode 100644 index 0000000..9938be3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTER.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +interface ZInterOptions { + WEIGHTS?: Array; + AGGREGATE?: 'SUM' | 'MIN' | 'MAX'; +} +export declare function transformArguments(keys: Array | RedisCommandArgument, options?: ZInterOptions): RedisCommandArguments; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTER.js b/node_modules/@redis/client/dist/lib/commands/ZINTER.js new file mode 100644 index 0000000..15fd2d4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTER.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTER'], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.d.ts b/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.d.ts new file mode 100644 index 0000000..1606dd4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: Array | RedisCommandArgument, limit?: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js b/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js new file mode 100644 index 0000000..9f8cd3c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTERCARD.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, limit) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERCARD'], keys); + if (limit) { + args.push('LIMIT', limit.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.d.ts new file mode 100644 index 0000000..3bda1a0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface ZInterStoreOptions { + WEIGHTS?: Array; + AGGREGATE?: 'SUM' | 'MIN' | 'MAX'; +} +export declare function transformArguments(destination: RedisCommandArgument, keys: Array | RedisCommandArgument, options?: ZInterStoreOptions): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js b/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js new file mode 100644 index 0000000..4005555 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTERSTORE.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERSTORE', destination], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.d.ts new file mode 100644 index 0000000..0899841 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { transformArguments as transformZInterArguments } from './ZINTER'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZINTER'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js new file mode 100644 index 0000000..c908e64 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZINTER_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZINTER_1 = require("./ZINTER"); +var ZINTER_2 = require("./ZINTER"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZINTER_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZINTER_2.IS_READ_ONLY; } }); +function transformArguments(...args) { + return [ + ...(0, ZINTER_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.d.ts new file mode 100644 index 0000000..b17344b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument, max: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js b/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js new file mode 100644 index 0000000..31a02b9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZLEXCOUNT.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max) { + return [ + 'ZLEXCOUNT', + key, + min, + max + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZMPOP.d.ts b/node_modules/@redis/client/dist/lib/commands/ZMPOP.d.ts new file mode 100644 index 0000000..07a23c4 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZMPOP.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { SortedSetSide, ZMember, ZMPopOptions } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(keys: RedisCommandArgument | Array, side: SortedSetSide, options?: ZMPopOptions): RedisCommandArguments; +type ZMPopRawReply = null | [ + key: string, + elements: Array<[RedisCommandArgument, RedisCommandArgument]> +]; +type ZMPopReply = null | { + key: string; + elements: Array; +}; +export declare function transformReply(reply: ZMPopRawReply): ZMPopReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZMPOP.js b/node_modules/@redis/client/dist/lib/commands/ZMPOP.js new file mode 100644 index 0000000..e2a5787 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZMPOP.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(keys, side, options) { + return (0, generic_transformers_1.transformZMPopArguments)(['ZMPOP'], keys, side, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply === null ? null : { + key: reply[0], + elements: reply[1].map(generic_transformers_1.transformSortedSetMemberReply) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/ZMSCORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZMSCORE.d.ts new file mode 100644 index 0000000..37b9d1c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZMSCORE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument | Array): RedisCommandArguments; +export { transformNumberInfinityNullArrayReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZMSCORE.js b/node_modules/@redis/client/dist/lib/commands/ZMSCORE.js new file mode 100644 index 0000000..8f06a03 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZMSCORE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['ZMSCORE', key], member); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityNullArrayReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.d.ts b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.d.ts new file mode 100644 index 0000000..af0daa2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformSortedSetMemberNullReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js new file mode 100644 index 0000000..d5cfb11 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return [ + 'ZPOPMAX', + key + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.d.ts new file mode 100644 index 0000000..b46939e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX } from './ZPOPMAX'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js new file mode 100644 index 0000000..2bbfef7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMAX_COUNT.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const ZPOPMAX_1 = require("./ZPOPMAX"); +var ZPOPMAX_2 = require("./ZPOPMAX"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZPOPMAX_2.FIRST_KEY_INDEX; } }); +function transformArguments(key, count) { + return [ + ...(0, ZPOPMAX_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.d.ts b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.d.ts new file mode 100644 index 0000000..af0daa2 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export { transformSortedSetMemberNullReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js new file mode 100644 index 0000000..c460010 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return [ + 'ZPOPMIN', + key + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.d.ts new file mode 100644 index 0000000..9856992 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX } from './ZPOPMIN'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js new file mode 100644 index 0000000..e1328fc --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZPOPMIN_COUNT.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const ZPOPMIN_1 = require("./ZPOPMIN"); +var ZPOPMIN_2 = require("./ZPOPMIN"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZPOPMIN_2.FIRST_KEY_INDEX; } }); +function transformArguments(key, count) { + return [ + ...(0, ZPOPMIN_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.d.ts new file mode 100644 index 0000000..ac0d54c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): RedisCommandArgument | null; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js new file mode 100644 index 0000000..2792f2a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['ZRANDMEMBER', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.d.ts new file mode 100644 index 0000000..3a985d0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZRANDMEMBER'; +export declare function transformArguments(key: RedisCommandArgument, count: number): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js new file mode 100644 index 0000000..7a0d4cd --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANDMEMBER_1 = require("./ZRANDMEMBER"); +var ZRANDMEMBER_2 = require("./ZRANDMEMBER"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZRANDMEMBER_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZRANDMEMBER_2.IS_READ_ONLY; } }); +function transformArguments(key, count) { + return [ + ...(0, ZRANDMEMBER_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.d.ts new file mode 100644 index 0000000..aeb80a8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { transformArguments as transformZRandMemberCountArguments } from './ZRANDMEMBER_COUNT'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZRANDMEMBER_COUNT'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js new file mode 100644 index 0000000..3280888 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANDMEMBER_COUNT_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANDMEMBER_COUNT_1 = require("./ZRANDMEMBER_COUNT"); +var ZRANDMEMBER_COUNT_2 = require("./ZRANDMEMBER_COUNT"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.IS_READ_ONLY; } }); +function transformArguments(...args) { + return [ + ...(0, ZRANDMEMBER_COUNT_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGE.d.ts new file mode 100644 index 0000000..85c18b8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGE.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface ZRangeOptions { + BY?: 'SCORE' | 'LEX'; + REV?: true; + LIMIT?: { + offset: number; + count: number; + }; +} +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument | number, max: RedisCommandArgument | number, options?: ZRangeOptions): RedisCommandArguments; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGE.js b/node_modules/@redis/client/dist/lib/commands/ZRANGE.js new file mode 100644 index 0000000..3e43721 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGE.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + switch (options?.BY) { + case 'SCORE': + args.push('BYSCORE'); + break; + case 'LEX': + args.push('BYLEX'); + break; + } + if (options?.REV) { + args.push('REV'); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.d.ts new file mode 100644 index 0000000..45eddb8 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export interface ZRangeByLexOptions { + LIMIT?: { + offset: number; + count: number; + }; +} +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument, max: RedisCommandArgument, options?: ZRangeByLexOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js new file mode 100644 index 0000000..771a3ba --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYLEX.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGEBYLEX', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.d.ts new file mode 100644 index 0000000..511c92b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.d.ts @@ -0,0 +1,11 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export interface ZRangeByScoreOptions { + LIMIT?: { + offset: number; + count: number; + }; +} +export declare function transformArguments(key: RedisCommandArgument, min: string | number, max: string | number, options?: ZRangeByScoreOptions): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js new file mode 100644 index 0000000..011d222 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGEBYSCORE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.d.ts new file mode 100644 index 0000000..522af76 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ZRangeByScoreOptions } from './ZRANGEBYSCORE'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZRANGEBYSCORE'; +export declare function transformArguments(key: RedisCommandArgument, min: string | number, max: string | number, options?: ZRangeByScoreOptions): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js new file mode 100644 index 0000000..5f57e2e --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGEBYSCORE_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANGEBYSCORE_1 = require("./ZRANGEBYSCORE"); +var ZRANGEBYSCORE_2 = require("./ZRANGEBYSCORE"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZRANGEBYSCORE_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZRANGEBYSCORE_2.IS_READ_ONLY; } }); +function transformArguments(key, min, max, options) { + return [ + ...(0, ZRANGEBYSCORE_1.transformArguments)(key, min, max, options), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.d.ts new file mode 100644 index 0000000..0facbc7 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.d.ts @@ -0,0 +1,14 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface ZRangeStoreOptions { + BY?: 'SCORE' | 'LEX'; + REV?: true; + LIMIT?: { + offset: number; + count: number; + }; + WITHSCORES?: true; +} +export declare function transformArguments(dst: RedisCommandArgument, src: RedisCommandArgument, min: RedisCommandArgument | number, max: RedisCommandArgument | number, options?: ZRangeStoreOptions): RedisCommandArguments; +export declare function transformReply(reply: number): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js b/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js new file mode 100644 index 0000000..69b8046 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGESTORE.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(dst, src, min, max, options) { + const args = [ + 'ZRANGESTORE', + dst, + src, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + switch (options?.BY) { + case 'SCORE': + args.push('BYSCORE'); + break; + case 'LEX': + args.push('BYLEX'); + break; + } + if (options?.REV) { + args.push('REV'); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + if (options?.WITHSCORES) { + args.push('WITHSCORES'); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (typeof reply !== 'number') { + throw new TypeError(`Upgrade to Redis 6.2.5 and up (https://github.com/redis/redis/pull/9089)`); + } + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.d.ts new file mode 100644 index 0000000..fc78d2b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { transformArguments as transformZRangeArguments } from './ZRANGE'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZRANGE'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js new file mode 100644 index 0000000..23084c9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANGE_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANGE_1 = require("./ZRANGE"); +var ZRANGE_2 = require("./ZRANGE"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZRANGE_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZRANGE_2.IS_READ_ONLY; } }); +function transformArguments(...args) { + return [ + ...(0, ZRANGE_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANK.d.ts b/node_modules/@redis/client/dist/lib/commands/ZRANK.d.ts new file mode 100644 index 0000000..7527828 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/ZRANK.js b/node_modules/@redis/client/dist/lib/commands/ZRANK.js new file mode 100644 index 0000000..b8b7f0a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZRANK.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZRANK', key, member]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREM.d.ts b/node_modules/@redis/client/dist/lib/commands/ZREM.d.ts new file mode 100644 index 0000000..c18fefb --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREM.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREM.js b/node_modules/@redis/client/dist/lib/commands/ZREM.js new file mode 100644 index 0000000..fc00be0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREM.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['ZREM', key], member); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.d.ts b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.d.ts new file mode 100644 index 0000000..11ed7fa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument | number, max: RedisCommandArgument | number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js new file mode 100644 index 0000000..4992781 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYLEX.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, min, max) { + return [ + 'ZREMRANGEBYLEX', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.d.ts b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.d.ts new file mode 100644 index 0000000..ec3e9c0 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, start: number, stop: number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js new file mode 100644 index 0000000..a139d01 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYRANK.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, start, stop) { + return ['ZREMRANGEBYRANK', key, start.toString(), stop.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.d.ts new file mode 100644 index 0000000..11ed7fa --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: RedisCommandArgument, min: RedisCommandArgument | number, max: RedisCommandArgument | number): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js new file mode 100644 index 0000000..79e486c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREMRANGEBYSCORE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, min, max) { + return [ + 'ZREMRANGEBYSCORE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREVRANK.d.ts b/node_modules/@redis/client/dist/lib/commands/ZREVRANK.d.ts new file mode 100644 index 0000000..7527828 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREVRANK.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument): RedisCommandArguments; +export declare function transformReply(): number | null; diff --git a/node_modules/@redis/client/dist/lib/commands/ZREVRANK.js b/node_modules/@redis/client/dist/lib/commands/ZREVRANK.js new file mode 100644 index 0000000..e111248 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZREVRANK.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZREVRANK', key, member]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZSCAN.d.ts b/node_modules/@redis/client/dist/lib/commands/ZSCAN.d.ts new file mode 100644 index 0000000..b86d12b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZSCAN.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +import { ScanOptions, ZMember } from './generic-transformers'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, cursor: number, options?: ScanOptions): RedisCommandArguments; +type ZScanRawReply = [RedisCommandArgument, Array]; +interface ZScanReply { + cursor: number; + members: Array; +} +export declare function transformReply([cursor, rawMembers]: ZScanRawReply): ZScanReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZSCAN.js b/node_modules/@redis/client/dist/lib/commands/ZSCAN.js new file mode 100644 index 0000000..ce72c15 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZSCAN.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'ZSCAN', + key + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, rawMembers]) { + const parsedMembers = []; + for (let i = 0; i < rawMembers.length; i += 2) { + parsedMembers.push({ + value: rawMembers[i], + score: (0, generic_transformers_1.transformNumberInfinityReply)(rawMembers[i + 1]) + }); + } + return { + cursor: Number(cursor), + members: parsedMembers + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/client/dist/lib/commands/ZSCORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZSCORE.d.ts new file mode 100644 index 0000000..309294a --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZSCORE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: RedisCommandArgument, member: RedisCommandArgument): RedisCommandArguments; +export { transformNumberInfinityNullReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZSCORE.js b/node_modules/@redis/client/dist/lib/commands/ZSCORE.js new file mode 100644 index 0000000..f50a641 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZSCORE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZSCORE', key, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformNumberInfinityNullReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNION.d.ts b/node_modules/@redis/client/dist/lib/commands/ZUNION.d.ts new file mode 100644 index 0000000..7a06f00 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNION.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 2; +export declare const IS_READ_ONLY = true; +interface ZUnionOptions { + WEIGHTS?: Array; + AGGREGATE?: 'SUM' | 'MIN' | 'MAX'; +} +export declare function transformArguments(keys: Array | RedisCommandArgument, options?: ZUnionOptions): RedisCommandArguments; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNION.js b/node_modules/@redis/client/dist/lib/commands/ZUNION.js new file mode 100644 index 0000000..f06d8f9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNION.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNION'], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.d.ts b/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.d.ts new file mode 100644 index 0000000..7b3a64b --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.d.ts @@ -0,0 +1,9 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface ZUnionOptions { + WEIGHTS?: Array; + AGGREGATE?: 'SUM' | 'MIN' | 'MAX'; +} +export declare function transformArguments(destination: RedisCommandArgument, keys: Array | RedisCommandArgument, options?: ZUnionOptions): RedisCommandArguments; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js b/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js new file mode 100644 index 0000000..3e5f0ff --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNIONSTORE.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("./generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNIONSTORE', destination], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.d.ts b/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.d.ts new file mode 100644 index 0000000..07fe4e3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '.'; +import { transformArguments as transformZUnionArguments } from './ZUNION'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './ZUNION'; +export declare function transformArguments(...args: Parameters): RedisCommandArguments; +export { transformSortedSetWithScoresReply as transformReply } from './generic-transformers'; diff --git a/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js b/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js new file mode 100644 index 0000000..23c2b86 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/ZUNION_WITHSCORES.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZUNION_1 = require("./ZUNION"); +var ZUNION_2 = require("./ZUNION"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return ZUNION_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return ZUNION_2.IS_READ_ONLY; } }); +function transformArguments(...args) { + return [ + ...(0, ZUNION_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("./generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } }); diff --git a/node_modules/@redis/client/dist/lib/commands/generic-transformers.d.ts b/node_modules/@redis/client/dist/lib/commands/generic-transformers.d.ts new file mode 100644 index 0000000..1162ac1 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/generic-transformers.d.ts @@ -0,0 +1,221 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; +export declare function transformBooleanReply(reply: number): boolean; +export declare function transformBooleanArrayReply(reply: Array): Array; +export type BitValue = 0 | 1; +export interface ScanOptions { + MATCH?: string; + COUNT?: number; +} +export declare function pushScanArguments(args: RedisCommandArguments, cursor: number, options?: ScanOptions): RedisCommandArguments; +export declare function transformNumberInfinityReply(reply: RedisCommandArgument): number; +export declare function transformNumberInfinityNullReply(reply: RedisCommandArgument | null): number | null; +export declare function transformNumberInfinityNullArrayReply(reply: Array): Array; +export declare function transformNumberInfinityArgument(num: number): string; +export declare function transformStringNumberInfinityArgument(num: RedisCommandArgument | number): RedisCommandArgument; +export declare function transformTuplesReply(reply: Array): Record; +export interface StreamMessageReply { + id: RedisCommandArgument; + message: Record; +} +export declare function transformStreamMessageReply([id, message]: Array): StreamMessageReply; +export declare function transformStreamMessageNullReply(reply: Array): StreamMessageReply | null; +export type StreamMessagesReply = Array; +export declare function transformStreamMessagesReply(reply: Array): StreamMessagesReply; +export type StreamMessagesNullReply = Array; +export declare function transformStreamMessagesNullReply(reply: Array): StreamMessagesNullReply; +export type StreamsMessagesReply = Array<{ + name: RedisCommandArgument; + messages: StreamMessagesReply; +}> | null; +export declare function transformStreamsMessagesReply(reply: Array | null): StreamsMessagesReply | null; +export interface ZMember { + score: number; + value: RedisCommandArgument; +} +export declare function transformSortedSetMemberNullReply(reply: [RedisCommandArgument, RedisCommandArgument] | []): ZMember | null; +export declare function transformSortedSetMemberReply(reply: [RedisCommandArgument, RedisCommandArgument]): ZMember; +export declare function transformSortedSetWithScoresReply(reply: Array): Array; +export type SortedSetSide = 'MIN' | 'MAX'; +export interface ZMPopOptions { + COUNT?: number; +} +export declare function transformZMPopArguments(args: RedisCommandArguments, keys: RedisCommandArgument | Array, side: SortedSetSide, options?: ZMPopOptions): RedisCommandArguments; +export type ListSide = 'LEFT' | 'RIGHT'; +export interface LMPopOptions { + COUNT?: number; +} +export declare function transformLMPopArguments(args: RedisCommandArguments, keys: RedisCommandArgument | Array, side: ListSide, options?: LMPopOptions): RedisCommandArguments; +type GeoCountArgument = number | { + value: number; + ANY?: true; +}; +export declare function pushGeoCountArgument(args: RedisCommandArguments, count: GeoCountArgument | undefined): RedisCommandArguments; +export type GeoUnits = 'm' | 'km' | 'mi' | 'ft'; +export interface GeoCoordinates { + longitude: string | number; + latitude: string | number; +} +type GeoSearchFromMember = string; +export type GeoSearchFrom = GeoSearchFromMember | GeoCoordinates; +interface GeoSearchByRadius { + radius: number; + unit: GeoUnits; +} +interface GeoSearchByBox { + width: number; + height: number; + unit: GeoUnits; +} +export type GeoSearchBy = GeoSearchByRadius | GeoSearchByBox; +export interface GeoSearchOptions { + SORT?: 'ASC' | 'DESC'; + COUNT?: GeoCountArgument; +} +export declare function pushGeoSearchArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, by: GeoSearchBy, options?: GeoSearchOptions): RedisCommandArguments; +export declare function pushGeoRadiusArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, radius: number, unit: GeoUnits, options?: GeoSearchOptions): RedisCommandArguments; +export interface GeoRadiusStoreOptions extends GeoSearchOptions { + STOREDIST?: boolean; +} +export declare function pushGeoRadiusStoreArguments(args: RedisCommandArguments, key: RedisCommandArgument, from: GeoSearchFrom, radius: number, unit: GeoUnits, destination: RedisCommandArgument, options?: GeoRadiusStoreOptions): RedisCommandArguments; +export declare enum GeoReplyWith { + DISTANCE = "WITHDIST", + HASH = "WITHHASH", + COORDINATES = "WITHCOORD" +} +export interface GeoReplyWithMember { + member: string; + distance?: number; + hash?: string; + coordinates?: { + longitude: string; + latitude: string; + }; +} +export declare function transformGeoMembersWithReply(reply: Array>, replyWith: Array): Array; +export declare function transformEXAT(EXAT: number | Date): string; +export declare function transformPXAT(PXAT: number | Date): string; +export interface EvalOptions { + keys?: Array; + arguments?: Array; +} +export declare function evalFirstKeyIndex(options?: EvalOptions): string | undefined; +export declare function pushEvalArguments(args: Array, options?: EvalOptions): Array; +export declare function pushVerdictArguments(args: RedisCommandArguments, value: RedisCommandArgument | Array): RedisCommandArguments; +export declare function pushVerdictNumberArguments(args: RedisCommandArguments, value: number | Array): RedisCommandArguments; +export declare function pushVerdictArgument(args: RedisCommandArguments, value: RedisCommandArgument | Array): RedisCommandArguments; +export declare function pushOptionalVerdictArgument(args: RedisCommandArguments, name: RedisCommandArgument, value: undefined | RedisCommandArgument | Array): RedisCommandArguments; +export declare enum CommandFlags { + WRITE = "write", + READONLY = "readonly", + DENYOOM = "denyoom", + ADMIN = "admin", + PUBSUB = "pubsub", + NOSCRIPT = "noscript", + RANDOM = "random", + SORT_FOR_SCRIPT = "sort_for_script", + LOADING = "loading", + STALE = "stale", + SKIP_MONITOR = "skip_monitor", + ASKING = "asking", + FAST = "fast", + MOVABLEKEYS = "movablekeys" +} +export declare enum CommandCategories { + KEYSPACE = "@keyspace", + READ = "@read", + WRITE = "@write", + SET = "@set", + SORTEDSET = "@sortedset", + LIST = "@list", + HASH = "@hash", + STRING = "@string", + BITMAP = "@bitmap", + HYPERLOGLOG = "@hyperloglog", + GEO = "@geo", + STREAM = "@stream", + PUBSUB = "@pubsub", + ADMIN = "@admin", + FAST = "@fast", + SLOW = "@slow", + BLOCKING = "@blocking", + DANGEROUS = "@dangerous", + CONNECTION = "@connection", + TRANSACTION = "@transaction", + SCRIPTING = "@scripting" +} +export type CommandRawReply = [ + name: string, + arity: number, + flags: Array, + firstKeyIndex: number, + lastKeyIndex: number, + step: number, + categories: Array +]; +export type CommandReply = { + name: string; + arity: number; + flags: Set; + firstKeyIndex: number; + lastKeyIndex: number; + step: number; + categories: Set; +}; +export declare function transformCommandReply(this: void, [name, arity, flags, firstKeyIndex, lastKeyIndex, step, categories]: CommandRawReply): CommandReply; +export declare enum RedisFunctionFlags { + NO_WRITES = "no-writes", + ALLOW_OOM = "allow-oom", + ALLOW_STALE = "allow-stale", + NO_CLUSTER = "no-cluster" +} +export type FunctionListRawItemReply = [ + 'library_name', + string, + 'engine', + string, + 'functions', + Array<[ + 'name', + string, + 'description', + string | null, + 'flags', + Array + ]> +]; +export interface FunctionListItemReply { + libraryName: string; + engine: string; + functions: Array<{ + name: string; + description: string | null; + flags: Array; + }>; +} +export declare function transformFunctionListItemReply(reply: FunctionListRawItemReply): FunctionListItemReply; +export interface SortOptions { + BY?: string; + LIMIT?: { + offset: number; + count: number; + }; + GET?: string | Array; + DIRECTION?: 'ASC' | 'DESC'; + ALPHA?: true; +} +export declare function pushSortArguments(args: RedisCommandArguments, options?: SortOptions): RedisCommandArguments; +export interface SlotRange { + start: number; + end: number; +} +export declare function pushSlotRangesArguments(args: RedisCommandArguments, ranges: SlotRange | Array): RedisCommandArguments; +export type RawRangeReply = [ + start: number, + end: number +]; +export interface RangeReply { + start: number; + end: number; +} +export declare function transformRangeReply([start, end]: RawRangeReply): RangeReply; +export {}; diff --git a/node_modules/@redis/client/dist/lib/commands/generic-transformers.js b/node_modules/@redis/client/dist/lib/commands/generic-transformers.js new file mode 100644 index 0000000..e4a90e3 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/generic-transformers.js @@ -0,0 +1,413 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformRangeReply = exports.pushSlotRangesArguments = exports.pushSortArguments = exports.transformFunctionListItemReply = exports.RedisFunctionFlags = exports.transformCommandReply = exports.CommandCategories = exports.CommandFlags = exports.pushOptionalVerdictArgument = exports.pushVerdictArgument = exports.pushVerdictNumberArguments = exports.pushVerdictArguments = exports.pushEvalArguments = exports.evalFirstKeyIndex = exports.transformPXAT = exports.transformEXAT = exports.transformGeoMembersWithReply = exports.GeoReplyWith = exports.pushGeoRadiusStoreArguments = exports.pushGeoRadiusArguments = exports.pushGeoSearchArguments = exports.pushGeoCountArgument = exports.transformLMPopArguments = exports.transformZMPopArguments = exports.transformSortedSetWithScoresReply = exports.transformSortedSetMemberReply = exports.transformSortedSetMemberNullReply = exports.transformStreamsMessagesReply = exports.transformStreamMessagesNullReply = exports.transformStreamMessagesReply = exports.transformStreamMessageNullReply = exports.transformStreamMessageReply = exports.transformTuplesReply = exports.transformStringNumberInfinityArgument = exports.transformNumberInfinityArgument = exports.transformNumberInfinityNullArrayReply = exports.transformNumberInfinityNullReply = exports.transformNumberInfinityReply = exports.pushScanArguments = exports.transformBooleanArrayReply = exports.transformBooleanReply = void 0; +function transformBooleanReply(reply) { + return reply === 1; +} +exports.transformBooleanReply = transformBooleanReply; +function transformBooleanArrayReply(reply) { + return reply.map(transformBooleanReply); +} +exports.transformBooleanArrayReply = transformBooleanArrayReply; +function pushScanArguments(args, cursor, options) { + args.push(cursor.toString()); + if (options?.MATCH) { + args.push('MATCH', options.MATCH); + } + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.pushScanArguments = pushScanArguments; +function transformNumberInfinityReply(reply) { + switch (reply.toString()) { + case '+inf': + return Infinity; + case '-inf': + return -Infinity; + default: + return Number(reply); + } +} +exports.transformNumberInfinityReply = transformNumberInfinityReply; +function transformNumberInfinityNullReply(reply) { + if (reply === null) + return null; + return transformNumberInfinityReply(reply); +} +exports.transformNumberInfinityNullReply = transformNumberInfinityNullReply; +function transformNumberInfinityNullArrayReply(reply) { + return reply.map(transformNumberInfinityNullReply); +} +exports.transformNumberInfinityNullArrayReply = transformNumberInfinityNullArrayReply; +function transformNumberInfinityArgument(num) { + switch (num) { + case Infinity: + return '+inf'; + case -Infinity: + return '-inf'; + default: + return num.toString(); + } +} +exports.transformNumberInfinityArgument = transformNumberInfinityArgument; +function transformStringNumberInfinityArgument(num) { + if (typeof num !== 'number') + return num; + return transformNumberInfinityArgument(num); +} +exports.transformStringNumberInfinityArgument = transformStringNumberInfinityArgument; +function transformTuplesReply(reply) { + const message = Object.create(null); + for (let i = 0; i < reply.length; i += 2) { + message[reply[i].toString()] = reply[i + 1]; + } + return message; +} +exports.transformTuplesReply = transformTuplesReply; +function transformStreamMessageReply([id, message]) { + return { + id, + message: transformTuplesReply(message) + }; +} +exports.transformStreamMessageReply = transformStreamMessageReply; +function transformStreamMessageNullReply(reply) { + if (reply === null) + return null; + return transformStreamMessageReply(reply); +} +exports.transformStreamMessageNullReply = transformStreamMessageNullReply; +function transformStreamMessagesReply(reply) { + return reply.map(transformStreamMessageReply); +} +exports.transformStreamMessagesReply = transformStreamMessagesReply; +function transformStreamMessagesNullReply(reply) { + return reply.map(transformStreamMessageNullReply); +} +exports.transformStreamMessagesNullReply = transformStreamMessagesNullReply; +function transformStreamsMessagesReply(reply) { + if (reply === null) + return null; + return reply.map(([name, rawMessages]) => ({ + name, + messages: transformStreamMessagesReply(rawMessages) + })); +} +exports.transformStreamsMessagesReply = transformStreamsMessagesReply; +function transformSortedSetMemberNullReply(reply) { + if (!reply.length) + return null; + return transformSortedSetMemberReply(reply); +} +exports.transformSortedSetMemberNullReply = transformSortedSetMemberNullReply; +function transformSortedSetMemberReply(reply) { + return { + value: reply[0], + score: transformNumberInfinityReply(reply[1]) + }; +} +exports.transformSortedSetMemberReply = transformSortedSetMemberReply; +function transformSortedSetWithScoresReply(reply) { + const members = []; + for (let i = 0; i < reply.length; i += 2) { + members.push({ + value: reply[i], + score: transformNumberInfinityReply(reply[i + 1]) + }); + } + return members; +} +exports.transformSortedSetWithScoresReply = transformSortedSetWithScoresReply; +function transformZMPopArguments(args, keys, side, options) { + pushVerdictArgument(args, keys); + args.push(side); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformZMPopArguments = transformZMPopArguments; +function transformLMPopArguments(args, keys, side, options) { + pushVerdictArgument(args, keys); + args.push(side); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformLMPopArguments = transformLMPopArguments; +function pushGeoCountArgument(args, count) { + if (typeof count === 'number') { + args.push('COUNT', count.toString()); + } + else if (count) { + args.push('COUNT', count.value.toString()); + if (count.ANY) { + args.push('ANY'); + } + } + return args; +} +exports.pushGeoCountArgument = pushGeoCountArgument; +function pushGeoSearchArguments(args, key, from, by, options) { + args.push(key); + if (typeof from === 'string') { + args.push('FROMMEMBER', from); + } + else { + args.push('FROMLONLAT', from.longitude.toString(), from.latitude.toString()); + } + if ('radius' in by) { + args.push('BYRADIUS', by.radius.toString()); + } + else { + args.push('BYBOX', by.width.toString(), by.height.toString()); + } + args.push(by.unit); + if (options?.SORT) { + args.push(options.SORT); + } + pushGeoCountArgument(args, options?.COUNT); + return args; +} +exports.pushGeoSearchArguments = pushGeoSearchArguments; +function pushGeoRadiusArguments(args, key, from, radius, unit, options) { + args.push(key); + if (typeof from === 'string') { + args.push(from); + } + else { + args.push(from.longitude.toString(), from.latitude.toString()); + } + args.push(radius.toString(), unit); + if (options?.SORT) { + args.push(options.SORT); + } + pushGeoCountArgument(args, options?.COUNT); + return args; +} +exports.pushGeoRadiusArguments = pushGeoRadiusArguments; +function pushGeoRadiusStoreArguments(args, key, from, radius, unit, destination, options) { + pushGeoRadiusArguments(args, key, from, radius, unit, options); + if (options?.STOREDIST) { + args.push('STOREDIST', destination); + } + else { + args.push('STORE', destination); + } + return args; +} +exports.pushGeoRadiusStoreArguments = pushGeoRadiusStoreArguments; +var GeoReplyWith; +(function (GeoReplyWith) { + GeoReplyWith["DISTANCE"] = "WITHDIST"; + GeoReplyWith["HASH"] = "WITHHASH"; + GeoReplyWith["COORDINATES"] = "WITHCOORD"; +})(GeoReplyWith || (exports.GeoReplyWith = GeoReplyWith = {})); +function transformGeoMembersWithReply(reply, replyWith) { + const replyWithSet = new Set(replyWith); + let index = 0; + const distanceIndex = replyWithSet.has(GeoReplyWith.DISTANCE) && ++index, hashIndex = replyWithSet.has(GeoReplyWith.HASH) && ++index, coordinatesIndex = replyWithSet.has(GeoReplyWith.COORDINATES) && ++index; + return reply.map(member => { + const transformedMember = { + member: member[0] + }; + if (distanceIndex) { + transformedMember.distance = member[distanceIndex]; + } + if (hashIndex) { + transformedMember.hash = member[hashIndex]; + } + if (coordinatesIndex) { + const [longitude, latitude] = member[coordinatesIndex]; + transformedMember.coordinates = { + longitude, + latitude + }; + } + return transformedMember; + }); +} +exports.transformGeoMembersWithReply = transformGeoMembersWithReply; +function transformEXAT(EXAT) { + return (typeof EXAT === 'number' ? EXAT : Math.floor(EXAT.getTime() / 1000)).toString(); +} +exports.transformEXAT = transformEXAT; +function transformPXAT(PXAT) { + return (typeof PXAT === 'number' ? PXAT : PXAT.getTime()).toString(); +} +exports.transformPXAT = transformPXAT; +function evalFirstKeyIndex(options) { + return options?.keys?.[0]; +} +exports.evalFirstKeyIndex = evalFirstKeyIndex; +function pushEvalArguments(args, options) { + if (options?.keys) { + args.push(options.keys.length.toString(), ...options.keys); + } + else { + args.push('0'); + } + if (options?.arguments) { + args.push(...options.arguments); + } + return args; +} +exports.pushEvalArguments = pushEvalArguments; +function pushVerdictArguments(args, value) { + if (Array.isArray(value)) { + // https://github.com/redis/node-redis/pull/2160 + args = args.concat(value); + } + else { + args.push(value); + } + return args; +} +exports.pushVerdictArguments = pushVerdictArguments; +function pushVerdictNumberArguments(args, value) { + if (Array.isArray(value)) { + for (const item of value) { + args.push(item.toString()); + } + } + else { + args.push(value.toString()); + } + return args; +} +exports.pushVerdictNumberArguments = pushVerdictNumberArguments; +function pushVerdictArgument(args, value) { + if (Array.isArray(value)) { + args.push(value.length.toString(), ...value); + } + else { + args.push('1', value); + } + return args; +} +exports.pushVerdictArgument = pushVerdictArgument; +function pushOptionalVerdictArgument(args, name, value) { + if (value === undefined) + return args; + args.push(name); + return pushVerdictArgument(args, value); +} +exports.pushOptionalVerdictArgument = pushOptionalVerdictArgument; +var CommandFlags; +(function (CommandFlags) { + CommandFlags["WRITE"] = "write"; + CommandFlags["READONLY"] = "readonly"; + CommandFlags["DENYOOM"] = "denyoom"; + CommandFlags["ADMIN"] = "admin"; + CommandFlags["PUBSUB"] = "pubsub"; + CommandFlags["NOSCRIPT"] = "noscript"; + CommandFlags["RANDOM"] = "random"; + CommandFlags["SORT_FOR_SCRIPT"] = "sort_for_script"; + CommandFlags["LOADING"] = "loading"; + CommandFlags["STALE"] = "stale"; + CommandFlags["SKIP_MONITOR"] = "skip_monitor"; + CommandFlags["ASKING"] = "asking"; + CommandFlags["FAST"] = "fast"; + CommandFlags["MOVABLEKEYS"] = "movablekeys"; // keys have no pre-determined position. You must discover keys yourself. +})(CommandFlags || (exports.CommandFlags = CommandFlags = {})); +var CommandCategories; +(function (CommandCategories) { + CommandCategories["KEYSPACE"] = "@keyspace"; + CommandCategories["READ"] = "@read"; + CommandCategories["WRITE"] = "@write"; + CommandCategories["SET"] = "@set"; + CommandCategories["SORTEDSET"] = "@sortedset"; + CommandCategories["LIST"] = "@list"; + CommandCategories["HASH"] = "@hash"; + CommandCategories["STRING"] = "@string"; + CommandCategories["BITMAP"] = "@bitmap"; + CommandCategories["HYPERLOGLOG"] = "@hyperloglog"; + CommandCategories["GEO"] = "@geo"; + CommandCategories["STREAM"] = "@stream"; + CommandCategories["PUBSUB"] = "@pubsub"; + CommandCategories["ADMIN"] = "@admin"; + CommandCategories["FAST"] = "@fast"; + CommandCategories["SLOW"] = "@slow"; + CommandCategories["BLOCKING"] = "@blocking"; + CommandCategories["DANGEROUS"] = "@dangerous"; + CommandCategories["CONNECTION"] = "@connection"; + CommandCategories["TRANSACTION"] = "@transaction"; + CommandCategories["SCRIPTING"] = "@scripting"; +})(CommandCategories || (exports.CommandCategories = CommandCategories = {})); +function transformCommandReply([name, arity, flags, firstKeyIndex, lastKeyIndex, step, categories]) { + return { + name, + arity, + flags: new Set(flags), + firstKeyIndex, + lastKeyIndex, + step, + categories: new Set(categories) + }; +} +exports.transformCommandReply = transformCommandReply; +var RedisFunctionFlags; +(function (RedisFunctionFlags) { + RedisFunctionFlags["NO_WRITES"] = "no-writes"; + RedisFunctionFlags["ALLOW_OOM"] = "allow-oom"; + RedisFunctionFlags["ALLOW_STALE"] = "allow-stale"; + RedisFunctionFlags["NO_CLUSTER"] = "no-cluster"; +})(RedisFunctionFlags || (exports.RedisFunctionFlags = RedisFunctionFlags = {})); +function transformFunctionListItemReply(reply) { + return { + libraryName: reply[1], + engine: reply[3], + functions: reply[5].map(fn => ({ + name: fn[1], + description: fn[3], + flags: fn[5] + })) + }; +} +exports.transformFunctionListItemReply = transformFunctionListItemReply; +function pushSortArguments(args, options) { + if (options?.BY) { + args.push('BY', options.BY); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + if (options?.GET) { + for (const pattern of (typeof options.GET === 'string' ? [options.GET] : options.GET)) { + args.push('GET', pattern); + } + } + if (options?.DIRECTION) { + args.push(options.DIRECTION); + } + if (options?.ALPHA) { + args.push('ALPHA'); + } + return args; +} +exports.pushSortArguments = pushSortArguments; +function pushSlotRangeArguments(args, range) { + args.push(range.start.toString(), range.end.toString()); +} +function pushSlotRangesArguments(args, ranges) { + if (Array.isArray(ranges)) { + for (const range of ranges) { + pushSlotRangeArguments(args, range); + } + } + else { + pushSlotRangeArguments(args, ranges); + } + return args; +} +exports.pushSlotRangesArguments = pushSlotRangesArguments; +function transformRangeReply([start, end]) { + return { + start, + end + }; +} +exports.transformRangeReply = transformRangeReply; diff --git a/node_modules/@redis/client/dist/lib/commands/index.d.ts b/node_modules/@redis/client/dist/lib/commands/index.d.ts new file mode 100644 index 0000000..d956111 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/index.d.ts @@ -0,0 +1,49 @@ +/// +import { ClientCommandOptions } from '../client'; +import { CommandOptions } from '../command-options'; +import { RedisScriptConfig, SHA1 } from '../lua-script'; +export type RedisCommandRawReply = string | number | Buffer | null | undefined | Array; +export type RedisCommandArgument = string | Buffer; +export type RedisCommandArguments = Array & { + preserve?: unknown; +}; +export interface RedisCommand { + FIRST_KEY_INDEX?: number | ((...args: Array) => RedisCommandArgument | undefined); + IS_READ_ONLY?: boolean; + TRANSFORM_LEGACY_REPLY?: boolean; + transformArguments(this: void, ...args: Array): RedisCommandArguments; + transformReply?(this: void, reply: any, preserved?: any): any; +} +export type RedisCommandReply = C['transformReply'] extends (...args: any) => infer T ? T : RedisCommandRawReply; +export type ConvertArgumentType = Type extends RedisCommandArgument ? (Type extends (string & ToType) ? Type : ToType) : (Type extends Set ? Set> : (Type extends Map ? Map> : (Type extends Array ? Array> : (Type extends Date ? Type : (Type extends Record ? { + [Property in keyof Type]: ConvertArgumentType; +} : Type))))); +export type RedisCommandSignature = Parameters> = >(...args: Params | [options: Options, ...rest: Params]) => Promise, Options['returnBuffers'] extends true ? Buffer : string>>; +export interface RedisCommands { + [command: string]: RedisCommand; +} +export interface RedisModule { + [command: string]: RedisCommand; +} +export interface RedisModules { + [module: string]: RedisModule; +} +export interface RedisFunction extends RedisCommand { + NUMBER_OF_KEYS?: number; +} +export interface RedisFunctionLibrary { + [fn: string]: RedisFunction; +} +export interface RedisFunctions { + [library: string]: RedisFunctionLibrary; +} +export type RedisScript = RedisScriptConfig & SHA1; +export interface RedisScripts { + [script: string]: RedisScript; +} +export interface RedisExtensions { + modules?: M; + functions?: F; + scripts?: S; +} +export type ExcludeMappedString = string extends S ? never : S; diff --git a/node_modules/@redis/client/dist/lib/commands/index.js b/node_modules/@redis/client/dist/lib/commands/index.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/commands/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@redis/client/dist/lib/errors.d.ts b/node_modules/@redis/client/dist/lib/errors.d.ts new file mode 100644 index 0000000..f0ccef9 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/errors.d.ts @@ -0,0 +1,39 @@ +import { RedisCommandRawReply } from './commands'; +export declare class AbortError extends Error { + constructor(); +} +export declare class WatchError extends Error { + constructor(); +} +export declare class ConnectionTimeoutError extends Error { + constructor(); +} +export declare class ClientClosedError extends Error { + constructor(); +} +export declare class ClientOfflineError extends Error { + constructor(); +} +export declare class DisconnectsClientError extends Error { + constructor(); +} +export declare class SocketClosedUnexpectedlyError extends Error { + constructor(); +} +export declare class RootNodesUnavailableError extends Error { + constructor(); +} +export declare class ReconnectStrategyError extends Error { + originalError: Error; + socketError: unknown; + constructor(originalError: Error, socketError: unknown); +} +export declare class ErrorReply extends Error { + constructor(message: string); +} +export declare class MultiErrorReply extends ErrorReply { + replies: (RedisCommandRawReply | ErrorReply)[]; + errorIndexes: number[]; + constructor(replies: Array, errorIndexes: Array); + errors(): Generator; +} diff --git a/node_modules/@redis/client/dist/lib/errors.js b/node_modules/@redis/client/dist/lib/errors.js new file mode 100644 index 0000000..7919d27 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/errors.js @@ -0,0 +1,103 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MultiErrorReply = exports.ErrorReply = exports.ReconnectStrategyError = exports.RootNodesUnavailableError = exports.SocketClosedUnexpectedlyError = exports.DisconnectsClientError = exports.ClientOfflineError = exports.ClientClosedError = exports.ConnectionTimeoutError = exports.WatchError = exports.AbortError = void 0; +class AbortError extends Error { + constructor() { + super('The command was aborted'); + } +} +exports.AbortError = AbortError; +class WatchError extends Error { + constructor() { + super('One (or more) of the watched keys has been changed'); + } +} +exports.WatchError = WatchError; +class ConnectionTimeoutError extends Error { + constructor() { + super('Connection timeout'); + } +} +exports.ConnectionTimeoutError = ConnectionTimeoutError; +class ClientClosedError extends Error { + constructor() { + super('The client is closed'); + } +} +exports.ClientClosedError = ClientClosedError; +class ClientOfflineError extends Error { + constructor() { + super('The client is offline'); + } +} +exports.ClientOfflineError = ClientOfflineError; +class DisconnectsClientError extends Error { + constructor() { + super('Disconnects client'); + } +} +exports.DisconnectsClientError = DisconnectsClientError; +class SocketClosedUnexpectedlyError extends Error { + constructor() { + super('Socket closed unexpectedly'); + } +} +exports.SocketClosedUnexpectedlyError = SocketClosedUnexpectedlyError; +class RootNodesUnavailableError extends Error { + constructor() { + super('All the root nodes are unavailable'); + } +} +exports.RootNodesUnavailableError = RootNodesUnavailableError; +class ReconnectStrategyError extends Error { + constructor(originalError, socketError) { + super(originalError.message); + Object.defineProperty(this, "originalError", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "socketError", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.originalError = originalError; + this.socketError = socketError; + } +} +exports.ReconnectStrategyError = ReconnectStrategyError; +class ErrorReply extends Error { + constructor(message) { + super(message); + this.stack = undefined; + } +} +exports.ErrorReply = ErrorReply; +class MultiErrorReply extends ErrorReply { + constructor(replies, errorIndexes) { + super(`${errorIndexes.length} commands failed, see .replies and .errorIndexes for more information`); + Object.defineProperty(this, "replies", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "errorIndexes", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.replies = replies; + this.errorIndexes = errorIndexes; + } + *errors() { + for (const index of this.errorIndexes) { + yield this.replies[index]; + } + } +} +exports.MultiErrorReply = MultiErrorReply; diff --git a/node_modules/@redis/client/dist/lib/lua-script.d.ts b/node_modules/@redis/client/dist/lib/lua-script.d.ts new file mode 100644 index 0000000..29a7116 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/lua-script.d.ts @@ -0,0 +1,10 @@ +import { RedisCommand } from './commands'; +export interface RedisScriptConfig extends RedisCommand { + SCRIPT: string; + NUMBER_OF_KEYS?: number; +} +export interface SHA1 { + SHA1: string; +} +export declare function defineScript(script: S): S & SHA1; +export declare function scriptSha1(script: string): string; diff --git a/node_modules/@redis/client/dist/lib/lua-script.js b/node_modules/@redis/client/dist/lib/lua-script.js new file mode 100644 index 0000000..3a5d94f --- /dev/null +++ b/node_modules/@redis/client/dist/lib/lua-script.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.scriptSha1 = exports.defineScript = void 0; +const crypto_1 = require("crypto"); +function defineScript(script) { + return { + ...script, + SHA1: scriptSha1(script.SCRIPT) + }; +} +exports.defineScript = defineScript; +function scriptSha1(script) { + return (0, crypto_1.createHash)('sha1').update(script).digest('hex'); +} +exports.scriptSha1 = scriptSha1; diff --git a/node_modules/@redis/client/dist/lib/multi-command.d.ts b/node_modules/@redis/client/dist/lib/multi-command.d.ts new file mode 100644 index 0000000..9e47534 --- /dev/null +++ b/node_modules/@redis/client/dist/lib/multi-command.d.ts @@ -0,0 +1,16 @@ +import { RedisCommand, RedisCommandArguments, RedisCommandRawReply, RedisFunction, RedisScript } from './commands'; +import { ErrorReply } from './errors'; +export interface RedisMultiQueuedCommand { + args: RedisCommandArguments; + transformReply?: RedisCommand['transformReply']; +} +export default class RedisMultiCommand { + static generateChainId(): symbol; + readonly queue: Array; + readonly scriptsInUse: Set; + addCommand(args: RedisCommandArguments, transformReply?: RedisCommand['transformReply']): void; + addFunction(name: string, fn: RedisFunction, args: Array): RedisCommandArguments; + addScript(script: RedisScript, args: Array): RedisCommandArguments; + handleExecReplies(rawReplies: Array): Array; + transformReplies(rawReplies: Array): Array; +} diff --git a/node_modules/@redis/client/dist/lib/multi-command.js b/node_modules/@redis/client/dist/lib/multi-command.js new file mode 100644 index 0000000..91da60c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/multi-command.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const commander_1 = require("./commander"); +const errors_1 = require("./errors"); +class RedisMultiCommand { + constructor() { + Object.defineProperty(this, "queue", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + Object.defineProperty(this, "scriptsInUse", { + enumerable: true, + configurable: true, + writable: true, + value: new Set() + }); + } + static generateChainId() { + return Symbol('RedisMultiCommand Chain Id'); + } + addCommand(args, transformReply) { + this.queue.push({ + args, + transformReply + }); + } + addFunction(name, fn, args) { + const transformedArguments = (0, commander_1.fCallArguments)(name, fn, fn.transformArguments(...args)); + this.queue.push({ + args: transformedArguments, + transformReply: fn.transformReply + }); + return transformedArguments; + } + addScript(script, args) { + const transformedArguments = []; + if (this.scriptsInUse.has(script.SHA1)) { + transformedArguments.push('EVALSHA', script.SHA1); + } + else { + this.scriptsInUse.add(script.SHA1); + transformedArguments.push('EVAL', script.SCRIPT); + } + if (script.NUMBER_OF_KEYS !== undefined) { + transformedArguments.push(script.NUMBER_OF_KEYS.toString()); + } + const scriptArguments = script.transformArguments(...args); + transformedArguments.push(...scriptArguments); + if (scriptArguments.preserve) { + transformedArguments.preserve = scriptArguments.preserve; + } + this.addCommand(transformedArguments, script.transformReply); + return transformedArguments; + } + handleExecReplies(rawReplies) { + const execReply = rawReplies[rawReplies.length - 1]; + if (execReply === null) { + throw new errors_1.WatchError(); + } + return this.transformReplies(execReply); + } + transformReplies(rawReplies) { + const errorIndexes = [], replies = rawReplies.map((reply, i) => { + if (reply instanceof errors_1.ErrorReply) { + errorIndexes.push(i); + return reply; + } + const { transformReply, args } = this.queue[i]; + return transformReply ? transformReply(reply, args.preserve) : reply; + }); + if (errorIndexes.length) + throw new errors_1.MultiErrorReply(replies, errorIndexes); + return replies; + } +} +exports.default = RedisMultiCommand; diff --git a/node_modules/@redis/client/dist/lib/utils.d.ts b/node_modules/@redis/client/dist/lib/utils.d.ts new file mode 100644 index 0000000..c930f9d --- /dev/null +++ b/node_modules/@redis/client/dist/lib/utils.d.ts @@ -0,0 +1 @@ +export declare function promiseTimeout(ms: number): Promise; diff --git a/node_modules/@redis/client/dist/lib/utils.js b/node_modules/@redis/client/dist/lib/utils.js new file mode 100644 index 0000000..013763c --- /dev/null +++ b/node_modules/@redis/client/dist/lib/utils.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.promiseTimeout = void 0; +function promiseTimeout(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} +exports.promiseTimeout = promiseTimeout; diff --git a/node_modules/@redis/client/dist/package.json b/node_modules/@redis/client/dist/package.json new file mode 100644 index 0000000..183b935 --- /dev/null +++ b/node_modules/@redis/client/dist/package.json @@ -0,0 +1,52 @@ +{ + "name": "@redis/client", + "version": "1.5.17", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "lint": "eslint ./*.ts ./lib/**/*.ts", + "documentation": "typedoc" + }, + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "@types/sinon": "^10.0.16", + "@types/yallist": "^4.0.1", + "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/parser": "^6.7.2", + "eslint": "^8.49.0", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "sinon": "^16.0.0", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "engines": { + "node": ">=14" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/client", + "keywords": [ + "redis" + ] +} diff --git a/node_modules/@redis/client/package.json b/node_modules/@redis/client/package.json new file mode 100644 index 0000000..e344edd --- /dev/null +++ b/node_modules/@redis/client/package.json @@ -0,0 +1,52 @@ +{ + "name": "@redis/client", + "version": "1.6.0", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "lint": "eslint ./*.ts ./lib/**/*.ts", + "documentation": "typedoc" + }, + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "@types/sinon": "^10.0.16", + "@types/yallist": "^4.0.1", + "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/parser": "^6.7.2", + "eslint": "^8.49.0", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "sinon": "^16.0.0", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "engines": { + "node": ">=14" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/client", + "keywords": [ + "redis" + ] +} diff --git a/node_modules/@redis/graph/README.md b/node_modules/@redis/graph/README.md new file mode 100644 index 0000000..4c712bf --- /dev/null +++ b/node_modules/@redis/graph/README.md @@ -0,0 +1,34 @@ +# @redis/graph + +Example usage: +```javascript +import { createClient, Graph } from 'redis'; + +const client = createClient(); +client.on('error', (err) => console.log('Redis Client Error', err)); + +await client.connect(); + +const graph = new Graph(client, 'graph'); + +await graph.query( + 'CREATE (:Rider { name: $riderName })-[:rides]->(:Team { name: $teamName })', + { + params: { + riderName: 'Buzz Aldrin', + teamName: 'Apollo' + } + } +); + +const result = await graph.roQuery( + 'MATCH (r:Rider)-[:rides]->(t:Team { name: $name }) RETURN r.name AS name', + { + params: { + name: 'Apollo' + } + } +); + +console.log(result.data); // [{ name: 'Buzz Aldrin' }] +``` diff --git a/node_modules/@redis/graph/dist/commands/CONFIG_GET.d.ts b/node_modules/@redis/graph/dist/commands/CONFIG_GET.d.ts new file mode 100644 index 0000000..3a89f87 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/CONFIG_GET.d.ts @@ -0,0 +1,8 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(configKey: string): Array; +type ConfigItem = [ + configKey: string, + value: number +]; +export declare function transformReply(): ConfigItem | Array; +export {}; diff --git a/node_modules/@redis/graph/dist/commands/CONFIG_GET.js b/node_modules/@redis/graph/dist/commands/CONFIG_GET.js new file mode 100644 index 0000000..169c40f --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/CONFIG_GET.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(configKey) { + return ['GRAPH.CONFIG', 'GET', configKey]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/CONFIG_SET.d.ts b/node_modules/@redis/graph/dist/commands/CONFIG_SET.d.ts new file mode 100644 index 0000000..6209229 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/CONFIG_SET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(configKey: string, value: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/graph/dist/commands/CONFIG_SET.js b/node_modules/@redis/graph/dist/commands/CONFIG_SET.js new file mode 100644 index 0000000..7336c4b --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/CONFIG_SET.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(configKey, value) { + return [ + 'GRAPH.CONFIG', + 'SET', + configKey, + value.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/DELETE.d.ts b/node_modules/@redis/graph/dist/commands/DELETE.d.ts new file mode 100644 index 0000000..8b5c99b --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/DELETE.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string): Array; +export declare function transformReply(): string; diff --git a/node_modules/@redis/graph/dist/commands/DELETE.js b/node_modules/@redis/graph/dist/commands/DELETE.js new file mode 100644 index 0000000..6123ffc --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/DELETE.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GRAPH.DELETE', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/EXPLAIN.d.ts b/node_modules/@redis/graph/dist/commands/EXPLAIN.d.ts new file mode 100644 index 0000000..883405b --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/EXPLAIN.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, query: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/graph/dist/commands/EXPLAIN.js b/node_modules/@redis/graph/dist/commands/EXPLAIN.js new file mode 100644 index 0000000..d63c05c --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/EXPLAIN.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, query) { + return ['GRAPH.EXPLAIN', key, query]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/LIST.d.ts b/node_modules/@redis/graph/dist/commands/LIST.d.ts new file mode 100644 index 0000000..53667fd --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/LIST.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/graph/dist/commands/LIST.js b/node_modules/@redis/graph/dist/commands/LIST.js new file mode 100644 index 0000000..b9c6f06 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/LIST.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['GRAPH.LIST']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/PROFILE.d.ts b/node_modules/@redis/graph/dist/commands/PROFILE.d.ts new file mode 100644 index 0000000..883405b --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/PROFILE.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, query: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/graph/dist/commands/PROFILE.js b/node_modules/@redis/graph/dist/commands/PROFILE.js new file mode 100644 index 0000000..f5749e6 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/PROFILE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, query) { + return ['GRAPH.PROFILE', key, query]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/graph/dist/commands/QUERY.d.ts b/node_modules/@redis/graph/dist/commands/QUERY.d.ts new file mode 100644 index 0000000..a14264b --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/QUERY.d.ts @@ -0,0 +1,25 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands/index'; +import { QueryOptionsBackwardCompatible } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(graph: RedisCommandArgument, query: RedisCommandArgument, options?: QueryOptionsBackwardCompatible, compact?: boolean): RedisCommandArguments; +type Headers = Array; +type Data = Array; +type Metadata = Array; +type QueryRawReply = [ + headers: Headers, + data: Data, + metadata: Metadata +] | [ + metadata: Metadata +]; +export type QueryReply = { + headers: undefined; + data: undefined; + metadata: Metadata; +} | { + headers: Headers; + data: Data; + metadata: Metadata; +}; +export declare function transformReply(reply: QueryRawReply): QueryReply; +export {}; diff --git a/node_modules/@redis/graph/dist/commands/QUERY.js b/node_modules/@redis/graph/dist/commands/QUERY.js new file mode 100644 index 0000000..cb81373 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/QUERY.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(graph, query, options, compact) { + return (0, _1.pushQueryArguments)(['GRAPH.QUERY'], graph, query, options, compact); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.length === 1 ? { + headers: undefined, + data: undefined, + metadata: reply[0] + } : { + headers: reply[0], + data: reply[1], + metadata: reply[2] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/graph/dist/commands/RO_QUERY.d.ts b/node_modules/@redis/graph/dist/commands/RO_QUERY.d.ts new file mode 100644 index 0000000..7ffad65 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/RO_QUERY.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { QueryOptionsBackwardCompatible } from '.'; +export { FIRST_KEY_INDEX } from './QUERY'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(graph: RedisCommandArgument, query: RedisCommandArgument, options?: QueryOptionsBackwardCompatible, compact?: boolean): RedisCommandArguments; +export { transformReply } from './QUERY'; diff --git a/node_modules/@redis/graph/dist/commands/RO_QUERY.js b/node_modules/@redis/graph/dist/commands/RO_QUERY.js new file mode 100644 index 0000000..eb9ed57 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/RO_QUERY.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +var QUERY_1 = require("./QUERY"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return QUERY_1.FIRST_KEY_INDEX; } }); +exports.IS_READ_ONLY = true; +function transformArguments(graph, query, options, compact) { + return (0, _1.pushQueryArguments)(['GRAPH.RO_QUERY'], graph, query, options, compact); +} +exports.transformArguments = transformArguments; +var QUERY_2 = require("./QUERY"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return QUERY_2.transformReply; } }); diff --git a/node_modules/@redis/graph/dist/commands/SLOWLOG.d.ts b/node_modules/@redis/graph/dist/commands/SLOWLOG.d.ts new file mode 100644 index 0000000..53155f2 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/SLOWLOG.d.ts @@ -0,0 +1,17 @@ +export declare const IS_READ_ONLY = true; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string): string[]; +type SlowLogRawReply = Array<[ + timestamp: string, + command: string, + query: string, + took: string +]>; +type SlowLogReply = Array<{ + timestamp: Date; + command: string; + query: string; + took: number; +}>; +export declare function transformReply(logs: SlowLogRawReply): SlowLogReply; +export {}; diff --git a/node_modules/@redis/graph/dist/commands/SLOWLOG.js b/node_modules/@redis/graph/dist/commands/SLOWLOG.js new file mode 100644 index 0000000..bbadeb3 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/SLOWLOG.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GRAPH.SLOWLOG', key]; +} +exports.transformArguments = transformArguments; +function transformReply(logs) { + return logs.map(([timestamp, command, query, took]) => ({ + timestamp: new Date(Number(timestamp) * 1000), + command, + query, + took: Number(took) + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/graph/dist/commands/index.d.ts b/node_modules/@redis/graph/dist/commands/index.d.ts new file mode 100644 index 0000000..d39c646 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/index.d.ts @@ -0,0 +1,41 @@ +import * as CONFIG_GET from './CONFIG_GET'; +import * as CONFIG_SET from './CONFIG_SET'; +import * as DELETE from './DELETE'; +import * as EXPLAIN from './EXPLAIN'; +import * as LIST from './LIST'; +import * as PROFILE from './PROFILE'; +import * as QUERY from './QUERY'; +import * as RO_QUERY from './RO_QUERY'; +import * as SLOWLOG from './SLOWLOG'; +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +declare const _default: { + CONFIG_GET: typeof CONFIG_GET; + configGet: typeof CONFIG_GET; + CONFIG_SET: typeof CONFIG_SET; + configSet: typeof CONFIG_SET; + DELETE: typeof DELETE; + delete: typeof DELETE; + EXPLAIN: typeof EXPLAIN; + explain: typeof EXPLAIN; + LIST: typeof LIST; + list: typeof LIST; + PROFILE: typeof PROFILE; + profile: typeof PROFILE; + QUERY: typeof QUERY; + query: typeof QUERY; + RO_QUERY: typeof RO_QUERY; + roQuery: typeof RO_QUERY; + SLOWLOG: typeof SLOWLOG; + slowLog: typeof SLOWLOG; +}; +export default _default; +type QueryParam = null | string | number | boolean | QueryParams | Array; +type QueryParams = { + [key: string]: QueryParam; +}; +export interface QueryOptions { + params?: QueryParams; + TIMEOUT?: number; +} +export type QueryOptionsBackwardCompatible = QueryOptions | number; +export declare function pushQueryArguments(args: RedisCommandArguments, graph: RedisCommandArgument, query: RedisCommandArgument, options?: QueryOptionsBackwardCompatible, compact?: boolean): RedisCommandArguments; diff --git a/node_modules/@redis/graph/dist/commands/index.js b/node_modules/@redis/graph/dist/commands/index.js new file mode 100644 index 0000000..1f71400 --- /dev/null +++ b/node_modules/@redis/graph/dist/commands/index.js @@ -0,0 +1,88 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pushQueryArguments = void 0; +const CONFIG_GET = require("./CONFIG_GET"); +const CONFIG_SET = require("./CONFIG_SET"); +; +const DELETE = require("./DELETE"); +const EXPLAIN = require("./EXPLAIN"); +const LIST = require("./LIST"); +const PROFILE = require("./PROFILE"); +const QUERY = require("./QUERY"); +const RO_QUERY = require("./RO_QUERY"); +const SLOWLOG = require("./SLOWLOG"); +exports.default = { + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_SET, + configSet: CONFIG_SET, + DELETE, + delete: DELETE, + EXPLAIN, + explain: EXPLAIN, + LIST, + list: LIST, + PROFILE, + profile: PROFILE, + QUERY, + query: QUERY, + RO_QUERY, + roQuery: RO_QUERY, + SLOWLOG, + slowLog: SLOWLOG +}; +function pushQueryArguments(args, graph, query, options, compact) { + args.push(graph); + if (typeof options === 'number') { + args.push(query); + pushTimeout(args, options); + } + else { + args.push(options?.params ? + `CYPHER ${queryParamsToString(options.params)} ${query}` : + query); + if (options?.TIMEOUT !== undefined) { + pushTimeout(args, options.TIMEOUT); + } + } + if (compact) { + args.push('--compact'); + } + return args; +} +exports.pushQueryArguments = pushQueryArguments; +function pushTimeout(args, timeout) { + args.push('TIMEOUT', timeout.toString()); +} +function queryParamsToString(params) { + const parts = []; + for (const [key, value] of Object.entries(params)) { + parts.push(`${key}=${queryParamToString(value)}`); + } + return parts.join(' '); +} +function queryParamToString(param) { + if (param === null) { + return 'null'; + } + switch (typeof param) { + case 'string': + return `"${param.replace(/["\\]/g, '\\$&')}"`; + case 'number': + case 'boolean': + return param.toString(); + } + if (Array.isArray(param)) { + return `[${param.map(queryParamToString).join(',')}]`; + } + else if (typeof param === 'object') { + const body = []; + for (const [key, value] of Object.entries(param)) { + body.push(`${key}:${queryParamToString(value)}`); + } + return `{${body.join(',')}}`; + } + else { + throw new TypeError(`Unexpected param type ${typeof param} ${param}`); + } +} diff --git a/node_modules/@redis/graph/dist/graph.d.ts b/node_modules/@redis/graph/dist/graph.d.ts new file mode 100644 index 0000000..0764e69 --- /dev/null +++ b/node_modules/@redis/graph/dist/graph.d.ts @@ -0,0 +1,19 @@ +import { RedisClientType } from '@redis/client/dist/lib/client/index'; +import { RedisCommandArgument, RedisFunctions, RedisScripts } from '@redis/client/dist/lib/commands'; +import { QueryOptions } from './commands'; +import { QueryReply } from './commands/QUERY'; +export type GraphReply = Omit & { + data?: Array; +}; +export type GraphClientType = RedisClientType<{ + graph: { + query: typeof import('./commands/QUERY'); + roQuery: typeof import('./commands/RO_QUERY'); + }; +}, RedisFunctions, RedisScripts>; +export default class Graph { + #private; + constructor(client: GraphClientType, name: string); + query(query: RedisCommandArgument, options?: QueryOptions): Promise>; + roQuery(query: RedisCommandArgument, options?: QueryOptions): Promise>; +} diff --git a/node_modules/@redis/graph/dist/graph.js b/node_modules/@redis/graph/dist/graph.js new file mode 100644 index 0000000..230de6f --- /dev/null +++ b/node_modules/@redis/graph/dist/graph.js @@ -0,0 +1,173 @@ +"use strict"; +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _Graph_instances, _Graph_client, _Graph_name, _Graph_metadata, _Graph_setMetadataPromise, _Graph_updateMetadata, _Graph_setMetadata, _Graph_cleanMetadataArray, _Graph_getMetadata, _Graph_getMetadataAsync, _Graph_parseReply, _Graph_parseValue, _Graph_parseEdge, _Graph_parseNode, _Graph_parseProperties; +Object.defineProperty(exports, "__esModule", { value: true }); +// https://github.com/RedisGraph/RedisGraph/blob/master/src/resultset/formatters/resultset_formatter.h#L20 +var GraphValueTypes; +(function (GraphValueTypes) { + GraphValueTypes[GraphValueTypes["UNKNOWN"] = 0] = "UNKNOWN"; + GraphValueTypes[GraphValueTypes["NULL"] = 1] = "NULL"; + GraphValueTypes[GraphValueTypes["STRING"] = 2] = "STRING"; + GraphValueTypes[GraphValueTypes["INTEGER"] = 3] = "INTEGER"; + GraphValueTypes[GraphValueTypes["BOOLEAN"] = 4] = "BOOLEAN"; + GraphValueTypes[GraphValueTypes["DOUBLE"] = 5] = "DOUBLE"; + GraphValueTypes[GraphValueTypes["ARRAY"] = 6] = "ARRAY"; + GraphValueTypes[GraphValueTypes["EDGE"] = 7] = "EDGE"; + GraphValueTypes[GraphValueTypes["NODE"] = 8] = "NODE"; + GraphValueTypes[GraphValueTypes["PATH"] = 9] = "PATH"; + GraphValueTypes[GraphValueTypes["MAP"] = 10] = "MAP"; + GraphValueTypes[GraphValueTypes["POINT"] = 11] = "POINT"; +})(GraphValueTypes || (GraphValueTypes = {})); +class Graph { + constructor(client, name) { + _Graph_instances.add(this); + _Graph_client.set(this, void 0); + _Graph_name.set(this, void 0); + _Graph_metadata.set(this, void 0); + _Graph_setMetadataPromise.set(this, void 0); + __classPrivateFieldSet(this, _Graph_client, client, "f"); + __classPrivateFieldSet(this, _Graph_name, name, "f"); + } + async query(query, options) { + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, "f").graph.query(__classPrivateFieldGet(this, _Graph_name, "f"), query, options, true)); + } + async roQuery(query, options) { + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), query, options, true)); + } +} +_Graph_client = new WeakMap(), _Graph_name = new WeakMap(), _Graph_metadata = new WeakMap(), _Graph_setMetadataPromise = new WeakMap(), _Graph_instances = new WeakSet(), _Graph_updateMetadata = function _Graph_updateMetadata() { + __classPrivateFieldSet(this, _Graph_setMetadataPromise, __classPrivateFieldGet(this, _Graph_setMetadataPromise, "f") ?? __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_setMetadata).call(this) + .finally(() => __classPrivateFieldSet(this, _Graph_setMetadataPromise, undefined, "f")), "f"); + return __classPrivateFieldGet(this, _Graph_setMetadataPromise, "f"); +}, _Graph_setMetadata = +// DO NOT use directly, use #updateMetadata instead +async function _Graph_setMetadata() { + const [labels, relationshipTypes, propertyKeys] = await Promise.all([ + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.labels()'), + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.relationshipTypes()'), + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.propertyKeys()') + ]); + __classPrivateFieldSet(this, _Graph_metadata, { + labels: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, labels.data), + relationshipTypes: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, relationshipTypes.data), + propertyKeys: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, propertyKeys.data) + }, "f"); + return __classPrivateFieldGet(this, _Graph_metadata, "f"); +}, _Graph_cleanMetadataArray = function _Graph_cleanMetadataArray(arr) { + return arr.map(([value]) => value); +}, _Graph_getMetadata = function _Graph_getMetadata(key, id) { + return __classPrivateFieldGet(this, _Graph_metadata, "f")?.[key][id] ?? __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadataAsync).call(this, key, id); +}, _Graph_getMetadataAsync = +// DO NOT use directly, use #getMetadata instead +async function _Graph_getMetadataAsync(key, id) { + const value = (await __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_updateMetadata).call(this))[key][id]; + if (value === undefined) + throw new Error(`Cannot find value from ${key}[${id}]`); + return value; +}, _Graph_parseReply = async function _Graph_parseReply(reply) { + if (!reply.data) + return reply; + const promises = [], parsed = { + metadata: reply.metadata, + data: reply.data.map((row) => { + const data = {}; + for (let i = 0; i < row.length; i++) { + data[reply.headers[i][1]] = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, row[i], promises); + } + return data; + }) + }; + if (promises.length) + await Promise.all(promises); + return parsed; +}, _Graph_parseValue = function _Graph_parseValue([valueType, value], promises) { + switch (valueType) { + case GraphValueTypes.NULL: + return null; + case GraphValueTypes.STRING: + case GraphValueTypes.INTEGER: + return value; + case GraphValueTypes.BOOLEAN: + return value === 'true'; + case GraphValueTypes.DOUBLE: + return parseFloat(value); + case GraphValueTypes.ARRAY: + return value.map(x => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, x, promises)); + case GraphValueTypes.EDGE: + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseEdge).call(this, value, promises); + case GraphValueTypes.NODE: + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseNode).call(this, value, promises); + case GraphValueTypes.PATH: + return { + nodes: value[0][1].map(([, node]) => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseNode).call(this, node, promises)), + edges: value[1][1].map(([, edge]) => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseEdge).call(this, edge, promises)) + }; + case GraphValueTypes.MAP: + const map = {}; + for (let i = 0; i < value.length; i++) { + map[value[i++]] = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, value[i], promises); + } + return map; + case GraphValueTypes.POINT: + return { + latitude: parseFloat(value[0]), + longitude: parseFloat(value[1]) + }; + default: + throw new Error(`unknown scalar type: ${valueType}`); + } +}, _Graph_parseEdge = function _Graph_parseEdge([id, relationshipTypeId, sourceId, destinationId, properties], promises) { + const edge = { + id, + sourceId, + destinationId, + properties: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseProperties).call(this, properties, promises) + }; + const relationshipType = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'relationshipTypes', relationshipTypeId); + if (relationshipType instanceof Promise) { + promises.push(relationshipType.then(value => edge.relationshipType = value)); + } + else { + edge.relationshipType = relationshipType; + } + return edge; +}, _Graph_parseNode = function _Graph_parseNode([id, labelIds, properties], promises) { + const labels = new Array(labelIds.length); + for (let i = 0; i < labelIds.length; i++) { + const value = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'labels', labelIds[i]); + if (value instanceof Promise) { + promises.push(value.then(value => labels[i] = value)); + } + else { + labels[i] = value; + } + } + return { + id, + labels, + properties: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseProperties).call(this, properties, promises) + }; +}, _Graph_parseProperties = function _Graph_parseProperties(raw, promises) { + const parsed = {}; + for (const [id, type, value] of raw) { + const parsedValue = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, [type, value], promises), key = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'propertyKeys', id); + if (key instanceof Promise) { + promises.push(key.then(key => parsed[key] = parsedValue)); + } + else { + parsed[key] = parsedValue; + } + } + return parsed; +}; +exports.default = Graph; diff --git a/node_modules/@redis/graph/dist/index.d.ts b/node_modules/@redis/graph/dist/index.d.ts new file mode 100644 index 0000000..e9f15ab --- /dev/null +++ b/node_modules/@redis/graph/dist/index.d.ts @@ -0,0 +1,2 @@ +export { default } from './commands'; +export { default as Graph } from './graph'; diff --git a/node_modules/@redis/graph/dist/index.js b/node_modules/@redis/graph/dist/index.js new file mode 100644 index 0000000..3552eff --- /dev/null +++ b/node_modules/@redis/graph/dist/index.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Graph = exports.default = void 0; +var commands_1 = require("./commands"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return commands_1.default; } }); +var graph_1 = require("./graph"); +Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return graph_1.default; } }); diff --git a/node_modules/@redis/graph/package.json b/node_modules/@redis/graph/package.json new file mode 100644 index 0000000..95cce6b --- /dev/null +++ b/node_modules/@redis/graph/package.json @@ -0,0 +1,41 @@ +{ + "name": "@redis/graph", + "version": "1.1.1", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "documentation": "typedoc" + }, + "peerDependencies": { + "@redis/client": "^1.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/graph", + "keywords": [ + "redis", + "RedisGraph" + ] +} diff --git a/node_modules/@redis/json/README.md b/node_modules/@redis/json/README.md new file mode 100644 index 0000000..e7f7017 --- /dev/null +++ b/node_modules/@redis/json/README.md @@ -0,0 +1,80 @@ +# @redis/json + +This package provides support for the [RedisJSON](https://redis.io/docs/stack/json/) module, which adds JSON as a native data type to Redis. It extends the [Node Redis client](https://github.com/redis/node-redis) to include functions for each of the RedisJSON commands. + +To use these extra commands, your Redis server must have the RedisJSON module installed. + +## Usage + +For a complete example, see [`managing-json.js`](https://github.com/redis/node-redis/blob/master/examples/managing-json.js) in the Node Redis examples folder. + +### Storing JSON Documents in Redis + +The [`JSON.SET`](https://redis.io/commands/json.set/) command stores a JSON value at a given JSON Path in a Redis key. + +Here, we'll store a JSON document in the root of the Redis key "`mydoc`": + +```javascript +import { createClient } from 'redis'; + +... +await client.json.set('noderedis:jsondata', '$', { + name: 'Roberta McDonald', + pets: [ + { + name: 'Rex', + species: 'dog', + age: 3, + isMammal: true + }, + { + name: 'Goldie', + species: 'fish', + age: 2, + isMammal: false + } + ] +}); +``` + +For more information about RedisJSON's path syntax, [check out the documentation](https://redis.io/docs/stack/json/path/). + +### Retrieving JSON Documents from Redis + +With RedisJSON, we can retrieve all or part(s) of a JSON document using the [`JSON.GET`](https://redis.io/commands/json.get/) command and one or more JSON Paths. Let's get the name and age of one of the pets: + +```javascript +const results = await client.json.get('noderedis:jsondata', { + path: [ + '.pets[1].name', + '.pets[1].age' + ] +}); +``` + +`results` will contain the following: + +```javascript + { '.pets[1].name': 'Goldie', '.pets[1].age': 2 } +``` + +### Performing Atomic Updates on JSON Documents Stored in Redis + +RedisJSON includes commands that can atomically update values in a JSON document, in place in Redis without having to first retrieve the entire document. + +Using the [`JSON.NUMINCRBY`](https://redis.io/commands/json.numincrby/) command, we can update the age of one of the pets like this: + +```javascript +await client.json.numIncrBy('noderedis:jsondata', '.pets[1].age', 1); +``` + +And we can add a new object to the pets array with the [`JSON.ARRAPPEND`](https://redis.io/commands/json.arrappend/) command: + +```javascript +await client.json.arrAppend('noderedis:jsondata', '.pets', { + name: 'Robin', + species: 'bird', + age: 1, + isMammal: false +}); +``` diff --git a/node_modules/@redis/json/dist/commands/ARRAPPEND.d.ts b/node_modules/@redis/json/dist/commands/ARRAPPEND.d.ts new file mode 100644 index 0000000..c13272a --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRAPPEND.d.ts @@ -0,0 +1,4 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, ...jsons: Array): Array; +export declare function transformReply(): number | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRAPPEND.js b/node_modules/@redis/json/dist/commands/ARRAPPEND.js new file mode 100644 index 0000000..cc178b6 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRAPPEND.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, ...jsons) { + const args = ['JSON.ARRAPPEND', key, path]; + for (const json of jsons) { + args.push((0, _1.transformRedisJsonArgument)(json)); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/ARRINDEX.d.ts b/node_modules/@redis/json/dist/commands/ARRINDEX.d.ts new file mode 100644 index 0000000..bc13f45 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRINDEX.d.ts @@ -0,0 +1,5 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, path: string, json: RedisJSON, start?: number, stop?: number): Array; +export declare function transformReply(): number | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRINDEX.js b/node_modules/@redis/json/dist/commands/ARRINDEX.js new file mode 100644 index 0000000..95c9cf1 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRINDEX.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path, json, start, stop) { + const args = ['JSON.ARRINDEX', key, path, (0, _1.transformRedisJsonArgument)(json)]; + if (start !== undefined && start !== null) { + args.push(start.toString()); + if (stop !== undefined && stop !== null) { + args.push(stop.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/ARRINSERT.d.ts b/node_modules/@redis/json/dist/commands/ARRINSERT.d.ts new file mode 100644 index 0000000..19f2adb --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRINSERT.d.ts @@ -0,0 +1,4 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, index: number, ...jsons: Array): Array; +export declare function transformReply(): number | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRINSERT.js b/node_modules/@redis/json/dist/commands/ARRINSERT.js new file mode 100644 index 0000000..540c481 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRINSERT.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, index, ...jsons) { + const args = ['JSON.ARRINSERT', key, path, index.toString()]; + for (const json of jsons) { + args.push((0, _1.transformRedisJsonArgument)(json)); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/ARRLEN.d.ts b/node_modules/@redis/json/dist/commands/ARRLEN.d.ts new file mode 100644 index 0000000..f78020a --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRLEN.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRLEN.js b/node_modules/@redis/json/dist/commands/ARRLEN.js new file mode 100644 index 0000000..30a50cf --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRLEN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path) { + const args = ['JSON.ARRLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/ARRPOP.d.ts b/node_modules/@redis/json/dist/commands/ARRPOP.d.ts new file mode 100644 index 0000000..ce9bca5 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRPOP.d.ts @@ -0,0 +1,4 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string, index?: number): Array; +export declare function transformReply(reply: null | string | Array): null | RedisJSON | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRPOP.js b/node_modules/@redis/json/dist/commands/ARRPOP.js new file mode 100644 index 0000000..2be6472 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRPOP.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, index) { + const args = ['JSON.ARRPOP', key]; + if (path) { + args.push(path); + if (index !== undefined && index !== null) { + args.push(index.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply === null) + return null; + if (Array.isArray(reply)) { + return reply.map(_1.transformRedisJsonNullReply); + } + return (0, _1.transformRedisJsonNullReply)(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/json/dist/commands/ARRTRIM.d.ts b/node_modules/@redis/json/dist/commands/ARRTRIM.d.ts new file mode 100644 index 0000000..ac7d469 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRTRIM.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, start: number, stop: number): Array; +export declare function transformReply(): number | Array; diff --git a/node_modules/@redis/json/dist/commands/ARRTRIM.js b/node_modules/@redis/json/dist/commands/ARRTRIM.js new file mode 100644 index 0000000..287a02c --- /dev/null +++ b/node_modules/@redis/json/dist/commands/ARRTRIM.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, start, stop) { + return ['JSON.ARRTRIM', key, path, start.toString(), stop.toString()]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.d.ts b/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.d.ts new file mode 100644 index 0000000..d9fa8ce --- /dev/null +++ b/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 2; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.js b/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.js new file mode 100644 index 0000000..3382bde --- /dev/null +++ b/node_modules/@redis/json/dist/commands/DEBUG_MEMORY.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, path) { + const args = ['JSON.DEBUG', 'MEMORY', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/DEL.d.ts b/node_modules/@redis/json/dist/commands/DEL.d.ts new file mode 100644 index 0000000..6526825 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/DEL.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/json/dist/commands/DEL.js b/node_modules/@redis/json/dist/commands/DEL.js new file mode 100644 index 0000000..4866aa8 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/DEL.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.DEL', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/FORGET.d.ts b/node_modules/@redis/json/dist/commands/FORGET.d.ts new file mode 100644 index 0000000..6526825 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/FORGET.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/json/dist/commands/FORGET.js b/node_modules/@redis/json/dist/commands/FORGET.js new file mode 100644 index 0000000..e48d301 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/FORGET.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.FORGET', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/GET.d.ts b/node_modules/@redis/json/dist/commands/GET.d.ts new file mode 100644 index 0000000..8dcce9a --- /dev/null +++ b/node_modules/@redis/json/dist/commands/GET.d.ts @@ -0,0 +1,12 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface GetOptions { + path?: string | Array; + INDENT?: string; + NEWLINE?: string; + SPACE?: string; + NOESCAPE?: true; +} +export declare function transformArguments(key: string, options?: GetOptions): RedisCommandArguments; +export { transformRedisJsonNullReply as transformReply } from '.'; diff --git a/node_modules/@redis/json/dist/commands/GET.js b/node_modules/@redis/json/dist/commands/GET.js new file mode 100644 index 0000000..2915ad1 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/GET.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + let args = ['JSON.GET', key]; + if (options?.path) { + args = (0, generic_transformers_1.pushVerdictArguments)(args, options.path); + } + if (options?.INDENT) { + args.push('INDENT', options.INDENT); + } + if (options?.NEWLINE) { + args.push('NEWLINE', options.NEWLINE); + } + if (options?.SPACE) { + args.push('SPACE', options.SPACE); + } + if (options?.NOESCAPE) { + args.push('NOESCAPE'); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformRedisJsonNullReply; } }); diff --git a/node_modules/@redis/json/dist/commands/MERGE.d.ts b/node_modules/@redis/json/dist/commands/MERGE.d.ts new file mode 100644 index 0000000..b4974da --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MERGE.d.ts @@ -0,0 +1,4 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, json: RedisJSON): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/json/dist/commands/MERGE.js b/node_modules/@redis/json/dist/commands/MERGE.js new file mode 100644 index 0000000..ccfbfa7 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MERGE.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, json) { + return ['JSON.MERGE', key, path, (0, _1.transformRedisJsonArgument)(json)]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/MGET.d.ts b/node_modules/@redis/json/dist/commands/MGET.d.ts new file mode 100644 index 0000000..431d38c --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MGET.d.ts @@ -0,0 +1,5 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(keys: Array, path: string): Array; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/json/dist/commands/MGET.js b/node_modules/@redis/json/dist/commands/MGET.js new file mode 100644 index 0000000..ff5b53f --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MGET.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys, path) { + return [ + 'JSON.MGET', + ...keys, + path + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(_1.transformRedisJsonNullReply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/json/dist/commands/MSET.d.ts b/node_modules/@redis/json/dist/commands/MSET.d.ts new file mode 100644 index 0000000..8ae7758 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MSET.d.ts @@ -0,0 +1,11 @@ +import { RedisJSON } from '.'; +import { RedisCommandArgument } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +interface JsonMSetItem { + key: RedisCommandArgument; + path: RedisCommandArgument; + value: RedisJSON; +} +export declare function transformArguments(items: Array): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/json/dist/commands/MSET.js b/node_modules/@redis/json/dist/commands/MSET.js new file mode 100644 index 0000000..1af9afa --- /dev/null +++ b/node_modules/@redis/json/dist/commands/MSET.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(items) { + const args = new Array(1 + items.length * 3); + args[0] = 'JSON.MSET'; + let argsIndex = 1; + for (let i = 0; i < items.length; i++) { + const item = items[i]; + args[argsIndex++] = item.key; + args[argsIndex++] = item.path; + args[argsIndex++] = (0, _1.transformRedisJsonArgument)(item.value); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/NUMINCRBY.d.ts b/node_modules/@redis/json/dist/commands/NUMINCRBY.d.ts new file mode 100644 index 0000000..3cac586 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/NUMINCRBY.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, by: number): Array; +export { transformNumbersReply as transformReply } from '.'; diff --git a/node_modules/@redis/json/dist/commands/NUMINCRBY.js b/node_modules/@redis/json/dist/commands/NUMINCRBY.js new file mode 100644 index 0000000..a0f9100 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/NUMINCRBY.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, by) { + return ['JSON.NUMINCRBY', key, path, by.toString()]; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformNumbersReply; } }); diff --git a/node_modules/@redis/json/dist/commands/NUMMULTBY.d.ts b/node_modules/@redis/json/dist/commands/NUMMULTBY.d.ts new file mode 100644 index 0000000..3cac586 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/NUMMULTBY.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path: string, by: number): Array; +export { transformNumbersReply as transformReply } from '.'; diff --git a/node_modules/@redis/json/dist/commands/NUMMULTBY.js b/node_modules/@redis/json/dist/commands/NUMMULTBY.js new file mode 100644 index 0000000..64de23f --- /dev/null +++ b/node_modules/@redis/json/dist/commands/NUMMULTBY.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, by) { + return ['JSON.NUMMULTBY', key, path, by.toString()]; +} +exports.transformArguments = transformArguments; +var _1 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _1.transformNumbersReply; } }); diff --git a/node_modules/@redis/json/dist/commands/OBJKEYS.d.ts b/node_modules/@redis/json/dist/commands/OBJKEYS.d.ts new file mode 100644 index 0000000..b66d5de --- /dev/null +++ b/node_modules/@redis/json/dist/commands/OBJKEYS.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): Array | null | Array | null>; diff --git a/node_modules/@redis/json/dist/commands/OBJKEYS.js b/node_modules/@redis/json/dist/commands/OBJKEYS.js new file mode 100644 index 0000000..fa936f2 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/OBJKEYS.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.OBJKEYS', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/OBJLEN.d.ts b/node_modules/@redis/json/dist/commands/OBJLEN.d.ts new file mode 100644 index 0000000..915b6e1 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/OBJLEN.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number | null | Array; diff --git a/node_modules/@redis/json/dist/commands/OBJLEN.js b/node_modules/@redis/json/dist/commands/OBJLEN.js new file mode 100644 index 0000000..07c0962 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/OBJLEN.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.OBJLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/RESP.d.ts b/node_modules/@redis/json/dist/commands/RESP.d.ts new file mode 100644 index 0000000..d1ba697 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/RESP.d.ts @@ -0,0 +1,5 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +type RESPReply = Array; +export declare function transformReply(): RESPReply; +export {}; diff --git a/node_modules/@redis/json/dist/commands/RESP.js b/node_modules/@redis/json/dist/commands/RESP.js new file mode 100644 index 0000000..76fc64b --- /dev/null +++ b/node_modules/@redis/json/dist/commands/RESP.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.RESP', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/SET.d.ts b/node_modules/@redis/json/dist/commands/SET.d.ts new file mode 100644 index 0000000..9acba66 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/SET.d.ts @@ -0,0 +1,11 @@ +import { RedisJSON } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface NX { + NX: true; +} +interface XX { + XX: true; +} +export declare function transformArguments(key: string, path: string, json: RedisJSON, options?: NX | XX): Array; +export declare function transformReply(): 'OK' | null; +export {}; diff --git a/node_modules/@redis/json/dist/commands/SET.js b/node_modules/@redis/json/dist/commands/SET.js new file mode 100644 index 0000000..d7a6988 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/SET.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, json, options) { + const args = ['JSON.SET', key, path, (0, _1.transformRedisJsonArgument)(json)]; + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/STRAPPEND.d.ts b/node_modules/@redis/json/dist/commands/STRAPPEND.d.ts new file mode 100644 index 0000000..0983914 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/STRAPPEND.d.ts @@ -0,0 +1,6 @@ +export declare const FIRST_KEY_INDEX = 1; +type AppendArguments = [key: string, append: string]; +type AppendWithPathArguments = [key: string, path: string, append: string]; +export declare function transformArguments(...[key, pathOrAppend, append]: AppendArguments | AppendWithPathArguments): Array; +export declare function transformReply(): number | Array; +export {}; diff --git a/node_modules/@redis/json/dist/commands/STRAPPEND.js b/node_modules/@redis/json/dist/commands/STRAPPEND.js new file mode 100644 index 0000000..b5c6736 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/STRAPPEND.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(...[key, pathOrAppend, append]) { + const args = ['JSON.STRAPPEND', key]; + if (append !== undefined && append !== null) { + args.push(pathOrAppend, (0, _1.transformRedisJsonArgument)(append)); + } + else { + args.push((0, _1.transformRedisJsonArgument)(pathOrAppend)); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/STRLEN.d.ts b/node_modules/@redis/json/dist/commands/STRLEN.d.ts new file mode 100644 index 0000000..a27960d --- /dev/null +++ b/node_modules/@redis/json/dist/commands/STRLEN.d.ts @@ -0,0 +1,4 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/json/dist/commands/STRLEN.js b/node_modules/@redis/json/dist/commands/STRLEN.js new file mode 100644 index 0000000..599a793 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/STRLEN.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path) { + const args = ['JSON.STRLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/TYPE.d.ts b/node_modules/@redis/json/dist/commands/TYPE.d.ts new file mode 100644 index 0000000..f9bc3f4 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/TYPE.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, path?: string): Array; +export declare function transformReply(): string | null | Array; diff --git a/node_modules/@redis/json/dist/commands/TYPE.js b/node_modules/@redis/json/dist/commands/TYPE.js new file mode 100644 index 0000000..7a4bc8a --- /dev/null +++ b/node_modules/@redis/json/dist/commands/TYPE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.TYPE', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/json/dist/commands/index.d.ts b/node_modules/@redis/json/dist/commands/index.d.ts new file mode 100644 index 0000000..ac894b9 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/index.d.ts @@ -0,0 +1,80 @@ +import * as ARRAPPEND from './ARRAPPEND'; +import * as ARRINDEX from './ARRINDEX'; +import * as ARRINSERT from './ARRINSERT'; +import * as ARRLEN from './ARRLEN'; +import * as ARRPOP from './ARRPOP'; +import * as ARRTRIM from './ARRTRIM'; +import * as DEBUG_MEMORY from './DEBUG_MEMORY'; +import * as DEL from './DEL'; +import * as FORGET from './FORGET'; +import * as GET from './GET'; +import * as MERGE from './MERGE'; +import * as MGET from './MGET'; +import * as MSET from './MSET'; +import * as NUMINCRBY from './NUMINCRBY'; +import * as NUMMULTBY from './NUMMULTBY'; +import * as OBJKEYS from './OBJKEYS'; +import * as OBJLEN from './OBJLEN'; +import * as RESP from './RESP'; +import * as SET from './SET'; +import * as STRAPPEND from './STRAPPEND'; +import * as STRLEN from './STRLEN'; +import * as TYPE from './TYPE'; +declare const _default: { + ARRAPPEND: typeof ARRAPPEND; + arrAppend: typeof ARRAPPEND; + ARRINDEX: typeof ARRINDEX; + arrIndex: typeof ARRINDEX; + ARRINSERT: typeof ARRINSERT; + arrInsert: typeof ARRINSERT; + ARRLEN: typeof ARRLEN; + arrLen: typeof ARRLEN; + ARRPOP: typeof ARRPOP; + arrPop: typeof ARRPOP; + ARRTRIM: typeof ARRTRIM; + arrTrim: typeof ARRTRIM; + DEBUG_MEMORY: typeof DEBUG_MEMORY; + debugMemory: typeof DEBUG_MEMORY; + DEL: typeof DEL; + del: typeof DEL; + FORGET: typeof FORGET; + forget: typeof FORGET; + GET: typeof GET; + get: typeof GET; + MERGE: typeof MERGE; + merge: typeof MERGE; + MGET: typeof MGET; + mGet: typeof MGET; + MSET: typeof MSET; + mSet: typeof MSET; + NUMINCRBY: typeof NUMINCRBY; + numIncrBy: typeof NUMINCRBY; + NUMMULTBY: typeof NUMMULTBY; + numMultBy: typeof NUMMULTBY; + OBJKEYS: typeof OBJKEYS; + objKeys: typeof OBJKEYS; + OBJLEN: typeof OBJLEN; + objLen: typeof OBJLEN; + RESP: typeof RESP; + resp: typeof RESP; + SET: typeof SET; + set: typeof SET; + STRAPPEND: typeof STRAPPEND; + strAppend: typeof STRAPPEND; + STRLEN: typeof STRLEN; + strLen: typeof STRLEN; + TYPE: typeof TYPE; + type: typeof TYPE; +}; +export default _default; +interface RedisJSONArray extends Array { +} +interface RedisJSONObject { + [key: string]: RedisJSON; + [key: number]: RedisJSON; +} +export type RedisJSON = null | boolean | number | string | Date | RedisJSONArray | RedisJSONObject; +export declare function transformRedisJsonArgument(json: RedisJSON): string; +export declare function transformRedisJsonReply(json: string): RedisJSON; +export declare function transformRedisJsonNullReply(json: string | null): RedisJSON | null; +export declare function transformNumbersReply(reply: string): number | Array; diff --git a/node_modules/@redis/json/dist/commands/index.js b/node_modules/@redis/json/dist/commands/index.js new file mode 100644 index 0000000..94c4e17 --- /dev/null +++ b/node_modules/@redis/json/dist/commands/index.js @@ -0,0 +1,89 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformNumbersReply = exports.transformRedisJsonNullReply = exports.transformRedisJsonReply = exports.transformRedisJsonArgument = void 0; +const ARRAPPEND = require("./ARRAPPEND"); +const ARRINDEX = require("./ARRINDEX"); +const ARRINSERT = require("./ARRINSERT"); +const ARRLEN = require("./ARRLEN"); +const ARRPOP = require("./ARRPOP"); +const ARRTRIM = require("./ARRTRIM"); +const DEBUG_MEMORY = require("./DEBUG_MEMORY"); +const DEL = require("./DEL"); +const FORGET = require("./FORGET"); +const GET = require("./GET"); +const MERGE = require("./MERGE"); +const MGET = require("./MGET"); +const MSET = require("./MSET"); +const NUMINCRBY = require("./NUMINCRBY"); +const NUMMULTBY = require("./NUMMULTBY"); +const OBJKEYS = require("./OBJKEYS"); +const OBJLEN = require("./OBJLEN"); +const RESP = require("./RESP"); +const SET = require("./SET"); +const STRAPPEND = require("./STRAPPEND"); +const STRLEN = require("./STRLEN"); +const TYPE = require("./TYPE"); +exports.default = { + ARRAPPEND, + arrAppend: ARRAPPEND, + ARRINDEX, + arrIndex: ARRINDEX, + ARRINSERT, + arrInsert: ARRINSERT, + ARRLEN, + arrLen: ARRLEN, + ARRPOP, + arrPop: ARRPOP, + ARRTRIM, + arrTrim: ARRTRIM, + DEBUG_MEMORY, + debugMemory: DEBUG_MEMORY, + DEL, + del: DEL, + FORGET, + forget: FORGET, + GET, + get: GET, + MERGE, + merge: MERGE, + MGET, + mGet: MGET, + MSET, + mSet: MSET, + NUMINCRBY, + numIncrBy: NUMINCRBY, + NUMMULTBY, + numMultBy: NUMMULTBY, + OBJKEYS, + objKeys: OBJKEYS, + OBJLEN, + objLen: OBJLEN, + RESP, + resp: RESP, + SET, + set: SET, + STRAPPEND, + strAppend: STRAPPEND, + STRLEN, + strLen: STRLEN, + TYPE, + type: TYPE +}; +function transformRedisJsonArgument(json) { + return JSON.stringify(json); +} +exports.transformRedisJsonArgument = transformRedisJsonArgument; +function transformRedisJsonReply(json) { + return JSON.parse(json); +} +exports.transformRedisJsonReply = transformRedisJsonReply; +function transformRedisJsonNullReply(json) { + if (json === null) + return null; + return transformRedisJsonReply(json); +} +exports.transformRedisJsonNullReply = transformRedisJsonNullReply; +function transformNumbersReply(reply) { + return JSON.parse(reply); +} +exports.transformNumbersReply = transformNumbersReply; diff --git a/node_modules/@redis/json/dist/index.d.ts b/node_modules/@redis/json/dist/index.d.ts new file mode 100644 index 0000000..bc0e103 --- /dev/null +++ b/node_modules/@redis/json/dist/index.d.ts @@ -0,0 +1 @@ +export { default } from './commands'; diff --git a/node_modules/@redis/json/dist/index.js b/node_modules/@redis/json/dist/index.js new file mode 100644 index 0000000..992c58d --- /dev/null +++ b/node_modules/@redis/json/dist/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = void 0; +var commands_1 = require("./commands"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return commands_1.default; } }); diff --git a/node_modules/@redis/json/package.json b/node_modules/@redis/json/package.json new file mode 100644 index 0000000..ad60cc1 --- /dev/null +++ b/node_modules/@redis/json/package.json @@ -0,0 +1,41 @@ +{ + "name": "@redis/json", + "version": "1.0.7", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "documentation": "typedoc" + }, + "peerDependencies": { + "@redis/client": "^1.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/json", + "keywords": [ + "redis", + "RedisJSON" + ] +} diff --git a/node_modules/@redis/search/README.md b/node_modules/@redis/search/README.md new file mode 100644 index 0000000..60186ba --- /dev/null +++ b/node_modules/@redis/search/README.md @@ -0,0 +1,119 @@ +# @redis/search + +This package provides support for the [RediSearch](https://redisearch.io) module, which adds indexing and querying support for data stored in Redis Hashes or as JSON documents with the RedisJSON module. It extends the [Node Redis client](https://github.com/redis/node-redis) to include functions for each of the RediSearch commands. + +To use these extra commands, your Redis server must have the RediSearch module installed. To index and query JSON documents, you'll also need to add the RedisJSON module. + +## Usage + +For complete examples, see [`search-hashes.js`](https://github.com/redis/node-redis/blob/master/examples/search-hashes.js) and [`search-json.js`](https://github.com/redis/node-redis/blob/master/examples/search-json.js) in the Node Redis examples folder. + +### Indexing and Querying Data in Redis Hashes + +#### Creating an Index + +Before we can perform any searches, we need to tell RediSearch how to index our data, and which Redis keys to find that data in. The [FT.CREATE](https://redis.io/commands/ft.create) command creates a RediSearch index. Here's how to use it to create an index we'll call `idx:animals` where we want to index hashes containing `name`, `species` and `age` fields, and whose key names in Redis begin with the prefix `noderedis:animals`: + +```javascript +await client.ft.create('idx:animals', { + name: { + type: SchemaFieldTypes.TEXT, + SORTABLE: true + }, + species: SchemaFieldTypes.TAG, + age: SchemaFieldTypes.NUMERIC +}, { + ON: 'HASH', + PREFIX: 'noderedis:animals' +}); +``` + +See the [`FT.CREATE` documentation](https://redis.io/commands/ft.create/#description) for information about the different field types and additional options. + +#### Querying the Index + +Once we've created an index, and added some data to Redis hashes whose keys begin with the prefix `noderedis:animals`, we can start writing some search queries. RediSearch supports a rich query syntax for full-text search, faceted search, aggregation and more. Check out the [`FT.SEARCH` documentation](https://redis.io/commands/ft.search) and the [query syntax reference](https://redis.io/docs/interact/search-and-query/query) for more information. + +Let's write a query to find all the animals where the `species` field has the value `dog`: + +```javascript +const results = await client.ft.search('idx:animals', '@species:{dog}'); +``` + +`results` looks like this: + +```javascript +{ + total: 2, + documents: [ + { + id: 'noderedis:animals:4', + value: { + name: 'Fido', + species: 'dog', + age: '7' + } + }, + { + id: 'noderedis:animals:3', + value: { + name: 'Rover', + species: 'dog', + age: '9' + } + } + ] +} +``` + +### Indexing and Querying Data with RedisJSON + +RediSearch can also index and query JSON documents stored in Redis using the RedisJSON module. The approach is similar to that for indexing and searching data in hashes, but we can now use JSON Path like syntax and the data no longer has to be flat name/value pairs - it can contain nested objects and arrays. + +#### Creating an Index + +As before, we create an index with the `FT.CREATE` command, this time specifying we want to index JSON documents that look like this: + +```javascript +{ + name: 'Alice', + age: 32, + coins: 100 +} +``` + +Each document represents a user in some system, and users have name, age and coins properties. + +One way we might choose to index these documents is as follows: + +```javascript +await client.ft.create('idx:users', { + '$.name': { + type: SchemaFieldTypes.TEXT, + SORTABLE: 'UNF' + }, + '$.age': { + type: SchemaFieldTypes.NUMERIC, + AS: 'age' + }, + '$.coins': { + type: SchemaFieldTypes.NUMERIC, + AS: 'coins' + } +}, { + ON: 'JSON', + PREFIX: 'noderedis:users' +}); +``` + +Note that we're using JSON Path to specify where the fields to index are in our JSON documents, and the `AS` clause to define a name/alias for each field. We'll use these when writing queries. + +#### Querying the Index + +Now we have an index and some data stored as JSON documents in Redis (see the [JSON package documentation](https://github.com/redis/node-redis/tree/master/packages/json) for examples of how to store JSON), we can write some queries... + +We'll use the [RediSearch query language](https://redis.io/docs/interact/search-and-query/query) and [`FT.SEARCH`](https://redis.io/commands/ft.search) command. Here's a query to find users under the age of 30: + +```javascript +await client.ft.search('idx:users', '@age:[0 30]'); +``` diff --git a/node_modules/@redis/search/dist/commands/AGGREGATE.d.ts b/node_modules/@redis/search/dist/commands/AGGREGATE.d.ts new file mode 100644 index 0000000..a390ad9 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/AGGREGATE.d.ts @@ -0,0 +1,118 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Params, PropertyName, SortByProperty } from '.'; +export declare enum AggregateSteps { + GROUPBY = "GROUPBY", + SORTBY = "SORTBY", + APPLY = "APPLY", + LIMIT = "LIMIT", + FILTER = "FILTER" +} +interface AggregateStep { + type: T; +} +export declare enum AggregateGroupByReducers { + COUNT = "COUNT", + COUNT_DISTINCT = "COUNT_DISTINCT", + COUNT_DISTINCTISH = "COUNT_DISTINCTISH", + SUM = "SUM", + MIN = "MIN", + MAX = "MAX", + AVG = "AVG", + STDDEV = "STDDEV", + QUANTILE = "QUANTILE", + TOLIST = "TOLIST", + TO_LIST = "TOLIST", + FIRST_VALUE = "FIRST_VALUE", + RANDOM_SAMPLE = "RANDOM_SAMPLE" +} +interface GroupByReducer { + type: T; + AS?: string; +} +type CountReducer = GroupByReducer; +interface CountDistinctReducer extends GroupByReducer { + property: PropertyName; +} +interface CountDistinctishReducer extends GroupByReducer { + property: PropertyName; +} +interface SumReducer extends GroupByReducer { + property: PropertyName; +} +interface MinReducer extends GroupByReducer { + property: PropertyName; +} +interface MaxReducer extends GroupByReducer { + property: PropertyName; +} +interface AvgReducer extends GroupByReducer { + property: PropertyName; +} +interface StdDevReducer extends GroupByReducer { + property: PropertyName; +} +interface QuantileReducer extends GroupByReducer { + property: PropertyName; + quantile: number; +} +interface ToListReducer extends GroupByReducer { + property: PropertyName; +} +interface FirstValueReducer extends GroupByReducer { + property: PropertyName; + BY?: PropertyName | { + property: PropertyName; + direction?: 'ASC' | 'DESC'; + }; +} +interface RandomSampleReducer extends GroupByReducer { + property: PropertyName; + sampleSize: number; +} +type GroupByReducers = CountReducer | CountDistinctReducer | CountDistinctishReducer | SumReducer | MinReducer | MaxReducer | AvgReducer | StdDevReducer | QuantileReducer | ToListReducer | FirstValueReducer | RandomSampleReducer; +interface GroupByStep extends AggregateStep { + properties?: PropertyName | Array; + REDUCE: GroupByReducers | Array; +} +interface SortStep extends AggregateStep { + BY: SortByProperty | Array; + MAX?: number; +} +interface ApplyStep extends AggregateStep { + expression: string; + AS: string; +} +interface LimitStep extends AggregateStep { + from: number; + size: number; +} +interface FilterStep extends AggregateStep { + expression: string; +} +type LoadField = PropertyName | { + identifier: PropertyName; + AS?: string; +}; +export interface AggregateOptions { + VERBATIM?: boolean; + ADDSCORES?: boolean; + LOAD?: LoadField | Array; + STEPS?: Array; + PARAMS?: Params; + DIALECT?: number; + TIMEOUT?: number; +} +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(index: string, query: string, options?: AggregateOptions): RedisCommandArguments; +export declare function pushAggregatehOptions(args: RedisCommandArguments, options?: AggregateOptions): RedisCommandArguments; +export type AggregateRawReply = [ + total: number, + ...results: Array> +]; +export interface AggregateReply { + total: number; + results: Array>; +} +export declare function transformReply(rawReply: AggregateRawReply): AggregateReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/AGGREGATE.js b/node_modules/@redis/search/dist/commands/AGGREGATE.js new file mode 100644 index 0000000..58d42b4 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/AGGREGATE.js @@ -0,0 +1,170 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.pushAggregatehOptions = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = exports.AggregateGroupByReducers = exports.AggregateSteps = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +const _1 = require("."); +var AggregateSteps; +(function (AggregateSteps) { + AggregateSteps["GROUPBY"] = "GROUPBY"; + AggregateSteps["SORTBY"] = "SORTBY"; + AggregateSteps["APPLY"] = "APPLY"; + AggregateSteps["LIMIT"] = "LIMIT"; + AggregateSteps["FILTER"] = "FILTER"; +})(AggregateSteps || (exports.AggregateSteps = AggregateSteps = {})); +var AggregateGroupByReducers; +(function (AggregateGroupByReducers) { + AggregateGroupByReducers["COUNT"] = "COUNT"; + AggregateGroupByReducers["COUNT_DISTINCT"] = "COUNT_DISTINCT"; + AggregateGroupByReducers["COUNT_DISTINCTISH"] = "COUNT_DISTINCTISH"; + AggregateGroupByReducers["SUM"] = "SUM"; + AggregateGroupByReducers["MIN"] = "MIN"; + AggregateGroupByReducers["MAX"] = "MAX"; + AggregateGroupByReducers["AVG"] = "AVG"; + AggregateGroupByReducers["STDDEV"] = "STDDEV"; + AggregateGroupByReducers["QUANTILE"] = "QUANTILE"; + AggregateGroupByReducers["TOLIST"] = "TOLIST"; + AggregateGroupByReducers["TO_LIST"] = "TOLIST"; + AggregateGroupByReducers["FIRST_VALUE"] = "FIRST_VALUE"; + AggregateGroupByReducers["RANDOM_SAMPLE"] = "RANDOM_SAMPLE"; +})(AggregateGroupByReducers || (exports.AggregateGroupByReducers = AggregateGroupByReducers = {})); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + return pushAggregatehOptions(['FT.AGGREGATE', index, query], options); +} +exports.transformArguments = transformArguments; +function pushAggregatehOptions(args, options) { + if (options?.VERBATIM) { + args.push('VERBATIM'); + } + if (options?.ADDSCORES) { + args.push('ADDSCORES'); + } + if (options?.LOAD) { + args.push('LOAD'); + (0, _1.pushArgumentsWithLength)(args, () => { + if (Array.isArray(options.LOAD)) { + for (const load of options.LOAD) { + pushLoadField(args, load); + } + } + else { + pushLoadField(args, options.LOAD); + } + }); + } + if (options?.STEPS) { + for (const step of options.STEPS) { + switch (step.type) { + case AggregateSteps.GROUPBY: + args.push('GROUPBY'); + if (!step.properties) { + args.push('0'); + } + else { + (0, generic_transformers_1.pushVerdictArgument)(args, step.properties); + } + if (Array.isArray(step.REDUCE)) { + for (const reducer of step.REDUCE) { + pushGroupByReducer(args, reducer); + } + } + else { + pushGroupByReducer(args, step.REDUCE); + } + break; + case AggregateSteps.SORTBY: + (0, _1.pushSortByArguments)(args, 'SORTBY', step.BY); + if (step.MAX) { + args.push('MAX', step.MAX.toString()); + } + break; + case AggregateSteps.APPLY: + args.push('APPLY', step.expression, 'AS', step.AS); + break; + case AggregateSteps.LIMIT: + args.push('LIMIT', step.from.toString(), step.size.toString()); + break; + case AggregateSteps.FILTER: + args.push('FILTER', step.expression); + break; + } + } + } + (0, _1.pushParamsArgs)(args, options?.PARAMS); + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + if (options?.TIMEOUT !== undefined) { + args.push('TIMEOUT', options.TIMEOUT.toString()); + } + return args; +} +exports.pushAggregatehOptions = pushAggregatehOptions; +function pushLoadField(args, toLoad) { + if (typeof toLoad === 'string') { + args.push(toLoad); + } + else { + args.push(toLoad.identifier); + if (toLoad.AS) { + args.push('AS', toLoad.AS); + } + } +} +function pushGroupByReducer(args, reducer) { + args.push('REDUCE', reducer.type); + switch (reducer.type) { + case AggregateGroupByReducers.COUNT: + args.push('0'); + break; + case AggregateGroupByReducers.COUNT_DISTINCT: + case AggregateGroupByReducers.COUNT_DISTINCTISH: + case AggregateGroupByReducers.SUM: + case AggregateGroupByReducers.MIN: + case AggregateGroupByReducers.MAX: + case AggregateGroupByReducers.AVG: + case AggregateGroupByReducers.STDDEV: + case AggregateGroupByReducers.TOLIST: + args.push('1', reducer.property); + break; + case AggregateGroupByReducers.QUANTILE: + args.push('2', reducer.property, reducer.quantile.toString()); + break; + case AggregateGroupByReducers.FIRST_VALUE: { + (0, _1.pushArgumentsWithLength)(args, () => { + args.push(reducer.property); + if (reducer.BY) { + args.push('BY'); + if (typeof reducer.BY === 'string') { + args.push(reducer.BY); + } + else { + args.push(reducer.BY.property); + if (reducer.BY.direction) { + args.push(reducer.BY.direction); + } + } + } + }); + break; + } + case AggregateGroupByReducers.RANDOM_SAMPLE: + args.push('2', reducer.property, reducer.sampleSize.toString()); + break; + } + if (reducer.AS) { + args.push('AS', reducer.AS); + } +} +function transformReply(rawReply) { + const results = []; + for (let i = 1; i < rawReply.length; i++) { + results.push((0, generic_transformers_1.transformTuplesReply)(rawReply[i])); + } + return { + total: rawReply[0], + results + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.d.ts b/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.d.ts new file mode 100644 index 0000000..5cd8461 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.d.ts @@ -0,0 +1,14 @@ +import { AggregateOptions, AggregateRawReply, AggregateReply } from './AGGREGATE'; +export { FIRST_KEY_INDEX, IS_READ_ONLY } from './AGGREGATE'; +interface AggregateWithCursorOptions extends AggregateOptions { + COUNT?: number; +} +export declare function transformArguments(index: string, query: string, options?: AggregateWithCursorOptions): import("@redis/client/dist/lib/commands").RedisCommandArguments; +type AggregateWithCursorRawReply = [ + result: AggregateRawReply, + cursor: number +]; +interface AggregateWithCursorReply extends AggregateReply { + cursor: number; +} +export declare function transformReply(reply: AggregateWithCursorRawReply): AggregateWithCursorReply; diff --git a/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.js b/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.js new file mode 100644 index 0000000..7c40c69 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/AGGREGATE_WITHCURSOR.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const AGGREGATE_1 = require("./AGGREGATE"); +var AGGREGATE_2 = require("./AGGREGATE"); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return AGGREGATE_2.FIRST_KEY_INDEX; } }); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return AGGREGATE_2.IS_READ_ONLY; } }); +function transformArguments(index, query, options) { + const args = (0, AGGREGATE_1.transformArguments)(index, query, options); + args.push('WITHCURSOR'); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + ...(0, AGGREGATE_1.transformReply)(reply[0]), + cursor: reply[1] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/ALIASADD.d.ts b/node_modules/@redis/search/dist/commands/ALIASADD.d.ts new file mode 100644 index 0000000..e3e7ab4 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASADD.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(name: string, index: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/ALIASADD.js b/node_modules/@redis/search/dist/commands/ALIASADD.js new file mode 100644 index 0000000..f71c91e --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASADD.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASADD', name, index]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/ALIASDEL.d.ts b/node_modules/@redis/search/dist/commands/ALIASDEL.d.ts new file mode 100644 index 0000000..e3e7ab4 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASDEL.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(name: string, index: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/ALIASDEL.js b/node_modules/@redis/search/dist/commands/ALIASDEL.js new file mode 100644 index 0000000..f80ce4e --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASDEL.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASDEL', name, index]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/ALIASUPDATE.d.ts b/node_modules/@redis/search/dist/commands/ALIASUPDATE.d.ts new file mode 100644 index 0000000..e3e7ab4 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASUPDATE.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(name: string, index: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/ALIASUPDATE.js b/node_modules/@redis/search/dist/commands/ALIASUPDATE.js new file mode 100644 index 0000000..718d8f5 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALIASUPDATE.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASUPDATE', name, index]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/ALTER.d.ts b/node_modules/@redis/search/dist/commands/ALTER.d.ts new file mode 100644 index 0000000..1a6413c --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALTER.d.ts @@ -0,0 +1,3 @@ +import { RediSearchSchema } from '.'; +export declare function transformArguments(index: string, schema: RediSearchSchema): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/ALTER.js b/node_modules/@redis/search/dist/commands/ALTER.js new file mode 100644 index 0000000..1f1971f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/ALTER.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const _1 = require("."); +function transformArguments(index, schema) { + const args = ['FT.ALTER', index, 'SCHEMA', 'ADD']; + (0, _1.pushSchema)(args, schema); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/CONFIG_GET.d.ts b/node_modules/@redis/search/dist/commands/CONFIG_GET.d.ts new file mode 100644 index 0000000..de47f89 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CONFIG_GET.d.ts @@ -0,0 +1,6 @@ +export declare function transformArguments(option: string): string[]; +interface ConfigGetReply { + [option: string]: string | null; +} +export declare function transformReply(rawReply: Array<[string, string | null]>): ConfigGetReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/CONFIG_GET.js b/node_modules/@redis/search/dist/commands/CONFIG_GET.js new file mode 100644 index 0000000..58fb360 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CONFIG_GET.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(option) { + return ['FT.CONFIG', 'GET', option]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const transformedReply = Object.create(null); + for (const [key, value] of rawReply) { + transformedReply[key] = value; + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/CONFIG_SET.d.ts b/node_modules/@redis/search/dist/commands/CONFIG_SET.d.ts new file mode 100644 index 0000000..c354779 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CONFIG_SET.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(option: string, value: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/CONFIG_SET.js b/node_modules/@redis/search/dist/commands/CONFIG_SET.js new file mode 100644 index 0000000..c1b095f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CONFIG_SET.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(option, value) { + return ['FT.CONFIG', 'SET', option, value]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/CREATE.d.ts b/node_modules/@redis/search/dist/commands/CREATE.d.ts new file mode 100644 index 0000000..a0da3a3 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CREATE.d.ts @@ -0,0 +1,21 @@ +import { RedisSearchLanguages, PropertyName, RediSearchSchema } from '.'; +interface CreateOptions { + ON?: 'HASH' | 'JSON'; + PREFIX?: string | Array; + FILTER?: string; + LANGUAGE?: RedisSearchLanguages; + LANGUAGE_FIELD?: PropertyName; + SCORE?: number; + SCORE_FIELD?: PropertyName; + MAXTEXTFIELDS?: true; + TEMPORARY?: number; + NOOFFSETS?: true; + NOHL?: true; + NOFIELDS?: true; + NOFREQS?: true; + SKIPINITIALSCAN?: true; + STOPWORDS?: string | Array; +} +export declare function transformArguments(index: string, schema: RediSearchSchema, options?: CreateOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/search/dist/commands/CREATE.js b/node_modules/@redis/search/dist/commands/CREATE.js new file mode 100644 index 0000000..a8641d2 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CREATE.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +const _1 = require("."); +function transformArguments(index, schema, options) { + const args = ['FT.CREATE', index]; + if (options?.ON) { + args.push('ON', options.ON); + } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'PREFIX', options?.PREFIX); + if (options?.FILTER) { + args.push('FILTER', options.FILTER); + } + if (options?.LANGUAGE) { + args.push('LANGUAGE', options.LANGUAGE); + } + if (options?.LANGUAGE_FIELD) { + args.push('LANGUAGE_FIELD', options.LANGUAGE_FIELD); + } + if (options?.SCORE) { + args.push('SCORE', options.SCORE.toString()); + } + if (options?.SCORE_FIELD) { + args.push('SCORE_FIELD', options.SCORE_FIELD); + } + // if (options?.PAYLOAD_FIELD) { + // args.push('PAYLOAD_FIELD', options.PAYLOAD_FIELD); + // } + if (options?.MAXTEXTFIELDS) { + args.push('MAXTEXTFIELDS'); + } + if (options?.TEMPORARY) { + args.push('TEMPORARY', options.TEMPORARY.toString()); + } + if (options?.NOOFFSETS) { + args.push('NOOFFSETS'); + } + if (options?.NOHL) { + args.push('NOHL'); + } + if (options?.NOFIELDS) { + args.push('NOFIELDS'); + } + if (options?.NOFREQS) { + args.push('NOFREQS'); + } + if (options?.SKIPINITIALSCAN) { + args.push('SKIPINITIALSCAN'); + } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'STOPWORDS', options?.STOPWORDS); + args.push('SCHEMA'); + (0, _1.pushSchema)(args, schema); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/CURSOR_DEL.d.ts b/node_modules/@redis/search/dist/commands/CURSOR_DEL.d.ts new file mode 100644 index 0000000..1f12c3f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CURSOR_DEL.d.ts @@ -0,0 +1,4 @@ +import { RedisCommandArgument } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(index: RedisCommandArgument, cursorId: number): RedisCommandArgument[]; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/search/dist/commands/CURSOR_DEL.js b/node_modules/@redis/search/dist/commands/CURSOR_DEL.js new file mode 100644 index 0000000..cbba23a --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CURSOR_DEL.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(index, cursorId) { + return [ + 'FT.CURSOR', + 'DEL', + index, + cursorId.toString() + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/CURSOR_READ.d.ts b/node_modules/@redis/search/dist/commands/CURSOR_READ.d.ts new file mode 100644 index 0000000..7a186c0 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CURSOR_READ.d.ts @@ -0,0 +1,8 @@ +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface CursorReadOptions { + COUNT?: number; +} +export declare function transformArguments(index: RedisCommandArgument, cursor: number, options?: CursorReadOptions): RedisCommandArguments; +export { transformReply } from './AGGREGATE_WITHCURSOR'; diff --git a/node_modules/@redis/search/dist/commands/CURSOR_READ.js b/node_modules/@redis/search/dist/commands/CURSOR_READ.js new file mode 100644 index 0000000..edcc14d --- /dev/null +++ b/node_modules/@redis/search/dist/commands/CURSOR_READ.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, cursor, options) { + const args = [ + 'FT.CURSOR', + 'READ', + index, + cursor.toString() + ]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var AGGREGATE_WITHCURSOR_1 = require("./AGGREGATE_WITHCURSOR"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return AGGREGATE_WITHCURSOR_1.transformReply; } }); diff --git a/node_modules/@redis/search/dist/commands/DICTADD.d.ts b/node_modules/@redis/search/dist/commands/DICTADD.d.ts new file mode 100644 index 0000000..c7f064d --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTADD.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare function transformArguments(dictionary: string, term: string | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/search/dist/commands/DICTADD.js b/node_modules/@redis/search/dist/commands/DICTADD.js new file mode 100644 index 0000000..189a93f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTADD.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +function transformArguments(dictionary, term) { + return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTADD', dictionary], term); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/DICTDEL.d.ts b/node_modules/@redis/search/dist/commands/DICTDEL.d.ts new file mode 100644 index 0000000..c7f064d --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTDEL.d.ts @@ -0,0 +1,3 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare function transformArguments(dictionary: string, term: string | Array): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/search/dist/commands/DICTDEL.js b/node_modules/@redis/search/dist/commands/DICTDEL.js new file mode 100644 index 0000000..f4fbb26 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTDEL.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +function transformArguments(dictionary, term) { + return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTDEL', dictionary], term); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/DICTDUMP.d.ts b/node_modules/@redis/search/dist/commands/DICTDUMP.d.ts new file mode 100644 index 0000000..3bf7808 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTDUMP.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(dictionary: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/search/dist/commands/DICTDUMP.js b/node_modules/@redis/search/dist/commands/DICTDUMP.js new file mode 100644 index 0000000..e736b16 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DICTDUMP.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(dictionary) { + return ['FT.DICTDUMP', dictionary]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/DROPINDEX.d.ts b/node_modules/@redis/search/dist/commands/DROPINDEX.d.ts new file mode 100644 index 0000000..e8ed7f3 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DROPINDEX.d.ts @@ -0,0 +1,6 @@ +interface DropIndexOptions { + DD?: true; +} +export declare function transformArguments(index: string, options?: DropIndexOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/search/dist/commands/DROPINDEX.js b/node_modules/@redis/search/dist/commands/DROPINDEX.js new file mode 100644 index 0000000..f9fb4de --- /dev/null +++ b/node_modules/@redis/search/dist/commands/DROPINDEX.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(index, options) { + const args = ['FT.DROPINDEX', index]; + if (options?.DD) { + args.push('DD'); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/EXPLAIN.d.ts b/node_modules/@redis/search/dist/commands/EXPLAIN.d.ts new file mode 100644 index 0000000..8bb7a3f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/EXPLAIN.d.ts @@ -0,0 +1,9 @@ +import { Params } from "."; +export declare const IS_READ_ONLY = true; +interface ExplainOptions { + PARAMS?: Params; + DIALECT?: number; +} +export declare function transformArguments(index: string, query: string, options?: ExplainOptions): Array; +export declare function transformReply(): string; +export {}; diff --git a/node_modules/@redis/search/dist/commands/EXPLAIN.js b/node_modules/@redis/search/dist/commands/EXPLAIN.js new file mode 100644 index 0000000..a05b77e --- /dev/null +++ b/node_modules/@redis/search/dist/commands/EXPLAIN.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + const args = ['FT.EXPLAIN', index, query]; + (0, _1.pushParamsArgs)(args, options?.PARAMS); + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/EXPLAINCLI.d.ts b/node_modules/@redis/search/dist/commands/EXPLAINCLI.d.ts new file mode 100644 index 0000000..1eaddc9 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/EXPLAINCLI.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(index: string, query: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/search/dist/commands/EXPLAINCLI.js b/node_modules/@redis/search/dist/commands/EXPLAINCLI.js new file mode 100644 index 0000000..f802560 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/EXPLAINCLI.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(index, query) { + return ['FT.EXPLAINCLI', index, query]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/INFO.d.ts b/node_modules/@redis/search/dist/commands/INFO.d.ts new file mode 100644 index 0000000..7d5e8ef --- /dev/null +++ b/node_modules/@redis/search/dist/commands/INFO.d.ts @@ -0,0 +1,120 @@ +import { RedisCommandArgument } from '@redis/client/dist/lib/commands'; +export declare function transformArguments(index: string): Array; +type InfoRawReply = [ + 'index_name', + RedisCommandArgument, + 'index_options', + Array, + 'index_definition', + Array, + 'attributes', + Array>, + 'num_docs', + RedisCommandArgument, + 'max_doc_id', + RedisCommandArgument, + 'num_terms', + RedisCommandArgument, + 'num_records', + RedisCommandArgument, + 'inverted_sz_mb', + RedisCommandArgument, + 'vector_index_sz_mb', + RedisCommandArgument, + 'total_inverted_index_blocks', + RedisCommandArgument, + 'offset_vectors_sz_mb', + RedisCommandArgument, + 'doc_table_size_mb', + RedisCommandArgument, + 'sortable_values_size_mb', + RedisCommandArgument, + 'key_table_size_mb', + RedisCommandArgument, + 'records_per_doc_avg', + RedisCommandArgument, + 'bytes_per_record_avg', + RedisCommandArgument, + 'offsets_per_term_avg', + RedisCommandArgument, + 'offset_bits_per_record_avg', + RedisCommandArgument, + 'hash_indexing_failures', + RedisCommandArgument, + 'indexing', + RedisCommandArgument, + 'percent_indexed', + RedisCommandArgument, + 'gc_stats', + [ + 'bytes_collected', + RedisCommandArgument, + 'total_ms_run', + RedisCommandArgument, + 'total_cycles', + RedisCommandArgument, + 'average_cycle_time_ms', + RedisCommandArgument, + 'last_run_time_ms', + RedisCommandArgument, + 'gc_numeric_trees_missed', + RedisCommandArgument, + 'gc_blocks_denied', + RedisCommandArgument + ], + 'cursor_stats', + [ + 'global_idle', + number, + 'global_total', + number, + 'index_capacity', + number, + 'index_total', + number + ], + 'stopwords_list'?, + Array? +]; +interface InfoReply { + indexName: RedisCommandArgument; + indexOptions: Array; + indexDefinition: Record; + attributes: Array>; + numDocs: RedisCommandArgument; + maxDocId: RedisCommandArgument; + numTerms: RedisCommandArgument; + numRecords: RedisCommandArgument; + invertedSzMb: RedisCommandArgument; + vectorIndexSzMb: RedisCommandArgument; + totalInvertedIndexBlocks: RedisCommandArgument; + offsetVectorsSzMb: RedisCommandArgument; + docTableSizeMb: RedisCommandArgument; + sortableValuesSizeMb: RedisCommandArgument; + keyTableSizeMb: RedisCommandArgument; + recordsPerDocAvg: RedisCommandArgument; + bytesPerRecordAvg: RedisCommandArgument; + offsetsPerTermAvg: RedisCommandArgument; + offsetBitsPerRecordAvg: RedisCommandArgument; + hashIndexingFailures: RedisCommandArgument; + indexing: RedisCommandArgument; + percentIndexed: RedisCommandArgument; + gcStats: { + bytesCollected: RedisCommandArgument; + totalMsRun: RedisCommandArgument; + totalCycles: RedisCommandArgument; + averageCycleTimeMs: RedisCommandArgument; + lastRunTimeMs: RedisCommandArgument; + gcNumericTreesMissed: RedisCommandArgument; + gcBlocksDenied: RedisCommandArgument; + }; + cursorStats: { + globalIdle: number; + globalTotal: number; + indexCapacity: number; + idnexTotal: number; + }; + stopWords: Array | undefined; +} +export declare function transformReply(rawReply: InfoRawReply): InfoReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/INFO.js b/node_modules/@redis/search/dist/commands/INFO.js new file mode 100644 index 0000000..c09c9e3 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/INFO.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +function transformArguments(index) { + return ['FT.INFO', index]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return { + indexName: rawReply[1], + indexOptions: rawReply[3], + indexDefinition: (0, generic_transformers_1.transformTuplesReply)(rawReply[5]), + attributes: rawReply[7].map(attribute => (0, generic_transformers_1.transformTuplesReply)(attribute)), + numDocs: rawReply[9], + maxDocId: rawReply[11], + numTerms: rawReply[13], + numRecords: rawReply[15], + invertedSzMb: rawReply[17], + vectorIndexSzMb: rawReply[19], + totalInvertedIndexBlocks: rawReply[21], + offsetVectorsSzMb: rawReply[23], + docTableSizeMb: rawReply[25], + sortableValuesSizeMb: rawReply[27], + keyTableSizeMb: rawReply[29], + recordsPerDocAvg: rawReply[31], + bytesPerRecordAvg: rawReply[33], + offsetsPerTermAvg: rawReply[35], + offsetBitsPerRecordAvg: rawReply[37], + hashIndexingFailures: rawReply[39], + indexing: rawReply[41], + percentIndexed: rawReply[43], + gcStats: { + bytesCollected: rawReply[45][1], + totalMsRun: rawReply[45][3], + totalCycles: rawReply[45][5], + averageCycleTimeMs: rawReply[45][7], + lastRunTimeMs: rawReply[45][9], + gcNumericTreesMissed: rawReply[45][11], + gcBlocksDenied: rawReply[45][13] + }, + cursorStats: { + globalIdle: rawReply[47][1], + globalTotal: rawReply[47][3], + indexCapacity: rawReply[47][5], + idnexTotal: rawReply[47][7] + }, + stopWords: rawReply[49] + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.d.ts b/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.d.ts new file mode 100644 index 0000000..f44d2aa --- /dev/null +++ b/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.d.ts @@ -0,0 +1,7 @@ +import { AggregateOptions, AggregateRawReply } from './AGGREGATE'; +import { ProfileOptions, ProfileRawReply, ProfileReply } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(index: string, query: string, options?: ProfileOptions & AggregateOptions): Array; +type ProfileAggeregateRawReply = ProfileRawReply; +export declare function transformReply(reply: ProfileAggeregateRawReply): ProfileReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.js b/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.js new file mode 100644 index 0000000..0e16492 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/PROFILE_AGGREGATE.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const AGGREGATE_1 = require("./AGGREGATE"); +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + const args = ['FT.PROFILE', index, 'AGGREGATE']; + if (options?.LIMITED) { + args.push('LIMITED'); + } + args.push('QUERY', query); + (0, AGGREGATE_1.pushAggregatehOptions)(args, options); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + results: (0, AGGREGATE_1.transformReply)(reply[0]), + profile: (0, _1.transformProfile)(reply[1]) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.d.ts b/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.d.ts new file mode 100644 index 0000000..bc160e3 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.d.ts @@ -0,0 +1,8 @@ +import { SearchOptions, SearchRawReply } from './SEARCH'; +import { ProfileOptions, ProfileRawReply, ProfileReply } from '.'; +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(index: string, query: string, options?: ProfileOptions & SearchOptions): RedisCommandArguments; +type ProfileSearchRawReply = ProfileRawReply; +export declare function transformReply(reply: ProfileSearchRawReply, withoutDocuments: boolean): ProfileReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.js b/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.js new file mode 100644 index 0000000..126d14c --- /dev/null +++ b/node_modules/@redis/search/dist/commands/PROFILE_SEARCH.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SEARCH_1 = require("./SEARCH"); +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + let args = ['FT.PROFILE', index, 'SEARCH']; + if (options?.LIMITED) { + args.push('LIMITED'); + } + args.push('QUERY', query); + return (0, _1.pushSearchOptions)(args, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply, withoutDocuments) { + return { + results: (0, SEARCH_1.transformReply)(reply[0], withoutDocuments), + profile: (0, _1.transformProfile)(reply[1]) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SEARCH.d.ts b/node_modules/@redis/search/dist/commands/SEARCH.d.ts new file mode 100644 index 0000000..495695a --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SEARCH.d.ts @@ -0,0 +1,41 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { RedisSearchLanguages, Params, PropertyName, SortByProperty, SearchReply } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export interface SearchOptions { + VERBATIM?: true; + NOSTOPWORDS?: true; + WITHSORTKEYS?: true; + INKEYS?: string | Array; + INFIELDS?: string | Array; + RETURN?: string | Array; + SUMMARIZE?: true | { + FIELDS?: PropertyName | Array; + FRAGS?: number; + LEN?: number; + SEPARATOR?: string; + }; + HIGHLIGHT?: true | { + FIELDS?: PropertyName | Array; + TAGS?: { + open: string; + close: string; + }; + }; + SLOP?: number; + INORDER?: true; + LANGUAGE?: RedisSearchLanguages; + EXPANDER?: string; + SCORER?: string; + SORTBY?: SortByProperty; + LIMIT?: { + from: number | string; + size: number | string; + }; + PARAMS?: Params; + DIALECT?: number; + TIMEOUT?: number; +} +export declare function transformArguments(index: string, query: string, options?: SearchOptions): RedisCommandArguments; +export type SearchRawReply = Array; +export declare function transformReply(reply: SearchRawReply, withoutDocuments: boolean): SearchReply; diff --git a/node_modules/@redis/search/dist/commands/SEARCH.js b/node_modules/@redis/search/dist/commands/SEARCH.js new file mode 100644 index 0000000..a8ebf43 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SEARCH.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query], options); +} +exports.transformArguments = transformArguments; +function transformReply(reply, withoutDocuments) { + const documents = []; + let i = 1; + while (i < reply.length) { + documents.push({ + id: reply[i++], + value: withoutDocuments ? Object.create(null) : documentValue(reply[i++]) + }); + } + return { + total: reply[0], + documents + }; +} +exports.transformReply = transformReply; +function documentValue(tuples) { + const message = Object.create(null); + let i = 0; + while (i < tuples.length) { + const key = tuples[i++], value = tuples[i++]; + if (key === '$') { // might be a JSON reply + try { + Object.assign(message, JSON.parse(value)); + continue; + } + catch { + // set as a regular property if not a valid JSON + } + } + message[key] = value; + } + return message; +} diff --git a/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.d.ts b/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.d.ts new file mode 100644 index 0000000..4018a80 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArguments } from "@redis/client/dist/lib/commands"; +import { SearchOptions, SearchRawReply } from "./SEARCH"; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(index: string, query: string, options?: SearchOptions): RedisCommandArguments; +export interface SearchNoContentReply { + total: number; + documents: Array; +} +export declare function transformReply(reply: SearchRawReply): SearchNoContentReply; diff --git a/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.js b/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.js new file mode 100644 index 0000000..5d94cdd --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SEARCH_NOCONTENT.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query, 'NOCONTENT'], options); +} +exports.transformArguments = transformArguments; +; +function transformReply(reply) { + return { + total: reply[0], + documents: reply.slice(1) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SPELLCHECK.d.ts b/node_modules/@redis/search/dist/commands/SPELLCHECK.d.ts new file mode 100644 index 0000000..f5bf946 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SPELLCHECK.d.ts @@ -0,0 +1,24 @@ +interface SpellCheckTerms { + mode: 'INCLUDE' | 'EXCLUDE'; + dictionary: string; +} +interface SpellCheckOptions { + DISTANCE?: number; + TERMS?: SpellCheckTerms | Array; + DIALECT?: number; +} +export declare function transformArguments(index: string, query: string, options?: SpellCheckOptions): Array; +type SpellCheckRawReply = Array<[ + _: string, + term: string, + suggestions: Array<[score: string, suggestion: string]> +]>; +type SpellCheckReply = Array<{ + term: string; + suggestions: Array<{ + score: number; + suggestion: string; + }>; +}>; +export declare function transformReply(rawReply: SpellCheckRawReply): SpellCheckReply; +export {}; diff --git a/node_modules/@redis/search/dist/commands/SPELLCHECK.js b/node_modules/@redis/search/dist/commands/SPELLCHECK.js new file mode 100644 index 0000000..96f71b8 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SPELLCHECK.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(index, query, options) { + const args = ['FT.SPELLCHECK', index, query]; + if (options?.DISTANCE) { + args.push('DISTANCE', options.DISTANCE.toString()); + } + if (options?.TERMS) { + if (Array.isArray(options.TERMS)) { + for (const term of options.TERMS) { + pushTerms(args, term); + } + } + else { + pushTerms(args, options.TERMS); + } + } + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function pushTerms(args, { mode, dictionary }) { + args.push('TERMS', mode, dictionary); +} +function transformReply(rawReply) { + return rawReply.map(([, term, suggestions]) => ({ + term, + suggestions: suggestions.map(([score, suggestion]) => ({ + score: Number(score), + suggestion + })) + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SUGADD.d.ts b/node_modules/@redis/search/dist/commands/SUGADD.d.ts new file mode 100644 index 0000000..1bbae32 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGADD.d.ts @@ -0,0 +1,7 @@ +interface SugAddOptions { + INCR?: true; + PAYLOAD?: string; +} +export declare function transformArguments(key: string, string: string, score: number, options?: SugAddOptions): Array; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/search/dist/commands/SUGADD.js b/node_modules/@redis/search/dist/commands/SUGADD.js new file mode 100644 index 0000000..d9bb8ed --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGADD.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(key, string, score, options) { + const args = ['FT.SUGADD', key, string, score.toString()]; + if (options?.INCR) { + args.push('INCR'); + } + if (options?.PAYLOAD) { + args.push('PAYLOAD', options.PAYLOAD); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/SUGDEL.d.ts b/node_modules/@redis/search/dist/commands/SUGDEL.d.ts new file mode 100644 index 0000000..8476ac2 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGDEL.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(key: string, string: string): Array; +export { transformBooleanReply as transformReply } from '@redis/client/dist/lib/commands/generic-transformers'; diff --git a/node_modules/@redis/search/dist/commands/SUGDEL.js b/node_modules/@redis/search/dist/commands/SUGDEL.js new file mode 100644 index 0000000..d23e9a1 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGDEL.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(key, string) { + return ['FT.SUGDEL', key, string]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } }); diff --git a/node_modules/@redis/search/dist/commands/SUGGET.d.ts b/node_modules/@redis/search/dist/commands/SUGGET.d.ts new file mode 100644 index 0000000..079cfc7 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET.d.ts @@ -0,0 +1,7 @@ +export declare const IS_READ_ONLY = true; +export interface SugGetOptions { + FUZZY?: true; + MAX?: number; +} +export declare function transformArguments(key: string, prefix: string, options?: SugGetOptions): Array; +export declare function transformReply(): null | Array; diff --git a/node_modules/@redis/search/dist/commands/SUGGET.js b/node_modules/@redis/search/dist/commands/SUGGET.js new file mode 100644 index 0000000..2190e4b --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(key, prefix, options) { + const args = ['FT.SUGGET', key, prefix]; + if (options?.FUZZY) { + args.push('FUZZY'); + } + if (options?.MAX) { + args.push('MAX', options.MAX.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.d.ts b/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.d.ts new file mode 100644 index 0000000..a8ff955 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.d.ts @@ -0,0 +1,8 @@ +import { SugGetOptions } from './SUGGET'; +export { IS_READ_ONLY } from './SUGGET'; +export declare function transformArguments(key: string, prefix: string, options?: SugGetOptions): Array; +export interface SuggestionWithPayload { + suggestion: string; + payload: string | null; +} +export declare function transformReply(rawReply: Array | null): Array | null; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.js b/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.js new file mode 100644 index 0000000..c091b30 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHPAYLOADS.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = require("./SUGGET"); +var SUGGET_2 = require("./SUGGET"); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } }); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHPAYLOADS' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply.push({ + suggestion: rawReply[i], + payload: rawReply[i + 1] + }); + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.d.ts b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.d.ts new file mode 100644 index 0000000..2d42b68 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.d.ts @@ -0,0 +1,8 @@ +import { SugGetOptions } from './SUGGET'; +export { IS_READ_ONLY } from './SUGGET'; +export declare function transformArguments(key: string, prefix: string, options?: SugGetOptions): Array; +export interface SuggestionWithScores { + suggestion: string; + score: number; +} +export declare function transformReply(rawReply: Array | null): Array | null; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.js b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.js new file mode 100644 index 0000000..5147cb1 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = require("./SUGGET"); +var SUGGET_2 = require("./SUGGET"); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } }); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply.push({ + suggestion: rawReply[i], + score: Number(rawReply[i + 1]) + }); + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts new file mode 100644 index 0000000..0c53891 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts @@ -0,0 +1,7 @@ +import { SugGetOptions } from './SUGGET'; +import { SuggestionWithPayload } from './SUGGET_WITHPAYLOADS'; +import { SuggestionWithScores } from './SUGGET_WITHSCORES'; +export { IS_READ_ONLY } from './SUGGET'; +export declare function transformArguments(key: string, prefix: string, options?: SugGetOptions): Array; +type SuggestionWithScoresAndPayloads = SuggestionWithScores & SuggestionWithPayload; +export declare function transformReply(rawReply: Array | null): Array | null; diff --git a/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js new file mode 100644 index 0000000..fa5d83a --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = require("./SUGGET"); +var SUGGET_2 = require("./SUGGET"); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } }); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHSCORES', + 'WITHPAYLOADS' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 3) { + transformedReply.push({ + suggestion: rawReply[i], + score: Number(rawReply[i + 1]), + payload: rawReply[i + 2] + }); + } + return transformedReply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/search/dist/commands/SUGLEN.d.ts b/node_modules/@redis/search/dist/commands/SUGLEN.d.ts new file mode 100644 index 0000000..b0c7168 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGLEN.d.ts @@ -0,0 +1,3 @@ +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export declare function transformReply(): number; diff --git a/node_modules/@redis/search/dist/commands/SUGLEN.js b/node_modules/@redis/search/dist/commands/SUGLEN.js new file mode 100644 index 0000000..3681839 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SUGLEN.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['FT.SUGLEN', key]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/SYNDUMP.d.ts b/node_modules/@redis/search/dist/commands/SYNDUMP.d.ts new file mode 100644 index 0000000..3bade6c --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SYNDUMP.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(index: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/search/dist/commands/SYNDUMP.js b/node_modules/@redis/search/dist/commands/SYNDUMP.js new file mode 100644 index 0000000..b7c153e --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SYNDUMP.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(index) { + return ['FT.SYNDUMP', index]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/SYNUPDATE.d.ts b/node_modules/@redis/search/dist/commands/SYNUPDATE.d.ts new file mode 100644 index 0000000..2a1c21f --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SYNUPDATE.d.ts @@ -0,0 +1,7 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +interface SynUpdateOptions { + SKIPINITIALSCAN?: true; +} +export declare function transformArguments(index: string, groupId: string, terms: string | Array, options?: SynUpdateOptions): RedisCommandArguments; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/search/dist/commands/SYNUPDATE.js b/node_modules/@redis/search/dist/commands/SYNUPDATE.js new file mode 100644 index 0000000..b6498cc --- /dev/null +++ b/node_modules/@redis/search/dist/commands/SYNUPDATE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +function transformArguments(index, groupId, terms, options) { + const args = ['FT.SYNUPDATE', index, groupId]; + if (options?.SKIPINITIALSCAN) { + args.push('SKIPINITIALSCAN'); + } + return (0, generic_transformers_1.pushVerdictArguments)(args, terms); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/TAGVALS.d.ts b/node_modules/@redis/search/dist/commands/TAGVALS.d.ts new file mode 100644 index 0000000..dff3e30 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/TAGVALS.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(index: string, fieldName: string): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/search/dist/commands/TAGVALS.js b/node_modules/@redis/search/dist/commands/TAGVALS.js new file mode 100644 index 0000000..84fc416 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/TAGVALS.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments(index, fieldName) { + return ['FT.TAGVALS', index, fieldName]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/_LIST.d.ts b/node_modules/@redis/search/dist/commands/_LIST.d.ts new file mode 100644 index 0000000..db92074 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/_LIST.d.ts @@ -0,0 +1,2 @@ +export declare function transformArguments(): Array; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/search/dist/commands/_LIST.js b/node_modules/@redis/search/dist/commands/_LIST.js new file mode 100644 index 0000000..c255557 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/_LIST.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = void 0; +function transformArguments() { + return ['FT._LIST']; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/search/dist/commands/index.d.ts b/node_modules/@redis/search/dist/commands/index.d.ts new file mode 100644 index 0000000..ce41a97 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/index.d.ts @@ -0,0 +1,267 @@ +import * as _LIST from './_LIST'; +import * as ALTER from './ALTER'; +import * as AGGREGATE_WITHCURSOR from './AGGREGATE_WITHCURSOR'; +import * as AGGREGATE from './AGGREGATE'; +import * as ALIASADD from './ALIASADD'; +import * as ALIASDEL from './ALIASDEL'; +import * as ALIASUPDATE from './ALIASUPDATE'; +import * as CONFIG_GET from './CONFIG_GET'; +import * as CONFIG_SET from './CONFIG_SET'; +import * as CREATE from './CREATE'; +import * as CURSOR_DEL from './CURSOR_DEL'; +import * as CURSOR_READ from './CURSOR_READ'; +import * as DICTADD from './DICTADD'; +import * as DICTDEL from './DICTDEL'; +import * as DICTDUMP from './DICTDUMP'; +import * as DROPINDEX from './DROPINDEX'; +import * as EXPLAIN from './EXPLAIN'; +import * as EXPLAINCLI from './EXPLAINCLI'; +import * as INFO from './INFO'; +import * as PROFILESEARCH from './PROFILE_SEARCH'; +import * as PROFILEAGGREGATE from './PROFILE_AGGREGATE'; +import * as SEARCH from './SEARCH'; +import * as SEARCH_NOCONTENT from './SEARCH_NOCONTENT'; +import * as SPELLCHECK from './SPELLCHECK'; +import * as SUGADD from './SUGADD'; +import * as SUGDEL from './SUGDEL'; +import * as SUGGET_WITHPAYLOADS from './SUGGET_WITHPAYLOADS'; +import * as SUGGET_WITHSCORES_WITHPAYLOADS from './SUGGET_WITHSCORES_WITHPAYLOADS'; +import * as SUGGET_WITHSCORES from './SUGGET_WITHSCORES'; +import * as SUGGET from './SUGGET'; +import * as SUGLEN from './SUGLEN'; +import * as SYNDUMP from './SYNDUMP'; +import * as SYNUPDATE from './SYNUPDATE'; +import * as TAGVALS from './TAGVALS'; +import { RedisCommandArgument, RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { SearchOptions } from './SEARCH'; +declare const _default: { + _LIST: typeof _LIST; + _list: typeof _LIST; + ALTER: typeof ALTER; + alter: typeof ALTER; + AGGREGATE_WITHCURSOR: typeof AGGREGATE_WITHCURSOR; + aggregateWithCursor: typeof AGGREGATE_WITHCURSOR; + AGGREGATE: typeof AGGREGATE; + aggregate: typeof AGGREGATE; + ALIASADD: typeof ALIASADD; + aliasAdd: typeof ALIASADD; + ALIASDEL: typeof ALIASDEL; + aliasDel: typeof ALIASDEL; + ALIASUPDATE: typeof ALIASUPDATE; + aliasUpdate: typeof ALIASUPDATE; + CONFIG_GET: typeof CONFIG_GET; + configGet: typeof CONFIG_GET; + CONFIG_SET: typeof CONFIG_SET; + configSet: typeof CONFIG_SET; + CREATE: typeof CREATE; + create: typeof CREATE; + CURSOR_DEL: typeof CURSOR_DEL; + cursorDel: typeof CURSOR_DEL; + CURSOR_READ: typeof CURSOR_READ; + cursorRead: typeof CURSOR_READ; + DICTADD: typeof DICTADD; + dictAdd: typeof DICTADD; + DICTDEL: typeof DICTDEL; + dictDel: typeof DICTDEL; + DICTDUMP: typeof DICTDUMP; + dictDump: typeof DICTDUMP; + DROPINDEX: typeof DROPINDEX; + dropIndex: typeof DROPINDEX; + EXPLAIN: typeof EXPLAIN; + explain: typeof EXPLAIN; + EXPLAINCLI: typeof EXPLAINCLI; + explainCli: typeof EXPLAINCLI; + INFO: typeof INFO; + info: typeof INFO; + PROFILESEARCH: typeof PROFILESEARCH; + profileSearch: typeof PROFILESEARCH; + PROFILEAGGREGATE: typeof PROFILEAGGREGATE; + profileAggregate: typeof PROFILEAGGREGATE; + SEARCH: typeof SEARCH; + search: typeof SEARCH; + SEARCH_NOCONTENT: typeof SEARCH_NOCONTENT; + searchNoContent: typeof SEARCH_NOCONTENT; + SPELLCHECK: typeof SPELLCHECK; + spellCheck: typeof SPELLCHECK; + SUGADD: typeof SUGADD; + sugAdd: typeof SUGADD; + SUGDEL: typeof SUGDEL; + sugDel: typeof SUGDEL; + SUGGET_WITHPAYLOADS: typeof SUGGET_WITHPAYLOADS; + sugGetWithPayloads: typeof SUGGET_WITHPAYLOADS; + SUGGET_WITHSCORES_WITHPAYLOADS: typeof SUGGET_WITHSCORES_WITHPAYLOADS; + sugGetWithScoresWithPayloads: typeof SUGGET_WITHSCORES_WITHPAYLOADS; + SUGGET_WITHSCORES: typeof SUGGET_WITHSCORES; + sugGetWithScores: typeof SUGGET_WITHSCORES; + SUGGET: typeof SUGGET; + sugGet: typeof SUGGET; + SUGLEN: typeof SUGLEN; + sugLen: typeof SUGLEN; + SYNDUMP: typeof SYNDUMP; + synDump: typeof SYNDUMP; + SYNUPDATE: typeof SYNUPDATE; + synUpdate: typeof SYNUPDATE; + TAGVALS: typeof TAGVALS; + tagVals: typeof TAGVALS; +}; +export default _default; +export declare enum RedisSearchLanguages { + ARABIC = "Arabic", + BASQUE = "Basque", + CATALANA = "Catalan", + DANISH = "Danish", + DUTCH = "Dutch", + ENGLISH = "English", + FINNISH = "Finnish", + FRENCH = "French", + GERMAN = "German", + GREEK = "Greek", + HUNGARIAN = "Hungarian", + INDONESAIN = "Indonesian", + IRISH = "Irish", + ITALIAN = "Italian", + LITHUANIAN = "Lithuanian", + NEPALI = "Nepali", + NORWEIGAN = "Norwegian", + PORTUGUESE = "Portuguese", + ROMANIAN = "Romanian", + RUSSIAN = "Russian", + SPANISH = "Spanish", + SWEDISH = "Swedish", + TAMIL = "Tamil", + TURKISH = "Turkish", + CHINESE = "Chinese" +} +export type PropertyName = `${'@' | '$.'}${string}`; +export type SortByProperty = string | { + BY: string; + DIRECTION?: 'ASC' | 'DESC'; +}; +export declare function pushSortByProperty(args: RedisCommandArguments, sortBy: SortByProperty): void; +export declare function pushSortByArguments(args: RedisCommandArguments, name: string, sortBy: SortByProperty | Array): RedisCommandArguments; +export declare function pushArgumentsWithLength(args: RedisCommandArguments, fn: (args: RedisCommandArguments) => void): RedisCommandArguments; +export declare enum SchemaFieldTypes { + TEXT = "TEXT", + NUMERIC = "NUMERIC", + GEO = "GEO", + TAG = "TAG", + VECTOR = "VECTOR", + GEOSHAPE = "GEOSHAPE" +} +type CreateSchemaField> = T | ({ + type: T; + AS?: string; + INDEXMISSING?: boolean; +} & E); +type CommonFieldArguments = { + SORTABLE?: boolean | 'UNF'; + NOINDEX?: boolean; +}; +type CreateSchemaCommonField> = CreateSchemaField; +export declare enum SchemaTextFieldPhonetics { + DM_EN = "dm:en", + DM_FR = "dm:fr", + FM_PT = "dm:pt", + DM_ES = "dm:es" +} +type CreateSchemaTextField = CreateSchemaCommonField; +type CreateSchemaNumericField = CreateSchemaCommonField; +type CreateSchemaGeoField = CreateSchemaCommonField; +type CreateSchemaTagField = CreateSchemaCommonField; +export declare enum VectorAlgorithms { + FLAT = "FLAT", + HNSW = "HNSW" +} +type CreateSchemaVectorField> = CreateSchemaField; +type CreateSchemaFlatVectorField = CreateSchemaVectorField; +type CreateSchemaHNSWVectorField = CreateSchemaVectorField; +export declare const SCHEMA_GEO_SHAPE_COORD_SYSTEM: { + readonly SPHERICAL: "SPHERICAL"; + readonly FLAT: "FLAT"; +}; +export type SchemaGeoShapeFieldCoordSystem = typeof SCHEMA_GEO_SHAPE_COORD_SYSTEM[keyof typeof SCHEMA_GEO_SHAPE_COORD_SYSTEM]; +type CreateSchemaGeoShapeField = CreateSchemaCommonField; +export interface RediSearchSchema { + [field: string]: CreateSchemaTextField | CreateSchemaNumericField | CreateSchemaGeoField | CreateSchemaTagField | CreateSchemaFlatVectorField | CreateSchemaHNSWVectorField | CreateSchemaGeoShapeField; +} +export declare function pushSchema(args: RedisCommandArguments, schema: RediSearchSchema): void; +export type Params = Record; +export declare function pushParamsArgs(args: RedisCommandArguments, params?: Params): RedisCommandArguments; +export declare function pushSearchOptions(args: RedisCommandArguments, options?: SearchOptions): RedisCommandArguments; +interface SearchDocumentValue { + [key: string]: string | number | null | Array | SearchDocumentValue; +} +export interface SearchReply { + total: number; + documents: Array<{ + id: string; + value: SearchDocumentValue; + }>; +} +export interface ProfileOptions { + LIMITED?: true; +} +export type ProfileRawReply = [ + results: T, + profile: [ + _: string, + TotalProfileTime: string, + _: string, + ParsingTime: string, + _: string, + PipelineCreationTime: string, + _: string, + IteratorsProfile: Array + ] +]; +export interface ProfileReply { + results: SearchReply | AGGREGATE.AggregateReply; + profile: ProfileData; +} +interface ChildIterator { + type?: string; + counter?: number; + term?: string; + size?: number; + time?: string; + childIterators?: Array; +} +interface IteratorsProfile { + type?: string; + counter?: number; + queryType?: string; + time?: string; + childIterators?: Array; +} +interface ProfileData { + totalProfileTime: string; + parsingTime: string; + pipelineCreationTime: string; + iteratorsProfile: IteratorsProfile; +} +export declare function transformProfile(reply: Array): ProfileData; diff --git a/node_modules/@redis/search/dist/commands/index.js b/node_modules/@redis/search/dist/commands/index.js new file mode 100644 index 0000000..f2467e0 --- /dev/null +++ b/node_modules/@redis/search/dist/commands/index.js @@ -0,0 +1,458 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformProfile = exports.pushSearchOptions = exports.pushParamsArgs = exports.pushSchema = exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports.pushArgumentsWithLength = exports.pushSortByArguments = exports.pushSortByProperty = exports.RedisSearchLanguages = void 0; +const _LIST = require("./_LIST"); +const ALTER = require("./ALTER"); +const AGGREGATE_WITHCURSOR = require("./AGGREGATE_WITHCURSOR"); +const AGGREGATE = require("./AGGREGATE"); +const ALIASADD = require("./ALIASADD"); +const ALIASDEL = require("./ALIASDEL"); +const ALIASUPDATE = require("./ALIASUPDATE"); +const CONFIG_GET = require("./CONFIG_GET"); +const CONFIG_SET = require("./CONFIG_SET"); +const CREATE = require("./CREATE"); +const CURSOR_DEL = require("./CURSOR_DEL"); +const CURSOR_READ = require("./CURSOR_READ"); +const DICTADD = require("./DICTADD"); +const DICTDEL = require("./DICTDEL"); +const DICTDUMP = require("./DICTDUMP"); +const DROPINDEX = require("./DROPINDEX"); +const EXPLAIN = require("./EXPLAIN"); +const EXPLAINCLI = require("./EXPLAINCLI"); +const INFO = require("./INFO"); +const PROFILESEARCH = require("./PROFILE_SEARCH"); +const PROFILEAGGREGATE = require("./PROFILE_AGGREGATE"); +const SEARCH = require("./SEARCH"); +const SEARCH_NOCONTENT = require("./SEARCH_NOCONTENT"); +const SPELLCHECK = require("./SPELLCHECK"); +const SUGADD = require("./SUGADD"); +const SUGDEL = require("./SUGDEL"); +const SUGGET_WITHPAYLOADS = require("./SUGGET_WITHPAYLOADS"); +const SUGGET_WITHSCORES_WITHPAYLOADS = require("./SUGGET_WITHSCORES_WITHPAYLOADS"); +const SUGGET_WITHSCORES = require("./SUGGET_WITHSCORES"); +const SUGGET = require("./SUGGET"); +const SUGLEN = require("./SUGLEN"); +const SYNDUMP = require("./SYNDUMP"); +const SYNUPDATE = require("./SYNUPDATE"); +const TAGVALS = require("./TAGVALS"); +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.default = { + _LIST, + _list: _LIST, + ALTER, + alter: ALTER, + AGGREGATE_WITHCURSOR, + aggregateWithCursor: AGGREGATE_WITHCURSOR, + AGGREGATE, + aggregate: AGGREGATE, + ALIASADD, + aliasAdd: ALIASADD, + ALIASDEL, + aliasDel: ALIASDEL, + ALIASUPDATE, + aliasUpdate: ALIASUPDATE, + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_SET, + configSet: CONFIG_SET, + CREATE, + create: CREATE, + CURSOR_DEL, + cursorDel: CURSOR_DEL, + CURSOR_READ, + cursorRead: CURSOR_READ, + DICTADD, + dictAdd: DICTADD, + DICTDEL, + dictDel: DICTDEL, + DICTDUMP, + dictDump: DICTDUMP, + DROPINDEX, + dropIndex: DROPINDEX, + EXPLAIN, + explain: EXPLAIN, + EXPLAINCLI, + explainCli: EXPLAINCLI, + INFO, + info: INFO, + PROFILESEARCH, + profileSearch: PROFILESEARCH, + PROFILEAGGREGATE, + profileAggregate: PROFILEAGGREGATE, + SEARCH, + search: SEARCH, + SEARCH_NOCONTENT, + searchNoContent: SEARCH_NOCONTENT, + SPELLCHECK, + spellCheck: SPELLCHECK, + SUGADD, + sugAdd: SUGADD, + SUGDEL, + sugDel: SUGDEL, + SUGGET_WITHPAYLOADS, + sugGetWithPayloads: SUGGET_WITHPAYLOADS, + SUGGET_WITHSCORES_WITHPAYLOADS, + sugGetWithScoresWithPayloads: SUGGET_WITHSCORES_WITHPAYLOADS, + SUGGET_WITHSCORES, + sugGetWithScores: SUGGET_WITHSCORES, + SUGGET, + sugGet: SUGGET, + SUGLEN, + sugLen: SUGLEN, + SYNDUMP, + synDump: SYNDUMP, + SYNUPDATE, + synUpdate: SYNUPDATE, + TAGVALS, + tagVals: TAGVALS +}; +var RedisSearchLanguages; +(function (RedisSearchLanguages) { + RedisSearchLanguages["ARABIC"] = "Arabic"; + RedisSearchLanguages["BASQUE"] = "Basque"; + RedisSearchLanguages["CATALANA"] = "Catalan"; + RedisSearchLanguages["DANISH"] = "Danish"; + RedisSearchLanguages["DUTCH"] = "Dutch"; + RedisSearchLanguages["ENGLISH"] = "English"; + RedisSearchLanguages["FINNISH"] = "Finnish"; + RedisSearchLanguages["FRENCH"] = "French"; + RedisSearchLanguages["GERMAN"] = "German"; + RedisSearchLanguages["GREEK"] = "Greek"; + RedisSearchLanguages["HUNGARIAN"] = "Hungarian"; + RedisSearchLanguages["INDONESAIN"] = "Indonesian"; + RedisSearchLanguages["IRISH"] = "Irish"; + RedisSearchLanguages["ITALIAN"] = "Italian"; + RedisSearchLanguages["LITHUANIAN"] = "Lithuanian"; + RedisSearchLanguages["NEPALI"] = "Nepali"; + RedisSearchLanguages["NORWEIGAN"] = "Norwegian"; + RedisSearchLanguages["PORTUGUESE"] = "Portuguese"; + RedisSearchLanguages["ROMANIAN"] = "Romanian"; + RedisSearchLanguages["RUSSIAN"] = "Russian"; + RedisSearchLanguages["SPANISH"] = "Spanish"; + RedisSearchLanguages["SWEDISH"] = "Swedish"; + RedisSearchLanguages["TAMIL"] = "Tamil"; + RedisSearchLanguages["TURKISH"] = "Turkish"; + RedisSearchLanguages["CHINESE"] = "Chinese"; +})(RedisSearchLanguages || (exports.RedisSearchLanguages = RedisSearchLanguages = {})); +function pushSortByProperty(args, sortBy) { + if (typeof sortBy === 'string') { + args.push(sortBy); + } + else { + args.push(sortBy.BY); + if (sortBy.DIRECTION) { + args.push(sortBy.DIRECTION); + } + } +} +exports.pushSortByProperty = pushSortByProperty; +function pushSortByArguments(args, name, sortBy) { + const lengthBefore = args.push(name, '' // will be overwritten + ); + if (Array.isArray(sortBy)) { + for (const field of sortBy) { + pushSortByProperty(args, field); + } + } + else { + pushSortByProperty(args, sortBy); + } + args[lengthBefore - 1] = (args.length - lengthBefore).toString(); + return args; +} +exports.pushSortByArguments = pushSortByArguments; +function pushArgumentsWithLength(args, fn) { + const lengthIndex = args.push('') - 1; + fn(args); + args[lengthIndex] = (args.length - lengthIndex - 1).toString(); + return args; +} +exports.pushArgumentsWithLength = pushArgumentsWithLength; +var SchemaFieldTypes; +(function (SchemaFieldTypes) { + SchemaFieldTypes["TEXT"] = "TEXT"; + SchemaFieldTypes["NUMERIC"] = "NUMERIC"; + SchemaFieldTypes["GEO"] = "GEO"; + SchemaFieldTypes["TAG"] = "TAG"; + SchemaFieldTypes["VECTOR"] = "VECTOR"; + SchemaFieldTypes["GEOSHAPE"] = "GEOSHAPE"; +})(SchemaFieldTypes || (exports.SchemaFieldTypes = SchemaFieldTypes = {})); +function pushCommonFieldArguments(args, fieldOptions) { + if (fieldOptions.SORTABLE) { + args.push('SORTABLE'); + if (fieldOptions.SORTABLE === 'UNF') { + args.push('UNF'); + } + } + if (fieldOptions.NOINDEX) { + args.push('NOINDEX'); + } +} +var SchemaTextFieldPhonetics; +(function (SchemaTextFieldPhonetics) { + SchemaTextFieldPhonetics["DM_EN"] = "dm:en"; + SchemaTextFieldPhonetics["DM_FR"] = "dm:fr"; + SchemaTextFieldPhonetics["FM_PT"] = "dm:pt"; + SchemaTextFieldPhonetics["DM_ES"] = "dm:es"; +})(SchemaTextFieldPhonetics || (exports.SchemaTextFieldPhonetics = SchemaTextFieldPhonetics = {})); +var VectorAlgorithms; +(function (VectorAlgorithms) { + VectorAlgorithms["FLAT"] = "FLAT"; + VectorAlgorithms["HNSW"] = "HNSW"; +})(VectorAlgorithms || (exports.VectorAlgorithms = VectorAlgorithms = {})); +exports.SCHEMA_GEO_SHAPE_COORD_SYSTEM = { + SPHERICAL: 'SPHERICAL', + FLAT: 'FLAT' +}; +function pushSchema(args, schema) { + for (const [field, fieldOptions] of Object.entries(schema)) { + args.push(field); + if (typeof fieldOptions === 'string') { + args.push(fieldOptions); + continue; + } + if (fieldOptions.AS) { + args.push('AS', fieldOptions.AS); + } + args.push(fieldOptions.type); + switch (fieldOptions.type) { + case SchemaFieldTypes.TEXT: + if (fieldOptions.NOSTEM) { + args.push('NOSTEM'); + } + if (fieldOptions.WEIGHT) { + args.push('WEIGHT', fieldOptions.WEIGHT.toString()); + } + if (fieldOptions.PHONETIC) { + args.push('PHONETIC', fieldOptions.PHONETIC); + } + if (fieldOptions.WITHSUFFIXTRIE) { + args.push('WITHSUFFIXTRIE'); + } + pushCommonFieldArguments(args, fieldOptions); + if (fieldOptions.INDEXEMPTY) { + args.push('INDEXEMPTY'); + } + break; + case SchemaFieldTypes.NUMERIC: + case SchemaFieldTypes.GEO: + pushCommonFieldArguments(args, fieldOptions); + break; + case SchemaFieldTypes.TAG: + if (fieldOptions.SEPARATOR) { + args.push('SEPARATOR', fieldOptions.SEPARATOR); + } + if (fieldOptions.CASESENSITIVE) { + args.push('CASESENSITIVE'); + } + if (fieldOptions.WITHSUFFIXTRIE) { + args.push('WITHSUFFIXTRIE'); + } + pushCommonFieldArguments(args, fieldOptions); + if (fieldOptions.INDEXEMPTY) { + args.push('INDEXEMPTY'); + } + break; + case SchemaFieldTypes.VECTOR: + args.push(fieldOptions.ALGORITHM); + pushArgumentsWithLength(args, () => { + args.push('TYPE', fieldOptions.TYPE, 'DIM', fieldOptions.DIM.toString(), 'DISTANCE_METRIC', fieldOptions.DISTANCE_METRIC); + if (fieldOptions.INITIAL_CAP) { + args.push('INITIAL_CAP', fieldOptions.INITIAL_CAP.toString()); + } + switch (fieldOptions.ALGORITHM) { + case VectorAlgorithms.FLAT: + if (fieldOptions.BLOCK_SIZE) { + args.push('BLOCK_SIZE', fieldOptions.BLOCK_SIZE.toString()); + } + break; + case VectorAlgorithms.HNSW: + if (fieldOptions.M) { + args.push('M', fieldOptions.M.toString()); + } + if (fieldOptions.EF_CONSTRUCTION) { + args.push('EF_CONSTRUCTION', fieldOptions.EF_CONSTRUCTION.toString()); + } + if (fieldOptions.EF_RUNTIME) { + args.push('EF_RUNTIME', fieldOptions.EF_RUNTIME.toString()); + } + break; + } + }); + break; + case SchemaFieldTypes.GEOSHAPE: + if (fieldOptions.COORD_SYSTEM !== undefined) { + args.push('COORD_SYSTEM', fieldOptions.COORD_SYSTEM); + } + pushCommonFieldArguments(args, fieldOptions); + break; + } + if (fieldOptions.INDEXMISSING) { + args.push('INDEXMISSING'); + } + } +} +exports.pushSchema = pushSchema; +function pushParamsArgs(args, params) { + if (params) { + const enrties = Object.entries(params); + args.push('PARAMS', (enrties.length * 2).toString()); + for (const [key, value] of enrties) { + args.push(key, typeof value === 'number' ? value.toString() : value); + } + } + return args; +} +exports.pushParamsArgs = pushParamsArgs; +function pushSearchOptions(args, options) { + if (options?.VERBATIM) { + args.push('VERBATIM'); + } + if (options?.NOSTOPWORDS) { + args.push('NOSTOPWORDS'); + } + // if (options?.WITHSCORES) { + // args.push('WITHSCORES'); + // } + // if (options?.WITHPAYLOADS) { + // args.push('WITHPAYLOADS'); + // } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INKEYS', options?.INKEYS); + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INFIELDS', options?.INFIELDS); + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'RETURN', options?.RETURN); + if (options?.SUMMARIZE) { + args.push('SUMMARIZE'); + if (typeof options.SUMMARIZE === 'object') { + if (options.SUMMARIZE.FIELDS) { + args.push('FIELDS'); + (0, generic_transformers_1.pushVerdictArgument)(args, options.SUMMARIZE.FIELDS); + } + if (options.SUMMARIZE.FRAGS) { + args.push('FRAGS', options.SUMMARIZE.FRAGS.toString()); + } + if (options.SUMMARIZE.LEN) { + args.push('LEN', options.SUMMARIZE.LEN.toString()); + } + if (options.SUMMARIZE.SEPARATOR) { + args.push('SEPARATOR', options.SUMMARIZE.SEPARATOR); + } + } + } + if (options?.HIGHLIGHT) { + args.push('HIGHLIGHT'); + if (typeof options.HIGHLIGHT === 'object') { + if (options.HIGHLIGHT.FIELDS) { + args.push('FIELDS'); + (0, generic_transformers_1.pushVerdictArgument)(args, options.HIGHLIGHT.FIELDS); + } + if (options.HIGHLIGHT.TAGS) { + args.push('TAGS', options.HIGHLIGHT.TAGS.open, options.HIGHLIGHT.TAGS.close); + } + } + } + if (options?.SLOP) { + args.push('SLOP', options.SLOP.toString()); + } + if (options?.INORDER) { + args.push('INORDER'); + } + if (options?.LANGUAGE) { + args.push('LANGUAGE', options.LANGUAGE); + } + if (options?.EXPANDER) { + args.push('EXPANDER', options.EXPANDER); + } + if (options?.SCORER) { + args.push('SCORER', options.SCORER); + } + // if (options?.EXPLAINSCORE) { + // args.push('EXPLAINSCORE'); + // } + // if (options?.PAYLOAD) { + // args.push('PAYLOAD', options.PAYLOAD); + // } + if (options?.SORTBY) { + args.push('SORTBY'); + pushSortByProperty(args, options.SORTBY); + } + // if (options?.MSORTBY) { + // pushSortByArguments(args, 'MSORTBY', options.MSORTBY); + // } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.from.toString(), options.LIMIT.size.toString()); + } + if (options?.PARAMS) { + pushParamsArgs(args, options.PARAMS); + } + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + if (options?.RETURN?.length === 0) { + args.preserve = true; + } + if (options?.TIMEOUT !== undefined) { + args.push('TIMEOUT', options.TIMEOUT.toString()); + } + return args; +} +exports.pushSearchOptions = pushSearchOptions; +function transformProfile(reply) { + return { + totalProfileTime: reply[0][1], + parsingTime: reply[1][1], + pipelineCreationTime: reply[2][1], + iteratorsProfile: transformIterators(reply[3][1]) + }; +} +exports.transformProfile = transformProfile; +function transformIterators(IteratorsProfile) { + var res = {}; + for (let i = 0; i < IteratorsProfile.length; i += 2) { + const value = IteratorsProfile[i + 1]; + switch (IteratorsProfile[i]) { + case 'Type': + res.type = value; + break; + case 'Counter': + res.counter = value; + break; + case 'Time': + res.time = value; + break; + case 'Query type': + res.queryType = value; + break; + case 'Child iterators': + res.childIterators = value.map(transformChildIterators); + break; + } + } + return res; +} +function transformChildIterators(IteratorsProfile) { + var res = {}; + for (let i = 1; i < IteratorsProfile.length; i += 2) { + const value = IteratorsProfile[i + 1]; + switch (IteratorsProfile[i]) { + case 'Type': + res.type = value; + break; + case 'Counter': + res.counter = value; + break; + case 'Time': + res.time = value; + break; + case 'Size': + res.size = value; + break; + case 'Term': + res.term = value; + break; + case 'Child iterators': + res.childIterators = value.map(transformChildIterators); + break; + } + } + return res; +} diff --git a/node_modules/@redis/search/dist/index.d.ts b/node_modules/@redis/search/dist/index.d.ts new file mode 100644 index 0000000..745ad29 --- /dev/null +++ b/node_modules/@redis/search/dist/index.d.ts @@ -0,0 +1,4 @@ +export { default } from './commands'; +export { RediSearchSchema, RedisSearchLanguages, SchemaFieldTypes, SchemaTextFieldPhonetics, SearchReply, VectorAlgorithms } from './commands'; +export { AggregateGroupByReducers, AggregateSteps } from './commands/AGGREGATE'; +export { SearchOptions } from './commands/SEARCH'; diff --git a/node_modules/@redis/search/dist/index.js b/node_modules/@redis/search/dist/index.js new file mode 100644 index 0000000..36d7c1d --- /dev/null +++ b/node_modules/@redis/search/dist/index.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.AggregateSteps = exports.AggregateGroupByReducers = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports.RedisSearchLanguages = exports.default = void 0; +var commands_1 = require("./commands"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return commands_1.default; } }); +var commands_2 = require("./commands"); +Object.defineProperty(exports, "RedisSearchLanguages", { enumerable: true, get: function () { return commands_2.RedisSearchLanguages; } }); +Object.defineProperty(exports, "SchemaFieldTypes", { enumerable: true, get: function () { return commands_2.SchemaFieldTypes; } }); +Object.defineProperty(exports, "SchemaTextFieldPhonetics", { enumerable: true, get: function () { return commands_2.SchemaTextFieldPhonetics; } }); +Object.defineProperty(exports, "VectorAlgorithms", { enumerable: true, get: function () { return commands_2.VectorAlgorithms; } }); +var AGGREGATE_1 = require("./commands/AGGREGATE"); +Object.defineProperty(exports, "AggregateGroupByReducers", { enumerable: true, get: function () { return AGGREGATE_1.AggregateGroupByReducers; } }); +Object.defineProperty(exports, "AggregateSteps", { enumerable: true, get: function () { return AGGREGATE_1.AggregateSteps; } }); diff --git a/node_modules/@redis/search/package.json b/node_modules/@redis/search/package.json new file mode 100644 index 0000000..aaf9bc5 --- /dev/null +++ b/node_modules/@redis/search/package.json @@ -0,0 +1,41 @@ +{ + "name": "@redis/search", + "version": "1.2.0", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "documentation": "typedoc" + }, + "peerDependencies": { + "@redis/client": "^1.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/search", + "keywords": [ + "redis", + "RediSearch" + ] +} diff --git a/node_modules/@redis/time-series/README.md b/node_modules/@redis/time-series/README.md new file mode 100644 index 0000000..5923979 --- /dev/null +++ b/node_modules/@redis/time-series/README.md @@ -0,0 +1,151 @@ +# @redis/time-series + +This package provides support for the [RedisTimeSeries](https://redistimeseries.io) module, which adds a time series data structure to Redis. It extends the [Node Redis client](https://github.com/redis/node-redis) to include functions for each of the RedisTimeSeries commands. + +To use these extra commands, your Redis server must have the RedisTimeSeries module installed. + +## Usage + +For a complete example, see [`time-series.js`](https://github.com/redis/node-redis/blob/master/examples/time-series.js) in the Node Redis examples folder. + +### Creating Time Series data structure in Redis + +The [`TS.CREATE`](https://oss.redis.com/redistimeseries/commands/#tscreate) command creates a new time series. + +Here, we'll create a new time series "`temperature`": + +```javascript + +import { createClient } from 'redis'; +import { TimeSeriesDuplicatePolicies, TimeSeriesEncoding, TimeSeriesAggregationType } from '@redis/time-series'; + +... + + const created = await client.ts.create('temperature', { + RETENTION: 86400000, // 1 day in milliseconds + ENCODING: TimeSeriesEncoding.UNCOMPRESSED, // No compression - When not specified, the option is set to COMPRESSED + DUPLICATE_POLICY: TimeSeriesDuplicatePolicies.BLOCK, // No duplicates - When not specified: set to the global DUPLICATE_POLICY configuration of the database (which by default, is BLOCK). + }); + + if (created === 'OK') { + console.log('Created timeseries.'); + } else { + console.log('Error creating timeseries :('); + process.exit(1); + } + +``` + +### Adding new value to a Time Series data structure in Redis + +With RedisTimeSeries, we can add a single value to time series data structure using the [`TS.ADD`](https://redis.io/commands/ts.add/) command and if we would like to add multiple values we can use the [`TS.MADD`](https://redis.io/commands/ts.madd/) command. + +```javascript + +let value = Math.floor(Math.random() * 1000) + 1; // Random data point value + let currentTimestamp = 1640995200000; // Jan 1 2022 00:00:00 + let num = 0; + + while (num < 10000) { + // Add a new value to the timeseries, providing our own timestamp: + // https://redis.io/commands/ts.add/ + await client.ts.add('temperature', currentTimestamp, value); + console.log(`Added timestamp ${currentTimestamp}, value ${value}.`); + + num += 1; + value = Math.floor(Math.random() * 1000) + 1; // Get another random value + currentTimestamp += 1000; // Move on one second. + } + + // Add multiple values to the timeseries in round trip to the server: + // https://redis.io/commands/ts.madd/ + const response = await client.ts.mAdd([{ + key: 'temperature', + timestamp: currentTimestamp + 60000, + value: Math.floor(Math.random() * 1000) + 1 + }, { + key: 'temperature', + timestamp: currentTimestamp + 120000, + value: Math.floor(Math.random() * 1000) + 1 + }]); + + +``` + +### Retrieving Time Series data from Redis + +With RedisTimeSeries, we can retrieve the time series data using the [`TS.RANGE`](https://redis.io/commands/ts.range/) command by passing the criteria as follows: + +```javascript + +// Query the timeseries with TS.RANGE: + // https://redis.io/commands/ts.range/ + const fromTimestamp = 1640995200000; // Jan 1 2022 00:00:00 + const toTimestamp = 1640995260000; // Jan 1 2022 00:01:00 + const rangeResponse = await client.ts.range('temperature', fromTimestamp, toTimestamp, { + // Group into 10 second averages. + AGGREGATION: { + type: TimeSeriesAggregationType.AVERAGE, + timeBucket: 10000 + } + }); + + console.log('RANGE RESPONSE:'); + // rangeResponse looks like: + // [ + // { timestamp: 1640995200000, value: 356.8 }, + // { timestamp: 1640995210000, value: 534.8 }, + // { timestamp: 1640995220000, value: 481.3 }, + // { timestamp: 1640995230000, value: 437 }, + // { timestamp: 1640995240000, value: 507.3 }, + // { timestamp: 1640995250000, value: 581.2 }, + // { timestamp: 1640995260000, value: 600 } + // ] + +``` + +### Altering Time Series data Stored in Redis + +RedisTimeSeries includes commands that can update values in a time series data structure. + +Using the [`TS.ALTER`](https://redis.io/commands/ts.alter/) command, we can update time series retention like this: + +```javascript + + // https://redis.io/commands/ts.alter/ + const alterResponse = await client.ts.alter('temperature', { + RETENTION: 0 // Keep the entries forever + }); + +``` + +### Retrieving Information about the timeseries Stored in Redis + +RedisTimeSeries also includes commands that can help to view the information on the state of a time series. + +Using the [`TS.INFO`](https://redis.io/commands/ts.info/) command, we can view timeseries information like this: + +```javascript + + // Get some information about the state of the timeseries. + // https://redis.io/commands/ts.info/ + const tsInfo = await client.ts.info('temperature'); + + // tsInfo looks like this: + // { + // totalSamples: 1440, + // memoryUsage: 28904, + // firstTimestamp: 1641508920000, + // lastTimestamp: 1641595320000, + // retentionTime: 86400000, + // chunkCount: 7, + // chunkSize: 4096, + // chunkType: 'uncompressed', + // duplicatePolicy: 'block', + // labels: [], + // sourceKey: null, + // rules: [] + // } + +``` + diff --git a/node_modules/@redis/time-series/dist/commands/ADD.d.ts b/node_modules/@redis/time-series/dist/commands/ADD.d.ts new file mode 100644 index 0000000..58b0489 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/ADD.d.ts @@ -0,0 +1,17 @@ +import { TimeSeriesEncoding, TimeSeriesDuplicatePolicies, Labels, Timestamp } from '.'; +export interface TsIgnoreOptions { + MAX_TIME_DIFF: number; + MAX_VAL_DIFF: number; +} +interface AddOptions { + RETENTION?: number; + ENCODING?: TimeSeriesEncoding; + CHUNK_SIZE?: number; + ON_DUPLICATE?: TimeSeriesDuplicatePolicies; + LABELS?: Labels; + IGNORE?: TsIgnoreOptions; +} +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, timestamp: Timestamp, value: number, options?: AddOptions): Array; +export declare function transformReply(): number; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/ADD.js b/node_modules/@redis/time-series/dist/commands/ADD.js new file mode 100644 index 0000000..a799b62 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/ADD.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timestamp, value, options) { + const args = [ + 'TS.ADD', + key, + (0, _1.transformTimestampArgument)(timestamp), + value.toString() + ]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushEncodingArgument)(args, options?.ENCODING); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + if (options?.ON_DUPLICATE) { + args.push('ON_DUPLICATE', options.ON_DUPLICATE); + } + (0, _1.pushLabelsArgument)(args, options?.LABELS); + (0, _1.pushIgnoreArgument)(args, options?.IGNORE); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/ALTER.d.ts b/node_modules/@redis/time-series/dist/commands/ALTER.d.ts new file mode 100644 index 0000000..8f30a2a --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/ALTER.d.ts @@ -0,0 +1,13 @@ +import { Labels, TimeSeriesDuplicatePolicies } from '.'; +import { TsIgnoreOptions } from './ADD'; +export declare const FIRST_KEY_INDEX = 1; +interface AlterOptions { + RETENTION?: number; + CHUNK_SIZE?: number; + DUPLICATE_POLICY?: TimeSeriesDuplicatePolicies; + LABELS?: Labels; + IGNORE?: TsIgnoreOptions; +} +export declare function transformArguments(key: string, options?: AlterOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/ALTER.js b/node_modules/@redis/time-series/dist/commands/ALTER.js new file mode 100644 index 0000000..3041885 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/ALTER.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + const args = ['TS.ALTER', key]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY); + (0, _1.pushLabelsArgument)(args, options?.LABELS); + (0, _1.pushIgnoreArgument)(args, options?.IGNORE); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/CREATE.d.ts b/node_modules/@redis/time-series/dist/commands/CREATE.d.ts new file mode 100644 index 0000000..386ecfb --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/CREATE.d.ts @@ -0,0 +1,14 @@ +import { TimeSeriesEncoding, TimeSeriesDuplicatePolicies, Labels } from '.'; +import { TsIgnoreOptions } from './ADD'; +export declare const FIRST_KEY_INDEX = 1; +interface CreateOptions { + RETENTION?: number; + ENCODING?: TimeSeriesEncoding; + CHUNK_SIZE?: number; + DUPLICATE_POLICY?: TimeSeriesDuplicatePolicies; + LABELS?: Labels; + IGNORE?: TsIgnoreOptions; +} +export declare function transformArguments(key: string, options?: CreateOptions): Array; +export declare function transformReply(): 'OK'; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/CREATE.js b/node_modules/@redis/time-series/dist/commands/CREATE.js new file mode 100644 index 0000000..0c3ae17 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/CREATE.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + const args = ['TS.CREATE', key]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushEncodingArgument)(args, options?.ENCODING); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY); + (0, _1.pushLabelsArgument)(args, options?.LABELS); + (0, _1.pushIgnoreArgument)(args, options?.IGNORE); + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/CREATERULE.d.ts b/node_modules/@redis/time-series/dist/commands/CREATERULE.d.ts new file mode 100644 index 0000000..c2544f4 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/CREATERULE.d.ts @@ -0,0 +1,4 @@ +import { TimeSeriesAggregationType } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(sourceKey: string, destinationKey: string, aggregationType: TimeSeriesAggregationType, bucketDuration: number, alignTimestamp?: number): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/time-series/dist/commands/CREATERULE.js b/node_modules/@redis/time-series/dist/commands/CREATERULE.js new file mode 100644 index 0000000..a77fcb4 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/CREATERULE.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(sourceKey, destinationKey, aggregationType, bucketDuration, alignTimestamp) { + const args = [ + 'TS.CREATERULE', + sourceKey, + destinationKey, + 'AGGREGATION', + aggregationType, + bucketDuration.toString() + ]; + if (alignTimestamp) { + args.push(alignTimestamp.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/DECRBY.d.ts b/node_modules/@redis/time-series/dist/commands/DECRBY.d.ts new file mode 100644 index 0000000..8c04451 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DECRBY.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { IncrDecrOptions } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, value: number, options?: IncrDecrOptions): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/time-series/dist/commands/DECRBY.js b/node_modules/@redis/time-series/dist/commands/DECRBY.js new file mode 100644 index 0000000..adb19a9 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DECRBY.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + return (0, _1.transformIncrDecrArguments)('TS.DECRBY', key, value, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/DEL.d.ts b/node_modules/@redis/time-series/dist/commands/DEL.d.ts new file mode 100644 index 0000000..c33a8ab --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DEL.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Timestamp } from '.'; +export declare const FIRTS_KEY_INDEX = 1; +export declare function transformArguments(key: string, fromTimestamp: Timestamp, toTimestamp: Timestamp): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/time-series/dist/commands/DEL.js b/node_modules/@redis/time-series/dist/commands/DEL.js new file mode 100644 index 0000000..39a8236 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DEL.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRTS_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRTS_KEY_INDEX = 1; +function transformArguments(key, fromTimestamp, toTimestamp) { + return [ + 'TS.DEL', + key, + (0, _1.transformTimestampArgument)(fromTimestamp), + (0, _1.transformTimestampArgument)(toTimestamp) + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/DELETERULE.d.ts b/node_modules/@redis/time-series/dist/commands/DELETERULE.d.ts new file mode 100644 index 0000000..a13a756 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DELETERULE.d.ts @@ -0,0 +1,3 @@ +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(sourceKey: string, destinationKey: string): Array; +export declare function transformReply(): 'OK'; diff --git a/node_modules/@redis/time-series/dist/commands/DELETERULE.js b/node_modules/@redis/time-series/dist/commands/DELETERULE.js new file mode 100644 index 0000000..aece0d6 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/DELETERULE.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(sourceKey, destinationKey) { + return [ + 'TS.DELETERULE', + sourceKey, + destinationKey + ]; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/GET.d.ts b/node_modules/@redis/time-series/dist/commands/GET.d.ts new file mode 100644 index 0000000..16f1ff8 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/GET.d.ts @@ -0,0 +1,10 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { SampleRawReply, SampleReply } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +interface GetOptions { + LATEST?: boolean; +} +export declare function transformArguments(key: string, options?: GetOptions): RedisCommandArguments; +export declare function transformReply(reply: [] | SampleRawReply): null | SampleReply; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/GET.js b/node_modules/@redis/time-series/dist/commands/GET.js new file mode 100644 index 0000000..9f7b9a9 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/GET.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + return (0, _1.pushLatestArgument)(['TS.GET', key], options?.LATEST); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply.length === 0) + return null; + return (0, _1.transformSampleReply)(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/INCRBY.d.ts b/node_modules/@redis/time-series/dist/commands/INCRBY.d.ts new file mode 100644 index 0000000..8c04451 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INCRBY.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { IncrDecrOptions } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare function transformArguments(key: string, value: number, options?: IncrDecrOptions): RedisCommandArguments; +export declare function transformReply(): number; diff --git a/node_modules/@redis/time-series/dist/commands/INCRBY.js b/node_modules/@redis/time-series/dist/commands/INCRBY.js new file mode 100644 index 0000000..18037d0 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INCRBY.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + return (0, _1.transformIncrDecrArguments)('TS.INCRBY', key, value, options); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/INFO.d.ts b/node_modules/@redis/time-series/dist/commands/INFO.d.ts new file mode 100644 index 0000000..6eb9482 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INFO.d.ts @@ -0,0 +1,52 @@ +import { TimeSeriesAggregationType, TimeSeriesDuplicatePolicies } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string): Array; +export type InfoRawReply = [ + 'totalSamples', + number, + 'memoryUsage', + number, + 'firstTimestamp', + number, + 'lastTimestamp', + number, + 'retentionTime', + number, + 'chunkCount', + number, + 'chunkSize', + number, + 'chunkType', + string, + 'duplicatePolicy', + TimeSeriesDuplicatePolicies | null, + 'labels', + Array<[name: string, value: string]>, + 'sourceKey', + string | null, + 'rules', + Array<[key: string, timeBucket: number, aggregationType: TimeSeriesAggregationType]> +]; +export interface InfoReply { + totalSamples: number; + memoryUsage: number; + firstTimestamp: number; + lastTimestamp: number; + retentionTime: number; + chunkCount: number; + chunkSize: number; + chunkType: string; + duplicatePolicy: TimeSeriesDuplicatePolicies | null; + labels: Array<{ + name: string; + value: string; + }>; + sourceKey: string | null; + rules: Array<{ + key: string; + timeBucket: number; + aggregationType: TimeSeriesAggregationType; + }>; +} +export declare function transformReply(reply: InfoRawReply): InfoReply; diff --git a/node_modules/@redis/time-series/dist/commands/INFO.js b/node_modules/@redis/time-series/dist/commands/INFO.js new file mode 100644 index 0000000..007582a --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INFO.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TS.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + totalSamples: reply[1], + memoryUsage: reply[3], + firstTimestamp: reply[5], + lastTimestamp: reply[7], + retentionTime: reply[9], + chunkCount: reply[11], + chunkSize: reply[13], + chunkType: reply[15], + duplicatePolicy: reply[17], + labels: reply[19].map(([name, value]) => ({ + name, + value + })), + sourceKey: reply[21], + rules: reply[23].map(([key, timeBucket, aggregationType]) => ({ + key, + timeBucket, + aggregationType + })) + }; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.d.ts b/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.d.ts new file mode 100644 index 0000000..4b71b47 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.d.ts @@ -0,0 +1,32 @@ +import { InfoRawReply, InfoReply } from './INFO'; +export { IS_READ_ONLY, FIRST_KEY_INDEX } from './INFO'; +export declare function transformArguments(key: string): Array; +type InfoDebugRawReply = [ + ...InfoRawReply, + 'keySelfName', + string, + 'chunks', + Array<[ + 'startTimestamp', + number, + 'endTimestamp', + number, + 'samples', + number, + 'size', + number, + 'bytesPerSample', + string + ]> +]; +interface InfoDebugReply extends InfoReply { + keySelfName: string; + chunks: Array<{ + startTimestamp: number; + endTimestamp: number; + samples: number; + size: number; + bytesPerSample: string; + }>; +} +export declare function transformReply(rawReply: InfoDebugRawReply): InfoDebugReply; diff --git a/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.js b/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.js new file mode 100644 index 0000000..c289e07 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/INFO_DEBUG.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +const INFO_1 = require("./INFO"); +var INFO_2 = require("./INFO"); +Object.defineProperty(exports, "IS_READ_ONLY", { enumerable: true, get: function () { return INFO_2.IS_READ_ONLY; } }); +Object.defineProperty(exports, "FIRST_KEY_INDEX", { enumerable: true, get: function () { return INFO_2.FIRST_KEY_INDEX; } }); +function transformArguments(key) { + const args = (0, INFO_1.transformArguments)(key); + args.push('DEBUG'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const reply = (0, INFO_1.transformReply)(rawReply); + reply.keySelfName = rawReply[25]; + reply.chunks = rawReply[27].map(chunk => ({ + startTimestamp: chunk[1], + endTimestamp: chunk[3], + samples: chunk[5], + size: chunk[7], + bytesPerSample: chunk[9] + })); + return reply; +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/MADD.d.ts b/node_modules/@redis/time-series/dist/commands/MADD.d.ts new file mode 100644 index 0000000..f9c5e98 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MADD.d.ts @@ -0,0 +1,10 @@ +import { Timestamp } from '.'; +export declare const FIRST_KEY_INDEX = 1; +interface MAddSample { + key: string; + timestamp: Timestamp; + value: number; +} +export declare function transformArguments(toAdd: Array): Array; +export declare function transformReply(): Array; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/MADD.js b/node_modules/@redis/time-series/dist/commands/MADD.js new file mode 100644 index 0000000..54b74c2 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MADD.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toAdd) { + const args = ['TS.MADD']; + for (const { key, timestamp, value } of toAdd) { + args.push(key, (0, _1.transformTimestampArgument)(timestamp), value.toString()); + } + return args; +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/MGET.d.ts b/node_modules/@redis/time-series/dist/commands/MGET.d.ts new file mode 100644 index 0000000..7b1f74b --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MGET.d.ts @@ -0,0 +1,17 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Filter, RawLabels, SampleRawReply, SampleReply } from '.'; +export declare const IS_READ_ONLY = true; +export interface MGetOptions { + LATEST?: boolean; +} +export declare function transformArguments(filter: Filter, options?: MGetOptions): RedisCommandArguments; +export type MGetRawReply = Array<[ + key: string, + labels: RawLabels, + sample: SampleRawReply +]>; +export interface MGetReply { + key: string; + sample: SampleReply; +} +export declare function transformReply(reply: MGetRawReply): Array; diff --git a/node_modules/@redis/time-series/dist/commands/MGET.js b/node_modules/@redis/time-series/dist/commands/MGET.js new file mode 100644 index 0000000..c0e4012 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MGET.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(filter, options) { + const args = (0, _1.pushLatestArgument)(['TS.MGET'], options?.LATEST); + return (0, _1.pushFilterArgument)(args, filter); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([key, _, sample]) => ({ + key, + sample: (0, _1.transformSampleReply)(sample) + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.d.ts b/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.d.ts new file mode 100644 index 0000000..7b32b64 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.d.ts @@ -0,0 +1,13 @@ +import { SelectedLabels, Labels, Filter } from '.'; +import { MGetOptions, MGetRawReply, MGetReply } from './MGET'; +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +export declare const IS_READ_ONLY = true; +interface MGetWithLabelsOptions extends MGetOptions { + SELECTED_LABELS?: SelectedLabels; +} +export declare function transformArguments(filter: Filter, options?: MGetWithLabelsOptions): RedisCommandArguments; +export interface MGetWithLabelsReply extends MGetReply { + labels: Labels; +} +export declare function transformReply(reply: MGetRawReply): Array; +export {}; diff --git a/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.js b/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.js new file mode 100644 index 0000000..fcda8f9 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MGET_WITHLABELS.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(filter, options) { + const args = (0, _1.pushWithLabelsArgument)(['TS.MGET'], options?.SELECTED_LABELS); + return (0, _1.pushFilterArgument)(args, filter); +} +exports.transformArguments = transformArguments; +; +function transformReply(reply) { + return reply.map(([key, labels, sample]) => ({ + key, + labels: (0, _1.transformLablesReply)(labels), + sample: (0, _1.transformSampleReply)(sample) + })); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/MRANGE.d.ts b/node_modules/@redis/time-series/dist/commands/MRANGE.d.ts new file mode 100644 index 0000000..874d1e5 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MRANGE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { MRangeOptions, Timestamp, Filter } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(fromTimestamp: Timestamp, toTimestamp: Timestamp, filters: Filter, options?: MRangeOptions): RedisCommandArguments; +export { transformMRangeReply as transformReply } from '.'; diff --git a/node_modules/@redis/time-series/dist/commands/MRANGE.js b/node_modules/@redis/time-series/dist/commands/MRANGE.js new file mode 100644 index 0000000..0c7cdeb --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MRANGE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _2.transformMRangeReply; } }); diff --git a/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.d.ts b/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.d.ts new file mode 100644 index 0000000..99c86e5 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Timestamp, MRangeWithLabelsOptions } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(fromTimestamp: Timestamp, toTimestamp: Timestamp, filters: string | Array, options?: MRangeWithLabelsOptions): RedisCommandArguments; +export { transformMRangeWithLabelsReply as transformReply } from '.'; diff --git a/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.js b/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.js new file mode 100644 index 0000000..8a70547 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MRANGE_WITHLABELS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeWithLabelsArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } }); diff --git a/node_modules/@redis/time-series/dist/commands/MREVRANGE.d.ts b/node_modules/@redis/time-series/dist/commands/MREVRANGE.d.ts new file mode 100644 index 0000000..874d1e5 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MREVRANGE.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { MRangeOptions, Timestamp, Filter } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(fromTimestamp: Timestamp, toTimestamp: Timestamp, filters: Filter, options?: MRangeOptions): RedisCommandArguments; +export { transformMRangeReply as transformReply } from '.'; diff --git a/node_modules/@redis/time-series/dist/commands/MREVRANGE.js b/node_modules/@redis/time-series/dist/commands/MREVRANGE.js new file mode 100644 index 0000000..f433633 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MREVRANGE.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _2.transformMRangeReply; } }); diff --git a/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.d.ts b/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.d.ts new file mode 100644 index 0000000..0cdbf08 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Timestamp, MRangeWithLabelsOptions, Filter } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(fromTimestamp: Timestamp, toTimestamp: Timestamp, filters: Filter, options?: MRangeWithLabelsOptions): RedisCommandArguments; +export { transformMRangeWithLabelsReply as transformReply } from '.'; diff --git a/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.js b/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.js new file mode 100644 index 0000000..81b04c0 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/MREVRANGE_WITHLABELS.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = require("."); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeWithLabelsArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = require("."); +Object.defineProperty(exports, "transformReply", { enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } }); diff --git a/node_modules/@redis/time-series/dist/commands/QUERYINDEX.d.ts b/node_modules/@redis/time-series/dist/commands/QUERYINDEX.d.ts new file mode 100644 index 0000000..10f6c1c --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/QUERYINDEX.d.ts @@ -0,0 +1,5 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { Filter } from '.'; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(filter: Filter): RedisCommandArguments; +export declare function transformReply(): Array; diff --git a/node_modules/@redis/time-series/dist/commands/QUERYINDEX.js b/node_modules/@redis/time-series/dist/commands/QUERYINDEX.js new file mode 100644 index 0000000..37ea026 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/QUERYINDEX.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.IS_READ_ONLY = true; +function transformArguments(filter) { + return (0, generic_transformers_1.pushVerdictArguments)(['TS.QUERYINDEX'], filter); +} +exports.transformArguments = transformArguments; diff --git a/node_modules/@redis/time-series/dist/commands/RANGE.d.ts b/node_modules/@redis/time-series/dist/commands/RANGE.d.ts new file mode 100644 index 0000000..07fa6f3 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/RANGE.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { RangeOptions, Timestamp, SampleRawReply, SampleReply } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, fromTimestamp: Timestamp, toTimestamp: Timestamp, options?: RangeOptions): RedisCommandArguments; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/time-series/dist/commands/RANGE.js b/node_modules/@redis/time-series/dist/commands/RANGE.js new file mode 100644 index 0000000..0136280 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/RANGE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fromTimestamp, toTimestamp, options) { + return (0, _1.pushRangeArguments)(['TS.RANGE', key], fromTimestamp, toTimestamp, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return (0, _1.transformRangeReply)(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/REVRANGE.d.ts b/node_modules/@redis/time-series/dist/commands/REVRANGE.d.ts new file mode 100644 index 0000000..07fa6f3 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/REVRANGE.d.ts @@ -0,0 +1,6 @@ +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +import { RangeOptions, Timestamp, SampleRawReply, SampleReply } from '.'; +export declare const FIRST_KEY_INDEX = 1; +export declare const IS_READ_ONLY = true; +export declare function transformArguments(key: string, fromTimestamp: Timestamp, toTimestamp: Timestamp, options?: RangeOptions): RedisCommandArguments; +export declare function transformReply(reply: Array): Array; diff --git a/node_modules/@redis/time-series/dist/commands/REVRANGE.js b/node_modules/@redis/time-series/dist/commands/REVRANGE.js new file mode 100644 index 0000000..e3abdac --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/REVRANGE.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = require("."); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fromTimestamp, toTimestamp, options) { + return (0, _1.pushRangeArguments)(['TS.REVRANGE', key], fromTimestamp, toTimestamp, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return (0, _1.transformRangeReply)(reply); +} +exports.transformReply = transformReply; diff --git a/node_modules/@redis/time-series/dist/commands/index.d.ts b/node_modules/@redis/time-series/dist/commands/index.d.ts new file mode 100644 index 0000000..0db3157 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/index.d.ts @@ -0,0 +1,193 @@ +import * as ADD from './ADD'; +import * as ALTER from './ALTER'; +import * as CREATE from './CREATE'; +import * as CREATERULE from './CREATERULE'; +import * as DECRBY from './DECRBY'; +import * as DEL from './DEL'; +import * as DELETERULE from './DELETERULE'; +import * as GET from './GET'; +import * as INCRBY from './INCRBY'; +import * as INFO_DEBUG from './INFO_DEBUG'; +import * as INFO from './INFO'; +import * as MADD from './MADD'; +import * as MGET from './MGET'; +import * as MGET_WITHLABELS from './MGET_WITHLABELS'; +import * as QUERYINDEX from './QUERYINDEX'; +import * as RANGE from './RANGE'; +import * as REVRANGE from './REVRANGE'; +import * as MRANGE from './MRANGE'; +import * as MRANGE_WITHLABELS from './MRANGE_WITHLABELS'; +import * as MREVRANGE from './MREVRANGE'; +import * as MREVRANGE_WITHLABELS from './MREVRANGE_WITHLABELS'; +import { RedisCommandArguments } from '@redis/client/dist/lib/commands'; +declare const _default: { + ADD: typeof ADD; + add: typeof ADD; + ALTER: typeof ALTER; + alter: typeof ALTER; + CREATE: typeof CREATE; + create: typeof CREATE; + CREATERULE: typeof CREATERULE; + createRule: typeof CREATERULE; + DECRBY: typeof DECRBY; + decrBy: typeof DECRBY; + DEL: typeof DEL; + del: typeof DEL; + DELETERULE: typeof DELETERULE; + deleteRule: typeof DELETERULE; + GET: typeof GET; + get: typeof GET; + INCRBY: typeof INCRBY; + incrBy: typeof INCRBY; + INFO_DEBUG: typeof INFO_DEBUG; + infoDebug: typeof INFO_DEBUG; + INFO: typeof INFO; + info: typeof INFO; + MADD: typeof MADD; + mAdd: typeof MADD; + MGET: typeof MGET; + mGet: typeof MGET; + MGET_WITHLABELS: typeof MGET_WITHLABELS; + mGetWithLabels: typeof MGET_WITHLABELS; + QUERYINDEX: typeof QUERYINDEX; + queryIndex: typeof QUERYINDEX; + RANGE: typeof RANGE; + range: typeof RANGE; + REVRANGE: typeof REVRANGE; + revRange: typeof REVRANGE; + MRANGE: typeof MRANGE; + mRange: typeof MRANGE; + MRANGE_WITHLABELS: typeof MRANGE_WITHLABELS; + mRangeWithLabels: typeof MRANGE_WITHLABELS; + MREVRANGE: typeof MREVRANGE; + mRevRange: typeof MREVRANGE; + MREVRANGE_WITHLABELS: typeof MREVRANGE_WITHLABELS; + mRevRangeWithLabels: typeof MREVRANGE_WITHLABELS; +}; +export default _default; +export declare enum TimeSeriesAggregationType { + AVG = "AVG", + AVERAGE = "AVG", + FIRST = "FIRST", + LAST = "LAST", + MIN = "MIN", + MINIMUM = "MIN", + MAX = "MAX", + MAXIMUM = "MAX", + SUM = "SUM", + RANGE = "RANGE", + COUNT = "COUNT", + STD_P = "STD.P", + STD_S = "STD.S", + VAR_P = "VAR.P", + VAR_S = "VAR.S", + TWA = "TWA" +} +export declare enum TimeSeriesDuplicatePolicies { + BLOCK = "BLOCK", + FIRST = "FIRST", + LAST = "LAST", + MIN = "MIN", + MAX = "MAX", + SUM = "SUM" +} +export declare enum TimeSeriesReducers { + AVG = "AVG", + SUM = "SUM", + MIN = "MIN", + MINIMUM = "MIN", + MAX = "MAX", + MAXIMUM = "MAX", + RANGE = "range", + COUNT = "COUNT", + STD_P = "STD.P", + STD_S = "STD.S", + VAR_P = "VAR.P", + VAR_S = "VAR.S" +} +export type Timestamp = number | Date | string; +export declare function transformTimestampArgument(timestamp: Timestamp): string; +export declare function pushIgnoreArgument(args: RedisCommandArguments, ignore?: ADD.TsIgnoreOptions): void; +export declare function pushRetentionArgument(args: RedisCommandArguments, retention?: number): RedisCommandArguments; +export declare enum TimeSeriesEncoding { + COMPRESSED = "COMPRESSED", + UNCOMPRESSED = "UNCOMPRESSED" +} +export declare function pushEncodingArgument(args: RedisCommandArguments, encoding?: TimeSeriesEncoding): RedisCommandArguments; +export declare function pushChunkSizeArgument(args: RedisCommandArguments, chunkSize?: number): RedisCommandArguments; +export declare function pushDuplicatePolicy(args: RedisCommandArguments, duplicatePolicy?: TimeSeriesDuplicatePolicies): RedisCommandArguments; +export type RawLabels = Array<[label: string, value: string]>; +export type Labels = { + [label: string]: string; +}; +export declare function transformLablesReply(reply: RawLabels): Labels; +export declare function pushLabelsArgument(args: RedisCommandArguments, labels?: Labels): RedisCommandArguments; +export interface IncrDecrOptions { + TIMESTAMP?: Timestamp; + RETENTION?: number; + UNCOMPRESSED?: boolean; + CHUNK_SIZE?: number; + LABELS?: Labels; +} +export declare function transformIncrDecrArguments(command: 'TS.INCRBY' | 'TS.DECRBY', key: string, value: number, options?: IncrDecrOptions): RedisCommandArguments; +export type SampleRawReply = [timestamp: number, value: string]; +export interface SampleReply { + timestamp: number; + value: number; +} +export declare function transformSampleReply(reply: SampleRawReply): SampleReply; +export declare enum TimeSeriesBucketTimestamp { + LOW = "-", + HIGH = "+", + MID = "~" +} +export interface RangeOptions { + LATEST?: boolean; + FILTER_BY_TS?: Array; + FILTER_BY_VALUE?: { + min: number; + max: number; + }; + COUNT?: number; + ALIGN?: Timestamp; + AGGREGATION?: { + type: TimeSeriesAggregationType; + timeBucket: Timestamp; + BUCKETTIMESTAMP?: TimeSeriesBucketTimestamp; + EMPTY?: boolean; + }; +} +export declare function pushRangeArguments(args: RedisCommandArguments, fromTimestamp: Timestamp, toTimestamp: Timestamp, options?: RangeOptions): RedisCommandArguments; +interface MRangeGroupBy { + label: string; + reducer: TimeSeriesReducers; +} +export declare function pushMRangeGroupByArguments(args: RedisCommandArguments, groupBy?: MRangeGroupBy): RedisCommandArguments; +export type Filter = string | Array; +export declare function pushFilterArgument(args: RedisCommandArguments, filter: string | Array): RedisCommandArguments; +export interface MRangeOptions extends RangeOptions { + GROUPBY?: MRangeGroupBy; +} +export declare function pushMRangeArguments(args: RedisCommandArguments, fromTimestamp: Timestamp, toTimestamp: Timestamp, filter: Filter, options?: MRangeOptions): RedisCommandArguments; +export type SelectedLabels = string | Array; +export declare function pushWithLabelsArgument(args: RedisCommandArguments, selectedLabels?: SelectedLabels): RedisCommandArguments; +export interface MRangeWithLabelsOptions extends MRangeOptions { + SELECTED_LABELS?: SelectedLabels; +} +export declare function pushMRangeWithLabelsArguments(args: RedisCommandArguments, fromTimestamp: Timestamp, toTimestamp: Timestamp, filter: Filter, options?: MRangeWithLabelsOptions): RedisCommandArguments; +export declare function transformRangeReply(reply: Array): Array; +type MRangeRawReply = Array<[ + key: string, + labels: RawLabels, + samples: Array +]>; +interface MRangeReplyItem { + key: string; + samples: Array; +} +export declare function transformMRangeReply(reply: MRangeRawReply): Array; +export interface MRangeWithLabelsReplyItem extends MRangeReplyItem { + labels: Labels; +} +export declare function transformMRangeWithLabelsReply(reply: MRangeRawReply): Array; +export declare function pushLatestArgument(args: RedisCommandArguments, latest?: boolean): RedisCommandArguments; diff --git a/node_modules/@redis/time-series/dist/commands/index.js b/node_modules/@redis/time-series/dist/commands/index.js new file mode 100644 index 0000000..0123582 --- /dev/null +++ b/node_modules/@redis/time-series/dist/commands/index.js @@ -0,0 +1,313 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.pushLatestArgument = exports.transformMRangeWithLabelsReply = exports.transformMRangeReply = exports.transformRangeReply = exports.pushMRangeWithLabelsArguments = exports.pushWithLabelsArgument = exports.pushMRangeArguments = exports.pushFilterArgument = exports.pushMRangeGroupByArguments = exports.pushRangeArguments = exports.TimeSeriesBucketTimestamp = exports.transformSampleReply = exports.transformIncrDecrArguments = exports.pushLabelsArgument = exports.transformLablesReply = exports.pushDuplicatePolicy = exports.pushChunkSizeArgument = exports.pushEncodingArgument = exports.TimeSeriesEncoding = exports.pushRetentionArgument = exports.pushIgnoreArgument = exports.transformTimestampArgument = exports.TimeSeriesReducers = exports.TimeSeriesDuplicatePolicies = exports.TimeSeriesAggregationType = void 0; +const ADD = require("./ADD"); +const ALTER = require("./ALTER"); +const CREATE = require("./CREATE"); +const CREATERULE = require("./CREATERULE"); +const DECRBY = require("./DECRBY"); +const DEL = require("./DEL"); +const DELETERULE = require("./DELETERULE"); +const GET = require("./GET"); +const INCRBY = require("./INCRBY"); +const INFO_DEBUG = require("./INFO_DEBUG"); +const INFO = require("./INFO"); +const MADD = require("./MADD"); +const MGET = require("./MGET"); +const MGET_WITHLABELS = require("./MGET_WITHLABELS"); +const QUERYINDEX = require("./QUERYINDEX"); +const RANGE = require("./RANGE"); +const REVRANGE = require("./REVRANGE"); +const MRANGE = require("./MRANGE"); +const MRANGE_WITHLABELS = require("./MRANGE_WITHLABELS"); +const MREVRANGE = require("./MREVRANGE"); +const MREVRANGE_WITHLABELS = require("./MREVRANGE_WITHLABELS"); +const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers"); +exports.default = { + ADD, + add: ADD, + ALTER, + alter: ALTER, + CREATE, + create: CREATE, + CREATERULE, + createRule: CREATERULE, + DECRBY, + decrBy: DECRBY, + DEL, + del: DEL, + DELETERULE, + deleteRule: DELETERULE, + GET, + get: GET, + INCRBY, + incrBy: INCRBY, + INFO_DEBUG, + infoDebug: INFO_DEBUG, + INFO, + info: INFO, + MADD, + mAdd: MADD, + MGET, + mGet: MGET, + MGET_WITHLABELS, + mGetWithLabels: MGET_WITHLABELS, + QUERYINDEX, + queryIndex: QUERYINDEX, + RANGE, + range: RANGE, + REVRANGE, + revRange: REVRANGE, + MRANGE, + mRange: MRANGE, + MRANGE_WITHLABELS, + mRangeWithLabels: MRANGE_WITHLABELS, + MREVRANGE, + mRevRange: MREVRANGE, + MREVRANGE_WITHLABELS, + mRevRangeWithLabels: MREVRANGE_WITHLABELS +}; +var TimeSeriesAggregationType; +(function (TimeSeriesAggregationType) { + TimeSeriesAggregationType["AVG"] = "AVG"; + // @deprecated + TimeSeriesAggregationType["AVERAGE"] = "AVG"; + TimeSeriesAggregationType["FIRST"] = "FIRST"; + TimeSeriesAggregationType["LAST"] = "LAST"; + TimeSeriesAggregationType["MIN"] = "MIN"; + // @deprecated + TimeSeriesAggregationType["MINIMUM"] = "MIN"; + TimeSeriesAggregationType["MAX"] = "MAX"; + // @deprecated + TimeSeriesAggregationType["MAXIMUM"] = "MAX"; + TimeSeriesAggregationType["SUM"] = "SUM"; + TimeSeriesAggregationType["RANGE"] = "RANGE"; + TimeSeriesAggregationType["COUNT"] = "COUNT"; + TimeSeriesAggregationType["STD_P"] = "STD.P"; + TimeSeriesAggregationType["STD_S"] = "STD.S"; + TimeSeriesAggregationType["VAR_P"] = "VAR.P"; + TimeSeriesAggregationType["VAR_S"] = "VAR.S"; + TimeSeriesAggregationType["TWA"] = "TWA"; +})(TimeSeriesAggregationType || (exports.TimeSeriesAggregationType = TimeSeriesAggregationType = {})); +var TimeSeriesDuplicatePolicies; +(function (TimeSeriesDuplicatePolicies) { + TimeSeriesDuplicatePolicies["BLOCK"] = "BLOCK"; + TimeSeriesDuplicatePolicies["FIRST"] = "FIRST"; + TimeSeriesDuplicatePolicies["LAST"] = "LAST"; + TimeSeriesDuplicatePolicies["MIN"] = "MIN"; + TimeSeriesDuplicatePolicies["MAX"] = "MAX"; + TimeSeriesDuplicatePolicies["SUM"] = "SUM"; +})(TimeSeriesDuplicatePolicies || (exports.TimeSeriesDuplicatePolicies = TimeSeriesDuplicatePolicies = {})); +var TimeSeriesReducers; +(function (TimeSeriesReducers) { + TimeSeriesReducers["AVG"] = "AVG"; + TimeSeriesReducers["SUM"] = "SUM"; + TimeSeriesReducers["MIN"] = "MIN"; + // @deprecated + TimeSeriesReducers["MINIMUM"] = "MIN"; + TimeSeriesReducers["MAX"] = "MAX"; + // @deprecated + TimeSeriesReducers["MAXIMUM"] = "MAX"; + TimeSeriesReducers["RANGE"] = "range"; + TimeSeriesReducers["COUNT"] = "COUNT"; + TimeSeriesReducers["STD_P"] = "STD.P"; + TimeSeriesReducers["STD_S"] = "STD.S"; + TimeSeriesReducers["VAR_P"] = "VAR.P"; + TimeSeriesReducers["VAR_S"] = "VAR.S"; +})(TimeSeriesReducers || (exports.TimeSeriesReducers = TimeSeriesReducers = {})); +function transformTimestampArgument(timestamp) { + if (typeof timestamp === 'string') + return timestamp; + return (typeof timestamp === 'number' ? + timestamp : + timestamp.getTime()).toString(); +} +exports.transformTimestampArgument = transformTimestampArgument; +function pushIgnoreArgument(args, ignore) { + if (ignore !== undefined) { + args.push('IGNORE', ignore.MAX_TIME_DIFF.toString(), ignore.MAX_VAL_DIFF.toString()); + } +} +exports.pushIgnoreArgument = pushIgnoreArgument; +function pushRetentionArgument(args, retention) { + if (retention !== undefined) { + args.push('RETENTION', retention.toString()); + } + return args; +} +exports.pushRetentionArgument = pushRetentionArgument; +var TimeSeriesEncoding; +(function (TimeSeriesEncoding) { + TimeSeriesEncoding["COMPRESSED"] = "COMPRESSED"; + TimeSeriesEncoding["UNCOMPRESSED"] = "UNCOMPRESSED"; +})(TimeSeriesEncoding || (exports.TimeSeriesEncoding = TimeSeriesEncoding = {})); +function pushEncodingArgument(args, encoding) { + if (encoding !== undefined) { + args.push('ENCODING', encoding); + } + return args; +} +exports.pushEncodingArgument = pushEncodingArgument; +function pushChunkSizeArgument(args, chunkSize) { + if (chunkSize !== undefined) { + args.push('CHUNK_SIZE', chunkSize.toString()); + } + return args; +} +exports.pushChunkSizeArgument = pushChunkSizeArgument; +function pushDuplicatePolicy(args, duplicatePolicy) { + if (duplicatePolicy !== undefined) { + args.push('DUPLICATE_POLICY', duplicatePolicy); + } + return args; +} +exports.pushDuplicatePolicy = pushDuplicatePolicy; +function transformLablesReply(reply) { + const labels = {}; + for (const [key, value] of reply) { + labels[key] = value; + } + return labels; +} +exports.transformLablesReply = transformLablesReply; +function pushLabelsArgument(args, labels) { + if (labels) { + args.push('LABELS'); + for (const [label, value] of Object.entries(labels)) { + args.push(label, value); + } + } + return args; +} +exports.pushLabelsArgument = pushLabelsArgument; +function transformIncrDecrArguments(command, key, value, options) { + const args = [ + command, + key, + value.toString() + ]; + if (options?.TIMESTAMP !== undefined && options?.TIMESTAMP !== null) { + args.push('TIMESTAMP', transformTimestampArgument(options.TIMESTAMP)); + } + pushRetentionArgument(args, options?.RETENTION); + if (options?.UNCOMPRESSED) { + args.push('UNCOMPRESSED'); + } + pushChunkSizeArgument(args, options?.CHUNK_SIZE); + pushLabelsArgument(args, options?.LABELS); + return args; +} +exports.transformIncrDecrArguments = transformIncrDecrArguments; +function transformSampleReply(reply) { + return { + timestamp: reply[0], + value: Number(reply[1]) + }; +} +exports.transformSampleReply = transformSampleReply; +var TimeSeriesBucketTimestamp; +(function (TimeSeriesBucketTimestamp) { + TimeSeriesBucketTimestamp["LOW"] = "-"; + TimeSeriesBucketTimestamp["HIGH"] = "+"; + TimeSeriesBucketTimestamp["MID"] = "~"; +})(TimeSeriesBucketTimestamp || (exports.TimeSeriesBucketTimestamp = TimeSeriesBucketTimestamp = {})); +function pushRangeArguments(args, fromTimestamp, toTimestamp, options) { + args.push(transformTimestampArgument(fromTimestamp), transformTimestampArgument(toTimestamp)); + pushLatestArgument(args, options?.LATEST); + if (options?.FILTER_BY_TS) { + args.push('FILTER_BY_TS'); + for (const ts of options.FILTER_BY_TS) { + args.push(transformTimestampArgument(ts)); + } + } + if (options?.FILTER_BY_VALUE) { + args.push('FILTER_BY_VALUE', options.FILTER_BY_VALUE.min.toString(), options.FILTER_BY_VALUE.max.toString()); + } + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (options?.ALIGN) { + args.push('ALIGN', transformTimestampArgument(options.ALIGN)); + } + if (options?.AGGREGATION) { + args.push('AGGREGATION', options.AGGREGATION.type, transformTimestampArgument(options.AGGREGATION.timeBucket)); + if (options.AGGREGATION.BUCKETTIMESTAMP) { + args.push('BUCKETTIMESTAMP', options.AGGREGATION.BUCKETTIMESTAMP); + } + if (options.AGGREGATION.EMPTY) { + args.push('EMPTY'); + } + } + return args; +} +exports.pushRangeArguments = pushRangeArguments; +function pushMRangeGroupByArguments(args, groupBy) { + if (groupBy) { + args.push('GROUPBY', groupBy.label, 'REDUCE', groupBy.reducer); + } + return args; +} +exports.pushMRangeGroupByArguments = pushMRangeGroupByArguments; +function pushFilterArgument(args, filter) { + args.push('FILTER'); + return (0, generic_transformers_1.pushVerdictArguments)(args, filter); +} +exports.pushFilterArgument = pushFilterArgument; +function pushMRangeArguments(args, fromTimestamp, toTimestamp, filter, options) { + args = pushRangeArguments(args, fromTimestamp, toTimestamp, options); + args = pushFilterArgument(args, filter); + return pushMRangeGroupByArguments(args, options?.GROUPBY); +} +exports.pushMRangeArguments = pushMRangeArguments; +function pushWithLabelsArgument(args, selectedLabels) { + if (!selectedLabels) { + args.push('WITHLABELS'); + } + else { + args.push('SELECTED_LABELS'); + args = (0, generic_transformers_1.pushVerdictArguments)(args, selectedLabels); + } + return args; +} +exports.pushWithLabelsArgument = pushWithLabelsArgument; +function pushMRangeWithLabelsArguments(args, fromTimestamp, toTimestamp, filter, options) { + args = pushRangeArguments(args, fromTimestamp, toTimestamp, options); + args = pushWithLabelsArgument(args, options?.SELECTED_LABELS); + args = pushFilterArgument(args, filter); + return pushMRangeGroupByArguments(args, options?.GROUPBY); +} +exports.pushMRangeWithLabelsArguments = pushMRangeWithLabelsArguments; +function transformRangeReply(reply) { + return reply.map(transformSampleReply); +} +exports.transformRangeReply = transformRangeReply; +function transformMRangeReply(reply) { + const args = []; + for (const [key, _, sample] of reply) { + args.push({ + key, + samples: sample.map(transformSampleReply) + }); + } + return args; +} +exports.transformMRangeReply = transformMRangeReply; +function transformMRangeWithLabelsReply(reply) { + const args = []; + for (const [key, labels, samples] of reply) { + args.push({ + key, + labels: transformLablesReply(labels), + samples: samples.map(transformSampleReply) + }); + } + return args; +} +exports.transformMRangeWithLabelsReply = transformMRangeWithLabelsReply; +function pushLatestArgument(args, latest) { + if (latest) { + args.push('LATEST'); + } + return args; +} +exports.pushLatestArgument = pushLatestArgument; diff --git a/node_modules/@redis/time-series/dist/index.d.ts b/node_modules/@redis/time-series/dist/index.d.ts new file mode 100644 index 0000000..308850a --- /dev/null +++ b/node_modules/@redis/time-series/dist/index.d.ts @@ -0,0 +1,2 @@ +export { default } from './commands'; +export { TimeSeriesDuplicatePolicies, TimeSeriesEncoding, TimeSeriesAggregationType, TimeSeriesReducers, TimeSeriesBucketTimestamp } from './commands'; diff --git a/node_modules/@redis/time-series/dist/index.js b/node_modules/@redis/time-series/dist/index.js new file mode 100644 index 0000000..363237e --- /dev/null +++ b/node_modules/@redis/time-series/dist/index.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TimeSeriesBucketTimestamp = exports.TimeSeriesReducers = exports.TimeSeriesAggregationType = exports.TimeSeriesEncoding = exports.TimeSeriesDuplicatePolicies = exports.default = void 0; +var commands_1 = require("./commands"); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return commands_1.default; } }); +var commands_2 = require("./commands"); +Object.defineProperty(exports, "TimeSeriesDuplicatePolicies", { enumerable: true, get: function () { return commands_2.TimeSeriesDuplicatePolicies; } }); +Object.defineProperty(exports, "TimeSeriesEncoding", { enumerable: true, get: function () { return commands_2.TimeSeriesEncoding; } }); +Object.defineProperty(exports, "TimeSeriesAggregationType", { enumerable: true, get: function () { return commands_2.TimeSeriesAggregationType; } }); +Object.defineProperty(exports, "TimeSeriesReducers", { enumerable: true, get: function () { return commands_2.TimeSeriesReducers; } }); +Object.defineProperty(exports, "TimeSeriesBucketTimestamp", { enumerable: true, get: function () { return commands_2.TimeSeriesBucketTimestamp; } }); diff --git a/node_modules/@redis/time-series/package.json b/node_modules/@redis/time-series/package.json new file mode 100644 index 0000000..65ee1e9 --- /dev/null +++ b/node_modules/@redis/time-series/package.json @@ -0,0 +1,41 @@ +{ + "name": "@redis/time-series", + "version": "1.1.0", + "license": "MIT", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "test": "nyc -r text-summary -r lcov mocha -r source-map-support/register -r ts-node/register './lib/**/*.spec.ts'", + "build": "tsc", + "documentation": "typedoc" + }, + "peerDependencies": { + "@redis/client": "^1.0.0" + }, + "devDependencies": { + "@istanbuljs/nyc-config-typescript": "^1.0.2", + "@redis/test-utils": "*", + "@types/node": "^20.6.2", + "nyc": "^15.1.0", + "release-it": "^16.1.5", + "source-map-support": "^0.5.21", + "ts-node": "^10.9.1", + "typedoc": "^0.25.1", + "typescript": "^5.2.2" + }, + "repository": { + "type": "git", + "url": "git://github.com/redis/node-redis.git" + }, + "bugs": { + "url": "https://github.com/redis/node-redis/issues" + }, + "homepage": "https://github.com/redis/node-redis/tree/master/packages/time-series", + "keywords": [ + "redis", + "RedisTimeSeries" + ] +} diff --git a/node_modules/accepts/HISTORY.md b/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000..cb5990c --- /dev/null +++ b/node_modules/accepts/HISTORY.md @@ -0,0 +1,243 @@ +1.3.8 / 2022-02-02 +================== + + * deps: mime-types@~2.1.34 + - deps: mime-db@~1.51.0 + * deps: negotiator@0.6.3 + +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/node_modules/accepts/LICENSE b/node_modules/accepts/LICENSE new file mode 100644 index 0000000..0616607 --- /dev/null +++ b/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/accepts/README.md b/node_modules/accepts/README.md new file mode 100644 index 0000000..82680c5 --- /dev/null +++ b/node_modules/accepts/README.md @@ -0,0 +1,140 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[github-actions-ci-image]: https://badgen.net/github/checks/jshttp/accepts/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/accepts/actions/workflows/ci.yml +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts diff --git a/node_modules/accepts/index.js b/node_modules/accepts/index.js new file mode 100644 index 0000000..e9b2f63 --- /dev/null +++ b/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/node_modules/accepts/package.json b/node_modules/accepts/package.json new file mode 100644 index 0000000..0f2d15d --- /dev/null +++ b/node_modules/accepts/package.json @@ -0,0 +1,47 @@ +{ + "name": "accepts", + "description": "Higher-level content negotiation", + "version": "1.3.8", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/accepts", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "4.3.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ] +} diff --git a/node_modules/array-flatten/LICENSE b/node_modules/array-flatten/LICENSE new file mode 100644 index 0000000..983fbe8 --- /dev/null +++ b/node_modules/array-flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/array-flatten/README.md b/node_modules/array-flatten/README.md new file mode 100644 index 0000000..91fa5b6 --- /dev/null +++ b/node_modules/array-flatten/README.md @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```javascript +var flatten = require('array-flatten') + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) +//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] + +(function () { + flatten(arguments) //=> [1, 2, 3] +})(1, [2, 3]) +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/node_modules/array-flatten/array-flatten.js b/node_modules/array-flatten/array-flatten.js new file mode 100644 index 0000000..089117b --- /dev/null +++ b/node_modules/array-flatten/array-flatten.js @@ -0,0 +1,64 @@ +'use strict' + +/** + * Expose `arrayFlatten`. + */ +module.exports = arrayFlatten + +/** + * Recursive flatten function with depth. + * + * @param {Array} array + * @param {Array} result + * @param {Number} depth + * @return {Array} + */ +function flattenWithDepth (array, result, depth) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (depth > 0 && Array.isArray(value)) { + flattenWithDepth(value, result, depth - 1) + } else { + result.push(value) + } + } + + return result +} + +/** + * Recursive flatten function. Omitting depth is slightly faster. + * + * @param {Array} array + * @param {Array} result + * @return {Array} + */ +function flattenForever (array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (Array.isArray(value)) { + flattenForever(value, result) + } else { + result.push(value) + } + } + + return result +} + +/** + * Flatten an array, with the ability to define a depth. + * + * @param {Array} array + * @param {Number} depth + * @return {Array} + */ +function arrayFlatten (array, depth) { + if (depth == null) { + return flattenForever(array, []) + } + + return flattenWithDepth(array, [], depth) +} diff --git a/node_modules/array-flatten/package.json b/node_modules/array-flatten/package.json new file mode 100644 index 0000000..1a24e2a --- /dev/null +++ b/node_modules/array-flatten/package.json @@ -0,0 +1,39 @@ +{ + "name": "array-flatten", + "version": "1.1.1", + "description": "Flatten an array of nested arrays into a single flat array", + "main": "array-flatten.js", + "files": [ + "array-flatten.js", + "LICENSE" + ], + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "homepage": "https://github.com/blakeembrey/array-flatten", + "devDependencies": { + "istanbul": "^0.3.13", + "mocha": "^2.2.4", + "pre-commit": "^1.0.7", + "standard": "^3.7.3" + } +} diff --git a/node_modules/body-parser/HISTORY.md b/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000..81d23e0 --- /dev/null +++ b/node_modules/body-parser/HISTORY.md @@ -0,0 +1,672 @@ +1.20.3 / 2024-09-10 +=================== + + * deps: qs@6.13.0 + * add `depth` option to customize the depth level in the parser + * IMPORTANT: The default `depth` level for parsing URL-encoded data is now `32` (previously was `Infinity`) + +1.20.2 / 2023-02-21 +=================== + + * Fix strict json error message on Node.js 19+ + * deps: content-type@~1.0.5 + - perf: skip value escaping when unnecessary + * deps: raw-body@2.5.2 + +1.20.1 / 2022-10-06 +=================== + + * deps: qs@6.11.0 + * perf: remove unnecessary object clone + +1.20.0 / 2022-04-02 +=================== + + * Fix error message for json parse whitespace in `strict` + * Fix internal error when inflated body exceeds limit + * Prevent loss of async hooks context + * Prevent hanging when request already read + * deps: depd@2.0.0 + - Replace internal `eval` usage with `Function` constructor + - Use instance methods on `process` to check for listeners + * deps: http-errors@2.0.0 + - deps: depd@2.0.0 + - deps: statuses@2.0.1 + * deps: on-finished@2.4.1 + * deps: qs@6.10.3 + * deps: raw-body@2.5.1 + - deps: http-errors@2.0.0 + +1.19.2 / 2022-02-15 +=================== + + * deps: bytes@3.1.2 + * deps: qs@6.9.7 + * Fix handling of `__proto__` keys + * deps: raw-body@2.4.3 + - deps: bytes@3.1.2 + +1.19.1 / 2021-12-10 +=================== + + * deps: bytes@3.1.1 + * deps: http-errors@1.8.1 + - deps: inherits@2.0.4 + - deps: toidentifier@1.0.1 + - deps: setprototypeof@1.2.0 + * deps: qs@6.9.6 + * deps: raw-body@2.4.2 + - deps: bytes@3.1.1 + - deps: http-errors@1.8.1 + * deps: safe-buffer@5.2.1 + * deps: type-is@~1.6.18 + +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/node_modules/body-parser/LICENSE b/node_modules/body-parser/LICENSE new file mode 100644 index 0000000..386b7b6 --- /dev/null +++ b/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/body-parser/README.md b/node_modules/body-parser/README.md new file mode 100644 index 0000000..f6661b7 --- /dev/null +++ b/node_modules/body-parser/README.md @@ -0,0 +1,476 @@ +# body-parser + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] +[![OpenSSF Scorecard Badge][ossf-scorecard-badge]][ossf-scorecard-visualizer] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +#### depth + +The `depth` option is used to configure the maximum depth of the `qs` library when `extended` is `true`. This allows you to limit the amount of keys that are parsed and can be useful to prevent certain types of abuse. Defaults to `32`. It is recommended to keep this value as low as possible. + +## Errors + +The middlewares provided by this module create errors using the +[`http-errors` module](https://www.npmjs.com/package/http-errors). The errors +will typically have a `status`/`statusCode` property that contains the suggested +HTTP response code, an `expose` property to determine if the `message` property +should be displayed to the client, a `type` property to determine the type of +error without matching against the `message`, and a `body` property containing +the read body, if available. + +The following are the common errors created, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### entity parse failed + +This error will occur when the request contained an entity that could not be +parsed by the middleware. The `status` property is set to `400`, the `type` +property is set to `'entity.parse.failed'`, and the `body` property is set to +the entity value that failed parsing. + +### entity verify failed + +This error will occur when the request contained an entity that could not be +failed verification by the defined `verify` option. The `status` property is +set to `403`, the `type` property is set to `'entity.verify.failed'`, and the +`body` property is set to the entity value that failed verification. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### stream is not readable + +This error will occur when the request is no longer readable when this middleware +attempts to read it. This typically means something other than a middleware from +this module read the request body already and the middleware was also configured to +read the same request. The `status` property is set to `500` and the `type` +property is set to `'stream.not.readable'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +### The input exceeded the depth + +This error occurs when using `bodyParser.urlencoded` with the `extended` property set to `true` and the input exceeds the configured `depth` option. The `status` property is set to `400`. It is recommended to review the `depth` option and evaluate if it requires a higher value. When the `depth` option is set to `32` (default value), the error will not be thrown. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/expressjs/body-parser/master?label=ci +[ci-url]: https://github.com/expressjs/body-parser/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/expressjs/body-parser/master +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[node-version-image]: https://badgen.net/npm/node/body-parser +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/body-parser +[npm-url]: https://npmjs.org/package/body-parser +[npm-version-image]: https://badgen.net/npm/v/body-parser +[ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file diff --git a/node_modules/body-parser/SECURITY.md b/node_modules/body-parser/SECURITY.md new file mode 100644 index 0000000..9694d42 --- /dev/null +++ b/node_modules/body-parser/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The Express team and community take all security bugs seriously. Thank you +for improving the security of Express. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `body-parser`. This +information can be found in the npm registry using the command +`npm owner ls body-parser`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/expressjs/body-parser/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/body-parser/index.js b/node_modules/body-parser/index.js new file mode 100644 index 0000000..bb24d73 --- /dev/null +++ b/node_modules/body-parser/index.js @@ -0,0 +1,156 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + // use default type for parsers + var opts = Object.create(options || null, { + type: { + configurable: true, + enumerable: true, + value: undefined, + writable: true + } + }) + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/node_modules/body-parser/lib/read.js b/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000..fce6283 --- /dev/null +++ b/node_modules/body-parser/lib/read.js @@ -0,0 +1,205 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var destroy = require('destroy') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var unpipe = require('unpipe') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // unpipe from stream and destroy + if (stream !== req) { + unpipe(req) + destroy(stream, true) + } + + // read off entire request + dump(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} + +/** + * Dump the contents of a request. + * + * @param {object} req + * @param {function} callback + * @api private + */ + +function dump (req, callback) { + if (onFinished.isFinished(req)) { + callback(null) + } else { + onFinished(req, callback) + req.resume() + } +} diff --git a/node_modules/body-parser/lib/types/json.js b/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000..59f3f7e --- /dev/null +++ b/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,247 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/ // eslint-disable-line no-control-regex + +var JSON_SYNTAX_CHAR = '#' +var JSON_SYNTAX_REGEXP = /#+/g + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.slice(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = '' + + if (index !== -1) { + partial = str.substring(0, index) + JSON_SYNTAX_CHAR + + for (var i = index + 1; i < str.length; i++) { + partial += JSON_SYNTAX_CHAR + } + } + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace(JSON_SYNTAX_REGEXP, function (placeholder) { + return str.substring(index, index + placeholder.length) + }), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + var match = FIRST_CHAR_REGEXP.exec(str) + + return match + ? match[1] + : undefined +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/raw.js b/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000..f5d1b67 --- /dev/null +++ b/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/text.js b/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000..083a009 --- /dev/null +++ b/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/lib/types/urlencoded.js b/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000..2bd4485 --- /dev/null +++ b/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,307 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + var depth = typeof opts.depth !== 'number' + ? Number(opts.depth || 32) + : opts.depth + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify, + depth: depth + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + + var depth = typeof options.depth !== 'number' + ? Number(options.depth || 32) + : options.depth + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isNaN(depth) || depth < 0) { + throw new TypeError('option depth must be a zero or a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + try { + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: depth, + strictDepth: true, + parameterLimit: parameterLimit + }) + } catch (err) { + if (err instanceof RangeError) { + throw createError(400, 'The input exceeded the depth', { + type: 'querystring.parse.rangeError' + }) + } else { + throw err + } + } + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/node_modules/body-parser/package.json b/node_modules/body-parser/package.json new file mode 100644 index 0000000..3c9926f --- /dev/null +++ b/node_modules/body-parser/package.json @@ -0,0 +1,56 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "1.20.3", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "devDependencies": { + "eslint": "8.34.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-markdown": "3.0.0", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "methods": "1.1.2", + "mocha": "10.2.0", + "nyc": "15.1.0", + "safe-buffer": "5.2.1", + "supertest": "6.3.3" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "SECURITY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/bytes/History.md b/node_modules/bytes/History.md new file mode 100644 index 0000000..d60ce0e --- /dev/null +++ b/node_modules/bytes/History.md @@ -0,0 +1,97 @@ +3.1.2 / 2022-01-27 +================== + + * Fix return value for un-parsable strings + +3.1.1 / 2021-11-15 +================== + + * Fix "thousandsSeparator" incorrecting formatting fractional part + +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git a/node_modules/bytes/LICENSE b/node_modules/bytes/LICENSE new file mode 100644 index 0000000..63e95a9 --- /dev/null +++ b/node_modules/bytes/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/bytes/Readme.md b/node_modules/bytes/Readme.md new file mode 100644 index 0000000..5790e23 --- /dev/null +++ b/node_modules/bytes/Readme.md @@ -0,0 +1,152 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][ci-image]][ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes(number|string value, [options]): number|string|null + +Default export function. Delegates to either `bytes.format` or `bytes.parse` based on the type of `value`. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number`|`string` | Number value to format or string value to parse | +| options | `Object` | Conversion options for `format` | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`number`|`null` | Return null upon error. Numeric value in bytes, or string value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes('1KB'); +// output: 1024 +``` + +#### bytes.format(number value, [options]): string|null + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `'.'`... Default value to `''`. | +| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes.format(1024); +// output: '1KB' + +bytes.format(1000); +// output: '1000B' + +bytes.format(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes.format(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes.format(1024, {unitSeparator: ' '}); +// output: '1 KB' +``` + +#### bytes.parse(string|number value): number|null + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`|`number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes.parse('1KB'); +// output: 1024 + +bytes.parse('1024'); +// output: 1024 + +bytes.parse(1024); +// output: 1024 +``` + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/visionmedia/bytes.js/master?label=ci +[ci-url]: https://github.com/visionmedia/bytes.js/actions?query=workflow%3Aci +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/v/bytes +[npm-url]: https://npmjs.org/package/bytes diff --git a/node_modules/bytes/index.js b/node_modules/bytes/index.js new file mode 100644 index 0000000..6f2d0f8 --- /dev/null +++ b/node_modules/bytes/index.js @@ -0,0 +1,170 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} diff --git a/node_modules/bytes/package.json b/node_modules/bytes/package.json new file mode 100644 index 0000000..f2b6a8b --- /dev/null +++ b/node_modules/bytes/package.json @@ -0,0 +1,42 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.2", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "7.32.0", + "eslint-plugin-markdown": "2.2.1", + "mocha": "9.2.0", + "nyc": "15.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc new file mode 100644 index 0000000..dfa9a6c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-magic-numbers": 0, + }, +} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml new file mode 100644 index 0000000..0011e9d --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bind-apply-helpers +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md new file mode 100644 index 0000000..cf630e8 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 + +### Commits + +- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) +- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) +- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) + +## v1.0.0 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) +- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) +- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) +- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md new file mode 100644 index 0000000..8fc0dae --- /dev/null +++ b/node_modules/call-bind-apply-helpers/README.md @@ -0,0 +1,62 @@ +# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Helper functions around Function call/apply/bind, for use in `call-bind`. + +The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. +Please use `call-bind` unless you have a very good reason not to. + +## Getting started + +```sh +npm install --save call-bind-apply-helpers +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBindBasic = require('call-bind-apply-helpers'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBindBasic([f, 1]); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(2, 3); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind-apply-helpers +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg +[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers +[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers +[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts new file mode 100644 index 0000000..b87286a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.d.ts @@ -0,0 +1 @@ +export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts new file mode 100644 index 0000000..d176c1a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.d.ts @@ -0,0 +1,19 @@ +import actualApply from './actualApply'; + +type TupleSplitHead = T['length'] extends N + ? T + : T extends [...infer R, any] + ? TupleSplitHead + : never + +type TupleSplitTail = O['length'] extends N + ? T + : T extends [infer F, ...infer R] + ? TupleSplitTail<[...R], N, [...O, F]> + : never + +type TupleSplit = [TupleSplitHead, TupleSplitTail] + +declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; + +export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js new file mode 100644 index 0000000..d2b7723 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/applyBind.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); +var $apply = require('./functionApply'); +var actualApply = require('./actualApply'); + +/** @type {import('./applyBind')} */ +module.exports = function applyBind() { + return actualApply(bind, $apply, arguments); +}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts new file mode 100644 index 0000000..1f6e11b --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.d.ts @@ -0,0 +1 @@ +export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts new file mode 100644 index 0000000..15e93df --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.d.ts @@ -0,0 +1 @@ +export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts new file mode 100644 index 0000000..a7ae2c5 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.d.ts @@ -0,0 +1,46 @@ +type RemoveFromTuple< + Tuple extends unknown[], + RemoveCount extends number, + Index extends 1[] = [] +> = Index["length"] extends RemoveCount + ? Tuple + : Tuple extends [first: unknown, ...infer Rest] + ? RemoveFromTuple + : Tuple; + +type ConcatTuples< + Prefix extends unknown[], + Suffix extends unknown[] +> = [...Prefix, ...Suffix]; + +type ReplaceThis = T extends (this: infer OldThis, ...args: infer A) => infer R + ? (this: NewThis, ...args: A) => R + : never; + +type BindFunction< + TThis, + T extends (this: TThis, ...args: any[]) => any, // Allow specific types to propagate + TBoundArgs extends unknown[], + ReceiverBound extends boolean +> = ReceiverBound extends true + ? (...args: RemoveFromTuple, TBoundArgs["length"] & number>) => ReturnType> + : (...args: ConcatTuples<[TThis], RemoveFromTuple, TBoundArgs["length"] & number>>) => ReturnType; + +declare function callBind< + TThis, + T extends (this: TThis, ...args: any[]) => any, + TBoundArgs extends Partial> +>( + args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] +): BindFunction; + +declare function callBind< + TThis, + T extends (this: TThis, ...args: any[]) => any, + TBoundArgs extends Partial> +>( + args: [fn: T, ...boundArgs: TBoundArgs] +): BindFunction; + +export as namespace callBind; +export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..8b6b994 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {import('.')} */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..7398be7 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,85 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.1", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts new file mode 100644 index 0000000..6b2ae76 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.d.ts @@ -0,0 +1,3 @@ +declare const reflectApply: false | typeof Reflect.apply; + +export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js new file mode 100644 index 0000000..8acc08a --- /dev/null +++ b/node_modules/call-bind-apply-helpers/test/index.js @@ -0,0 +1,63 @@ +'use strict'; + +var callBind = require('../'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +test('callBindBasic', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + // @ts-expect-error + function () { callBind([nonFunction]); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + /** @type {(this: T, a: number, b: number) => [T | undefined, number, number]} */ + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + + /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ + var bound = callBind([func]); + /** type {((a: number, b: number) => [sentinel, typeof a, typeof b])} */ + var boundR = callBind([func, sentinel]); + /** type {((b: number) => [sentinel, number, typeof b])} */ + var boundArg = callBind([func, sentinel, 1]); + + // @ts-expect-error + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); + + // @ts-expect-error + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + // @ts-expect-error + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); + // @ts-expect-error + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + // @ts-expect-error + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + + // @ts-expect-error + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + // @ts-expect-error + t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + // @ts-expect-error + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + // @ts-expect-error + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.end(); +}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json new file mode 100644 index 0000000..aef9993 --- /dev/null +++ b/node_modules/call-bind-apply-helpers/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} \ No newline at end of file diff --git a/node_modules/call-bound/.eslintrc b/node_modules/call-bound/.eslintrc new file mode 100644 index 0000000..2612ed8 --- /dev/null +++ b/node_modules/call-bound/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/call-bound/.github/FUNDING.yml b/node_modules/call-bound/.github/FUNDING.yml new file mode 100644 index 0000000..2a2a135 --- /dev/null +++ b/node_modules/call-bound/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bound +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bound/.nycrc b/node_modules/call-bound/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/call-bound/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/call-bound/CHANGELOG.md b/node_modules/call-bound/CHANGELOG.md new file mode 100644 index 0000000..25fa7a5 --- /dev/null +++ b/node_modules/call-bound/CHANGELOG.md @@ -0,0 +1,34 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.3](https://github.com/ljharb/call-bound/compare/v1.0.2...v1.0.3) - 2024-12-15 + +### Commits + +- [Refactor] use `call-bind-apply-helpers` instead of `call-bind` [`5e0b134`](https://github.com/ljharb/call-bound/commit/5e0b13496df14fb7d05dae9412f088da8d3f75be) +- [Deps] update `get-intrinsic` [`41fc967`](https://github.com/ljharb/call-bound/commit/41fc96732a22c7b7e8f381f93ccc54bb6293be2e) +- [readme] fix example [`79a0137`](https://github.com/ljharb/call-bound/commit/79a0137723f7c6d09c9c05452bbf8d5efb5d6e49) +- [meta] add `sideEffects` flag [`08b07be`](https://github.com/ljharb/call-bound/commit/08b07be7f1c03f67dc6f3cdaf0906259771859f7) + +## [v1.0.2](https://github.com/ljharb/call-bound/compare/v1.0.1...v1.0.2) - 2024-12-10 + +### Commits + +- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `gopd` [`e6a5ffe`](https://github.com/ljharb/call-bound/commit/e6a5ffe849368fe4f74dfd6cdeca1b9baa39e8d5) +- [Deps] update `call-bind`, `get-intrinsic` [`2aeb5b5`](https://github.com/ljharb/call-bound/commit/2aeb5b521dc2b2683d1345c753ea1161de2d1c14) +- [types] improve return type [`1a0c9fe`](https://github.com/ljharb/call-bound/commit/1a0c9fe3114471e7ca1f57d104e2efe713bb4871) + +## v1.0.1 - 2024-12-05 + +### Commits + +- Initial implementation, tests, readme, types [`6d94121`](https://github.com/ljharb/call-bound/commit/6d94121a9243602e506334069f7a03189fe3363d) +- Initial commit [`0eae867`](https://github.com/ljharb/call-bound/commit/0eae867334ea025c33e6e91cdecfc9df96680cf9) +- npm init [`71b2479`](https://github.com/ljharb/call-bound/commit/71b2479c6723e0b7d91a6b663613067e98b7b275) +- Only apps should have lockfiles [`c3754a9`](https://github.com/ljharb/call-bound/commit/c3754a949b7f9132b47e2d18c1729889736741eb) +- [actions] skip `npm ls` in node < 10 [`74275a5`](https://github.com/ljharb/call-bound/commit/74275a5186b8caf6309b6b97472bdcb0df4683a8) +- [Dev Deps] add missing peer dep [`1354de8`](https://github.com/ljharb/call-bound/commit/1354de8679413e4ae9c523d85f76fa7a5e032d97) diff --git a/node_modules/call-bound/LICENSE b/node_modules/call-bound/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/call-bound/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/call-bound/README.md b/node_modules/call-bound/README.md new file mode 100644 index 0000000..a44e43e --- /dev/null +++ b/node_modules/call-bound/README.md @@ -0,0 +1,53 @@ +# call-bound [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`. + +## Getting started + +```sh +npm install --save call-bound +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBound = require('call-bound'); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; +delete Array.prototype.slice; + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bound +[npm-version-svg]: https://versionbadg.es/ljharb/call-bound.svg +[deps-svg]: https://david-dm.org/ljharb/call-bound.svg +[deps-url]: https://david-dm.org/ljharb/call-bound +[dev-deps-svg]: https://david-dm.org/ljharb/call-bound/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bound#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bound.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bound.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bound.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bound +[codecov-image]: https://codecov.io/gh/ljharb/call-bound/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bound/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bound +[actions-url]: https://github.com/ljharb/call-bound/actions diff --git a/node_modules/call-bound/index.d.ts b/node_modules/call-bound/index.d.ts new file mode 100644 index 0000000..e3d772c --- /dev/null +++ b/node_modules/call-bound/index.d.ts @@ -0,0 +1,13 @@ +import callBind from 'call-bind-apply-helpers'; + +declare function callBoundIntrinsic( + name: string, + allowMissing?: false +): ReturnType; + +declare function callBoundIntrinsic( + name: string, + allowMissing: true +): undefined | ReturnType; + +export = callBoundIntrinsic; \ No newline at end of file diff --git a/node_modules/call-bound/index.js b/node_modules/call-bound/index.js new file mode 100644 index 0000000..3bb4012 --- /dev/null +++ b/node_modules/call-bound/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + // eslint-disable-next-line no-extra-parens + var intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic([intrinsic]); + } + return intrinsic; +}; diff --git a/node_modules/call-bound/package.json b/node_modules/call-bound/package.json new file mode 100644 index 0000000..2893ed1 --- /dev/null +++ b/node_modules/call-bound/package.json @@ -0,0 +1,99 @@ +{ + "name": "call-bound", + "version": "1.0.3", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/call-bound/test/index.js b/node_modules/call-bound/test/index.js new file mode 100644 index 0000000..36f5f0b --- /dev/null +++ b/node_modules/call-bound/test/index.js @@ -0,0 +1,54 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../'); + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + // prototype function + t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/call-bound/tsconfig.json b/node_modules/call-bound/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/call-bound/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/cluster-key-slot/.eslintrc b/node_modules/cluster-key-slot/.eslintrc new file mode 100644 index 0000000..3ee8296 --- /dev/null +++ b/node_modules/cluster-key-slot/.eslintrc @@ -0,0 +1,16 @@ +{ + "extends": "airbnb-base/legacy", + "parserOptions":{ + "ecmaFeatures": { + "experimentalObjectRestSpread": true + } + }, + "rules": { + "max-len": 0, + "no-plusplus": 0, + "no-bitwise": 0, + "no-param-reassign": 0, + "no-undef": 0 + }, + "globals": {} +} diff --git a/node_modules/cluster-key-slot/LICENSE b/node_modules/cluster-key-slot/LICENSE new file mode 100644 index 0000000..fd22a2d --- /dev/null +++ b/node_modules/cluster-key-slot/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2018 Mike Diarmid (Salakar) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this library except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/node_modules/cluster-key-slot/README.md b/node_modules/cluster-key-slot/README.md new file mode 100644 index 0000000..440f7b1 --- /dev/null +++ b/node_modules/cluster-key-slot/README.md @@ -0,0 +1,61 @@ +[![Coverage Status](https://coveralls.io/repos/github/Salakar/cluster-key-slot/badge.svg?branch=master)](https://coveralls.io/github/Salakar/cluster-key-slot?branch=master) +![Downloads](https://img.shields.io/npm/dt/cluster-key-slot.svg) +[![npm version](https://img.shields.io/npm/v/cluster-key-slot.svg)](https://www.npmjs.com/package/cluster-key-slot) +[![dependencies](https://img.shields.io/david/Salakar/cluster-key-slot.svg)](https://david-dm.org/Salakar/cluster-key-slot) +[![License](https://img.shields.io/npm/l/cluster-key-slot.svg)](/LICENSE) +Follow on Twitter + +# Redis Key Slot Calculator + +A high performance redis cluster key slot calculator for node redis clients e.g. [node_redis](https://github.com/NodeRedis/node_redis), [ioredis](https://github.com/luin/ioredis) and [redis-clustr](https://github.com/gosquared/redis-clustr/). + +This also handles key tags such as `somekey{actualTag}`. + +## Install + +Install with [NPM](https://npmjs.org/): + +``` +npm install cluster-key-slot --save +``` + +## Usage + +```js +const calculateSlot = require('cluster-key-slot'); +const calculateMultipleSlots = require('cluster-key-slot').generateMulti; + +// ... + +// a single slot number +const slot = calculateSlot('test:key:{butOnlyThis}redis'); +// Buffer is also supported +const anotherSlot = calculateSlot(Buffer.from([0x7b, 0x7d, 0x2a])); + +// multiple keys - multi returns a single key slot number, returns -1 if any +// of the keys does not match the base slot number (base is defaulted to first keys slot) +// This is useful to quickly determine a singe slot for multi keys operations. +const slotForRedisMulti = calculateMultipleSlots([ + 'test:key:{butOnlyThis}redis', + 'something:key45:{butOnlyThis}hello', + 'example:key46:{butOnlyThis}foobar', +]); +``` + +## Benchmarks + +`OLD` in these benchmarks refers to the `ioredis` crc calc and many of the other calculators that use `Buffer`. + +```text +node -v  ✔  16.38G RAM  10:29:07 +v10.15.3 + +NEW tags x 721,445 ops/sec ±0.44% (90 runs sampled) +OLD tags x 566,777 ops/sec ±0.97% (96 runs sampled) +NEW without tags x 2,054,845 ops/sec ±1.77% (92 runs sampled) +OLD without tags x 865,839 ops/sec ±0.43% (96 runs sampled) +NEW without tags singular x 6,354,097 ops/sec ±1.25% (94 runs sampled) +OLD without tags singular x 4,012,250 ops/sec ±0.96% (94 runs sampled) +NEW tags (Buffer) x 552,346 ops/sec ±1.35% (92 runs sampled) +``` + diff --git a/node_modules/cluster-key-slot/index.d.ts b/node_modules/cluster-key-slot/index.d.ts new file mode 100644 index 0000000..1713b44 --- /dev/null +++ b/node_modules/cluster-key-slot/index.d.ts @@ -0,0 +1,10 @@ +declare module 'cluster-key-slot' { + // Convert a string or Buffer into a redis slot hash. + function calculate(value: string | Buffer): number; + + // Convert an array of multiple strings or Buffers into a redis slot hash. + // Returns -1 if one of the keys is not for the same slot as the others + export function generateMulti(values: Array): number; + + export = calculate; +} \ No newline at end of file diff --git a/node_modules/cluster-key-slot/lib/index.js b/node_modules/cluster-key-slot/lib/index.js new file mode 100644 index 0000000..7928c77 --- /dev/null +++ b/node_modules/cluster-key-slot/lib/index.js @@ -0,0 +1,166 @@ +/* + * Copyright 2001-2010 Georges Menie (www.menie.org) + * Copyright 2010 Salvatore Sanfilippo (adapted to Redis coding style) + * Copyright 2015 Zihua Li (http://zihua.li) (ported to JavaScript) + * Copyright 2016 Mike Diarmid (http://github.com/salakar) (re-write for performance, ~700% perf inc) + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the University of California, Berkeley nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* CRC16 implementation according to CCITT standards. + * + * Note by @antirez: this is actually the XMODEM CRC 16 algorithm, using the + * following parameters: + * + * Name : "XMODEM", also known as "ZMODEM", "CRC-16/ACORN" + * Width : 16 bit + * Poly : 1021 (That is actually x^16 + x^12 + x^5 + 1) + * Initialization : 0000 + * Reflect Input byte : False + * Reflect Output CRC : False + * Xor constant to output CRC : 0000 + * Output for "123456789" : 31C3 + */ + +var lookup = [ + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, + 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, + 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, + 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, + 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, + 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, + 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, + 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, + 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, + 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, + 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, + 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, + 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, + 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, + 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, + 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, + 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, + 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, + 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, + 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, + 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, + 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, + 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 +]; + +/** + * Convert a string to a UTF8 array - faster than via buffer + * @param str + * @returns {Array} + */ +var toUTF8Array = function toUTF8Array(str) { + var char; + var i = 0; + var p = 0; + var utf8 = []; + var len = str.length; + + for (; i < len; i++) { + char = str.charCodeAt(i); + if (char < 128) { + utf8[p++] = char; + } else if (char < 2048) { + utf8[p++] = (char >> 6) | 192; + utf8[p++] = (char & 63) | 128; + } else if ( + ((char & 0xFC00) === 0xD800) && (i + 1) < str.length && + ((str.charCodeAt(i + 1) & 0xFC00) === 0xDC00)) { + char = 0x10000 + ((char & 0x03FF) << 10) + (str.charCodeAt(++i) & 0x03FF); + utf8[p++] = (char >> 18) | 240; + utf8[p++] = ((char >> 12) & 63) | 128; + utf8[p++] = ((char >> 6) & 63) | 128; + utf8[p++] = (char & 63) | 128; + } else { + utf8[p++] = (char >> 12) | 224; + utf8[p++] = ((char >> 6) & 63) | 128; + utf8[p++] = (char & 63) | 128; + } + } + + return utf8; +}; + +/** + * Convert a string into a redis slot hash. + * @param str + * @returns {number} + */ +var generate = module.exports = function generate(str) { + var char; + var i = 0; + var start = -1; + var result = 0; + var resultHash = 0; + var utf8 = typeof str === 'string' ? toUTF8Array(str) : str; + var len = utf8.length; + + while (i < len) { + char = utf8[i++]; + if (start === -1) { + if (char === 0x7B) { + start = i; + } + } else if (char !== 0x7D) { + resultHash = lookup[(char ^ (resultHash >> 8)) & 0xFF] ^ (resultHash << 8); + } else if (i - 1 !== start) { + return resultHash & 0x3FFF; + } + + result = lookup[(char ^ (result >> 8)) & 0xFF] ^ (result << 8); + } + + return result & 0x3FFF; +}; + +/** + * Convert an array of multiple strings into a redis slot hash. + * Returns -1 if one of the keys is not for the same slot as the others + * @param keys + * @returns {number} + */ +module.exports.generateMulti = function generateMulti(keys) { + var i = 1; + var len = keys.length; + var base = generate(keys[0]); + + while (i < len) { + if (generate(keys[i++]) !== base) return -1; + } + + return base; +}; diff --git a/node_modules/cluster-key-slot/package.json b/node_modules/cluster-key-slot/package.json new file mode 100644 index 0000000..f75d3d6 --- /dev/null +++ b/node_modules/cluster-key-slot/package.json @@ -0,0 +1,56 @@ +{ + "name": "cluster-key-slot", + "version": "1.1.2", + "description": "Generates CRC hashes for strings - for use by node redis clients to determine key slots.", + "main": "lib/index.js", + "types": "index.d.ts", + "scripts": { + "benchmark": "node ./benchmark", + "posttest": "eslint ./lib && npm run coveralls", + "coveralls": "cat ./coverage/lcov.info | coveralls", + "test": "node ./node_modules/istanbul/lib/cli.js cover --preserve-comments ./node_modules/mocha/bin/_mocha -- -R spec", + "coverage:check": "node ./node_modules/istanbul/lib/cli.js check-coverage --branch 100 --statement 100" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/Salakar/cluster-key-slot.git" + }, + "keywords": [ + "redis", + "hash", + "crc", + "slot", + "calc", + "javascript", + "node", + "node_redis", + "ioredis" + ], + "engines": { + "node": ">=0.10.0" + }, + "devDependencies": { + "benchmark": "^2.1.0", + "codeclimate-test-reporter": "^0.3.1", + "coveralls": "^2.11.9", + "eslint": "^3.5.0", + "eslint-config-airbnb-base": "^7.1.0", + "eslint-plugin-import": "^1.8.0", + "istanbul": "^0.4.0", + "mocha": "^3.0.2" + }, + "author": { + "name": "Mike Diarmid", + "email": "mike.diarmid@gmail.com", + "url": "http://github.com/Salakar/" + }, + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/Salakar/cluster-key-slot/issues" + }, + "homepage": "https://github.com/Salakar/cluster-key-slot#readme", + "directories": { + "test": "test", + "lib": "lib" + } +} diff --git a/node_modules/content-disposition/HISTORY.md b/node_modules/content-disposition/HISTORY.md new file mode 100644 index 0000000..488effa --- /dev/null +++ b/node_modules/content-disposition/HISTORY.md @@ -0,0 +1,60 @@ +0.5.4 / 2021-12-10 +================== + + * deps: safe-buffer@5.2.1 + +0.5.3 / 2018-12-17 +================== + + * Use `safe-buffer` for improved Buffer API + +0.5.2 / 2016-12-08 +================== + + * Fix `parse` to accept any linear whitespace character + +0.5.1 / 2016-01-17 +================== + + * perf: enable strict mode + +0.5.0 / 2014-10-11 +================== + + * Add `parse` function + +0.4.0 / 2014-09-21 +================== + + * Expand non-Unicode `filename` to the full ISO-8859-1 charset + +0.3.0 / 2014-09-20 +================== + + * Add `fallback` option + * Add `type` option + +0.2.0 / 2014-09-19 +================== + + * Reduce ambiguity of file names with hex escape in buggy browsers + +0.1.2 / 2014-09-19 +================== + + * Fix periodic invalid Unicode filename header + +0.1.1 / 2014-09-19 +================== + + * Fix invalid characters appearing in `filename*` parameter + +0.1.0 / 2014-09-18 +================== + + * Make the `filename` argument optional + +0.0.0 / 2014-09-18 +================== + + * Initial release diff --git a/node_modules/content-disposition/LICENSE b/node_modules/content-disposition/LICENSE new file mode 100644 index 0000000..84441fb --- /dev/null +++ b/node_modules/content-disposition/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/content-disposition/README.md b/node_modules/content-disposition/README.md new file mode 100644 index 0000000..3a0bb05 --- /dev/null +++ b/node_modules/content-disposition/README.md @@ -0,0 +1,142 @@ +# content-disposition + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][github-actions-ci-image]][github-actions-ci-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Create and parse HTTP `Content-Disposition` header + +## Installation + +```sh +$ npm install content-disposition +``` + +## API + +```js +var contentDisposition = require('content-disposition') +``` + +### contentDisposition(filename, options) + +Create an attachment `Content-Disposition` header value using the given file name, +if supplied. The `filename` is optional and if no file name is desired, but you +want to specify `options`, set `filename` to `undefined`. + +```js +res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) +``` + +**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this +header through a means different from `setHeader` in Node.js, you'll want to specify +the `'binary'` encoding in Node.js. + +#### Options + +`contentDisposition` accepts these properties in the options object. + +##### fallback + +If the `filename` option is outside ISO-8859-1, then the file name is actually +stored in a supplemental field for clients that support Unicode file names and +a ISO-8859-1 version of the file name is automatically generated. + +This specifies the ISO-8859-1 file name to override the automatic generation or +disables the generation all together, defaults to `true`. + + - A string will specify the ISO-8859-1 file name to use in place of automatic + generation. + - `false` will disable including a ISO-8859-1 file name and only include the + Unicode version (unless the file name is already ISO-8859-1). + - `true` will enable automatic generation if the file name is outside ISO-8859-1. + +If the `filename` option is ISO-8859-1 and this option is specified and has a +different value, then the `filename` option is encoded in the extended field +and this set as the fallback field, even though they are both ISO-8859-1. + +##### type + +Specifies the disposition type, defaults to `"attachment"`. This can also be +`"inline"`, or any other value (all values except inline are treated like +`attachment`, but can convey additional information if both parties agree to +it). The type is normalized to lower-case. + +### contentDisposition.parse(string) + +```js +var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') +``` + +Parse a `Content-Disposition` header string. This automatically handles extended +("Unicode") parameters by decoding them and providing them under the standard +parameter name. This will return an object with the following properties (examples +are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): + + - `type`: The disposition type (always lower case). Example: `'attachment'` + + - `parameters`: An object of the parameters in the disposition (name of parameter + always lower case and extended versions replace non-extended versions). Example: + `{filename: "€ rates.txt"}` + +## Examples + +### Send a file for download + +```js +var contentDisposition = require('content-disposition') +var destroy = require('destroy') +var fs = require('fs') +var http = require('http') +var onFinished = require('on-finished') + +var filePath = '/path/to/public/plans.pdf' + +http.createServer(function onRequest (req, res) { + // set headers + res.setHeader('Content-Type', 'application/pdf') + res.setHeader('Content-Disposition', contentDisposition(filePath)) + + // send file + var stream = fs.createReadStream(filePath) + stream.pipe(res) + onFinished(res, function () { + destroy(stream) + }) +}) +``` + +## Testing + +```sh +$ npm test +``` + +## References + +- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] +- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] +- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] +- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] + +[rfc-2616]: https://tools.ietf.org/html/rfc2616 +[rfc-5987]: https://tools.ietf.org/html/rfc5987 +[rfc-6266]: https://tools.ietf.org/html/rfc6266 +[tc-2231]: http://greenbytes.de/tech/tc2231/ + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/content-disposition.svg +[npm-url]: https://npmjs.org/package/content-disposition +[node-version-image]: https://img.shields.io/node/v/content-disposition.svg +[node-version-url]: https://nodejs.org/en/download +[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg +[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master +[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg +[downloads-url]: https://npmjs.org/package/content-disposition +[github-actions-ci-image]: https://img.shields.io/github/workflow/status/jshttp/content-disposition/ci/master?label=ci +[github-actions-ci-url]: https://github.com/jshttp/content-disposition?query=workflow%3Aci diff --git a/node_modules/content-disposition/index.js b/node_modules/content-disposition/index.js new file mode 100644 index 0000000..ecec899 --- /dev/null +++ b/node_modules/content-disposition/index.js @@ -0,0 +1,458 @@ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module exports. + * @public + */ + +module.exports = contentDisposition +module.exports.parse = parse + +/** + * Module dependencies. + * @private + */ + +var basename = require('path').basename +var Buffer = require('safe-buffer').Buffer + +/** + * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") + * @private + */ + +var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex + +/** + * RegExp to match percent encoding escape. + * @private + */ + +var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ +var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g + +/** + * RegExp to match non-latin1 characters. + * @private + */ + +var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g + +/** + * RegExp to match quoted-pair in RFC 2616 + * + * quoted-pair = "\" CHAR + * CHAR = + * @private + */ + +var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 2616 + * @private + */ + +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp for various RFC 2616 grammar + * + * parameter = token "=" ( token | quoted-string ) + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) + * qdtext = > + * quoted-pair = "\" CHAR + * CHAR = + * TEXT = + * LWS = [CRLF] 1*( SP | HT ) + * CRLF = CR LF + * CR = + * LF = + * SP = + * HT = + * CTL = + * OCTET = + * @private + */ + +var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ +var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ + +/** + * RegExp for various RFC 5987 grammar + * + * ext-value = charset "'" [ language ] "'" value-chars + * charset = "UTF-8" / "ISO-8859-1" / mime-charset + * mime-charset = 1*mime-charsetc + * mime-charsetc = ALPHA / DIGIT + * / "!" / "#" / "$" / "%" / "&" + * / "+" / "-" / "^" / "_" / "`" + * / "{" / "}" / "~" + * language = ( 2*3ALPHA [ extlang ] ) + * / 4ALPHA + * / 5*8ALPHA + * extlang = *3( "-" 3ALPHA ) + * value-chars = *( pct-encoded / attr-char ) + * pct-encoded = "%" HEXDIG HEXDIG + * attr-char = ALPHA / DIGIT + * / "!" / "#" / "$" / "&" / "+" / "-" / "." + * / "^" / "_" / "`" / "|" / "~" + * @private + */ + +var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ + +/** + * RegExp for various RFC 6266 grammar + * + * disposition-type = "inline" | "attachment" | disp-ext-type + * disp-ext-type = token + * disposition-parm = filename-parm | disp-ext-parm + * filename-parm = "filename" "=" value + * | "filename*" "=" ext-value + * disp-ext-parm = token "=" value + * | ext-token "=" ext-value + * ext-token = + * @private + */ + +var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex + +/** + * Create an attachment Content-Disposition header. + * + * @param {string} [filename] + * @param {object} [options] + * @param {string} [options.type=attachment] + * @param {string|boolean} [options.fallback=true] + * @return {string} + * @public + */ + +function contentDisposition (filename, options) { + var opts = options || {} + + // get type + var type = opts.type || 'attachment' + + // get parameters + var params = createparams(filename, opts.fallback) + + // format into string + return format(new ContentDisposition(type, params)) +} + +/** + * Create parameters object from filename and fallback. + * + * @param {string} [filename] + * @param {string|boolean} [fallback=true] + * @return {object} + * @private + */ + +function createparams (filename, fallback) { + if (filename === undefined) { + return + } + + var params = {} + + if (typeof filename !== 'string') { + throw new TypeError('filename must be a string') + } + + // fallback defaults to true + if (fallback === undefined) { + fallback = true + } + + if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { + throw new TypeError('fallback must be a string or boolean') + } + + if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { + throw new TypeError('fallback must be ISO-8859-1 string') + } + + // restrict to file base name + var name = basename(filename) + + // determine if name is suitable for quoted string + var isQuotedString = TEXT_REGEXP.test(name) + + // generate fallback name + var fallbackName = typeof fallback !== 'string' + ? fallback && getlatin1(name) + : basename(fallback) + var hasFallback = typeof fallbackName === 'string' && fallbackName !== name + + // set extended filename parameter + if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { + params['filename*'] = name + } + + // set filename parameter + if (isQuotedString || hasFallback) { + params.filename = hasFallback + ? fallbackName + : name + } + + return params +} + +/** + * Format object to Content-Disposition header. + * + * @param {object} obj + * @param {string} obj.type + * @param {object} [obj.parameters] + * @return {string} + * @private + */ + +function format (obj) { + var parameters = obj.parameters + var type = obj.type + + if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + // start with normalized type + var string = String(type).toLowerCase() + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + var val = param.substr(-1) === '*' + ? ustring(parameters[param]) + : qstring(parameters[param]) + + string += '; ' + param + '=' + val + } + } + + return string +} + +/** + * Decode a RFC 5987 field value (gracefully). + * + * @param {string} str + * @return {string} + * @private + */ + +function decodefield (str) { + var match = EXT_VALUE_REGEXP.exec(str) + + if (!match) { + throw new TypeError('invalid extended field value') + } + + var charset = match[1].toLowerCase() + var encoded = match[2] + var value + + // to binary string + var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) + + switch (charset) { + case 'iso-8859-1': + value = getlatin1(binary) + break + case 'utf-8': + value = Buffer.from(binary, 'binary').toString('utf8') + break + default: + throw new TypeError('unsupported charset in extended field') + } + + return value +} + +/** + * Get ISO-8859-1 version of string. + * + * @param {string} val + * @return {string} + * @private + */ + +function getlatin1 (val) { + // simple Unicode -> ISO-8859-1 transformation + return String(val).replace(NON_LATIN1_REGEXP, '?') +} + +/** + * Parse Content-Disposition header string. + * + * @param {string} string + * @return {object} + * @public + */ + +function parse (string) { + if (!string || typeof string !== 'string') { + throw new TypeError('argument string is required') + } + + var match = DISPOSITION_TYPE_REGEXP.exec(string) + + if (!match) { + throw new TypeError('invalid type format') + } + + // normalize type + var index = match[0].length + var type = match[1].toLowerCase() + + var key + var names = [] + var params = {} + var value + + // calculate index to start at + index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';' + ? index - 1 + : index + + // match parameters + while ((match = PARAM_REGEXP.exec(string))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (names.indexOf(key) !== -1) { + throw new TypeError('invalid duplicate parameter') + } + + names.push(key) + + if (key.indexOf('*') + 1 === key.length) { + // decode extended value + key = key.slice(0, -1) + value = decodefield(value) + + // overwrite existing value + params[key] = value + continue + } + + if (typeof params[key] === 'string') { + continue + } + + if (value[0] === '"') { + // remove quotes and escapes + value = value + .substr(1, value.length - 2) + .replace(QESC_REGEXP, '$1') + } + + params[key] = value + } + + if (index !== -1 && index !== string.length) { + throw new TypeError('invalid parameter format') + } + + return new ContentDisposition(type, params) +} + +/** + * Percent decode a single character. + * + * @param {string} str + * @param {string} hex + * @return {string} + * @private + */ + +function pdecode (str, hex) { + return String.fromCharCode(parseInt(hex, 16)) +} + +/** + * Percent encode a single character. + * + * @param {string} char + * @return {string} + * @private + */ + +function pencode (char) { + return '%' + String(char) + .charCodeAt(0) + .toString(16) + .toUpperCase() +} + +/** + * Quote a string for HTTP. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Encode a Unicode string for HTTP (RFC 5987). + * + * @param {string} val + * @return {string} + * @private + */ + +function ustring (val) { + var str = String(val) + + // percent encode as UTF-8 + var encoded = encodeURIComponent(str) + .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) + + return 'UTF-8\'\'' + encoded +} + +/** + * Class for parsed Content-Disposition header for v8 optimization + * + * @public + * @param {string} type + * @param {object} parameters + * @constructor + */ + +function ContentDisposition (type, parameters) { + this.type = type + this.parameters = parameters +} diff --git a/node_modules/content-disposition/package.json b/node_modules/content-disposition/package.json new file mode 100644 index 0000000..43c70ce --- /dev/null +++ b/node_modules/content-disposition/package.json @@ -0,0 +1,44 @@ +{ + "name": "content-disposition", + "description": "Create and parse Content-Disposition header", + "version": "0.5.4", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-disposition", + "http", + "rfc6266", + "res" + ], + "repository": "jshttp/content-disposition", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "7.32.0", + "eslint-config-standard": "13.0.1", + "eslint-plugin-import": "2.25.3", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "istanbul": "0.4.5", + "mocha": "9.1.3" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" + } +} diff --git a/node_modules/content-type/HISTORY.md b/node_modules/content-type/HISTORY.md new file mode 100644 index 0000000..4583671 --- /dev/null +++ b/node_modules/content-type/HISTORY.md @@ -0,0 +1,29 @@ +1.0.5 / 2023-01-29 +================== + + * perf: skip value escaping when unnecessary + +1.0.4 / 2017-09-11 +================== + + * perf: skip parameter parsing when no parameters + +1.0.3 / 2017-09-10 +================== + + * perf: remove argument reassignment + +1.0.2 / 2016-05-09 +================== + + * perf: enable strict mode + +1.0.1 / 2015-02-13 +================== + + * Improve missing `Content-Type` header error message + +1.0.0 / 2015-02-01 +================== + + * Initial implementation, derived from `media-typer@0.3.0` diff --git a/node_modules/content-type/LICENSE b/node_modules/content-type/LICENSE new file mode 100644 index 0000000..34b1a2d --- /dev/null +++ b/node_modules/content-type/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/content-type/README.md b/node_modules/content-type/README.md new file mode 100644 index 0000000..c1a922a --- /dev/null +++ b/node_modules/content-type/README.md @@ -0,0 +1,94 @@ +# content-type + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Create and parse HTTP Content-Type header according to RFC 7231 + +## Installation + +```sh +$ npm install content-type +``` + +## API + +```js +var contentType = require('content-type') +``` + +### contentType.parse(string) + +```js +var obj = contentType.parse('image/svg+xml; charset=utf-8') +``` + +Parse a `Content-Type` header. This will return an object with the following +properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (the type and subtype, always lower case). + Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of parameter + always lower case). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the string is missing or invalid. + +### contentType.parse(req) + +```js +var obj = contentType.parse(req) +``` + +Parse the `Content-Type` header from the given `req`. Short-cut for +`contentType.parse(req.headers['content-type'])`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.parse(res) + +```js +var obj = contentType.parse(res) +``` + +Parse the `Content-Type` header set on the given `res`. Short-cut for +`contentType.parse(res.getHeader('content-type'))`. + +Throws a `TypeError` if the `Content-Type` header is missing or invalid. + +### contentType.format(obj) + +```js +var str = contentType.format({ + type: 'image/svg+xml', + parameters: { charset: 'utf-8' } +}) +``` + +Format an object into a `Content-Type` header. This will return a string of the +content type for the given object with the following properties (examples are +shown that produce the string `'image/svg+xml; charset=utf-8'`): + + - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` + + - `parameters`: An object of the parameters in the media type (name of the + parameter will be lower-cased). Example: `{charset: 'utf-8'}` + +Throws a `TypeError` if the object contains an invalid type or parameter names. + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/content-type/master?label=ci +[ci-url]: https://github.com/jshttp/content-type/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/content-type/master +[coveralls-url]: https://coveralls.io/r/jshttp/content-type?branch=master +[node-image]: https://badgen.net/npm/node/content-type +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/content-type +[npm-url]: https://npmjs.org/package/content-type +[npm-version-image]: https://badgen.net/npm/v/content-type diff --git a/node_modules/content-type/index.js b/node_modules/content-type/index.js new file mode 100644 index 0000000..41840e7 --- /dev/null +++ b/node_modules/content-type/index.js @@ -0,0 +1,225 @@ +/*! + * content-type + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 + * + * parameter = token "=" ( token / quoted-string ) + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" + * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" + * / DIGIT / ALPHA + * ; any VCHAR, except delimiters + * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE + * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text + * obs-text = %x80-FF + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + */ +var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g // eslint-disable-line no-control-regex +var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ // eslint-disable-line no-control-regex +var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 + * + * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) + * obs-text = %x80-FF + */ +var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g // eslint-disable-line no-control-regex + +/** + * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 + */ +var QUOTE_REGEXP = /([\\"])/g + +/** + * RegExp to match type in RFC 7231 sec 3.1.1.1 + * + * media-type = type "/" subtype + * type = token + * subtype = token + */ +var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ + +/** + * Module exports. + * @public + */ + +exports.format = format +exports.parse = parse + +/** + * Format object to media type. + * + * @param {object} obj + * @return {string} + * @public + */ + +function format (obj) { + if (!obj || typeof obj !== 'object') { + throw new TypeError('argument obj is required') + } + + var parameters = obj.parameters + var type = obj.type + + if (!type || !TYPE_REGEXP.test(type)) { + throw new TypeError('invalid type') + } + + var string = type + + // append parameters + if (parameters && typeof parameters === 'object') { + var param + var params = Object.keys(parameters).sort() + + for (var i = 0; i < params.length; i++) { + param = params[i] + + if (!TOKEN_REGEXP.test(param)) { + throw new TypeError('invalid parameter name') + } + + string += '; ' + param + '=' + qstring(parameters[param]) + } + } + + return string +} + +/** + * Parse media type to object. + * + * @param {string|object} string + * @return {Object} + * @public + */ + +function parse (string) { + if (!string) { + throw new TypeError('argument string is required') + } + + // support req/res-like objects as argument + var header = typeof string === 'object' + ? getcontenttype(string) + : string + + if (typeof header !== 'string') { + throw new TypeError('argument string is required to be a string') + } + + var index = header.indexOf(';') + var type = index !== -1 + ? header.slice(0, index).trim() + : header.trim() + + if (!TYPE_REGEXP.test(type)) { + throw new TypeError('invalid media type') + } + + var obj = new ContentType(type.toLowerCase()) + + // parse parameters + if (index !== -1) { + var key + var match + var value + + PARAM_REGEXP.lastIndex = index + + while ((match = PARAM_REGEXP.exec(header))) { + if (match.index !== index) { + throw new TypeError('invalid parameter format') + } + + index += match[0].length + key = match[1].toLowerCase() + value = match[2] + + if (value.charCodeAt(0) === 0x22 /* " */) { + // remove quotes + value = value.slice(1, -1) + + // remove escapes + if (value.indexOf('\\') !== -1) { + value = value.replace(QESC_REGEXP, '$1') + } + } + + obj.parameters[key] = value + } + + if (index !== header.length) { + throw new TypeError('invalid parameter format') + } + } + + return obj +} + +/** + * Get content-type from req/res objects. + * + * @param {object} + * @return {Object} + * @private + */ + +function getcontenttype (obj) { + var header + + if (typeof obj.getHeader === 'function') { + // res-like + header = obj.getHeader('content-type') + } else if (typeof obj.headers === 'object') { + // req-like + header = obj.headers && obj.headers['content-type'] + } + + if (typeof header !== 'string') { + throw new TypeError('content-type header is missing from object') + } + + return header +} + +/** + * Quote a string if necessary. + * + * @param {string} val + * @return {string} + * @private + */ + +function qstring (val) { + var str = String(val) + + // no need to quote tokens + if (TOKEN_REGEXP.test(str)) { + return str + } + + if (str.length > 0 && !TEXT_REGEXP.test(str)) { + throw new TypeError('invalid parameter value') + } + + return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' +} + +/** + * Class to represent a content type. + * @private + */ +function ContentType (type) { + this.parameters = Object.create(null) + this.type = type +} diff --git a/node_modules/content-type/package.json b/node_modules/content-type/package.json new file mode 100644 index 0000000..9db19f6 --- /dev/null +++ b/node_modules/content-type/package.json @@ -0,0 +1,42 @@ +{ + "name": "content-type", + "description": "Create and parse HTTP Content-Type header", + "version": "1.0.5", + "author": "Douglas Christopher Wilson ", + "license": "MIT", + "keywords": [ + "content-type", + "http", + "req", + "res", + "rfc7231" + ], + "repository": "jshttp/content-type", + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "8.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-standard": "4.1.0", + "mocha": "10.2.0", + "nyc": "15.1.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "README.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "version": "node scripts/version-history.js && git add HISTORY.md" + } +} diff --git a/node_modules/cookie-signature/.npmignore b/node_modules/cookie-signature/.npmignore new file mode 100644 index 0000000..f1250e5 --- /dev/null +++ b/node_modules/cookie-signature/.npmignore @@ -0,0 +1,4 @@ +support +test +examples +*.sock diff --git a/node_modules/cookie-signature/History.md b/node_modules/cookie-signature/History.md new file mode 100644 index 0000000..78513cc --- /dev/null +++ b/node_modules/cookie-signature/History.md @@ -0,0 +1,38 @@ +1.0.6 / 2015-02-03 +================== + +* use `npm test` instead of `make test` to run tests +* clearer assertion messages when checking input + + +1.0.5 / 2014-09-05 +================== + +* add license to package.json + +1.0.4 / 2014-06-25 +================== + + * corrected avoidance of timing attacks (thanks @tenbits!) + +1.0.3 / 2014-01-28 +================== + + * [incorrect] fix for timing attacks + +1.0.2 / 2014-01-28 +================== + + * fix missing repository warning + * fix typo in test + +1.0.1 / 2013-04-15 +================== + + * Revert "Changed underlying HMAC algo. to sha512." + * Revert "Fix for timing attacks on MAC verification." + +0.0.1 / 2010-01-03 +================== + + * Initial release diff --git a/node_modules/cookie-signature/Readme.md b/node_modules/cookie-signature/Readme.md new file mode 100644 index 0000000..2559e84 --- /dev/null +++ b/node_modules/cookie-signature/Readme.md @@ -0,0 +1,42 @@ + +# cookie-signature + + Sign and unsign cookies. + +## Example + +```js +var cookie = require('cookie-signature'); + +var val = cookie.sign('hello', 'tobiiscool'); +val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); + +var val = cookie.sign('hello', 'tobiiscool'); +cookie.unsign(val, 'tobiiscool').should.equal('hello'); +cookie.unsign(val, 'luna').should.be.false; +``` + +## License + +(The MIT License) + +Copyright (c) 2012 LearnBoost <tj@learnboost.com> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/cookie-signature/index.js b/node_modules/cookie-signature/index.js new file mode 100644 index 0000000..b8c9463 --- /dev/null +++ b/node_modules/cookie-signature/index.js @@ -0,0 +1,51 @@ +/** + * Module dependencies. + */ + +var crypto = require('crypto'); + +/** + * Sign the given `val` with `secret`. + * + * @param {String} val + * @param {String} secret + * @return {String} + * @api private + */ + +exports.sign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + return val + '.' + crypto + .createHmac('sha256', secret) + .update(val) + .digest('base64') + .replace(/\=+$/, ''); +}; + +/** + * Unsign and decode the given `val` with `secret`, + * returning `false` if the signature is invalid. + * + * @param {String} val + * @param {String} secret + * @return {String|Boolean} + * @api private + */ + +exports.unsign = function(val, secret){ + if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); + if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); + var str = val.slice(0, val.lastIndexOf('.')) + , mac = exports.sign(str, secret); + + return sha1(mac) == sha1(val) ? str : false; +}; + +/** + * Private + */ + +function sha1(str){ + return crypto.createHash('sha1').update(str).digest('hex'); +} diff --git a/node_modules/cookie-signature/package.json b/node_modules/cookie-signature/package.json new file mode 100644 index 0000000..29c4498 --- /dev/null +++ b/node_modules/cookie-signature/package.json @@ -0,0 +1,18 @@ +{ + "name": "cookie-signature", + "version": "1.0.6", + "description": "Sign and unsign cookies", + "keywords": ["cookie", "sign", "unsign"], + "author": "TJ Holowaychuk ", + "license": "MIT", + "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, + "dependencies": {}, + "devDependencies": { + "mocha": "*", + "should": "*" + }, + "scripts": { + "test": "mocha --require should --reporter spec" + }, + "main": "index" +} diff --git a/node_modules/cookie/LICENSE b/node_modules/cookie/LICENSE new file mode 100644 index 0000000..058b6b4 --- /dev/null +++ b/node_modules/cookie/LICENSE @@ -0,0 +1,24 @@ +(The MIT License) + +Copyright (c) 2012-2014 Roman Shtylman +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/node_modules/cookie/README.md b/node_modules/cookie/README.md new file mode 100644 index 0000000..71fdac1 --- /dev/null +++ b/node_modules/cookie/README.md @@ -0,0 +1,317 @@ +# cookie + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-image]][node-url] +[![Build Status][ci-image]][ci-url] +[![Coverage Status][coveralls-image]][coveralls-url] + +Basic HTTP cookie parser and serializer for HTTP servers. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install cookie +``` + +## API + +```js +var cookie = require('cookie'); +``` + +### cookie.parse(str, options) + +Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. +The `str` argument is the string representing a `Cookie` header value and `options` is an +optional object containing additional parsing options. + +```js +var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); +// { foo: 'bar', equation: 'E=mc^2' } +``` + +#### Options + +`cookie.parse` accepts these properties in the options object. + +##### decode + +Specifies a function that will be used to decode a cookie's value. Since the value of a cookie +has a limited character set (and must be a simple string), this function can be used to decode +a previously-encoded cookie value into a JavaScript string or other object. + +The default function is the global `decodeURIComponent`, which will decode any URL-encoded +sequences into their byte representations. + +**note** if an error is thrown from this function, the original, non-decoded cookie value will +be returned as the cookie's value. + +### cookie.serialize(name, value, options) + +Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the +name for the cookie, the `value` argument is the value to set the cookie to, and the `options` +argument is an optional object containing additional serialization options. + +```js +var setCookie = cookie.serialize('foo', 'bar'); +// foo=bar +``` + +#### Options + +`cookie.serialize` accepts these properties in the options object. + +##### domain + +Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no +domain is set, and most clients will consider the cookie to apply to only the current domain. + +##### encode + +Specifies a function that will be used to encode a cookie's value. Since value of a cookie +has a limited character set (and must be a simple string), this function can be used to encode +a value into a string suited for a cookie's value. + +The default function is the global `encodeURIComponent`, which will encode a JavaScript string +into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. + +##### expires + +Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. +By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and +will delete it on a condition like exiting a web browser application. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### httpOnly + +Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, +the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not allow client-side +JavaScript to see the cookie in `document.cookie`. + +##### maxAge + +Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. +The given number will be converted to an integer by rounding down. By default, no maximum age is set. + +**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and +`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, +so if both are set, they should point to the same date and time. + +##### partitioned + +Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies) +attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the +`Partitioned` attribute is not set. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +More information about can be found in [the proposal](https://github.com/privacycg/CHIPS). + +##### path + +Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path +is considered the ["default path"][rfc-6265-5.1.4]. + +##### priority + +Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1]. + + - `'low'` will set the `Priority` attribute to `Low`. + - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set. + - `'high'` will set the `Priority` attribute to `High`. + +More information about the different priority levels can be found in +[the specification][rfc-west-cookie-priority-00-4.1]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### sameSite + +Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-09-5.4.7]. + + - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + - `false` will not set the `SameSite` attribute. + - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. + - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. + - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. + +More information about the different enforcement levels can be found in +[the specification][rfc-6265bis-09-5.4.7]. + +**note** This is an attribute that has not yet been fully standardized, and may change in the future. +This also means many clients may ignore this attribute until they understand it. + +##### secure + +Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, +the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. + +**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to +the server in the future if the browser does not have an HTTPS connection. + +## Example + +The following example uses this module in conjunction with the Node.js core HTTP server +to prompt a user for their name and display it back on future visits. + +```js +var cookie = require('cookie'); +var escapeHtml = require('escape-html'); +var http = require('http'); +var url = require('url'); + +function onRequest(req, res) { + // Parse the query string + var query = url.parse(req.url, true, true).query; + + if (query && query.name) { + // Set a new cookie with the name + res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { + httpOnly: true, + maxAge: 60 * 60 * 24 * 7 // 1 week + })); + + // Redirect back after setting cookie + res.statusCode = 302; + res.setHeader('Location', req.headers.referer || '/'); + res.end(); + return; + } + + // Parse the cookies on the request + var cookies = cookie.parse(req.headers.cookie || ''); + + // Get the visitor name set in the cookie + var name = cookies.name; + + res.setHeader('Content-Type', 'text/html; charset=UTF-8'); + + if (name) { + res.write('

Welcome back, ' + escapeHtml(name) + '!

'); + } else { + res.write('

Hello, new visitor!

'); + } + + res.write('
'); + res.write(' '); + res.end('
'); +} + +http.createServer(onRequest).listen(3000); +``` + +## Testing + +```sh +$ npm test +``` + +## Benchmark + +``` +$ npm run bench + +> cookie@0.5.0 bench +> node benchmark/index.js + + node@18.18.2 + acorn@8.10.0 + ada@2.6.0 + ares@1.19.1 + brotli@1.0.9 + cldr@43.1 + icu@73.2 + llhttp@6.0.11 + modules@108 + napi@9 + nghttp2@1.57.0 + nghttp3@0.7.0 + ngtcp2@0.8.1 + openssl@3.0.10+quic + simdutf@3.2.14 + tz@2023c + undici@5.26.3 + unicode@15.0 + uv@1.44.2 + uvwasi@0.0.18 + v8@10.2.154.26-node.26 + zlib@1.2.13.1-motley + +> node benchmark/parse-top.js + + cookie.parse - top sites + + 14 tests completed. + + parse accounts.google.com x 2,588,913 ops/sec ±0.74% (186 runs sampled) + parse apple.com x 2,370,002 ops/sec ±0.69% (186 runs sampled) + parse cloudflare.com x 2,213,102 ops/sec ±0.88% (188 runs sampled) + parse docs.google.com x 2,194,157 ops/sec ±1.03% (184 runs sampled) + parse drive.google.com x 2,265,084 ops/sec ±0.79% (187 runs sampled) + parse en.wikipedia.org x 457,099 ops/sec ±0.81% (186 runs sampled) + parse linkedin.com x 504,407 ops/sec ±0.89% (186 runs sampled) + parse maps.google.com x 1,230,959 ops/sec ±0.98% (186 runs sampled) + parse microsoft.com x 926,294 ops/sec ±0.88% (184 runs sampled) + parse play.google.com x 2,311,338 ops/sec ±0.83% (185 runs sampled) + parse support.google.com x 1,508,850 ops/sec ±0.86% (186 runs sampled) + parse www.google.com x 1,022,582 ops/sec ±1.32% (182 runs sampled) + parse youtu.be x 332,136 ops/sec ±1.02% (185 runs sampled) + parse youtube.com x 323,833 ops/sec ±0.77% (183 runs sampled) + +> node benchmark/parse.js + + cookie.parse - generic + + 6 tests completed. + + simple x 3,214,032 ops/sec ±1.61% (183 runs sampled) + decode x 587,237 ops/sec ±1.16% (187 runs sampled) + unquote x 2,954,618 ops/sec ±1.35% (183 runs sampled) + duplicates x 857,008 ops/sec ±0.89% (187 runs sampled) + 10 cookies x 292,133 ops/sec ±0.89% (187 runs sampled) + 100 cookies x 22,610 ops/sec ±0.68% (187 runs sampled) +``` + +## References + +- [RFC 6265: HTTP State Management Mechanism][rfc-6265] +- [Same-site Cookies][rfc-6265bis-09-5.4.7] + +[rfc-cutler-httpbis-partitioned-cookies]: https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/ +[rfc-west-cookie-priority-00-4.1]: https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1 +[rfc-6265bis-09-5.4.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7 +[rfc-6265]: https://tools.ietf.org/html/rfc6265 +[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 +[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 +[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 +[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 +[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 +[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 +[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 +[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 + +## License + +[MIT](LICENSE) + +[ci-image]: https://badgen.net/github/checks/jshttp/cookie/master?label=ci +[ci-url]: https://github.com/jshttp/cookie/actions/workflows/ci.yml +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master +[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master +[node-image]: https://badgen.net/npm/node/cookie +[node-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/cookie +[npm-url]: https://npmjs.org/package/cookie +[npm-version-image]: https://badgen.net/npm/v/cookie diff --git a/node_modules/cookie/SECURITY.md b/node_modules/cookie/SECURITY.md new file mode 100644 index 0000000..fd4a6c5 --- /dev/null +++ b/node_modules/cookie/SECURITY.md @@ -0,0 +1,25 @@ +# Security Policies and Procedures + +## Reporting a Bug + +The `cookie` team and community take all security bugs seriously. Thank +you for improving the security of the project. We appreciate your efforts and +responsible disclosure and will make every effort to acknowledge your +contributions. + +Report security bugs by emailing the current owner(s) of `cookie`. This +information can be found in the npm registry using the command +`npm owner ls cookie`. +If unsure or unable to get the information from the above, open an issue +in the [project issue tracker](https://github.com/jshttp/cookie/issues) +asking for the current contact information. + +To ensure the timely response to your report, please ensure that the entirety +of the report is contained within the email body and not solely behind a web +link or an attachment. + +At least one owner will acknowledge your email within 48 hours, and will send a +more detailed response within 48 hours indicating the next steps in handling +your report. After the initial reply to your report, the owners will +endeavor to keep you informed of the progress towards a fix and full +announcement, and may ask for additional information or guidance. diff --git a/node_modules/cookie/index.js b/node_modules/cookie/index.js new file mode 100644 index 0000000..51a58cb --- /dev/null +++ b/node_modules/cookie/index.js @@ -0,0 +1,334 @@ +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +exports.parse = parse; +exports.serialize = serialize; + +/** + * Module variables. + * @private + */ + +var __toString = Object.prototype.toString + +/** + * RegExp to match cookie-name in RFC 6265 sec 4.1.1 + * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2 + * which has been replaced by the token definition in RFC 7230 appendix B. + * + * cookie-name = token + * token = 1*tchar + * tchar = "!" / "#" / "$" / "%" / "&" / "'" / + * "*" / "+" / "-" / "." / "^" / "_" / + * "`" / "|" / "~" / DIGIT / ALPHA + */ + +var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/; + +/** + * RegExp to match cookie-value in RFC 6265 sec 4.1.1 + * + * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + * ; US-ASCII characters excluding CTLs, + * ; whitespace DQUOTE, comma, semicolon, + * ; and backslash + */ + +var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/; + +/** + * RegExp to match domain-value in RFC 6265 sec 4.1.1 + * + * domain-value = + * ; defined in [RFC1034], Section 3.5, as + * ; enhanced by [RFC1123], Section 2.1 + * =