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.
Files changed (273) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +170 -0
  3. package/dist/cli.d.ts +13 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.mjs +5923 -0
  6. package/dist/cli.mjs.map +1 -0
  7. package/dist/commanders/custom/base-commander.d.ts +19 -0
  8. package/dist/commanders/custom/base-commander.d.ts.map +1 -0
  9. package/dist/commanders/custom/cluster-router.d.ts +57 -0
  10. package/dist/commanders/custom/cluster-router.d.ts.map +1 -0
  11. package/dist/commanders/custom/clusterCommander.d.ts +39 -0
  12. package/dist/commanders/custom/clusterCommander.d.ts.map +1 -0
  13. package/dist/commanders/custom/commander.d.ts +12 -0
  14. package/dist/commanders/custom/commander.d.ts.map +1 -0
  15. package/dist/commanders/custom/commands/metadata.d.ts +101 -0
  16. package/dist/commanders/custom/commands/metadata.d.ts.map +1 -0
  17. package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts +8 -0
  18. package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts.map +1 -0
  19. package/dist/commanders/custom/commands/redis/client/index.d.ts +9 -0
  20. package/dist/commanders/custom/commands/redis/client/index.d.ts.map +1 -0
  21. package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts +7 -0
  22. package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts.map +1 -0
  23. package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts +7 -0
  24. package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts.map +1 -0
  25. package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts +7 -0
  26. package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts.map +1 -0
  27. package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts +7 -0
  28. package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts.map +1 -0
  29. package/dist/commanders/custom/commands/redis/cluster/index.d.ts +8 -0
  30. package/dist/commanders/custom/commands/redis/cluster/index.d.ts.map +1 -0
  31. package/dist/commanders/custom/commands/redis/command/index.d.ts +6 -0
  32. package/dist/commanders/custom/commands/redis/command/index.d.ts.map +1 -0
  33. package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts +9 -0
  34. package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts.map +1 -0
  35. package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts +8 -0
  36. package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts.map +1 -0
  37. package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts +8 -0
  38. package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts.map +1 -0
  39. package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts +5 -0
  40. package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts.map +1 -0
  41. package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts +9 -0
  42. package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts.map +1 -0
  43. package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts +9 -0
  44. package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts.map +1 -0
  45. package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts +5 -0
  46. package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts.map +1 -0
  47. package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts +5 -0
  48. package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts.map +1 -0
  49. package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts +9 -0
  50. package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts.map +1 -0
  51. package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts +10 -0
  52. package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts.map +1 -0
  53. package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts +10 -0
  54. package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts.map +1 -0
  55. package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts +5 -0
  56. package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts.map +1 -0
  57. package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts +13 -0
  58. package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts.map +1 -0
  59. package/dist/commanders/custom/commands/redis/data/index.d.ts +7 -0
  60. package/dist/commanders/custom/commands/redis/data/index.d.ts.map +1 -0
  61. package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts +5 -0
  62. package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts.map +1 -0
  63. package/dist/commanders/custom/commands/redis/data/keys/del.d.ts +8 -0
  64. package/dist/commanders/custom/commands/redis/data/keys/del.d.ts.map +1 -0
  65. package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts +8 -0
  66. package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts.map +1 -0
  67. package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts +8 -0
  68. package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts.map +1 -0
  69. package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts +8 -0
  70. package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts.map +1 -0
  71. package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts +5 -0
  72. package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts.map +1 -0
  73. package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts +5 -0
  74. package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts.map +1 -0
  75. package/dist/commanders/custom/commands/redis/data/keys/index.d.ts +11 -0
  76. package/dist/commanders/custom/commands/redis/data/keys/index.d.ts.map +1 -0
  77. package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts +5 -0
  78. package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts.map +1 -0
  79. package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts +5 -0
  80. package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts.map +1 -0
  81. package/dist/commanders/custom/commands/redis/data/keys/type.d.ts +5 -0
  82. package/dist/commanders/custom/commands/redis/data/keys/type.d.ts.map +1 -0
  83. package/dist/commanders/custom/commands/redis/data/lists/index.d.ts +11 -0
  84. package/dist/commanders/custom/commands/redis/data/lists/index.d.ts.map +1 -0
  85. package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts +8 -0
  86. package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts.map +1 -0
  87. package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts +5 -0
  88. package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts.map +1 -0
  89. package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts +5 -0
  90. package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts.map +1 -0
  91. package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts +9 -0
  92. package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts.map +1 -0
  93. package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts +9 -0
  94. package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts.map +1 -0
  95. package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts +9 -0
  96. package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts.map +1 -0
  97. package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts +9 -0
  98. package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts.map +1 -0
  99. package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts +9 -0
  100. package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts.map +1 -0
  101. package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts +5 -0
  102. package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts.map +1 -0
  103. package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts +9 -0
  104. package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts.map +1 -0
  105. package/dist/commanders/custom/commands/redis/data/sets/index.d.ts +12 -0
  106. package/dist/commanders/custom/commands/redis/data/sets/index.d.ts.map +1 -0
  107. package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts +9 -0
  108. package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts.map +1 -0
  109. package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts +5 -0
  110. package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts.map +1 -0
  111. package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts +8 -0
  112. package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts.map +1 -0
  113. package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts +8 -0
  114. package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts.map +1 -0
  115. package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts +8 -0
  116. package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts.map +1 -0
  117. package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts +5 -0
  118. package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts.map +1 -0
  119. package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts +9 -0
  120. package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts.map +1 -0
  121. package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts +5 -0
  122. package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts.map +1 -0
  123. package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts +8 -0
  124. package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts.map +1 -0
  125. package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts +9 -0
  126. package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts.map +1 -0
  127. package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts +8 -0
  128. package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts.map +1 -0
  129. package/dist/commanders/custom/commands/redis/data/strings/append.d.ts +8 -0
  130. package/dist/commanders/custom/commands/redis/data/strings/append.d.ts.map +1 -0
  131. package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts +5 -0
  132. package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts.map +1 -0
  133. package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts +8 -0
  134. package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts.map +1 -0
  135. package/dist/commanders/custom/commands/redis/data/strings/get.d.ts +5 -0
  136. package/dist/commanders/custom/commands/redis/data/strings/get.d.ts.map +1 -0
  137. package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts +8 -0
  138. package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts.map +1 -0
  139. package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts +5 -0
  140. package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts.map +1 -0
  141. package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts +8 -0
  142. package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts.map +1 -0
  143. package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts +8 -0
  144. package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts.map +1 -0
  145. package/dist/commanders/custom/commands/redis/data/strings/index.d.ts +14 -0
  146. package/dist/commanders/custom/commands/redis/data/strings/index.d.ts.map +1 -0
  147. package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts +8 -0
  148. package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts.map +1 -0
  149. package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts +9 -0
  150. package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts.map +1 -0
  151. package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts +9 -0
  152. package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts.map +1 -0
  153. package/dist/commanders/custom/commands/redis/data/strings/set.d.ts +29 -0
  154. package/dist/commanders/custom/commands/redis/data/strings/set.d.ts.map +1 -0
  155. package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts +5 -0
  156. package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts.map +1 -0
  157. package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts +12 -0
  158. package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts.map +1 -0
  159. package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts +10 -0
  160. package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts.map +1 -0
  161. package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts +5 -0
  162. package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts.map +1 -0
  163. package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts +9 -0
  164. package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts.map +1 -0
  165. package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts +10 -0
  166. package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts.map +1 -0
  167. package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts +9 -0
  168. package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts.map +1 -0
  169. package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts +8 -0
  170. package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts.map +1 -0
  171. package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts +9 -0
  172. package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts.map +1 -0
  173. package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts +9 -0
  174. package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts.map +1 -0
  175. package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts +10 -0
  176. package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts.map +1 -0
  177. package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts +8 -0
  178. package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts.map +1 -0
  179. package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts +8 -0
  180. package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts.map +1 -0
  181. package/dist/commanders/custom/commands/redis/index.d.ts +39 -0
  182. package/dist/commanders/custom/commands/redis/index.d.ts.map +1 -0
  183. package/dist/commanders/custom/commands/redis/info.d.ts +7 -0
  184. package/dist/commanders/custom/commands/redis/info.d.ts.map +1 -0
  185. package/dist/commanders/custom/commands/redis/monitor.d.ts +5 -0
  186. package/dist/commanders/custom/commands/redis/monitor.d.ts.map +1 -0
  187. package/dist/commanders/custom/commands/redis/ping.d.ts +7 -0
  188. package/dist/commanders/custom/commands/redis/ping.d.ts.map +1 -0
  189. package/dist/commanders/custom/commands/redis/quit.d.ts +5 -0
  190. package/dist/commanders/custom/commands/redis/quit.d.ts.map +1 -0
  191. package/dist/commanders/custom/commands/redis/script/debug.d.ts +7 -0
  192. package/dist/commanders/custom/commands/redis/script/debug.d.ts.map +1 -0
  193. package/dist/commanders/custom/commands/redis/script/eval.d.ts +7 -0
  194. package/dist/commanders/custom/commands/redis/script/eval.d.ts.map +1 -0
  195. package/dist/commanders/custom/commands/redis/script/evalsha.d.ts +7 -0
  196. package/dist/commanders/custom/commands/redis/script/evalsha.d.ts.map +1 -0
  197. package/dist/commanders/custom/commands/redis/script/exists.d.ts +8 -0
  198. package/dist/commanders/custom/commands/redis/script/exists.d.ts.map +1 -0
  199. package/dist/commanders/custom/commands/redis/script/flush.d.ts +7 -0
  200. package/dist/commanders/custom/commands/redis/script/flush.d.ts.map +1 -0
  201. package/dist/commanders/custom/commands/redis/script/help.d.ts +5 -0
  202. package/dist/commanders/custom/commands/redis/script/help.d.ts.map +1 -0
  203. package/dist/commanders/custom/commands/redis/script/index.d.ts +8 -0
  204. package/dist/commanders/custom/commands/redis/script/index.d.ts.map +1 -0
  205. package/dist/commanders/custom/commands/redis/script/kill.d.ts +5 -0
  206. package/dist/commanders/custom/commands/redis/script/kill.d.ts.map +1 -0
  207. package/dist/commanders/custom/commands/redis/script/load.d.ts +5 -0
  208. package/dist/commanders/custom/commands/redis/script/load.d.ts.map +1 -0
  209. package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts +8 -0
  210. package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts.map +1 -0
  211. package/dist/commanders/custom/commands/registry.d.ts +84 -0
  212. package/dist/commanders/custom/commands/registry.d.ts.map +1 -0
  213. package/dist/commanders/custom/data-structures/hash.d.ts +16 -0
  214. package/dist/commanders/custom/data-structures/hash.d.ts.map +1 -0
  215. package/dist/commanders/custom/data-structures/list.d.ts +15 -0
  216. package/dist/commanders/custom/data-structures/list.d.ts.map +1 -0
  217. package/dist/commanders/custom/data-structures/set.d.ts +16 -0
  218. package/dist/commanders/custom/data-structures/set.d.ts.map +1 -0
  219. package/dist/commanders/custom/data-structures/stream.d.ts +3 -0
  220. package/dist/commanders/custom/data-structures/stream.d.ts.map +1 -0
  221. package/dist/commanders/custom/data-structures/string.d.ts +5 -0
  222. package/dist/commanders/custom/data-structures/string.d.ts.map +1 -0
  223. package/dist/commanders/custom/data-structures/zset.d.ts +17 -0
  224. package/dist/commanders/custom/data-structures/zset.d.ts.map +1 -0
  225. package/dist/commanders/custom/db.d.ts +67 -0
  226. package/dist/commanders/custom/db.d.ts.map +1 -0
  227. package/dist/commanders/custom/execution-context.d.ts +12 -0
  228. package/dist/commanders/custom/execution-context.d.ts.map +1 -0
  229. package/dist/commanders/custom/lua-runtime.d.ts +16 -0
  230. package/dist/commanders/custom/lua-runtime.d.ts.map +1 -0
  231. package/dist/commanders/custom/redis-kernel.d.ts +46 -0
  232. package/dist/commanders/custom/redis-kernel.d.ts.map +1 -0
  233. package/dist/commanders/custom/schema/builder.d.ts +24 -0
  234. package/dist/commanders/custom/schema/builder.d.ts.map +1 -0
  235. package/dist/commanders/custom/schema/command-adapter.d.ts +25 -0
  236. package/dist/commanders/custom/schema/command-adapter.d.ts.map +1 -0
  237. package/dist/commanders/custom/schema/index.d.ts +7 -0
  238. package/dist/commanders/custom/schema/index.d.ts.map +1 -0
  239. package/dist/commanders/custom/schema/input-mapper.d.ts +28 -0
  240. package/dist/commanders/custom/schema/input-mapper.d.ts.map +1 -0
  241. package/dist/commanders/custom/schema/registry.d.ts +13 -0
  242. package/dist/commanders/custom/schema/registry.d.ts.map +1 -0
  243. package/dist/commanders/custom/schema/resp-input-mapper.d.ts +20 -0
  244. package/dist/commanders/custom/schema/resp-input-mapper.d.ts.map +1 -0
  245. package/dist/commanders/custom/schema/types.d.ts +43 -0
  246. package/dist/commanders/custom/schema/types.d.ts.map +1 -0
  247. package/dist/core/cluster/network.d.ts +24 -0
  248. package/dist/core/cluster/network.d.ts.map +1 -0
  249. package/dist/core/errors.d.ts +87 -0
  250. package/dist/core/errors.d.ts.map +1 -0
  251. package/dist/core/transports/buffered-transport.d.ts +14 -0
  252. package/dist/core/transports/buffered-transport.d.ts.map +1 -0
  253. package/dist/core/transports/capturing-transport.d.ts +19 -0
  254. package/dist/core/transports/capturing-transport.d.ts.map +1 -0
  255. package/dist/core/transports/command-validator.d.ts +12 -0
  256. package/dist/core/transports/command-validator.d.ts.map +1 -0
  257. package/dist/core/transports/resp2/adapter.d.ts +32 -0
  258. package/dist/core/transports/resp2/adapter.d.ts.map +1 -0
  259. package/dist/core/transports/resp2/index.d.ts +13 -0
  260. package/dist/core/transports/resp2/index.d.ts.map +1 -0
  261. package/dist/core/transports/session-state.d.ts +76 -0
  262. package/dist/core/transports/session-state.d.ts.map +1 -0
  263. package/dist/core/transports/session.d.ts +36 -0
  264. package/dist/core/transports/session.d.ts.map +1 -0
  265. package/dist/index.cjs +5759 -0
  266. package/dist/index.cjs.map +1 -0
  267. package/dist/index.d.ts +347 -0
  268. package/dist/index.d.ts.map +1 -0
  269. package/dist/index.mjs +5749 -0
  270. package/dist/index.mjs.map +1 -0
  271. package/dist/types.d.ts +54 -0
  272. package/dist/types.d.ts.map +1 -0
  273. package/package.json +89 -0
