js-redis-server 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +170 -0
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.mjs +5923 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/commanders/custom/base-commander.d.ts +19 -0
- package/dist/commanders/custom/base-commander.d.ts.map +1 -0
- package/dist/commanders/custom/cluster-router.d.ts +57 -0
- package/dist/commanders/custom/cluster-router.d.ts.map +1 -0
- package/dist/commanders/custom/clusterCommander.d.ts +39 -0
- package/dist/commanders/custom/clusterCommander.d.ts.map +1 -0
- package/dist/commanders/custom/commander.d.ts +12 -0
- package/dist/commanders/custom/commander.d.ts.map +1 -0
- package/dist/commanders/custom/commands/metadata.d.ts +101 -0
- package/dist/commanders/custom/commands/metadata.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/client/index.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/client/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/cluster/index.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/cluster/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/command/index.d.ts +6 -0
- package/dist/commanders/custom/commands/redis/command/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts +10 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts +10 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts +13 -0
- package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/index.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/data/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/del.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/keys/del.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/index.d.ts +11 -0
- package/dist/commanders/custom/commands/redis/data/keys/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/keys/type.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/keys/type.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/index.d.ts +11 -0
- package/dist/commanders/custom/commands/redis/data/lists/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/index.d.ts +12 -0
- package/dist/commanders/custom/commands/redis/data/sets/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/append.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/append.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/get.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/strings/get.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/index.d.ts +14 -0
- package/dist/commanders/custom/commands/redis/data/strings/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/set.d.ts +29 -0
- package/dist/commanders/custom/commands/redis/data/strings/set.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts +12 -0
- package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts +10 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts +10 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts +9 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts +10 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/index.d.ts +39 -0
- package/dist/commanders/custom/commands/redis/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/info.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/info.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/monitor.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/monitor.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/ping.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/ping.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/quit.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/quit.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/debug.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/script/debug.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/eval.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/script/eval.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/evalsha.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/script/evalsha.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/exists.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/script/exists.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/flush.d.ts +7 -0
- package/dist/commanders/custom/commands/redis/script/flush.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/help.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/script/help.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/index.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/script/index.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/kill.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/script/kill.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/load.d.ts +5 -0
- package/dist/commanders/custom/commands/redis/script/load.d.ts.map +1 -0
- package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts +8 -0
- package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts.map +1 -0
- package/dist/commanders/custom/commands/registry.d.ts +84 -0
- package/dist/commanders/custom/commands/registry.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/hash.d.ts +16 -0
- package/dist/commanders/custom/data-structures/hash.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/list.d.ts +15 -0
- package/dist/commanders/custom/data-structures/list.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/set.d.ts +16 -0
- package/dist/commanders/custom/data-structures/set.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/stream.d.ts +3 -0
- package/dist/commanders/custom/data-structures/stream.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/string.d.ts +5 -0
- package/dist/commanders/custom/data-structures/string.d.ts.map +1 -0
- package/dist/commanders/custom/data-structures/zset.d.ts +17 -0
- package/dist/commanders/custom/data-structures/zset.d.ts.map +1 -0
- package/dist/commanders/custom/db.d.ts +67 -0
- package/dist/commanders/custom/db.d.ts.map +1 -0
- package/dist/commanders/custom/execution-context.d.ts +12 -0
- package/dist/commanders/custom/execution-context.d.ts.map +1 -0
- package/dist/commanders/custom/lua-runtime.d.ts +16 -0
- package/dist/commanders/custom/lua-runtime.d.ts.map +1 -0
- package/dist/commanders/custom/redis-kernel.d.ts +46 -0
- package/dist/commanders/custom/redis-kernel.d.ts.map +1 -0
- package/dist/commanders/custom/schema/builder.d.ts +24 -0
- package/dist/commanders/custom/schema/builder.d.ts.map +1 -0
- package/dist/commanders/custom/schema/command-adapter.d.ts +25 -0
- package/dist/commanders/custom/schema/command-adapter.d.ts.map +1 -0
- package/dist/commanders/custom/schema/index.d.ts +7 -0
- package/dist/commanders/custom/schema/index.d.ts.map +1 -0
- package/dist/commanders/custom/schema/input-mapper.d.ts +28 -0
- package/dist/commanders/custom/schema/input-mapper.d.ts.map +1 -0
- package/dist/commanders/custom/schema/registry.d.ts +13 -0
- package/dist/commanders/custom/schema/registry.d.ts.map +1 -0
- package/dist/commanders/custom/schema/resp-input-mapper.d.ts +20 -0
- package/dist/commanders/custom/schema/resp-input-mapper.d.ts.map +1 -0
- package/dist/commanders/custom/schema/types.d.ts +43 -0
- package/dist/commanders/custom/schema/types.d.ts.map +1 -0
- package/dist/core/cluster/network.d.ts +24 -0
- package/dist/core/cluster/network.d.ts.map +1 -0
- package/dist/core/errors.d.ts +87 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/transports/buffered-transport.d.ts +14 -0
- package/dist/core/transports/buffered-transport.d.ts.map +1 -0
- package/dist/core/transports/capturing-transport.d.ts +19 -0
- package/dist/core/transports/capturing-transport.d.ts.map +1 -0
- package/dist/core/transports/command-validator.d.ts +12 -0
- package/dist/core/transports/command-validator.d.ts.map +1 -0
- package/dist/core/transports/resp2/adapter.d.ts +32 -0
- package/dist/core/transports/resp2/adapter.d.ts.map +1 -0
- package/dist/core/transports/resp2/index.d.ts +13 -0
- package/dist/core/transports/resp2/index.d.ts.map +1 -0
- package/dist/core/transports/session-state.d.ts +76 -0
- package/dist/core/transports/session-state.d.ts.map +1 -0
- package/dist/core/transports/session.d.ts +36 -0
- package/dist/core/transports/session.d.ts.map +1 -0
- package/dist/index.cjs +5759 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +347 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +5749 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +89 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { Server } from 'net';
|
|
2
|
+
import { LuaWasmModule, ReplyValue } from 'lua-redis-wasm';
|
|
3
|
+
import { EventEmitter } from 'node:events';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Redis command metadata following Redis COMMAND specification
|
|
7
|
+
* @see https://redis.io/commands/command
|
|
8
|
+
*/
|
|
9
|
+
interface CommandMetadata {
|
|
10
|
+
/** Command name (lowercase) */
|
|
11
|
+
name: string;
|
|
12
|
+
/**
|
|
13
|
+
* Number of arguments
|
|
14
|
+
* Positive: exact count (including command name)
|
|
15
|
+
* Negative: minimum count (abs value), variable args
|
|
16
|
+
* Example: GET = 2 (GET key), MGET = -2 (MGET key [key ...])
|
|
17
|
+
*/
|
|
18
|
+
arity: number;
|
|
19
|
+
/** Command flags */
|
|
20
|
+
flags: CommandFlags;
|
|
21
|
+
/**
|
|
22
|
+
* First key position (0-indexed in args, not including command name)
|
|
23
|
+
* -1 means no keys
|
|
24
|
+
*/
|
|
25
|
+
firstKey: number;
|
|
26
|
+
/**
|
|
27
|
+
* Last key position
|
|
28
|
+
* -1 means last argument is key
|
|
29
|
+
* -2 means second-to-last, etc.
|
|
30
|
+
*/
|
|
31
|
+
lastKey: number;
|
|
32
|
+
/**
|
|
33
|
+
* Step between keys (usually 1)
|
|
34
|
+
* Example: MGET has step 1, MSET has step 2 (key val key val)
|
|
35
|
+
*/
|
|
36
|
+
keyStep: number;
|
|
37
|
+
/**
|
|
38
|
+
* Divisor for remaining args when lastKey=-1
|
|
39
|
+
* @see https://redis.io/docs/latest/develop/reference/key-specs/
|
|
40
|
+
* 0 or 1: no limit (all remaining args are keys)
|
|
41
|
+
* 2: half the remaining args are keys (e.g., MSET key val key val)
|
|
42
|
+
* 3: one-third are keys, etc.
|
|
43
|
+
*/
|
|
44
|
+
limit: number;
|
|
45
|
+
/** Redis command categories */
|
|
46
|
+
categories: CommandCategory[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Command flags following Redis specification
|
|
50
|
+
*/
|
|
51
|
+
interface CommandFlags {
|
|
52
|
+
/** Command doesn't modify data (safe for replicas) */
|
|
53
|
+
readonly?: boolean;
|
|
54
|
+
/** Command modifies data */
|
|
55
|
+
write?: boolean;
|
|
56
|
+
/** Deny command when used memory > maxmemory */
|
|
57
|
+
denyoom?: boolean;
|
|
58
|
+
/** Administrative command */
|
|
59
|
+
admin?: boolean;
|
|
60
|
+
/** Not allowed in Lua scripts */
|
|
61
|
+
noscript?: boolean;
|
|
62
|
+
/** Returns random/non-deterministic results */
|
|
63
|
+
random?: boolean;
|
|
64
|
+
/** Blocking operation (BLPOP, BRPOP, etc.) */
|
|
65
|
+
blocking?: boolean;
|
|
66
|
+
/** O(1) time complexity */
|
|
67
|
+
fast?: boolean;
|
|
68
|
+
/** Keys are not in fixed positions (requires key extraction) */
|
|
69
|
+
movablekeys?: boolean;
|
|
70
|
+
/** Transaction-related command */
|
|
71
|
+
transaction?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Redis command categories
|
|
75
|
+
* @see https://redis.io/commands#command-categories
|
|
76
|
+
*/
|
|
77
|
+
declare enum CommandCategory {
|
|
78
|
+
STRING = "@string",
|
|
79
|
+
HASH = "@hash",
|
|
80
|
+
LIST = "@list",
|
|
81
|
+
SET = "@set",
|
|
82
|
+
ZSET = "@zset",
|
|
83
|
+
KEYS = "@keys",
|
|
84
|
+
GENERIC = "@generic",
|
|
85
|
+
SCRIPT = "@scripting",
|
|
86
|
+
SERVER = "@server",
|
|
87
|
+
CONNECTION = "@connection",
|
|
88
|
+
CLUSTER = "@cluster",
|
|
89
|
+
TRANSACTION = "@transactions",
|
|
90
|
+
PUBSUB = "@pubsub",
|
|
91
|
+
STREAM = "@stream"
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
declare class UserFacedError extends Error {
|
|
95
|
+
toLuaError(): {
|
|
96
|
+
err: Buffer;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
declare class UnknownCommand extends UserFacedError {
|
|
100
|
+
constructor(cmdName: string | Buffer, args: Buffer[] | string[]);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
interface DBCommandExecutor {
|
|
104
|
+
shutdown(): Promise<void>;
|
|
105
|
+
}
|
|
106
|
+
interface ExecutionContext {
|
|
107
|
+
execute(transport: Transport, rawCmd: Buffer, args: Buffer[], signal: AbortSignal): ExecutionContext;
|
|
108
|
+
shutdown(): Promise<void>;
|
|
109
|
+
}
|
|
110
|
+
type CommandResult = string | number | bigint | null | Buffer | UserFacedError | CommandResult[];
|
|
111
|
+
interface Logger {
|
|
112
|
+
info(msg: unknown, metadata?: Record<string, unknown>): void;
|
|
113
|
+
error(msg: unknown, metadata?: Record<string, unknown>): void;
|
|
114
|
+
}
|
|
115
|
+
interface Command {
|
|
116
|
+
/** Command metadata (arity, flags, key positions) */
|
|
117
|
+
readonly metadata: CommandMetadata;
|
|
118
|
+
/**
|
|
119
|
+
* Extract keys from command arguments
|
|
120
|
+
* Used for cluster slot routing and WATCH tracking
|
|
121
|
+
*/
|
|
122
|
+
getKeys(rawCmd: Buffer, args: Buffer[]): Buffer[];
|
|
123
|
+
/**
|
|
124
|
+
* Execute command
|
|
125
|
+
*/
|
|
126
|
+
run(rawCmd: Buffer, args: Buffer[], signal: AbortSignal, transport: Transport): CommandResult | void;
|
|
127
|
+
}
|
|
128
|
+
type SlotRange = [number, number];
|
|
129
|
+
type DiscoveryNode = {
|
|
130
|
+
host: string;
|
|
131
|
+
port: number;
|
|
132
|
+
slots: SlotRange[];
|
|
133
|
+
id: string;
|
|
134
|
+
};
|
|
135
|
+
interface ClusterCommanderFactory {
|
|
136
|
+
createCommander(mySelfId: string): DBCommandExecutor;
|
|
137
|
+
createReadOnlyCommander(mySelfId: string): DBCommandExecutor;
|
|
138
|
+
shutdown(): Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
interface DiscoveryService {
|
|
141
|
+
getAll(): DiscoveryNode[];
|
|
142
|
+
isMaster(id: string): boolean;
|
|
143
|
+
getMaster(id: string): DiscoveryNode;
|
|
144
|
+
getById(id: string): DiscoveryNode;
|
|
145
|
+
getBySlot(slot: number): DiscoveryNode;
|
|
146
|
+
}
|
|
147
|
+
interface Transport {
|
|
148
|
+
write(responseData: CommandResult): void;
|
|
149
|
+
flush(options?: {
|
|
150
|
+
close?: boolean;
|
|
151
|
+
}): void;
|
|
152
|
+
closeAfterFlush(): void;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
declare class Resp2Transport {
|
|
156
|
+
private readonly logger;
|
|
157
|
+
private readonly commandExecutor;
|
|
158
|
+
readonly server: Server;
|
|
159
|
+
constructor(logger: Logger, commandExecutor: DBCommandExecutor);
|
|
160
|
+
private handleConnection;
|
|
161
|
+
listen(port?: number): Promise<void>;
|
|
162
|
+
close(): Promise<void>;
|
|
163
|
+
getAddress(): string;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface LuaCommandContext {
|
|
167
|
+
luaCommands?: Record<string, Command>;
|
|
168
|
+
signal: AbortSignal;
|
|
169
|
+
}
|
|
170
|
+
declare class LuaRuntime {
|
|
171
|
+
private readonly hostState;
|
|
172
|
+
private engine;
|
|
173
|
+
constructor(module: LuaWasmModule);
|
|
174
|
+
eval(script: Buffer, ctx: LuaCommandContext, sha: string): ReplyValue;
|
|
175
|
+
evalWithArgs(script: Buffer, keys: Buffer[], args: Buffer[], ctx: LuaCommandContext, sha: string): ReplyValue;
|
|
176
|
+
private runLuaCommand;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
declare function createCustomCommander(logger: Logger): Promise<CustomCommanderFactory>;
|
|
180
|
+
declare class CustomCommanderFactory {
|
|
181
|
+
private readonly logger;
|
|
182
|
+
private readonly luaRuntime;
|
|
183
|
+
private readonly db;
|
|
184
|
+
constructor(logger: Logger, luaRuntime: LuaRuntime);
|
|
185
|
+
shutdown(): Promise<void>;
|
|
186
|
+
createCommander(): DBCommandExecutor;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
declare class HashDataType {
|
|
190
|
+
private readonly data;
|
|
191
|
+
constructor();
|
|
192
|
+
hset(field: Buffer, value: Buffer): number;
|
|
193
|
+
hget(field: Buffer): Buffer | null;
|
|
194
|
+
hdel(field: Buffer): number;
|
|
195
|
+
hexists(field: Buffer): boolean;
|
|
196
|
+
hgetall(): Buffer[];
|
|
197
|
+
hkeys(): Buffer[];
|
|
198
|
+
hvals(): Buffer[];
|
|
199
|
+
hlen(): number;
|
|
200
|
+
hmget(fields: Buffer[]): (Buffer | null)[];
|
|
201
|
+
hincrby(field: Buffer, increment: number): number;
|
|
202
|
+
hincrbyfloat(field: Buffer, increment: number): number;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
declare class ListDataType {
|
|
206
|
+
private readonly data;
|
|
207
|
+
constructor();
|
|
208
|
+
lpush(value: Buffer): number;
|
|
209
|
+
rpush(value: Buffer): number;
|
|
210
|
+
lpop(): Buffer | null;
|
|
211
|
+
rpop(): Buffer | null;
|
|
212
|
+
llen(): number;
|
|
213
|
+
lindex(index: number): Buffer | null;
|
|
214
|
+
lrange(start: number, stop: number): Buffer[];
|
|
215
|
+
lset(index: number, value: Buffer): boolean;
|
|
216
|
+
lrem(count: number, value: Buffer): number;
|
|
217
|
+
ltrim(start: number, stop: number): void;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
declare class SetDataType {
|
|
221
|
+
private readonly data;
|
|
222
|
+
constructor();
|
|
223
|
+
sadd(value: Buffer): number;
|
|
224
|
+
srem(value: Buffer): number;
|
|
225
|
+
sismember(value: Buffer): boolean;
|
|
226
|
+
smembers(): Buffer[];
|
|
227
|
+
scard(): number;
|
|
228
|
+
spop(): Buffer | null;
|
|
229
|
+
srandmember(count?: number): Buffer | Buffer[] | null;
|
|
230
|
+
sdiff(otherSets: SetDataType[]): Buffer[];
|
|
231
|
+
sinter(otherSets: SetDataType[]): Buffer[];
|
|
232
|
+
sunion(otherSets: SetDataType[]): Buffer[];
|
|
233
|
+
smove(destination: SetDataType, member: Buffer): boolean;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
declare class StreamDataType {
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
declare class StringDataType {
|
|
240
|
+
readonly data: Buffer;
|
|
241
|
+
constructor(data: Buffer);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
declare class SortedSetDataType {
|
|
245
|
+
private readonly memberToScore;
|
|
246
|
+
private readonly scoreToMembers;
|
|
247
|
+
zadd(score: number, member: Buffer): number;
|
|
248
|
+
zrem(member: Buffer): number;
|
|
249
|
+
zscore(member: Buffer): number | null;
|
|
250
|
+
zcard(): number;
|
|
251
|
+
zrange(start: number, stop: number, withScores?: boolean): Buffer[];
|
|
252
|
+
zrevrange(start: number, stop: number, withScores?: boolean): Buffer[];
|
|
253
|
+
zincrby(member: Buffer, increment: number): number;
|
|
254
|
+
zrank(member: Buffer): number | null;
|
|
255
|
+
zrevrank(member: Buffer): number | null;
|
|
256
|
+
zrangebyscore(min: number, max: number): Buffer[];
|
|
257
|
+
zremrangebyscore(min: number, max: number): number;
|
|
258
|
+
private getSortedMembers;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
type DataTypes = HashDataType | ListDataType | SetDataType | StreamDataType | StringDataType | SortedSetDataType;
|
|
262
|
+
/**
|
|
263
|
+
* Store event types emitted by the reactive data store
|
|
264
|
+
*/
|
|
265
|
+
type StoreEvent = {
|
|
266
|
+
type: 'set';
|
|
267
|
+
key: Buffer;
|
|
268
|
+
value: DataTypes;
|
|
269
|
+
} | {
|
|
270
|
+
type: 'del';
|
|
271
|
+
key: Buffer;
|
|
272
|
+
} | {
|
|
273
|
+
type: 'expire';
|
|
274
|
+
key: Buffer;
|
|
275
|
+
expiration: number;
|
|
276
|
+
} | {
|
|
277
|
+
type: 'evict';
|
|
278
|
+
key: Buffer;
|
|
279
|
+
} | {
|
|
280
|
+
type: 'flush';
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* Event names emitted by the store:
|
|
284
|
+
* - 'change': Emitted on every mutation with StoreEvent payload
|
|
285
|
+
* - 'key:<keyString>': Emitted for key-specific changes (for WATCH)
|
|
286
|
+
*/
|
|
287
|
+
interface StoreEvents {
|
|
288
|
+
change: [event: StoreEvent];
|
|
289
|
+
[key: `key:${string}`]: [event: StoreEvent];
|
|
290
|
+
}
|
|
291
|
+
declare class DB extends EventEmitter<StoreEvents> {
|
|
292
|
+
private readonly mapping;
|
|
293
|
+
private readonly timings;
|
|
294
|
+
private readonly data;
|
|
295
|
+
private readonly scriptsStore;
|
|
296
|
+
constructor();
|
|
297
|
+
tryEvict(key: Buffer): boolean;
|
|
298
|
+
get(rawKey: Buffer): DataTypes | null;
|
|
299
|
+
set(rawKey: Buffer, val: DataTypes, expiration?: number): void;
|
|
300
|
+
del(rawKey: Buffer): boolean;
|
|
301
|
+
addScript(script: Buffer): string;
|
|
302
|
+
getScript(sha: string): Buffer | undefined;
|
|
303
|
+
flushScripts(): void;
|
|
304
|
+
getTtl(rawKey: Buffer): number;
|
|
305
|
+
setExpiration(rawKey: Buffer, expiration: number): boolean;
|
|
306
|
+
/**
|
|
307
|
+
* Remove all keys from the current database
|
|
308
|
+
*/
|
|
309
|
+
flushdb(): void;
|
|
310
|
+
/**
|
|
311
|
+
* Remove all keys from all databases (same as flushdb in single-database implementation)
|
|
312
|
+
*/
|
|
313
|
+
flushall(): void;
|
|
314
|
+
/**
|
|
315
|
+
* Get the number of keys in the current database
|
|
316
|
+
* This excludes expired keys
|
|
317
|
+
*/
|
|
318
|
+
size(): number;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
declare function createCustomClusterCommander(logger: Logger, discoveryService: DiscoveryService): Promise<ClusterCommanderFactory>;
|
|
322
|
+
|
|
323
|
+
declare function computeSlotRange(index: number, masters: number): SlotRange;
|
|
324
|
+
declare class ClusterNetwork implements DiscoveryService {
|
|
325
|
+
private readonly logger;
|
|
326
|
+
private readonly slotMapping;
|
|
327
|
+
private readonly transports;
|
|
328
|
+
private commanderFactory?;
|
|
329
|
+
constructor(logger: Logger);
|
|
330
|
+
private resolveAddress;
|
|
331
|
+
private createMasterId;
|
|
332
|
+
private createReplicaId;
|
|
333
|
+
getMaster(id: string): DiscoveryNode;
|
|
334
|
+
isMaster(id: string): boolean;
|
|
335
|
+
getById(id: string): DiscoveryNode;
|
|
336
|
+
getAll(): DiscoveryNode[];
|
|
337
|
+
getBySlot(slot: number): DiscoveryNode;
|
|
338
|
+
init(params: {
|
|
339
|
+
masters: number;
|
|
340
|
+
slaves: number;
|
|
341
|
+
basePort?: number;
|
|
342
|
+
}): Promise<void>;
|
|
343
|
+
shutdown(): Promise<void>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export { ClusterNetwork, CustomCommanderFactory, DB, Resp2Transport, UnknownCommand, UserFacedError, computeSlotRange, createCustomClusterCommander, createCustomCommander };
|
|
347
|
+
export type { ClusterCommanderFactory, Command, CommandResult, DBCommandExecutor, DiscoveryNode, DiscoveryService, ExecutionContext, Logger, SlotRange, Transport };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,GACV,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AAGnF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzE,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA"}
|