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,447 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listsCommands = exports.brpopCommand = exports.blpopCommand = exports.rpoplpushCommand = exports.rpushxCommand = exports.lpushxCommand = exports.ltrimCommand = exports.lremCommand = exports.lsetCommand = exports.lindexCommand = exports.lrangeCommand = exports.llenCommand = exports.rpopCommand = exports.lpopCommand = exports.rpushCommand = exports.lpushCommand = void 0;
4
+ const command_definition_1 = require("../core/command-definition");
5
+ const command_schema_1 = require("../core/command-schema");
6
+ const helpers_1 = require("./helpers");
7
+ const redis_value_1 = require("../core/redis-value");
8
+ const redis_result_1 = require("../core/redis-result");
9
+ const redis_error_1 = require("../core/redis-error");
10
+ function resolveIndex(index, len) {
11
+ return index < 0 ? len + index : index;
12
+ }
13
+ function listRemove(values, count, element) {
14
+ const target = element.toString('binary');
15
+ let removed = 0;
16
+ if (count === 0) {
17
+ for (let i = values.length - 1; i >= 0; i--) {
18
+ if (values[i].toString('binary') === target) {
19
+ values.splice(i, 1);
20
+ removed++;
21
+ }
22
+ }
23
+ }
24
+ else if (count > 0) {
25
+ for (let i = 0; i < values.length && removed < count; i++) {
26
+ if (values[i].toString('binary') === target) {
27
+ values.splice(i, 1);
28
+ removed++;
29
+ i--;
30
+ }
31
+ }
32
+ }
33
+ else {
34
+ const absCount = Math.abs(count);
35
+ for (let i = values.length - 1; i >= 0 && removed < absCount; i--) {
36
+ if (values[i].toString('binary') === target) {
37
+ values.splice(i, 1);
38
+ removed++;
39
+ }
40
+ }
41
+ }
42
+ return removed;
43
+ }
44
+ function popList(args, ctx, side) {
45
+ const count = args.count;
46
+ if (count !== undefined && count < 0) {
47
+ throw new redis_error_1.PositiveCountError();
48
+ }
49
+ const list = ctx.db.getList(args.key);
50
+ if (!list || list.values.length === 0) {
51
+ return count === undefined
52
+ ? (0, helpers_1.bulk)(null)
53
+ : redis_result_1.RedisResult.create(redis_value_1.RedisValue.nullArray());
54
+ }
55
+ if (count === undefined) {
56
+ const result = ctx.db.updateList(args.key, list => {
57
+ const value = side === 'left' ? list.values.shift() : list.values.pop();
58
+ return { value: value ?? null, empty: list.values.length === 0 };
59
+ });
60
+ if (result.empty)
61
+ ctx.db.delete(args.key);
62
+ return (0, helpers_1.bulk)(result.value);
63
+ }
64
+ if (count === 0) {
65
+ return (0, helpers_1.array)([]);
66
+ }
67
+ const result = ctx.db.updateList(args.key, list => {
68
+ const values = side === 'left'
69
+ ? list.values.splice(0, count)
70
+ : list.values.splice(Math.max(0, list.values.length - count));
71
+ return { values, empty: list.values.length === 0 };
72
+ });
73
+ if (result.empty)
74
+ ctx.db.delete(args.key);
75
+ return (0, helpers_1.array)(result.values.map(value => redis_value_1.RedisValue.bulkString(value)));
76
+ }
77
+ exports.lpushCommand = (0, command_definition_1.defineCommand)({
78
+ name: 'lpush',
79
+ schema: command_schema_1.t.object({
80
+ key: command_schema_1.t.key(),
81
+ values: command_schema_1.t.variadic(command_schema_1.t.key(), { min: 1 }),
82
+ }),
83
+ flags: ['write', 'denyoom', 'fast'],
84
+ keys: args => [args.key],
85
+ execute: (args, ctx) => {
86
+ const len = ctx.db.updateList(args.key, list => {
87
+ for (const val of args.values) {
88
+ list.values.unshift(val);
89
+ }
90
+ return list.values.length;
91
+ });
92
+ return (0, helpers_1.integer)(len);
93
+ },
94
+ });
95
+ exports.rpushCommand = (0, command_definition_1.defineCommand)({
96
+ name: 'rpush',
97
+ schema: command_schema_1.t.object({
98
+ key: command_schema_1.t.key(),
99
+ values: command_schema_1.t.variadic(command_schema_1.t.key(), { min: 1 }),
100
+ }),
101
+ flags: ['write', 'denyoom', 'fast'],
102
+ keys: args => [args.key],
103
+ execute: (args, ctx) => {
104
+ const len = ctx.db.updateList(args.key, list => {
105
+ for (const val of args.values) {
106
+ list.values.push(val);
107
+ }
108
+ return list.values.length;
109
+ });
110
+ return (0, helpers_1.integer)(len);
111
+ },
112
+ });
113
+ exports.lpopCommand = (0, command_definition_1.defineCommand)({
114
+ name: 'lpop',
115
+ schema: command_schema_1.t.object({
116
+ key: command_schema_1.t.key(),
117
+ count: command_schema_1.t.optional(command_schema_1.t.integer()),
118
+ }),
119
+ flags: ['write', 'fast'],
120
+ keys: args => [args.key],
121
+ execute: (args, ctx) => popList(args, ctx, 'left'),
122
+ });
123
+ exports.rpopCommand = (0, command_definition_1.defineCommand)({
124
+ name: 'rpop',
125
+ schema: command_schema_1.t.object({
126
+ key: command_schema_1.t.key(),
127
+ count: command_schema_1.t.optional(command_schema_1.t.integer()),
128
+ }),
129
+ flags: ['write', 'fast'],
130
+ keys: args => [args.key],
131
+ execute: (args, ctx) => popList(args, ctx, 'right'),
132
+ });
133
+ exports.llenCommand = (0, command_definition_1.defineCommand)({
134
+ name: 'llen',
135
+ schema: command_schema_1.t.object({
136
+ key: command_schema_1.t.key(),
137
+ }),
138
+ flags: ['readonly', 'fast'],
139
+ keys: args => [args.key],
140
+ execute: (args, ctx) => {
141
+ const list = ctx.db.getList(args.key);
142
+ return (0, helpers_1.integer)(list ? list.values.length : 0);
143
+ },
144
+ });
145
+ exports.lrangeCommand = (0, command_definition_1.defineCommand)({
146
+ name: 'lrange',
147
+ schema: command_schema_1.t.object({
148
+ key: command_schema_1.t.key(),
149
+ start: command_schema_1.t.integer(),
150
+ stop: command_schema_1.t.integer(),
151
+ }),
152
+ flags: ['readonly'],
153
+ keys: args => [args.key],
154
+ execute: (args, ctx) => {
155
+ const list = ctx.db.getList(args.key);
156
+ if (!list || list.values.length === 0)
157
+ return (0, helpers_1.array)([]);
158
+ let start = resolveIndex(args.start, list.values.length);
159
+ let stop = resolveIndex(args.stop, list.values.length);
160
+ start = Math.max(0, start);
161
+ stop = Math.min(list.values.length - 1, stop);
162
+ if (start > stop)
163
+ return (0, helpers_1.array)([]);
164
+ const slice = list.values.slice(start, stop + 1);
165
+ return (0, helpers_1.array)(slice.map(v => redis_value_1.RedisValue.bulkString(v)));
166
+ },
167
+ });
168
+ exports.lindexCommand = (0, command_definition_1.defineCommand)({
169
+ name: 'lindex',
170
+ schema: command_schema_1.t.object({
171
+ key: command_schema_1.t.key(),
172
+ index: command_schema_1.t.integer(),
173
+ }),
174
+ flags: ['readonly'],
175
+ keys: args => [args.key],
176
+ execute: (args, ctx) => {
177
+ const list = ctx.db.getList(args.key);
178
+ if (!list)
179
+ return (0, helpers_1.bulk)(null);
180
+ const idx = resolveIndex(args.index, list.values.length);
181
+ if (idx < 0 || idx >= list.values.length)
182
+ return (0, helpers_1.bulk)(null);
183
+ return (0, helpers_1.bulk)(list.values[idx]);
184
+ },
185
+ });
186
+ exports.lsetCommand = (0, command_definition_1.defineCommand)({
187
+ name: 'lset',
188
+ schema: command_schema_1.t.object({
189
+ key: command_schema_1.t.key(),
190
+ index: command_schema_1.t.integer(),
191
+ value: command_schema_1.t.key(),
192
+ }),
193
+ flags: ['write'],
194
+ keys: args => [args.key],
195
+ execute: (args, ctx) => {
196
+ const list = ctx.db.getList(args.key);
197
+ if (!list)
198
+ throw new redis_error_1.NoSuchKeyError();
199
+ const idx = resolveIndex(args.index, list.values.length);
200
+ if (idx < 0 || idx >= list.values.length)
201
+ throw new redis_error_1.IndexOutOfRangeError();
202
+ ctx.db.updateList(args.key, list => {
203
+ list.values[idx] = args.value;
204
+ });
205
+ return (0, helpers_1.ok)();
206
+ },
207
+ });
208
+ exports.lremCommand = (0, command_definition_1.defineCommand)({
209
+ name: 'lrem',
210
+ schema: command_schema_1.t.object({
211
+ key: command_schema_1.t.key(),
212
+ count: command_schema_1.t.integer(),
213
+ element: command_schema_1.t.key(),
214
+ }),
215
+ flags: ['write'],
216
+ keys: args => [args.key],
217
+ execute: (args, ctx) => {
218
+ const list = ctx.db.getList(args.key);
219
+ if (!list)
220
+ return (0, helpers_1.integer)(0);
221
+ const result = ctx.db.updateList(args.key, list => {
222
+ const removed = listRemove(list.values, args.count, args.element);
223
+ return { removed, empty: list.values.length === 0 };
224
+ });
225
+ if (result.empty)
226
+ ctx.db.delete(args.key);
227
+ return (0, helpers_1.integer)(result.removed);
228
+ },
229
+ });
230
+ exports.ltrimCommand = (0, command_definition_1.defineCommand)({
231
+ name: 'ltrim',
232
+ schema: command_schema_1.t.object({
233
+ key: command_schema_1.t.key(),
234
+ start: command_schema_1.t.integer(),
235
+ stop: command_schema_1.t.integer(),
236
+ }),
237
+ flags: ['write'],
238
+ keys: args => [args.key],
239
+ execute: (args, ctx) => {
240
+ const list = ctx.db.getList(args.key);
241
+ if (!list)
242
+ return (0, helpers_1.ok)();
243
+ const result = ctx.db.updateList(args.key, list => {
244
+ let start = resolveIndex(args.start, list.values.length);
245
+ let stop = resolveIndex(args.stop, list.values.length);
246
+ start = Math.max(0, start);
247
+ stop = Math.min(list.values.length - 1, stop);
248
+ if (start > stop) {
249
+ list.values.length = 0;
250
+ }
251
+ else {
252
+ list.values.splice(0, start);
253
+ list.values.splice(stop - start + 1);
254
+ }
255
+ return { empty: list.values.length === 0 };
256
+ });
257
+ if (result.empty)
258
+ ctx.db.delete(args.key);
259
+ return (0, helpers_1.ok)();
260
+ },
261
+ });
262
+ exports.lpushxCommand = (0, command_definition_1.defineCommand)({
263
+ name: 'lpushx',
264
+ schema: command_schema_1.t.object({
265
+ key: command_schema_1.t.key(),
266
+ values: command_schema_1.t.variadic(command_schema_1.t.key(), { min: 1 }),
267
+ }),
268
+ flags: ['write', 'denyoom', 'fast'],
269
+ keys: args => [args.key],
270
+ execute: (args, ctx) => {
271
+ const list = ctx.db.getList(args.key);
272
+ if (!list)
273
+ return (0, helpers_1.integer)(0);
274
+ const len = ctx.db.updateList(args.key, list => {
275
+ for (const val of args.values) {
276
+ list.values.unshift(val);
277
+ }
278
+ return list.values.length;
279
+ });
280
+ return (0, helpers_1.integer)(len);
281
+ },
282
+ });
283
+ exports.rpushxCommand = (0, command_definition_1.defineCommand)({
284
+ name: 'rpushx',
285
+ schema: command_schema_1.t.object({
286
+ key: command_schema_1.t.key(),
287
+ values: command_schema_1.t.variadic(command_schema_1.t.key(), { min: 1 }),
288
+ }),
289
+ flags: ['write', 'denyoom', 'fast'],
290
+ keys: args => [args.key],
291
+ execute: (args, ctx) => {
292
+ const list = ctx.db.getList(args.key);
293
+ if (!list)
294
+ return (0, helpers_1.integer)(0);
295
+ const len = ctx.db.updateList(args.key, list => {
296
+ for (const val of args.values) {
297
+ list.values.push(val);
298
+ }
299
+ return list.values.length;
300
+ });
301
+ return (0, helpers_1.integer)(len);
302
+ },
303
+ });
304
+ exports.rpoplpushCommand = (0, command_definition_1.defineCommand)({
305
+ name: 'rpoplpush',
306
+ schema: command_schema_1.t.object({
307
+ source: command_schema_1.t.key(),
308
+ destination: command_schema_1.t.key(),
309
+ }),
310
+ flags: ['write', 'denyoom'],
311
+ keys: args => [args.source, args.destination],
312
+ execute: (args, ctx) => {
313
+ const sourceList = ctx.db.getList(args.source);
314
+ if (!sourceList || sourceList.values.length === 0)
315
+ return (0, helpers_1.bulk)(null);
316
+ // Validate destination type before mutating
317
+ ctx.db.getList(args.destination);
318
+ const value = ctx.db.updateList(args.source, list => {
319
+ const val = list.values.pop() ?? null;
320
+ return { val, empty: list.values.length === 0 };
321
+ });
322
+ if (value.empty)
323
+ ctx.db.delete(args.source);
324
+ if (value.val === null)
325
+ return (0, helpers_1.bulk)(null);
326
+ ctx.db.updateList(args.destination, list => {
327
+ list.values.unshift(value.val);
328
+ });
329
+ return (0, helpers_1.bulk)(value.val);
330
+ },
331
+ });
332
+ function tryListPop(keys, side, db) {
333
+ for (const key of keys) {
334
+ const list = db.getList(key);
335
+ if (!list || list.values.length === 0)
336
+ continue;
337
+ const result = db.updateList(key, list => {
338
+ const value = side === 'left' ? list.values.shift() : list.values.pop();
339
+ return { value, empty: list.values.length === 0 };
340
+ });
341
+ if (result.empty)
342
+ db.delete(key);
343
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.array([
344
+ redis_value_1.RedisValue.bulkString(key),
345
+ redis_value_1.RedisValue.bulkString(result.value),
346
+ ]));
347
+ }
348
+ return null;
349
+ }
350
+ async function blockingListPop(keys, timeoutSecs, side, ctx) {
351
+ const timeoutMs = timeoutSecs === 0 ? undefined : Math.ceil(timeoutSecs * 1000);
352
+ const deadline = timeoutMs !== undefined ? Date.now() + timeoutMs : undefined;
353
+ while (true) {
354
+ const remaining = deadline !== undefined ? Math.max(0, deadline - Date.now()) : undefined;
355
+ if (remaining === 0)
356
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.nullArray());
357
+ let wake;
358
+ const waitFor = new Promise(resolve => {
359
+ wake = () => resolve(true);
360
+ });
361
+ const unsubs = keys.map(key => ctx.db.subscribeKey(key, event => {
362
+ if (event.type === 'write')
363
+ wake(true);
364
+ }));
365
+ let woken;
366
+ try {
367
+ woken = await ctx.park({
368
+ waitFor,
369
+ timeoutMs: remaining,
370
+ signal: ctx.signal,
371
+ });
372
+ }
373
+ finally {
374
+ for (const unsub of unsubs) {
375
+ try {
376
+ unsub();
377
+ }
378
+ catch {
379
+ // ignore errors from individual unsubscribers so all are attempted
380
+ }
381
+ }
382
+ }
383
+ if (woken === null)
384
+ return redis_result_1.RedisResult.create(redis_value_1.RedisValue.nullArray());
385
+ const result = tryListPop(keys, side, ctx.db);
386
+ if (result)
387
+ return result;
388
+ }
389
+ }
390
+ exports.blpopCommand = (0, command_definition_1.defineCommand)({
391
+ name: 'blpop',
392
+ schema: command_schema_1.t.custom((input, index, ctx) => {
393
+ if (input.length - index < 2)
394
+ throw new redis_error_1.WrongNumberOfArgumentsError(ctx.commandName);
395
+ const timeout = Number(input[input.length - 1].toString());
396
+ if (isNaN(timeout) || timeout < 0)
397
+ throw new redis_error_1.RedisSyntaxError();
398
+ const keys = Array.from(input.slice(index, input.length - 1));
399
+ return { value: { keys, timeout }, nextIndex: input.length };
400
+ }),
401
+ flags: ['write', 'noscript'],
402
+ keys: args => args.keys,
403
+ execute: (args, ctx) => {
404
+ const immediate = tryListPop(args.keys, 'left', ctx.db);
405
+ if (immediate)
406
+ return immediate;
407
+ return blockingListPop(args.keys, args.timeout, 'left', ctx);
408
+ },
409
+ });
410
+ exports.brpopCommand = (0, command_definition_1.defineCommand)({
411
+ name: 'brpop',
412
+ schema: command_schema_1.t.custom((input, index, ctx) => {
413
+ if (input.length - index < 2)
414
+ throw new redis_error_1.WrongNumberOfArgumentsError(ctx.commandName);
415
+ const timeout = Number(input[input.length - 1].toString());
416
+ if (isNaN(timeout) || timeout < 0)
417
+ throw new redis_error_1.RedisSyntaxError();
418
+ const keys = Array.from(input.slice(index, input.length - 1));
419
+ return { value: { keys, timeout }, nextIndex: input.length };
420
+ }),
421
+ flags: ['write', 'noscript'],
422
+ keys: args => args.keys,
423
+ execute: (args, ctx) => {
424
+ const immediate = tryListPop(args.keys, 'right', ctx.db);
425
+ if (immediate)
426
+ return immediate;
427
+ return blockingListPop(args.keys, args.timeout, 'right', ctx);
428
+ },
429
+ });
430
+ exports.listsCommands = [
431
+ exports.lpushCommand,
432
+ exports.rpushCommand,
433
+ exports.lpopCommand,
434
+ exports.rpopCommand,
435
+ exports.llenCommand,
436
+ exports.lrangeCommand,
437
+ exports.lindexCommand,
438
+ exports.lsetCommand,
439
+ exports.lremCommand,
440
+ exports.ltrimCommand,
441
+ exports.lpushxCommand,
442
+ exports.rpushxCommand,
443
+ exports.rpoplpushCommand,
444
+ exports.blpopCommand,
445
+ exports.brpopCommand,
446
+ ];
447
+ //# sourceMappingURL=lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/commands/lists.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ type ScanOptions = {
2
+ cursor: bigint;
3
+ match?: Buffer;
4
+ count?: number;
5
+ type?: string;
6
+ };
7
+ type KeyedScanOptions = {
8
+ key: Buffer;
9
+ cursor: bigint;
10
+ match?: Buffer;
11
+ count?: number;
12
+ };
13
+ export declare const keysCommand: import("../core/command-definition").CommandDefinition<{
14
+ pattern: Buffer<ArrayBufferLike>;
15
+ }>;
16
+ export declare const scanCommand: import("../core/command-definition").CommandDefinition<ScanOptions>;
17
+ export declare const hscanCommand: import("../core/command-definition").CommandDefinition<KeyedScanOptions>;
18
+ export declare const sscanCommand: import("../core/command-definition").CommandDefinition<KeyedScanOptions>;
19
+ export declare const zscanCommand: import("../core/command-definition").CommandDefinition<KeyedScanOptions>;
20
+ export declare const scanCommands: (import("../core/command-definition").CommandDefinition<{
21
+ pattern: Buffer<ArrayBufferLike>;
22
+ }> | import("../core/command-definition").CommandDefinition<ScanOptions> | import("../core/command-definition").CommandDefinition<KeyedScanOptions>)[];
23
+ export {};
24
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAYA,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW;;EActB,CAAA;AAEF,eAAO,MAAM,WAAW,qEActB,CAAA;AAEF,eAAO,MAAM,YAAY,0EAuBvB,CAAA;AAEF,eAAO,MAAM,YAAY,0EAoBvB,CAAA;AAEF,eAAO,MAAM,YAAY,0EAuBvB,CAAA;AAEF,eAAO,MAAM,YAAY;;sJAMxB,CAAA"}