js-redis-server 0.0.1 → 0.0.3

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 (482) hide show
  1. package/README.md +210 -39
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +191 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/cluster.d.ts +36 -0
  7. package/dist/cluster.d.ts.map +1 -0
  8. package/dist/cluster.js +227 -0
  9. package/dist/cluster.js.map +1 -0
  10. package/dist/commands/cluster.d.ts +11 -0
  11. package/dist/commands/cluster.d.ts.map +1 -0
  12. package/dist/commands/cluster.js +233 -0
  13. package/dist/commands/cluster.js.map +1 -0
  14. package/dist/commands/command.d.ts +6 -0
  15. package/dist/commands/command.d.ts.map +1 -0
  16. package/dist/commands/command.js +390 -0
  17. package/dist/commands/command.js.map +1 -0
  18. package/dist/commands/config.d.ts +9 -0
  19. package/dist/commands/config.d.ts.map +1 -0
  20. package/dist/commands/config.js +142 -0
  21. package/dist/commands/config.js.map +1 -0
  22. package/dist/commands/connection.d.ts +24 -0
  23. package/dist/commands/connection.d.ts.map +1 -0
  24. package/dist/commands/connection.js +470 -0
  25. package/dist/commands/connection.js.map +1 -0
  26. package/dist/commands/hashes.d.ts +64 -0
  27. package/dist/commands/hashes.d.ts.map +1 -0
  28. package/dist/commands/hashes.js +274 -0
  29. package/dist/commands/hashes.js.map +1 -0
  30. package/dist/commands/helpers.d.ts +16 -0
  31. package/dist/commands/helpers.d.ts.map +1 -0
  32. package/dist/commands/helpers.js +77 -0
  33. package/dist/commands/helpers.js.map +1 -0
  34. package/dist/commands/index.d.ts +24 -0
  35. package/dist/commands/index.d.ts.map +1 -0
  36. package/dist/commands/index.js +198 -0
  37. package/dist/commands/index.js.map +1 -0
  38. package/dist/commands/introspection.d.ts +17 -0
  39. package/dist/commands/introspection.d.ts.map +1 -0
  40. package/dist/commands/introspection.js +54 -0
  41. package/dist/commands/introspection.js.map +1 -0
  42. package/dist/commands/keys.d.ts +66 -0
  43. package/dist/commands/keys.d.ts.map +1 -0
  44. package/dist/commands/keys.js +345 -0
  45. package/dist/commands/keys.js.map +1 -0
  46. package/dist/commands/lists.d.ts +73 -0
  47. package/dist/commands/lists.d.ts.map +1 -0
  48. package/dist/commands/lists.js +447 -0
  49. package/dist/commands/lists.js.map +1 -0
  50. package/dist/commands/scan.d.ts +24 -0
  51. package/dist/commands/scan.d.ts.map +1 -0
  52. package/dist/commands/scan.js +316 -0
  53. package/dist/commands/scan.js.map +1 -0
  54. package/dist/commands/scripts.d.ts +22 -0
  55. package/dist/commands/scripts.d.ts.map +1 -0
  56. package/dist/commands/scripts.js +192 -0
  57. package/dist/commands/scripts.js.map +1 -0
  58. package/dist/commands/sets.d.ts +62 -0
  59. package/dist/commands/sets.d.ts.map +1 -0
  60. package/dist/commands/sets.js +436 -0
  61. package/dist/commands/sets.js.map +1 -0
  62. package/dist/commands/streams.d.ts +63 -0
  63. package/dist/commands/streams.d.ts.map +1 -0
  64. package/dist/commands/streams.js +504 -0
  65. package/dist/commands/streams.js.map +1 -0
  66. package/dist/commands/strings.d.ts +96 -0
  67. package/dist/commands/strings.d.ts.map +1 -0
  68. package/dist/commands/strings.js +555 -0
  69. package/dist/commands/strings.js.map +1 -0
  70. package/dist/commands/transactions.d.ts +9 -0
  71. package/dist/commands/transactions.d.ts.map +1 -0
  72. package/dist/commands/transactions.js +89 -0
  73. package/dist/commands/transactions.js.map +1 -0
  74. package/dist/commands/zsets.d.ts +82 -0
  75. package/dist/commands/zsets.d.ts.map +1 -0
  76. package/dist/commands/zsets.js +504 -0
  77. package/dist/commands/zsets.js.map +1 -0
  78. package/dist/core/client-session.d.ts +172 -0
  79. package/dist/core/client-session.d.ts.map +1 -0
  80. package/dist/core/client-session.js +379 -0
  81. package/dist/core/client-session.js.map +1 -0
  82. package/dist/core/command-definition.d.ts +64 -0
  83. package/dist/core/command-definition.d.ts.map +1 -0
  84. package/dist/core/command-definition.js +10 -0
  85. package/dist/core/command-definition.js.map +1 -0
  86. package/dist/core/command-executor.d.ts +103 -0
  87. package/dist/core/command-executor.d.ts.map +1 -0
  88. package/dist/core/command-executor.js +295 -0
  89. package/dist/core/command-executor.js.map +1 -0
  90. package/dist/core/command-registry.d.ts +16 -0
  91. package/dist/core/command-registry.d.ts.map +1 -0
  92. package/dist/core/command-registry.js +35 -0
  93. package/dist/core/command-registry.js.map +1 -0
  94. package/dist/core/command-schema.d.ts +43 -0
  95. package/dist/core/command-schema.d.ts.map +1 -0
  96. package/dist/core/command-schema.js +189 -0
  97. package/dist/core/command-schema.js.map +1 -0
  98. package/dist/core/execution-policies/auth-policy.d.ts +10 -0
  99. package/dist/core/execution-policies/auth-policy.d.ts.map +1 -0
  100. package/dist/core/execution-policies/auth-policy.js +39 -0
  101. package/dist/core/execution-policies/auth-policy.js.map +1 -0
  102. package/dist/core/execution-policies/cluster-policy.d.ts +8 -0
  103. package/dist/core/execution-policies/cluster-policy.d.ts.map +1 -0
  104. package/dist/core/execution-policies/cluster-policy.js +67 -0
  105. package/dist/core/execution-policies/cluster-policy.js.map +1 -0
  106. package/dist/core/execution-policies/index.d.ts +17 -0
  107. package/dist/core/execution-policies/index.d.ts.map +1 -0
  108. package/dist/core/execution-policies/index.js +10 -0
  109. package/dist/core/execution-policies/index.js.map +1 -0
  110. package/dist/core/execution-policies/transaction-policy.d.ts +3 -0
  111. package/dist/core/execution-policies/transaction-policy.d.ts.map +1 -0
  112. package/dist/core/execution-policies/transaction-policy.js +21 -0
  113. package/dist/core/execution-policies/transaction-policy.js.map +1 -0
  114. package/dist/core/lua-runtime.d.ts +15 -0
  115. package/dist/core/lua-runtime.d.ts.map +1 -0
  116. package/dist/core/lua-runtime.js +165 -0
  117. package/dist/core/lua-runtime.js.map +1 -0
  118. package/dist/core/redis-context.d.ts +46 -0
  119. package/dist/core/redis-context.d.ts.map +1 -0
  120. package/dist/core/redis-context.js +46 -0
  121. package/dist/core/redis-context.js.map +1 -0
  122. package/dist/core/redis-error.d.ts +137 -0
  123. package/dist/core/redis-error.d.ts.map +1 -0
  124. package/dist/core/redis-error.js +288 -0
  125. package/dist/core/redis-error.js.map +1 -0
  126. package/dist/core/redis-result.d.ts +15 -0
  127. package/dist/core/redis-result.d.ts.map +1 -0
  128. package/dist/core/redis-result.js +26 -0
  129. package/dist/core/redis-result.js.map +1 -0
  130. package/dist/core/redis-value.d.ts +65 -0
  131. package/dist/core/redis-value.d.ts.map +1 -0
  132. package/dist/core/redis-value.js +45 -0
  133. package/dist/core/redis-value.js.map +1 -0
  134. package/dist/core/resp-encoder.d.ts +9 -0
  135. package/dist/core/resp-encoder.d.ts.map +1 -0
  136. package/dist/core/resp-encoder.js +164 -0
  137. package/dist/core/resp-encoder.js.map +1 -0
  138. package/dist/core/response-stream.d.ts +17 -0
  139. package/dist/core/response-stream.d.ts.map +1 -0
  140. package/dist/core/response-stream.js +10 -0
  141. package/dist/core/response-stream.js.map +1 -0
  142. package/dist/core/transports/connection-transport.d.ts +12 -0
  143. package/dist/core/transports/connection-transport.d.ts.map +1 -0
  144. package/dist/core/transports/connection-transport.js +3 -0
  145. package/dist/core/transports/connection-transport.js.map +1 -0
  146. package/dist/core/transports/in-memory-connection-transport.d.ts +28 -0
  147. package/dist/core/transports/in-memory-connection-transport.d.ts.map +1 -0
  148. package/dist/core/transports/in-memory-connection-transport.js +111 -0
  149. package/dist/core/transports/in-memory-connection-transport.js.map +1 -0
  150. package/dist/core/transports/resp2/decoder.d.ts +19 -0
  151. package/dist/core/transports/resp2/decoder.d.ts.map +1 -0
  152. package/dist/core/transports/resp2/decoder.js +221 -0
  153. package/dist/core/transports/resp2/decoder.js.map +1 -0
  154. package/dist/core/transports/resp2/index.d.ts +2 -12
  155. package/dist/core/transports/resp2/index.d.ts.map +1 -1
  156. package/dist/core/transports/resp2/index.js +9 -0
  157. package/dist/core/transports/resp2/index.js.map +1 -0
  158. package/dist/core/transports/resp2/server.d.ts +28 -0
  159. package/dist/core/transports/resp2/server.d.ts.map +1 -0
  160. package/dist/core/transports/resp2/server.js +86 -0
  161. package/dist/core/transports/resp2/server.js.map +1 -0
  162. package/dist/core/transports/resp2/session-adapter.d.ts +24 -0
  163. package/dist/core/transports/resp2/session-adapter.d.ts.map +1 -0
  164. package/dist/core/transports/resp2/session-adapter.js +93 -0
  165. package/dist/core/transports/resp2/session-adapter.js.map +1 -0
  166. package/dist/core/transports/socket-connection-transport.d.ts +20 -0
  167. package/dist/core/transports/socket-connection-transport.d.ts.map +1 -0
  168. package/dist/core/transports/socket-connection-transport.js +64 -0
  169. package/dist/core/transports/socket-connection-transport.js.map +1 -0
  170. package/dist/core/turn-queue.d.ts +15 -0
  171. package/dist/core/turn-queue.d.ts.map +1 -0
  172. package/dist/core/turn-queue.js +51 -0
  173. package/dist/core/turn-queue.js.map +1 -0
  174. package/dist/index.d.ts +35 -347
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js +157 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/logger.d.ts +6 -0
  179. package/dist/logger.d.ts.map +1 -0
  180. package/dist/logger.js +3 -0
  181. package/dist/logger.js.map +1 -0
  182. package/dist/state/cluster-topology.d.ts +36 -0
  183. package/dist/state/cluster-topology.d.ts.map +1 -0
  184. package/dist/state/cluster-topology.js +109 -0
  185. package/dist/state/cluster-topology.js.map +1 -0
  186. package/dist/state/data-types.d.ts +51 -0
  187. package/dist/state/data-types.d.ts.map +1 -0
  188. package/dist/state/data-types.js +78 -0
  189. package/dist/state/data-types.js.map +1 -0
  190. package/dist/state/database.d.ts +46 -0
  191. package/dist/state/database.d.ts.map +1 -0
  192. package/dist/state/database.js +122 -0
  193. package/dist/state/database.js.map +1 -0
  194. package/dist/state/index.d.ts +14 -0
  195. package/dist/state/index.d.ts.map +1 -0
  196. package/dist/state/index.js +27 -0
  197. package/dist/state/index.js.map +1 -0
  198. package/dist/state/keyspace.d.ts +45 -0
  199. package/dist/state/keyspace.d.ts.map +1 -0
  200. package/dist/state/keyspace.js +181 -0
  201. package/dist/state/keyspace.js.map +1 -0
  202. package/dist/state/mutation-events.d.ts +38 -0
  203. package/dist/state/mutation-events.d.ts.map +1 -0
  204. package/dist/state/mutation-events.js +74 -0
  205. package/dist/state/mutation-events.js.map +1 -0
  206. package/dist/state/pubsub-broker.d.ts +4 -0
  207. package/dist/state/pubsub-broker.d.ts.map +1 -0
  208. package/dist/state/pubsub-broker.js +10 -0
  209. package/dist/state/pubsub-broker.js.map +1 -0
  210. package/dist/state/script-cache.d.ts +10 -0
  211. package/dist/state/script-cache.d.ts.map +1 -0
  212. package/dist/state/script-cache.js +33 -0
  213. package/dist/state/script-cache.js.map +1 -0
  214. package/dist/state/server-state.d.ts +31 -0
  215. package/dist/state/server-state.d.ts.map +1 -0
  216. package/dist/state/server-state.js +44 -0
  217. package/dist/state/server-state.js.map +1 -0
  218. package/package.json +22 -26
  219. package/dist/cli.mjs +0 -5923
  220. package/dist/cli.mjs.map +0 -1
  221. package/dist/commanders/custom/base-commander.d.ts +0 -19
  222. package/dist/commanders/custom/base-commander.d.ts.map +0 -1
  223. package/dist/commanders/custom/cluster-router.d.ts +0 -57
  224. package/dist/commanders/custom/cluster-router.d.ts.map +0 -1
  225. package/dist/commanders/custom/clusterCommander.d.ts +0 -39
  226. package/dist/commanders/custom/clusterCommander.d.ts.map +0 -1
  227. package/dist/commanders/custom/commander.d.ts +0 -12
  228. package/dist/commanders/custom/commander.d.ts.map +0 -1
  229. package/dist/commanders/custom/commands/metadata.d.ts +0 -101
  230. package/dist/commanders/custom/commands/metadata.d.ts.map +0 -1
  231. package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts +0 -8
  232. package/dist/commanders/custom/commands/redis/client/clientSetName.d.ts.map +0 -1
  233. package/dist/commanders/custom/commands/redis/client/index.d.ts +0 -9
  234. package/dist/commanders/custom/commands/redis/client/index.d.ts.map +0 -1
  235. package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts +0 -7
  236. package/dist/commanders/custom/commands/redis/cluster/clusterInfo.d.ts.map +0 -1
  237. package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts +0 -7
  238. package/dist/commanders/custom/commands/redis/cluster/clusterNodes.d.ts.map +0 -1
  239. package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts +0 -7
  240. package/dist/commanders/custom/commands/redis/cluster/clusterShards.d.ts.map +0 -1
  241. package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts +0 -7
  242. package/dist/commanders/custom/commands/redis/cluster/clusterSlots.d.ts.map +0 -1
  243. package/dist/commanders/custom/commands/redis/cluster/index.d.ts +0 -8
  244. package/dist/commanders/custom/commands/redis/cluster/index.d.ts.map +0 -1
  245. package/dist/commanders/custom/commands/redis/command/index.d.ts +0 -6
  246. package/dist/commanders/custom/commands/redis/command/index.d.ts.map +0 -1
  247. package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts +0 -9
  248. package/dist/commanders/custom/commands/redis/data/hashes/hdel.d.ts.map +0 -1
  249. package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts +0 -8
  250. package/dist/commanders/custom/commands/redis/data/hashes/hexists.d.ts.map +0 -1
  251. package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts +0 -8
  252. package/dist/commanders/custom/commands/redis/data/hashes/hget.d.ts.map +0 -1
  253. package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts +0 -5
  254. package/dist/commanders/custom/commands/redis/data/hashes/hgetall.d.ts.map +0 -1
  255. package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts +0 -9
  256. package/dist/commanders/custom/commands/redis/data/hashes/hincrby.d.ts.map +0 -1
  257. package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts +0 -9
  258. package/dist/commanders/custom/commands/redis/data/hashes/hincrbyfloat.d.ts.map +0 -1
  259. package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts +0 -5
  260. package/dist/commanders/custom/commands/redis/data/hashes/hkeys.d.ts.map +0 -1
  261. package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts +0 -5
  262. package/dist/commanders/custom/commands/redis/data/hashes/hlen.d.ts.map +0 -1
  263. package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts +0 -9
  264. package/dist/commanders/custom/commands/redis/data/hashes/hmget.d.ts.map +0 -1
  265. package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts +0 -10
  266. package/dist/commanders/custom/commands/redis/data/hashes/hmset.d.ts.map +0 -1
  267. package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts +0 -10
  268. package/dist/commanders/custom/commands/redis/data/hashes/hset.d.ts.map +0 -1
  269. package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts +0 -5
  270. package/dist/commanders/custom/commands/redis/data/hashes/hvals.d.ts.map +0 -1
  271. package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts +0 -13
  272. package/dist/commanders/custom/commands/redis/data/hashes/index.d.ts.map +0 -1
  273. package/dist/commanders/custom/commands/redis/data/index.d.ts +0 -7
  274. package/dist/commanders/custom/commands/redis/data/index.d.ts.map +0 -1
  275. package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts +0 -5
  276. package/dist/commanders/custom/commands/redis/data/keys/dbsize.d.ts.map +0 -1
  277. package/dist/commanders/custom/commands/redis/data/keys/del.d.ts +0 -8
  278. package/dist/commanders/custom/commands/redis/data/keys/del.d.ts.map +0 -1
  279. package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts +0 -8
  280. package/dist/commanders/custom/commands/redis/data/keys/exists.d.ts.map +0 -1
  281. package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts +0 -8
  282. package/dist/commanders/custom/commands/redis/data/keys/expire.d.ts.map +0 -1
  283. package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts +0 -8
  284. package/dist/commanders/custom/commands/redis/data/keys/expireat.d.ts.map +0 -1
  285. package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts +0 -5
  286. package/dist/commanders/custom/commands/redis/data/keys/flushall.d.ts.map +0 -1
  287. package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts +0 -5
  288. package/dist/commanders/custom/commands/redis/data/keys/flushdb.d.ts.map +0 -1
  289. package/dist/commanders/custom/commands/redis/data/keys/index.d.ts +0 -11
  290. package/dist/commanders/custom/commands/redis/data/keys/index.d.ts.map +0 -1
  291. package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts +0 -5
  292. package/dist/commanders/custom/commands/redis/data/keys/pttl.d.ts.map +0 -1
  293. package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts +0 -5
  294. package/dist/commanders/custom/commands/redis/data/keys/ttl.d.ts.map +0 -1
  295. package/dist/commanders/custom/commands/redis/data/keys/type.d.ts +0 -5
  296. package/dist/commanders/custom/commands/redis/data/keys/type.d.ts.map +0 -1
  297. package/dist/commanders/custom/commands/redis/data/lists/index.d.ts +0 -11
  298. package/dist/commanders/custom/commands/redis/data/lists/index.d.ts.map +0 -1
  299. package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts +0 -8
  300. package/dist/commanders/custom/commands/redis/data/lists/lindex.d.ts.map +0 -1
  301. package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts +0 -5
  302. package/dist/commanders/custom/commands/redis/data/lists/llen.d.ts.map +0 -1
  303. package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts +0 -5
  304. package/dist/commanders/custom/commands/redis/data/lists/lpop.d.ts.map +0 -1
  305. package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts +0 -9
  306. package/dist/commanders/custom/commands/redis/data/lists/lpush.d.ts.map +0 -1
  307. package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts +0 -9
  308. package/dist/commanders/custom/commands/redis/data/lists/lrange.d.ts.map +0 -1
  309. package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts +0 -9
  310. package/dist/commanders/custom/commands/redis/data/lists/lrem.d.ts.map +0 -1
  311. package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts +0 -9
  312. package/dist/commanders/custom/commands/redis/data/lists/lset.d.ts.map +0 -1
  313. package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts +0 -9
  314. package/dist/commanders/custom/commands/redis/data/lists/ltrim.d.ts.map +0 -1
  315. package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts +0 -5
  316. package/dist/commanders/custom/commands/redis/data/lists/rpop.d.ts.map +0 -1
  317. package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts +0 -9
  318. package/dist/commanders/custom/commands/redis/data/lists/rpush.d.ts.map +0 -1
  319. package/dist/commanders/custom/commands/redis/data/sets/index.d.ts +0 -12
  320. package/dist/commanders/custom/commands/redis/data/sets/index.d.ts.map +0 -1
  321. package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts +0 -9
  322. package/dist/commanders/custom/commands/redis/data/sets/sadd.d.ts.map +0 -1
  323. package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts +0 -5
  324. package/dist/commanders/custom/commands/redis/data/sets/scard.d.ts.map +0 -1
  325. package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts +0 -8
  326. package/dist/commanders/custom/commands/redis/data/sets/sdiff.d.ts.map +0 -1
  327. package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts +0 -8
  328. package/dist/commanders/custom/commands/redis/data/sets/sinter.d.ts.map +0 -1
  329. package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts +0 -8
  330. package/dist/commanders/custom/commands/redis/data/sets/sismember.d.ts.map +0 -1
  331. package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts +0 -5
  332. package/dist/commanders/custom/commands/redis/data/sets/smembers.d.ts.map +0 -1
  333. package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts +0 -9
  334. package/dist/commanders/custom/commands/redis/data/sets/smove.d.ts.map +0 -1
  335. package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts +0 -5
  336. package/dist/commanders/custom/commands/redis/data/sets/spop.d.ts.map +0 -1
  337. package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts +0 -8
  338. package/dist/commanders/custom/commands/redis/data/sets/srandmember.d.ts.map +0 -1
  339. package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts +0 -9
  340. package/dist/commanders/custom/commands/redis/data/sets/srem.d.ts.map +0 -1
  341. package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts +0 -8
  342. package/dist/commanders/custom/commands/redis/data/sets/sunion.d.ts.map +0 -1
  343. package/dist/commanders/custom/commands/redis/data/strings/append.d.ts +0 -8
  344. package/dist/commanders/custom/commands/redis/data/strings/append.d.ts.map +0 -1
  345. package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts +0 -5
  346. package/dist/commanders/custom/commands/redis/data/strings/decr.d.ts.map +0 -1
  347. package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts +0 -8
  348. package/dist/commanders/custom/commands/redis/data/strings/decrby.d.ts.map +0 -1
  349. package/dist/commanders/custom/commands/redis/data/strings/get.d.ts +0 -5
  350. package/dist/commanders/custom/commands/redis/data/strings/get.d.ts.map +0 -1
  351. package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts +0 -8
  352. package/dist/commanders/custom/commands/redis/data/strings/getset.d.ts.map +0 -1
  353. package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts +0 -5
  354. package/dist/commanders/custom/commands/redis/data/strings/incr.d.ts.map +0 -1
  355. package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts +0 -8
  356. package/dist/commanders/custom/commands/redis/data/strings/incrby.d.ts.map +0 -1
  357. package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts +0 -8
  358. package/dist/commanders/custom/commands/redis/data/strings/incrbyfloat.d.ts.map +0 -1
  359. package/dist/commanders/custom/commands/redis/data/strings/index.d.ts +0 -14
  360. package/dist/commanders/custom/commands/redis/data/strings/index.d.ts.map +0 -1
  361. package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts +0 -8
  362. package/dist/commanders/custom/commands/redis/data/strings/mget.d.ts.map +0 -1
  363. package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts +0 -9
  364. package/dist/commanders/custom/commands/redis/data/strings/mset.d.ts.map +0 -1
  365. package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts +0 -9
  366. package/dist/commanders/custom/commands/redis/data/strings/msetnx.d.ts.map +0 -1
  367. package/dist/commanders/custom/commands/redis/data/strings/set.d.ts +0 -29
  368. package/dist/commanders/custom/commands/redis/data/strings/set.d.ts.map +0 -1
  369. package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts +0 -5
  370. package/dist/commanders/custom/commands/redis/data/strings/strlen.d.ts.map +0 -1
  371. package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts +0 -12
  372. package/dist/commanders/custom/commands/redis/data/zsets/index.d.ts.map +0 -1
  373. package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts +0 -10
  374. package/dist/commanders/custom/commands/redis/data/zsets/zadd.d.ts.map +0 -1
  375. package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts +0 -5
  376. package/dist/commanders/custom/commands/redis/data/zsets/zcard.d.ts.map +0 -1
  377. package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts +0 -9
  378. package/dist/commanders/custom/commands/redis/data/zsets/zincrby.d.ts.map +0 -1
  379. package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts +0 -10
  380. package/dist/commanders/custom/commands/redis/data/zsets/zrange.d.ts.map +0 -1
  381. package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts +0 -9
  382. package/dist/commanders/custom/commands/redis/data/zsets/zrangebyscore.d.ts.map +0 -1
  383. package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts +0 -8
  384. package/dist/commanders/custom/commands/redis/data/zsets/zrank.d.ts.map +0 -1
  385. package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts +0 -9
  386. package/dist/commanders/custom/commands/redis/data/zsets/zrem.d.ts.map +0 -1
  387. package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts +0 -9
  388. package/dist/commanders/custom/commands/redis/data/zsets/zremrangebyscore.d.ts.map +0 -1
  389. package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts +0 -10
  390. package/dist/commanders/custom/commands/redis/data/zsets/zrevrange.d.ts.map +0 -1
  391. package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts +0 -8
  392. package/dist/commanders/custom/commands/redis/data/zsets/zrevrank.d.ts.map +0 -1
  393. package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts +0 -8
  394. package/dist/commanders/custom/commands/redis/data/zsets/zscore.d.ts.map +0 -1
  395. package/dist/commanders/custom/commands/redis/index.d.ts +0 -39
  396. package/dist/commanders/custom/commands/redis/index.d.ts.map +0 -1
  397. package/dist/commanders/custom/commands/redis/info.d.ts +0 -7
  398. package/dist/commanders/custom/commands/redis/info.d.ts.map +0 -1
  399. package/dist/commanders/custom/commands/redis/monitor.d.ts +0 -5
  400. package/dist/commanders/custom/commands/redis/monitor.d.ts.map +0 -1
  401. package/dist/commanders/custom/commands/redis/ping.d.ts +0 -7
  402. package/dist/commanders/custom/commands/redis/ping.d.ts.map +0 -1
  403. package/dist/commanders/custom/commands/redis/quit.d.ts +0 -5
  404. package/dist/commanders/custom/commands/redis/quit.d.ts.map +0 -1
  405. package/dist/commanders/custom/commands/redis/script/debug.d.ts +0 -7
  406. package/dist/commanders/custom/commands/redis/script/debug.d.ts.map +0 -1
  407. package/dist/commanders/custom/commands/redis/script/eval.d.ts +0 -7
  408. package/dist/commanders/custom/commands/redis/script/eval.d.ts.map +0 -1
  409. package/dist/commanders/custom/commands/redis/script/evalsha.d.ts +0 -7
  410. package/dist/commanders/custom/commands/redis/script/evalsha.d.ts.map +0 -1
  411. package/dist/commanders/custom/commands/redis/script/exists.d.ts +0 -8
  412. package/dist/commanders/custom/commands/redis/script/exists.d.ts.map +0 -1
  413. package/dist/commanders/custom/commands/redis/script/flush.d.ts +0 -7
  414. package/dist/commanders/custom/commands/redis/script/flush.d.ts.map +0 -1
  415. package/dist/commanders/custom/commands/redis/script/help.d.ts +0 -5
  416. package/dist/commanders/custom/commands/redis/script/help.d.ts.map +0 -1
  417. package/dist/commanders/custom/commands/redis/script/index.d.ts +0 -8
  418. package/dist/commanders/custom/commands/redis/script/index.d.ts.map +0 -1
  419. package/dist/commanders/custom/commands/redis/script/kill.d.ts +0 -5
  420. package/dist/commanders/custom/commands/redis/script/kill.d.ts.map +0 -1
  421. package/dist/commanders/custom/commands/redis/script/load.d.ts +0 -5
  422. package/dist/commanders/custom/commands/redis/script/load.d.ts.map +0 -1
  423. package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts +0 -8
  424. package/dist/commanders/custom/commands/redis/script/lua-reply.d.ts.map +0 -1
  425. package/dist/commanders/custom/commands/registry.d.ts +0 -84
  426. package/dist/commanders/custom/commands/registry.d.ts.map +0 -1
  427. package/dist/commanders/custom/data-structures/hash.d.ts +0 -16
  428. package/dist/commanders/custom/data-structures/hash.d.ts.map +0 -1
  429. package/dist/commanders/custom/data-structures/list.d.ts +0 -15
  430. package/dist/commanders/custom/data-structures/list.d.ts.map +0 -1
  431. package/dist/commanders/custom/data-structures/set.d.ts +0 -16
  432. package/dist/commanders/custom/data-structures/set.d.ts.map +0 -1
  433. package/dist/commanders/custom/data-structures/stream.d.ts +0 -3
  434. package/dist/commanders/custom/data-structures/stream.d.ts.map +0 -1
  435. package/dist/commanders/custom/data-structures/string.d.ts +0 -5
  436. package/dist/commanders/custom/data-structures/string.d.ts.map +0 -1
  437. package/dist/commanders/custom/data-structures/zset.d.ts +0 -17
  438. package/dist/commanders/custom/data-structures/zset.d.ts.map +0 -1
  439. package/dist/commanders/custom/db.d.ts +0 -67
  440. package/dist/commanders/custom/db.d.ts.map +0 -1
  441. package/dist/commanders/custom/execution-context.d.ts +0 -12
  442. package/dist/commanders/custom/execution-context.d.ts.map +0 -1
  443. package/dist/commanders/custom/lua-runtime.d.ts +0 -16
  444. package/dist/commanders/custom/lua-runtime.d.ts.map +0 -1
  445. package/dist/commanders/custom/redis-kernel.d.ts +0 -46
  446. package/dist/commanders/custom/redis-kernel.d.ts.map +0 -1
  447. package/dist/commanders/custom/schema/builder.d.ts +0 -24
  448. package/dist/commanders/custom/schema/builder.d.ts.map +0 -1
  449. package/dist/commanders/custom/schema/command-adapter.d.ts +0 -25
  450. package/dist/commanders/custom/schema/command-adapter.d.ts.map +0 -1
  451. package/dist/commanders/custom/schema/index.d.ts +0 -7
  452. package/dist/commanders/custom/schema/index.d.ts.map +0 -1
  453. package/dist/commanders/custom/schema/input-mapper.d.ts +0 -28
  454. package/dist/commanders/custom/schema/input-mapper.d.ts.map +0 -1
  455. package/dist/commanders/custom/schema/registry.d.ts +0 -13
  456. package/dist/commanders/custom/schema/registry.d.ts.map +0 -1
  457. package/dist/commanders/custom/schema/resp-input-mapper.d.ts +0 -20
  458. package/dist/commanders/custom/schema/resp-input-mapper.d.ts.map +0 -1
  459. package/dist/commanders/custom/schema/types.d.ts +0 -43
  460. package/dist/commanders/custom/schema/types.d.ts.map +0 -1
  461. package/dist/core/cluster/network.d.ts +0 -24
  462. package/dist/core/cluster/network.d.ts.map +0 -1
  463. package/dist/core/errors.d.ts +0 -87
  464. package/dist/core/errors.d.ts.map +0 -1
  465. package/dist/core/transports/buffered-transport.d.ts +0 -14
  466. package/dist/core/transports/buffered-transport.d.ts.map +0 -1
  467. package/dist/core/transports/capturing-transport.d.ts +0 -19
  468. package/dist/core/transports/capturing-transport.d.ts.map +0 -1
  469. package/dist/core/transports/command-validator.d.ts +0 -12
  470. package/dist/core/transports/command-validator.d.ts.map +0 -1
  471. package/dist/core/transports/resp2/adapter.d.ts +0 -32
  472. package/dist/core/transports/resp2/adapter.d.ts.map +0 -1
  473. package/dist/core/transports/session-state.d.ts +0 -76
  474. package/dist/core/transports/session-state.d.ts.map +0 -1
  475. package/dist/core/transports/session.d.ts +0 -36
  476. package/dist/core/transports/session.d.ts.map +0 -1
  477. package/dist/index.cjs +0 -5759
  478. package/dist/index.cjs.map +0 -1
  479. package/dist/index.mjs +0 -5749
  480. package/dist/index.mjs.map +0 -1
  481. package/dist/types.d.ts +0 -54
  482. package/dist/types.d.ts.map +0 -1
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisCluster = void 0;
4
+ exports.buildRedisCluster = buildRedisCluster;
5
+ exports.computeSlotRange = computeSlotRange;
6
+ const commands_1 = require("./commands");
7
+ const cluster_1 = require("./commands/cluster");
8
+ const execution_policies_1 = require("./core/execution-policies");
9
+ const server_1 = require("./core/transports/resp2/server");
10
+ const state_1 = require("./state");
11
+ class RedisCluster {
12
+ topology;
13
+ nodes;
14
+ servers;
15
+ replicationLinks;
16
+ constructor(topology, nodes, servers, replicationLinks) {
17
+ this.topology = topology;
18
+ this.nodes = nodes;
19
+ this.servers = [...servers];
20
+ this.replicationLinks = [...replicationLinks];
21
+ }
22
+ async listen() {
23
+ await Promise.all(this.servers.map((server, index) => server.listen(this.nodes[index].port)));
24
+ // Backfill actual ports — when basePort is 0 the OS assigns random ports
25
+ // and the handles/topology need to reflect what was actually bound.
26
+ this.servers.forEach((server, index) => {
27
+ const actualPort = server.getPort();
28
+ this.nodes[index].port = actualPort;
29
+ this.topology.nodes[index].port = actualPort;
30
+ });
31
+ }
32
+ async close() {
33
+ for (const link of this.replicationLinks) {
34
+ link.close();
35
+ }
36
+ await Promise.all(this.servers.map(server => server.close()));
37
+ }
38
+ getAddresses() {
39
+ return this.nodes.map(node => `${node.host}:${node.port}`);
40
+ }
41
+ }
42
+ exports.RedisCluster = RedisCluster;
43
+ function buildRedisCluster(options) {
44
+ validateOptions(options);
45
+ const host = options.host ?? '127.0.0.1';
46
+ const replicas = options.replicasPerMaster ?? 0;
47
+ const totalNodes = options.masters * (replicas + 1);
48
+ if (options.basePort + totalNodes - 1 > 65535) {
49
+ throw new Error('Cluster base-port range exceeds 65535');
50
+ }
51
+ const topologyNodes = [];
52
+ let portOffset = 0;
53
+ // When basePort is 0 the OS assigns each server a random free port. Holding
54
+ // all topology entries at 0 keeps listen() consistent across all nodes;
55
+ // listen() backfills the real bound ports afterwards.
56
+ const allocatePort = () => options.basePort === 0 ? 0 : options.basePort + portOffset++;
57
+ for (let i = 0; i < options.masters; i++) {
58
+ const masterId = `master-${i}`;
59
+ topologyNodes.push({
60
+ id: masterId,
61
+ role: 'master',
62
+ host,
63
+ port: allocatePort(),
64
+ slots: [computeSlotRange(i, options.masters)],
65
+ });
66
+ }
67
+ for (let i = 0; i < options.masters; i++) {
68
+ const masterId = `master-${i}`;
69
+ for (let r = 0; r < replicas; r++) {
70
+ topologyNodes.push({
71
+ id: `replica-${r}-${masterId}`,
72
+ role: 'replica',
73
+ host,
74
+ port: allocatePort(),
75
+ masterId,
76
+ slots: topologyNodes[i].slots,
77
+ });
78
+ }
79
+ }
80
+ const topology = new state_1.RedisClusterTopology(topologyNodes);
81
+ const handles = [];
82
+ const servers = [];
83
+ const replicationLinks = [];
84
+ const nodeStates = createClusterNodeStates(topologyNodes, topology, options.databasesPerNode ?? 1, options.replicaUpdateDelayMs ?? 0, replicationLinks);
85
+ for (const node of topologyNodes) {
86
+ const state = nodeStates.get(node.id);
87
+ if (!state) {
88
+ throw new Error(`Missing state for cluster node ${node.id}`);
89
+ }
90
+ const executor = (0, commands_1.createRedisCommandExecutor)({
91
+ extraCommands: (0, cluster_1.createClusterCommands)(node.id),
92
+ policies: [(0, execution_policies_1.createClusterPolicy)({ localNodeId: node.id, topology })],
93
+ });
94
+ const server = new server_1.Resp2Server({
95
+ server: state,
96
+ executor,
97
+ logger: options.logger,
98
+ nodeRole: node.role,
99
+ });
100
+ handles.push({
101
+ id: node.id,
102
+ role: node.role,
103
+ host: node.host,
104
+ port: node.port,
105
+ server: state,
106
+ });
107
+ servers.push(server);
108
+ }
109
+ return new RedisCluster(topology, handles, servers, replicationLinks);
110
+ }
111
+ function computeSlotRange(masterIndex, masters) {
112
+ if (!Number.isInteger(masters) || masters < 1) {
113
+ throw new Error(`Invalid masters count ${masters}`);
114
+ }
115
+ if (!Number.isInteger(masterIndex) ||
116
+ masterIndex < 0 ||
117
+ masterIndex >= masters) {
118
+ throw new Error(`Invalid master index ${masterIndex}`);
119
+ }
120
+ const start = Math.floor((state_1.REDIS_CLUSTER_SLOT_COUNT * masterIndex) / masters);
121
+ const end = Math.floor((state_1.REDIS_CLUSTER_SLOT_COUNT * (masterIndex + 1)) / masters) - 1;
122
+ return [start, end];
123
+ }
124
+ function validateOptions(options) {
125
+ if (!Number.isInteger(options.masters) || options.masters < 1) {
126
+ throw new Error(`Invalid masters count ${options.masters}`);
127
+ }
128
+ if (options.replicasPerMaster !== undefined &&
129
+ (!Number.isInteger(options.replicasPerMaster) ||
130
+ options.replicasPerMaster < 0)) {
131
+ throw new Error(`Invalid replicasPerMaster ${options.replicasPerMaster}`);
132
+ }
133
+ if (!Number.isInteger(options.basePort) ||
134
+ options.basePort < 0 ||
135
+ options.basePort > 65535) {
136
+ throw new Error(`Invalid basePort ${options.basePort}`);
137
+ }
138
+ if (options.replicaUpdateDelayMs !== undefined &&
139
+ (!Number.isInteger(options.replicaUpdateDelayMs) ||
140
+ options.replicaUpdateDelayMs < 0)) {
141
+ throw new Error(`Invalid replicaUpdateDelayMs ${options.replicaUpdateDelayMs}`);
142
+ }
143
+ }
144
+ function createClusterNodeStates(nodes, topology, databaseCount, replicaUpdateDelayMs, replicationLinks) {
145
+ const states = new Map();
146
+ for (const node of nodes) {
147
+ states.set(node.id, new state_1.RedisServerState({
148
+ databaseCount,
149
+ clusterTopology: topology,
150
+ }));
151
+ }
152
+ for (const node of nodes) {
153
+ if (node.role !== 'replica') {
154
+ continue;
155
+ }
156
+ const master = node.masterId ? states.get(node.masterId) : undefined;
157
+ const replica = states.get(node.id);
158
+ if (!master || !replica) {
159
+ throw new Error(`Replica ${node.id} references missing master state`);
160
+ }
161
+ replicationLinks.push(...createReplicationLinks(master, replica, replicaUpdateDelayMs));
162
+ }
163
+ return states;
164
+ }
165
+ function createReplicationLinks(master, replica, delayMs) {
166
+ return master.databases.map((masterDb, index) => {
167
+ const replicaDb = replica.getDatabase(index);
168
+ syncDatabase(masterDb, replicaDb);
169
+ return new DatabaseReplicationLink(masterDb, replicaDb, delayMs);
170
+ });
171
+ }
172
+ function syncDatabase(master, replica) {
173
+ replica.flush();
174
+ for (const entry of master.entriesSnapshot()) {
175
+ replica.set(entry.key, entry.value, { expiresAt: entry.expiresAt });
176
+ }
177
+ }
178
+ class DatabaseReplicationLink {
179
+ replica;
180
+ delayMs;
181
+ unsubscribe;
182
+ timers = new Set();
183
+ constructor(master, replica, delayMs) {
184
+ this.replica = replica;
185
+ this.delayMs = delayMs;
186
+ this.unsubscribe = master.subscribe(event => this.replicate(event));
187
+ }
188
+ close() {
189
+ this.unsubscribe();
190
+ for (const timer of this.timers) {
191
+ clearTimeout(timer);
192
+ }
193
+ this.timers.clear();
194
+ }
195
+ replicate(event) {
196
+ if (this.delayMs === 0) {
197
+ applyReplicationEvent(this.replica, event);
198
+ return;
199
+ }
200
+ const timer = setTimeout(() => {
201
+ this.timers.delete(timer);
202
+ applyReplicationEvent(this.replica, event);
203
+ }, this.delayMs);
204
+ this.timers.add(timer);
205
+ }
206
+ }
207
+ function applyReplicationEvent(replica, event) {
208
+ switch (event.type) {
209
+ case 'write':
210
+ replica.set(event.key, event.value, { expiresAt: event.expiresAt });
211
+ return;
212
+ case 'delete':
213
+ case 'evict':
214
+ replica.delete(event.key);
215
+ return;
216
+ case 'expire':
217
+ replica.expire(event.key, event.expiresAt);
218
+ return;
219
+ case 'persist':
220
+ replica.persist(event.key);
221
+ return;
222
+ case 'flush':
223
+ replica.flush();
224
+ return;
225
+ }
226
+ }
227
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../src/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type CommandDefinition } from '../core/command-definition';
2
+ /**
3
+ * Builds the CLUSTER command bound to a specific node id. Each cluster node
4
+ * gets its own definition so that subcommands like NODES/MYID can report the
5
+ * "myself" marker correctly. Topology is read from ctx.server at execute time.
6
+ */
7
+ export declare function createClusterCommand(localNodeId: string): CommandDefinition;
8
+ export declare function createClusterCommands(localNodeId: string): readonly CommandDefinition[];
9
+ export declare const readonlyCommand: CommandDefinition<{}>;
10
+ export declare const readwriteCommand: CommandDefinition<{}>;
11
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/commands/cluster.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAA;AAenC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CA8D3E;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,GAClB,SAAS,iBAAiB,EAAE,CAE9B;AAED,eAAO,MAAM,eAAe,uBAS1B,CAAA;AAEF,eAAO,MAAM,gBAAgB,uBAS3B,CAAA"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readwriteCommand = exports.readonlyCommand = void 0;
4
+ exports.createClusterCommand = createClusterCommand;
5
+ exports.createClusterCommands = createClusterCommands;
6
+ const command_definition_1 = require("../core/command-definition");
7
+ const command_schema_1 = require("../core/command-schema");
8
+ const redis_error_1 = require("../core/redis-error");
9
+ const redis_result_1 = require("../core/redis-result");
10
+ const redis_value_1 = require("../core/redis-value");
11
+ const state_1 = require("../state");
12
+ const introspection_1 = require("./introspection");
13
+ /**
14
+ * Builds the CLUSTER command bound to a specific node id. Each cluster node
15
+ * gets its own definition so that subcommands like NODES/MYID can report the
16
+ * "myself" marker correctly. Topology is read from ctx.server at execute time.
17
+ */
18
+ function createClusterCommand(localNodeId) {
19
+ return (0, command_definition_1.defineCommand)({
20
+ name: 'cluster',
21
+ schema: command_schema_1.t.object({
22
+ subcommand: command_schema_1.t.string(),
23
+ rest: command_schema_1.t.variadic(command_schema_1.t.bulk()),
24
+ }),
25
+ flags: ['admin'],
26
+ introspection: {
27
+ arity: -2,
28
+ flags: ['admin'],
29
+ firstKey: 0,
30
+ lastKey: 0,
31
+ keyStep: 0,
32
+ categories: ['@admin', '@slow', '@dangerous'],
33
+ keySpecs: [],
34
+ subcommands: [
35
+ (0, introspection_1.commandSubcommandInfo)('cluster|info', 2, {
36
+ categories: ['@admin', '@slow', '@dangerous'],
37
+ }),
38
+ (0, introspection_1.commandSubcommandInfo)('cluster|nodes', 2, {
39
+ categories: ['@admin', '@slow', '@dangerous'],
40
+ }),
41
+ (0, introspection_1.commandSubcommandInfo)('cluster|slots', 2, {
42
+ categories: ['@admin', '@slow', '@dangerous'],
43
+ }),
44
+ (0, introspection_1.commandSubcommandInfo)('cluster|shards', 2, {
45
+ categories: ['@admin', '@slow', '@dangerous'],
46
+ }),
47
+ (0, introspection_1.commandSubcommandInfo)('cluster|myid', 2, {
48
+ categories: ['@admin', '@slow', '@dangerous'],
49
+ }),
50
+ ],
51
+ },
52
+ keys: () => [],
53
+ execute: (args, ctx) => {
54
+ const topology = ctx.server.clusterTopology;
55
+ const subcommand = args.subcommand.toLowerCase();
56
+ switch (subcommand) {
57
+ case 'slots':
58
+ expectClusterRestLength(args.rest, 'cluster|slots');
59
+ return clusterSlots(topology);
60
+ case 'shards':
61
+ expectClusterRestLength(args.rest, 'cluster|shards');
62
+ return clusterShards(topology);
63
+ case 'nodes':
64
+ expectClusterRestLength(args.rest, 'cluster|nodes');
65
+ return clusterNodes(topology, localNodeId);
66
+ case 'info':
67
+ expectClusterRestLength(args.rest, 'cluster|info');
68
+ return clusterInfo(topology, localNodeId);
69
+ case 'myid':
70
+ expectClusterRestLength(args.rest, 'cluster|myid');
71
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.bulkString(Buffer.from(localNodeId)));
72
+ default:
73
+ throw new redis_error_1.UnknownClusterSubcommandError(args.subcommand);
74
+ }
75
+ },
76
+ });
77
+ }
78
+ function createClusterCommands(localNodeId) {
79
+ return [createClusterCommand(localNodeId), exports.readonlyCommand, exports.readwriteCommand];
80
+ }
81
+ exports.readonlyCommand = (0, command_definition_1.defineCommand)({
82
+ name: 'readonly',
83
+ schema: command_schema_1.t.object({}),
84
+ flags: ['readonly', 'fast'],
85
+ keys: () => [],
86
+ execute: (_args, ctx) => {
87
+ ctx.session.setClusterReadOnly(true);
88
+ return redis_result_1.RedisResult.ok();
89
+ },
90
+ });
91
+ exports.readwriteCommand = (0, command_definition_1.defineCommand)({
92
+ name: 'readwrite',
93
+ schema: command_schema_1.t.object({}),
94
+ flags: ['readonly', 'fast'],
95
+ keys: () => [],
96
+ execute: (_args, ctx) => {
97
+ ctx.session.setClusterReadOnly(false);
98
+ return redis_result_1.RedisResult.ok();
99
+ },
100
+ });
101
+ function expectClusterRestLength(rest, commandName) {
102
+ if (rest.length !== 0) {
103
+ throw new redis_error_1.WrongNumberOfArgumentsError(commandName);
104
+ }
105
+ }
106
+ function masters(topology) {
107
+ return topology.nodes.filter(node => node.role === 'master');
108
+ }
109
+ function replicasOf(topology, masterId) {
110
+ return topology.nodes.filter(node => node.role === 'replica' && node.masterId === masterId);
111
+ }
112
+ function nodeEntry(node) {
113
+ return redis_value_1.RedisValue.array([
114
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.host)),
115
+ redis_value_1.RedisValue.integer(node.port),
116
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.id)),
117
+ redis_value_1.RedisValue.array([]),
118
+ ]);
119
+ }
120
+ function clusterSlots(topology) {
121
+ const slots = [];
122
+ for (const master of masters(topology)) {
123
+ const master_ = nodeEntry(master);
124
+ const replicas = replicasOf(topology, master.id).map(nodeEntry);
125
+ for (const [min, max] of master.slots) {
126
+ slots.push(redis_value_1.RedisValue.array([
127
+ redis_value_1.RedisValue.integer(min),
128
+ redis_value_1.RedisValue.integer(max),
129
+ master_,
130
+ ...replicas,
131
+ ]));
132
+ }
133
+ }
134
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.array(slots));
135
+ }
136
+ function clusterShards(topology) {
137
+ const shards = [];
138
+ for (const master of masters(topology)) {
139
+ const slotRanges = [];
140
+ for (const [min, max] of master.slots) {
141
+ slotRanges.push(redis_value_1.RedisValue.integer(min), redis_value_1.RedisValue.integer(max));
142
+ }
143
+ const shardNodes = [master, ...replicasOf(topology, master.id)].map(node => redis_value_1.RedisValue.map([
144
+ [
145
+ redis_value_1.RedisValue.bulkString(Buffer.from('id')),
146
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.id)),
147
+ ],
148
+ [
149
+ redis_value_1.RedisValue.bulkString(Buffer.from('port')),
150
+ redis_value_1.RedisValue.integer(node.port),
151
+ ],
152
+ [
153
+ redis_value_1.RedisValue.bulkString(Buffer.from('ip')),
154
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.host)),
155
+ ],
156
+ [
157
+ redis_value_1.RedisValue.bulkString(Buffer.from('endpoint')),
158
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.host)),
159
+ ],
160
+ [
161
+ redis_value_1.RedisValue.bulkString(Buffer.from('role')),
162
+ redis_value_1.RedisValue.bulkString(Buffer.from(node.role)),
163
+ ],
164
+ [
165
+ redis_value_1.RedisValue.bulkString(Buffer.from('replication-offset')),
166
+ redis_value_1.RedisValue.integer(0),
167
+ ],
168
+ [
169
+ redis_value_1.RedisValue.bulkString(Buffer.from('health')),
170
+ redis_value_1.RedisValue.bulkString(Buffer.from('online')),
171
+ ],
172
+ ]));
173
+ shards.push(redis_value_1.RedisValue.map([
174
+ [
175
+ redis_value_1.RedisValue.bulkString(Buffer.from('slots')),
176
+ redis_value_1.RedisValue.array(slotRanges),
177
+ ],
178
+ [
179
+ redis_value_1.RedisValue.bulkString(Buffer.from('nodes')),
180
+ redis_value_1.RedisValue.array(shardNodes),
181
+ ],
182
+ ]));
183
+ }
184
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.array(shards));
185
+ }
186
+ function clusterNodes(topology, localNodeId) {
187
+ const masterList = masters(topology);
188
+ const epochs = new Map();
189
+ masterList.forEach((master, index) => epochs.set(master.id, index + 1));
190
+ const lines = [];
191
+ for (const node of topology.nodes) {
192
+ const epoch = node.role === 'master'
193
+ ? (epochs.get(node.id) ?? 0)
194
+ : (epochs.get(node.masterId ?? '') ?? 0);
195
+ lines.push(formatNodeLine(node, localNodeId, epoch));
196
+ }
197
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.bulkString(Buffer.from(lines.join(''))));
198
+ }
199
+ function formatNodeLine(node, localNodeId, configEpoch) {
200
+ const connection = `${node.host}:${node.port}@${node.port}`;
201
+ const myself = node.id === localNodeId ? 'myself,' : '';
202
+ const roleField = node.role === 'master' ? 'master -' : `slave ${node.masterId}`;
203
+ const ping = `0 ${Date.now()}`;
204
+ const slots = node.role === 'master'
205
+ ? node.slots.map(([min, max]) => ` ${min}-${max}`).join('')
206
+ : '';
207
+ return `${node.id} ${connection} ${myself}${roleField} ${ping} ${configEpoch} connected${slots}\n`;
208
+ }
209
+ function clusterInfo(topology, localNodeId) {
210
+ const masterList = masters(topology);
211
+ const knownNodes = topology.nodes.length;
212
+ const size = masterList.length;
213
+ const local = topology.getNode(localNodeId);
214
+ const myMasterId = local?.role === 'replica' ? (local.masterId ?? localNodeId) : localNodeId;
215
+ const myEpoch = masterList.findIndex(master => master.id === myMasterId) + 1;
216
+ const lines = [
217
+ 'cluster_enabled:1',
218
+ 'cluster_state:ok',
219
+ `cluster_slots_assigned:${state_1.REDIS_CLUSTER_SLOT_COUNT}`,
220
+ `cluster_slots_ok:${state_1.REDIS_CLUSTER_SLOT_COUNT}`,
221
+ 'cluster_slots_pfail:0',
222
+ 'cluster_slots_fail:0',
223
+ `cluster_known_nodes:${knownNodes}`,
224
+ `cluster_size:${size}`,
225
+ `cluster_current_epoch:${size}`,
226
+ `cluster_my_epoch:${myEpoch}`,
227
+ 'cluster_stats_messages_sent:0',
228
+ 'cluster_stats_messages_received:0',
229
+ 'total_cluster_links_buffer_limit_exceeded:0',
230
+ ];
231
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.bulkString(Buffer.from(`${lines.join('\r\n')}\r\n`)));
232
+ }
233
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/commands/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type CommandDefinition } from '../core/command-definition';
2
+ export declare const commandCommand: CommandDefinition<{
3
+ subcommand: string | undefined;
4
+ args: Buffer<ArrayBufferLike>[];
5
+ }>;
6
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/commands/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAKvB,MAAM,4BAA4B,CAAA;AA6DnC,eAAO,MAAM,cAAc;;;EAoCzB,CAAA"}