@@ -0,0 +1,16 @@
1
+ import { Command } from '../../types';
2
+ import { ReplyValue, LuaWasmModule } from 'lua-redis-wasm';
3
+ export interface LuaCommandContext {
4
+ luaCommands?: Record<string, Command>;
5
+ signal: AbortSignal;
6
+ }
7
+ export declare class LuaRuntime {
8
+ private readonly hostState;
9
+ private engine;
10
+ constructor(module: LuaWasmModule);
11
+ eval(script: Buffer, ctx: LuaCommandContext, sha: string): ReplyValue;
12
+ evalWithArgs(script: Buffer, keys: Buffer[], args: Buffer[], ctx: LuaCommandContext, sha: string): ReplyValue;
13
+ private runLuaCommand;
14
+ }
15
+ export declare function createLuaRuntime(): Promise<LuaRuntime>;
16
+ //# sourceMappingURL=lua-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua-runtime.d.ts","sourceRoot":"","sources":["../../../src/commanders/custom/lua-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAQ,aAAa,EAAa,MAAM,gBAAgB,CAAA;AAE3E,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,MAAM,EAAE,WAAW,CAAA;CACpB;AAOD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,MAAM,CAAW;gBAEb,MAAM,EAAE,aAAa;IAQjC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM;IAWxD,YAAY,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,MAAM;IAYb,OAAO,CAAC,aAAa;CA+BtB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAG5D"}
@@ -0,0 +1,46 @@
1
+ import { Transport } from '../../types';
2
+ export interface CommandRequest {
3
+ command: Buffer;
4
+ args: Buffer[];
5
+ transport: Transport;
6
+ signal: AbortSignal;
7
+ }
8
+ export interface CommandJob {
9
+ id: string;
10
+ connectionId: string;
11
+ request: CommandRequest;
12
+ resolve: () => void;
13
+ reject: (error: Error) => void;
14
+ /** Optional batch of commands to execute atomically (for EXEC) */
15
+ batch?: CommandRequest[];
16
+ }
17
+ /**
18
+ * Result returned by command handler indicating job status.
19
+ * - void/undefined: Job completed normally
20
+ * - { suspended: Promise }: Job is parked waiting for an event (e.g., BLPOP)
21
+ */
22
+ export type JobHandlerResult = void | {
23
+ suspended: Promise<void>;
24
+ };
25
+ type CommandJobHandler = (job: CommandJob) => Promise<JobHandlerResult>;
26
+ export declare class RedisKernel {
27
+ private readonly handler;
28
+ private queue;
29
+ private isProcessing;
30
+ /** Jobs that are suspended waiting for events (e.g., BLPOP waiting for list push) */
31
+ private suspendedJobs;
32
+ constructor(handler: CommandJobHandler);
33
+ submit(job: CommandJob): void;
34
+ /**
35
+ * Resume processing loop after a suspended job completes.
36
+ * Called when a suspended job's promise resolves.
37
+ */
38
+ private scheduleProcessing;
39
+ private processLoop;
40
+ /**
41
+ * Get the number of currently suspended jobs
42
+ */
43
+ getSuspendedCount(): number;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=redis-kernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-kernel.d.ts","sourceRoot":"","sources":["../../../src/commanders/custom/redis-kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,cAAc,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAC9B,kEAAkE;IAClE,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAA;AAElE,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAEvE,qBAAa,WAAW;IAMV,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,YAAY,CAAQ;IAC5B,qFAAqF;IACrF,OAAO,CAAC,aAAa,CAAgC;gBAExB,OAAO,EAAE,iBAAiB;IAEvD,MAAM,CAAC,GAAG,EAAE,UAAU;IAQtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;YAMZ,WAAW;IAoDzB;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG5B"}
@@ -0,0 +1,24 @@
1
+ import { SchemaCommandDefinition, SchemaType } from './types';
2
+ export declare const t: {
3
+ string(): SchemaType;
4
+ integer(options?: {
5
+ min?: number;
6
+ max?: number;
7
+ }): SchemaType;
8
+ key(): SchemaType;
9
+ flag(name: string): SchemaType;
10
+ literal(value: string): SchemaType;
11
+ sequence(name: string, item: SchemaType): SchemaType;
12
+ named(name: string, item: SchemaType): SchemaType;
13
+ union(options: SchemaType[]): SchemaType;
14
+ xor(options: SchemaType[]): SchemaType;
15
+ options(fields: Record<string, SchemaType>): SchemaType;
16
+ tuple(items: SchemaType[]): SchemaType;
17
+ variadic(item: SchemaType): SchemaType;
18
+ optional(item: SchemaType): SchemaType;
19
+ };
20
+ export declare function cmd<TArgs = unknown, TContext = unknown>(name: string, definition: {
21
+ schema: SchemaType;
22
+ handler: (args: TArgs, ctx: TContext) => Promise<unknown>;
23
+ }): SchemaCommandDefinition<TArgs, TContext>;
24
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE7D,eAAO,MAAM,CAAC;cACF,UAAU;sBAGF;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;WAGtD,UAAU;eAGN,MAAM,GAAG,UAAU;mBAGf,MAAM,GAAG,UAAU;mBAGnB,MAAM,QAAQ,UAAU,GAAG,UAAU;gBAGxC,MAAM,QAAQ,UAAU,GAAG,UAAU;mBAGlC,UAAU,EAAE,GAAG,UAAU;iBAG3B,UAAU,EAAE,GAAG,UAAU;oBAGtB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,UAAU;iBAG1C,UAAU,EAAE,GAAG,UAAU;mBAGvB,UAAU,GAAG,UAAU;mBAGvB,UAAU,GAAG,UAAU;CAGvC,CAAA;AAED,wBAAgB,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EACrD,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE;IACV,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1D,GACA,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAM1C"}
@@ -0,0 +1,25 @@
1
+ import type { Command, CommandResult, ExecutionContext, Transport } from '../../../types';
2
+ import type { CommandMetadata } from '../commands/metadata';
3
+ import type { DB } from '../db';
4
+ import type { LuaRuntime } from '../lua-runtime';
5
+ import type { SchemaType } from './types';
6
+ import type { InputMapper } from './input-mapper';
7
+ export interface SchemaCommandContext {
8
+ db: DB;
9
+ discoveryService?: unknown;
10
+ mySelfId?: string;
11
+ executionContext?: ExecutionContext;
12
+ commands?: Record<string, Command>;
13
+ luaCommands?: Record<string, Command>;
14
+ luaRuntime?: LuaRuntime;
15
+ signal: AbortSignal;
16
+ transport: Transport;
17
+ }
18
+ export interface SchemaCommandRegistration<TArgs = unknown> {
19
+ metadata: CommandMetadata;
20
+ schema: SchemaType;
21
+ handler: (args: TArgs, ctx: SchemaCommandContext) => CommandResult | void;
22
+ getKeys?: (rawCmd: Buffer, args: Buffer[]) => Buffer[];
23
+ }
24
+ export declare function createSchemaCommand(definition: SchemaCommandRegistration<any>, ctx: Omit<SchemaCommandContext, 'signal' | 'transport'>, mapper?: InputMapper<Buffer[]>): Command;
25
+ //# sourceMappingURL=command-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-adapter.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/command-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIjE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,EAAE,CAAA;IACN,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,yBAAyB,CAAC,KAAK,GAAG,OAAO;IACxD,QAAQ,EAAE,eAAe,CAAA;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,oBAAoB,KAAK,aAAa,GAAG,IAAI,CAAA;IACzE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;CACvD;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,yBAAyB,CAAC,GAAG,CAAC,EAC1C,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,WAAW,CAAC,EACvD,MAAM,GAAE,WAAW,CAAC,MAAM,EAAE,CAAyB,GACpD,OAAO,CAET"}
@@ -0,0 +1,7 @@
1
+ export { cmd, t } from './builder';
2
+ export { createSchemaCommand, SchemaCommandContext, SchemaCommandRegistration, } from './command-adapter';
3
+ export { InputMapper, ParseOptions, getSchemaArity, CompiledSchema, compileSchema, } from './input-mapper';
4
+ export { SchemaRegistry, globalSchemaRegistry } from './registry';
5
+ export { RespInputMapper } from './resp-input-mapper';
6
+ export type { SchemaType, SchemaCommandDefinition } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { SchemaType } from './types';
2
+ export interface ParseOptions {
3
+ commandName?: string;
4
+ }
5
+ export interface ArityRange {
6
+ min: number;
7
+ max: number;
8
+ }
9
+ /**
10
+ * A compiled schema with pre-computed arity for efficient parsing
11
+ */
12
+ export interface CompiledSchema {
13
+ schema: SchemaType;
14
+ arity: ArityRange;
15
+ }
16
+ export interface InputMapper<RawInput> {
17
+ /**
18
+ * Validates and converts raw input into the Schema's expected types.
19
+ */
20
+ parse(schema: CompiledSchema, input: RawInput, options?: ParseOptions): unknown;
21
+ }
22
+ /**
23
+ * Compiles a schema by pre-computing its arity.
24
+ * Call this once at command registration time.
25
+ */
26
+ export declare function compileSchema(schema: SchemaType): CompiledSchema;
27
+ export declare function getSchemaArity(schema: SchemaType): ArityRange;
28
+ //# sourceMappingURL=input-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-mapper.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/input-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC;;OAEG;IACH,KAAK,CACH,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAA;CACX;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAKhE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CA8E7D"}
@@ -0,0 +1,13 @@
1
+ import { SchemaCommandDefinition } from './types';
2
+ export declare class SchemaRegistry {
3
+ private commands;
4
+ register(definition: SchemaCommandDefinition): void;
5
+ registerAll(definitions: SchemaCommandDefinition[]): void;
6
+ get(name: string): SchemaCommandDefinition | undefined;
7
+ has(name: string): boolean;
8
+ getAll(): SchemaCommandDefinition[];
9
+ getNames(): string[];
10
+ count(): number;
11
+ }
12
+ export declare const globalSchemaRegistry: SchemaRegistry;
13
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEjD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAA6C;IAE7D,QAAQ,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI;IAUnD,WAAW,CAAC,WAAW,EAAE,uBAAuB,EAAE,GAAG,IAAI;IAIzD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAItD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,MAAM,IAAI,uBAAuB,EAAE;IAInC,QAAQ,IAAI,MAAM,EAAE;IAIpB,KAAK,IAAI,MAAM;CAGhB;AAED,eAAO,MAAM,oBAAoB,gBAAuB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { CompiledSchema, InputMapper, ParseOptions } from './input-mapper';
2
+ export declare class RespInputMapper implements InputMapper<Buffer[]> {
3
+ parse(compiled: CompiledSchema, input: Buffer[], options?: ParseOptions): unknown;
4
+ private parseNode;
5
+ private parseString;
6
+ private parseKey;
7
+ private parseInteger;
8
+ private parseFlag;
9
+ private parseLiteral;
10
+ private parseSequence;
11
+ private parseUnion;
12
+ private parseXor;
13
+ private parseTuple;
14
+ private parseOptions;
15
+ private parseVariadic;
16
+ private parseOptional;
17
+ private matchesKeyword;
18
+ private makeWrongNumberError;
19
+ }
20
+ //# sourceMappingURL=resp-input-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resp-input-mapper.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/resp-input-mapper.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAoB1E,qBAAa,eAAgB,YAAW,WAAW,CAAC,MAAM,EAAE,CAAC;IAC3D,KAAK,CACH,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO;IAgCV,OAAO,CAAC,SAAS;IAiCjB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,YAAY;IAoDpB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -0,0 +1,43 @@
1
+ export type SchemaType = {
2
+ type: 'string';
3
+ } | {
4
+ type: 'integer';
5
+ min?: number;
6
+ max?: number;
7
+ } | {
8
+ type: 'key';
9
+ } | {
10
+ type: 'flag';
11
+ name: string;
12
+ } | {
13
+ type: 'literal';
14
+ value: string;
15
+ } | {
16
+ type: 'sequence';
17
+ name: string;
18
+ item: SchemaType;
19
+ } | {
20
+ type: 'union';
21
+ options: SchemaType[];
22
+ } | {
23
+ type: 'xor';
24
+ options: SchemaType[];
25
+ } | {
26
+ type: 'options';
27
+ fields: Record<string, SchemaType>;
28
+ } | {
29
+ type: 'tuple';
30
+ items: SchemaType[];
31
+ } | {
32
+ type: 'variadic';
33
+ item: SchemaType;
34
+ } | {
35
+ type: 'optional';
36
+ item: SchemaType;
37
+ };
38
+ export interface SchemaCommandDefinition<TArgs = unknown, TContext = unknown> {
39
+ name: string;
40
+ schema: SchemaType;
41
+ handler: (args: TArgs, ctx: TContext) => Promise<unknown>;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/commanders/custom/schema/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAE1C,MAAM,WAAW,uBAAuB,CAAC,KAAK,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO;IAC1E,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1D"}
@@ -0,0 +1,24 @@
1
+ import { DiscoveryNode, DiscoveryService, Logger, SlotRange } from '../../types';
2
+ export declare function computeSlotRange(index: number, masters: number): SlotRange;
3
+ export declare class ClusterNetwork implements DiscoveryService {
4
+ private readonly logger;
5
+ private readonly slotMapping;
6
+ private readonly transports;
7
+ private commanderFactory?;
8
+ constructor(logger: Logger);
9
+ private resolveAddress;
10
+ private createMasterId;
11
+ private createReplicaId;
12
+ getMaster(id: string): DiscoveryNode;
13
+ isMaster(id: string): boolean;
14
+ getById(id: string): DiscoveryNode;
15
+ getAll(): DiscoveryNode[];
16
+ getBySlot(slot: number): DiscoveryNode;
17
+ init(params: {
18
+ masters: number;
19
+ slaves: number;
20
+ basePort?: number;
21
+ }): Promise<void>;
22
+ shutdown(): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/core/cluster/network.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,SAAS,EACV,MAAM,aAAa,CAAA;AAKpB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAW1E;AAED,qBAAa,cAAe,YAAW,gBAAgB;IAKzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,gBAAgB,CAAC,CAAyB;gBAErB,MAAM,EAAE,MAAM;IAE3C,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IASpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAclC,MAAM,IAAI,aAAa,EAAE;IAOzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAahC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IA4DnE,QAAQ;CAIf"}
@@ -0,0 +1,87 @@
1
+ export declare class UserFacedError extends Error {
2
+ toLuaError(): {
3
+ err: Buffer;
4
+ };
5
+ }
6
+ export declare class LuaReplyError extends UserFacedError {
7
+ toString(): string;
8
+ }
9
+ export declare class WrongNumberOfArguments extends UserFacedError {
10
+ constructor(cmdName: string);
11
+ }
12
+ export declare class WrongType extends UserFacedError {
13
+ constructor();
14
+ }
15
+ export declare class InvalidExpireTime extends UserFacedError {
16
+ constructor(cmdName: string);
17
+ }
18
+ export declare class ExpectedInteger extends UserFacedError {
19
+ constructor();
20
+ }
21
+ export declare class ExpectedFloat extends UserFacedError {
22
+ constructor();
23
+ }
24
+ export declare class RedisSyntaxError extends UserFacedError {
25
+ constructor();
26
+ }
27
+ export declare class UnknownCommand extends UserFacedError {
28
+ constructor(cmdName: string | Buffer, args: Buffer[] | string[]);
29
+ }
30
+ export declare class UnknownScriptCommand extends UserFacedError {
31
+ constructor(sha: string);
32
+ }
33
+ export declare class ScriptCallNoCommand extends UserFacedError {
34
+ constructor();
35
+ }
36
+ export declare class UnknwonClusterSubCommand extends UserFacedError {
37
+ constructor(subCommand: string | Buffer);
38
+ }
39
+ export declare class UnknowScriptSubCommand extends UserFacedError {
40
+ constructor(subCommand: string | Buffer);
41
+ }
42
+ export declare class UnknwonClientSubCommand extends UserFacedError {
43
+ constructor(subCommand: string | Buffer);
44
+ }
45
+ export declare class ReadOnlyNode extends UserFacedError {
46
+ constructor();
47
+ }
48
+ export declare class CorssSlot extends UserFacedError {
49
+ constructor();
50
+ }
51
+ export declare class MovedError extends UserFacedError {
52
+ constructor(host: string, port: number, slot: number);
53
+ }
54
+ export declare class WrongNumberOfKeys extends UserFacedError {
55
+ constructor();
56
+ }
57
+ export declare class NoScript extends UserFacedError {
58
+ constructor();
59
+ }
60
+ export declare class NestedMulti extends UserFacedError {
61
+ constructor();
62
+ }
63
+ export declare class TransactionDiscardedWithReson extends UserFacedError {
64
+ constructor(reason: string);
65
+ }
66
+ export declare class TransactionDiscardedWithError extends UserFacedError {
67
+ constructor();
68
+ }
69
+ export declare class OutOfRangeIndex extends UserFacedError {
70
+ constructor();
71
+ }
72
+ export declare class NoMulti extends UserFacedError {
73
+ constructor();
74
+ }
75
+ export declare class HashValueNotInteger extends UserFacedError {
76
+ constructor();
77
+ }
78
+ export declare class HashValueNotFloat extends UserFacedError {
79
+ constructor();
80
+ }
81
+ export declare class UnknownCommandSubCommand extends UserFacedError {
82
+ constructor(subCommand: string | Buffer);
83
+ }
84
+ export declare class InvalidCommandArgs extends UserFacedError {
85
+ constructor(cmdName: string);
86
+ }
87
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IACvC,UAAU,IAAI;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE;CAG9B;AAED,qBAAa,aAAc,SAAQ,cAAc;IAC/C,QAAQ;CAGT;AAED,qBAAa,sBAAuB,SAAQ,cAAc;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,SAAU,SAAQ,cAAc;;CAK5C;AAED,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,cAAc;;CAKlD;AAED,qBAAa,aAAc,SAAQ,cAAc;;CAKhD;AAED,qBAAa,gBAAiB,SAAQ,cAAc;;CAKnD;AAED,qBAAa,cAAe,SAAQ,cAAc;gBACpC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAMhE;AAED,qBAAa,oBAAqB,SAAQ,cAAc;gBAC1C,GAAG,EAAE,MAAM;CAMxB;AAED,qBAAa,mBAAoB,SAAQ,cAAc;;CAKtD;AAED,qBAAa,wBAAyB,SAAQ,cAAc;gBAC9C,UAAU,EAAE,MAAM,GAAG,MAAM;CAIxC;AAED,qBAAa,sBAAuB,SAAQ,cAAc;gBAC5C,UAAU,EAAE,MAAM,GAAG,MAAM;CAIxC;AAED,qBAAa,uBAAwB,SAAQ,cAAc;gBAC7C,UAAU,EAAE,MAAM,GAAG,MAAM;CAIxC;AAED,qBAAa,YAAa,SAAQ,cAAc;;CAK/C;AAED,qBAAa,SAAU,SAAQ,cAAc;;CAK5C;AAED,qBAAa,UAAW,SAAQ,cAAc;gBAChC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAIrD;AAED,qBAAa,iBAAkB,SAAQ,cAAc;;CAKpD;AAED,qBAAa,QAAS,SAAQ,cAAc;;CAK3C;AAED,qBAAa,WAAY,SAAQ,cAAc;;CAK9C;AAED,qBAAa,6BAA8B,SAAQ,cAAc;gBACnD,MAAM,EAAE,MAAM;CAI3B;AAED,qBAAa,6BAA8B,SAAQ,cAAc;;CAKhE;AAED,qBAAa,eAAgB,SAAQ,cAAc;;CAKlD;AAED,qBAAa,OAAQ,SAAQ,cAAc;;CAK1C;AAED,qBAAa,mBAAoB,SAAQ,cAAc;;CAKtD;AAED,qBAAa,iBAAkB,SAAQ,cAAc;;CAKpD;AAED,qBAAa,wBAAyB,SAAQ,cAAc;gBAC9C,UAAU,EAAE,MAAM,GAAG,MAAM;CAIxC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,14 @@
1
+ import { CommandResult, Transport } from '../../types';
2
+ export declare class BufferedTransport implements Transport {
3
+ private readonly inner;
4
+ private result;
5
+ private hasWritten;
6
+ private closeRequested;
7
+ constructor(inner: Transport);
8
+ write(responseData: CommandResult): void;
9
+ flush(options?: {
10
+ close?: boolean;
11
+ }): void;
12
+ closeAfterFlush(): void;
13
+ }
14
+ //# sourceMappingURL=buffered-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffered-transport.d.ts","sourceRoot":"","sources":["../../../src/core/transports/buffered-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEtD,qBAAa,iBAAkB,YAAW,SAAS;IAKrC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJlC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAAQ;gBAED,KAAK,EAAE,SAAS;IAE7C,KAAK,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAWxC,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAW1C,eAAe,IAAI,IAAI;CAGxB"}
@@ -0,0 +1,19 @@
1
+ import { CommandResult, Transport } from '../../types';
2
+ /**
3
+ * CapturingTransport captures responses instead of writing them to a socket.
4
+ * Used during EXEC to collect all command results for the final array response.
5
+ */
6
+ export declare class CapturingTransport implements Transport {
7
+ private result;
8
+ private hasWritten;
9
+ private closed;
10
+ private closeRequested;
11
+ write(responseData: CommandResult): void;
12
+ flush(options?: {
13
+ close?: boolean;
14
+ }): void;
15
+ closeAfterFlush(): void;
16
+ getResults(): CommandResult;
17
+ isClosed(): boolean;
18
+ }
19
+ //# sourceMappingURL=capturing-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capturing-transport.d.ts","sourceRoot":"","sources":["../../../src/core/transports/capturing-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEtD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,cAAc,CAAQ;IAE9B,KAAK,CAAC,YAAY,EAAE,aAAa,GAAG,IAAI;IAWxC,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAQ1C,eAAe,IAAI,IAAI;IAIvB,UAAU,IAAI,aAAa;IAI3B,QAAQ,IAAI,OAAO;CAGpB"}
@@ -0,0 +1,12 @@
1
+ import { Command } from '../../types';
2
+ import { CommandValidator } from './session-state';
3
+ /**
4
+ * Validates commands using the command registry.
5
+ * Used by TransactionState to validate commands before buffering.
6
+ */
7
+ export declare class RegistryCommandValidator implements CommandValidator {
8
+ private readonly commands;
9
+ constructor(commands: Record<string, Command>);
10
+ validate(command: string, args: Buffer[]): void;
11
+ }
12
+ //# sourceMappingURL=command-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-validator.d.ts","sourceRoot":"","sources":["../../../src/core/transports/command-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAOrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE9D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;CAuBhD"}
@@ -0,0 +1,32 @@
1
+ import { Socket } from 'net';
2
+ import { Logger } from '../../../types';
3
+ import { Session } from '../session';
4
+ /**
5
+ * RespAdapter manages a single client connection using the RESP protocol.
6
+ * It uses a Session to track execution state and delegates command handling.
7
+ *
8
+ * Commands from the same connection are processed sequentially using a queue.
9
+ * This ensures that blocking commands (like BLPOP) don't allow subsequent
10
+ * commands to be processed out of order.
11
+ */
12
+ export declare class RespAdapter {
13
+ private readonly logger;
14
+ private readonly socket;
15
+ private readonly session;
16
+ private controller;
17
+ private transport;
18
+ /** Queue of pending commands for this connection */
19
+ private commandQueue;
20
+ /** Whether we're currently processing commands from the queue */
21
+ private isProcessing;
22
+ /** Whether processing is paused due to backpressure */
23
+ private isPaused;
24
+ constructor(logger: Logger, socket: Socket, session: Session);
25
+ /**
26
+ * Process commands from the queue sequentially.
27
+ * Ensures commands from this connection complete in order,
28
+ * even when some commands are suspended (e.g., BLPOP).
29
+ */
30
+ private processQueue;
31
+ }
32
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/core/transports/resp2/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAa,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAoFpC;;;;;;;GAOG;AACH,qBAAa,WAAW;IAWpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,SAAS,CAAe;IAChC,oDAAoD;IACpD,OAAO,CAAC,YAAY,CAAiD;IACrE,iEAAiE;IACjE,OAAO,CAAC,YAAY,CAAQ;IAC5B,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAQ;gBAGL,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO;IA4CnC;;;;OAIG;YACW,YAAY;CA+B3B"}
@@ -0,0 +1,13 @@
1
+ import { Server } from 'net';
2
+ import { DBCommandExecutor, Logger } from '../../../types';
3
+ export declare class Resp2Transport {
4
+ private readonly logger;
5
+ private readonly commandExecutor;
6
+ readonly server: Server;
7
+ constructor(logger: Logger, commandExecutor: DBCommandExecutor);
8
+ private handleConnection;
9
+ listen(port?: number): Promise<void>;
10
+ close(): Promise<void>;
11
+ getAddress(): string;
12
+ }
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/transports/resp2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAwB,MAAM,KAAK,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE1D,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAJlC,SAAgB,MAAM,EAAE,MAAM,CAAA;gBAGX,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,iBAAiB;IAerD,OAAO,CAAC,gBAAgB;IAcxB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,UAAU,IAAI,MAAM;CAUrB"}
@@ -0,0 +1,76 @@
1
+ import { Transport } from '../../types';
2
+ import { CommandRequest } from '../../commanders/custom/redis-kernel';
3
+ /**
4
+ * SessionState represents the current mode of a client connection.
5
+ * Implements the State pattern for handling MULTI/EXEC transactions.
6
+ */
7
+ export interface SessionState {
8
+ /**
9
+ * Handle a command in the current state.
10
+ * Returns the command request to execute, or null if the command was handled internally.
11
+ */
12
+ handle(transport: Transport, command: Buffer, args: Buffer[]): SessionStateTransition;
13
+ }
14
+ /**
15
+ * Result of handling a command in a session state.
16
+ * Contains the next state and optionally a command to execute or a batch to execute.
17
+ */
18
+ export type SessionStateTransition = {
19
+ nextState: SessionState;
20
+ /** Single command to execute immediately */
21
+ executeCommand?: CommandRequest;
22
+ /** Batch of commands to execute atomically (for EXEC) */
23
+ executeBatch?: CommandRequest[];
24
+ };
25
+ /**
26
+ * Interface for command validation.
27
+ * Used by TransactionState to validate commands before buffering.
28
+ */
29
+ export interface CommandValidator {
30
+ validate(command: string, args: Buffer[]): void;
31
+ }
32
+ /**
33
+ * Interface for slot validation in cluster mode.
34
+ * Optional - when provided, TransactionState will validate slot constraints.
35
+ */
36
+ export interface SlotValidator {
37
+ /**
38
+ * Validate the command's slot against a pinned slot.
39
+ * Returns the computed slot, or null if the command has no keys.
40
+ * @throws CorssSlot if keys hash to different slots
41
+ * @throws MovedError if the slot is not owned by this node
42
+ */
43
+ validateSlot(command: string, args: Buffer[], pinnedSlot?: number): number | null;
44
+ }
45
+ /**
46
+ * NormalState: Commands are executed immediately.
47
+ * MULTI transitions to TransactionState.
48
+ *
49
+ * Supports optional slot validation for cluster mode.
50
+ */
51
+ export declare class NormalState implements SessionState {
52
+ private readonly commandValidator;
53
+ private readonly slotValidator?;
54
+ constructor(commandValidator: CommandValidator, slotValidator?: SlotValidator | undefined);
55
+ handle(transport: Transport, command: Buffer, args: Buffer[]): SessionStateTransition;
56
+ }
57
+ /**
58
+ * TransactionState: Commands are buffered until EXEC or DISCARD.
59
+ * EXEC executes the entire buffer atomically.
60
+ * DISCARD returns to NormalState without executing.
61
+ *
62
+ * In cluster mode (when slotValidator is provided), implements slot pinning:
63
+ * 1. The first command with keys "pins" the transaction to a specific slot.
64
+ * 2. Every subsequent command must hash to the same slot.
65
+ */
66
+ export declare class TransactionState implements SessionState {
67
+ private readonly normalState;
68
+ private readonly validator;
69
+ private readonly slotValidator?;
70
+ private readonly buffer;
71
+ private shouldDiscard;
72
+ private pinnedSlot;
73
+ constructor(normalState: SessionState, validator: CommandValidator, slotValidator?: SlotValidator | undefined);
74
+ handle(transport: Transport, command: Buffer, args: Buffer[]): SessionStateTransition;
75
+ }
76
+ //# sourceMappingURL=session-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-state.d.ts","sourceRoot":"","sources":["../../../src/core/transports/session-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAMvC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAErE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,sBAAsB,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,YAAY,CAAA;IACvB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,yDAAyD;IACzD,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;CAChC,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CAAA;CACjB;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,YAAY;IAE5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBADd,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,CAAC,EAAE,aAAa,YAAA;IAGhD,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,sBAAsB;CA0B1B;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IAMjD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAPjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAoB;gBAGnB,WAAW,EAAE,YAAY,EACzB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,CAAC,EAAE,aAAa,YAAA;IAGhD,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,sBAAsB;CA2F1B"}
@@ -0,0 +1,36 @@
1
+ import { Command, Transport } from '../../types';
2
+ import { CommandJob, RedisKernel } from '../../commanders/custom/redis-kernel';
3
+ import { SessionState } from './session-state';
4
+ /**
5
+ * Session represents a single client connection's execution state.
6
+ * It uses the State pattern to handle MULTI/EXEC transactions,
7
+ * and submits commands to the kernel for serialized execution.
8
+ */
9
+ export declare class Session {
10
+ private readonly kernel;
11
+ private currentState;
12
+ private static connectionCounter;
13
+ private jobCounter;
14
+ private readonly connectionId;
15
+ private readonly context;
16
+ constructor(commands: Record<string, Command>, kernel: RedisKernel, initialState: SessionState);
17
+ /**
18
+ * Handle a single command from the client.
19
+ * The state machine determines whether to execute immediately or buffer for transaction.
20
+ */
21
+ handle(transport: Transport, command: Buffer, args: Buffer[], signal: AbortSignal): Promise<void>;
22
+ /**
23
+ * Execute a job (called by the kernel's handler).
24
+ * Handles both single commands and batched transactions.
25
+ */
26
+ executeJob(job: CommandJob): Promise<void>;
27
+ /**
28
+ * Execute a batch of commands atomically.
29
+ * This is called when processing an EXEC command.
30
+ */
31
+ private executeBatch;
32
+ getConnectionId(): string;
33
+ private executeCommand;
34
+ shutdown(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/core/transports/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,SAAS,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAK9C;;;;GAIG;AACH,qBAAa,OAAO;IAShB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAI;IACpC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAG/C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChB,MAAM,EAAE,WAAW,EACpC,YAAY,EAAE,YAAY;IAO5B;;;OAGG;IACG,MAAM,CACV,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IA+ChB;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD;;;OAGG;IACH,OAAO,CAAC,YAAY;IA2CpB,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,cAAc;IAShB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}