@upstash/redis 0.2.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,695 @@
1
+ declare type HttpRequest = {
2
+ path?: string[];
3
+ /**
4
+ * Request body will be serialized to json
5
+ */
6
+ body?: unknown;
7
+ headers?: Record<string, string>;
8
+ retries?: number;
9
+ };
10
+ declare type HttpClientConfig = {
11
+ headers?: Record<string, string>;
12
+ baseUrl: string;
13
+ options?: {
14
+ backend?: string;
15
+ };
16
+ };
17
+ declare class HttpClient {
18
+ baseUrl: string;
19
+ headers: Record<string, string>;
20
+ readonly options?: {
21
+ backend?: string;
22
+ };
23
+ constructor(config: HttpClientConfig);
24
+ private request;
25
+ post<TResponse>(req: HttpRequest): Promise<TResponse>;
26
+ }
27
+
28
+ /**
29
+ * Command offers default (de)serialization and the exec method to all commands.
30
+ *
31
+ * TData represents what the user will enter or receive,
32
+ * TResult is the raw data returned from upstash, which may need to be transformed or parsed.
33
+ */
34
+ declare abstract class Command<TData, TResult> {
35
+ readonly command: string[];
36
+ deserialize: (result: TResult) => TData;
37
+ /**
38
+ * Create a new command instance.
39
+ *
40
+ * You can define a custom `deserialize` function. By default we try to deserialize as json.
41
+ */
42
+ constructor(command: (string | unknown)[], opts?: {
43
+ deserialize?: (result: TResult) => TData;
44
+ });
45
+ /**
46
+ * Execute the command using a client.
47
+ */
48
+ exec(client: HttpClient): Promise<TData>;
49
+ }
50
+
51
+ /**
52
+ * @see https://redis.io/commands/append
53
+ */
54
+ declare class AppendCommand extends Command<number, number> {
55
+ constructor(key: string, value: string);
56
+ }
57
+
58
+ /**
59
+ * @see https://redis.io/commands/bitcount
60
+ */
61
+ declare class BitCountCommand extends Command<number, number> {
62
+ constructor(key: string, start?: never, end?: never);
63
+ constructor(key: string, start: number, end: number);
64
+ }
65
+
66
+ /**
67
+ * @see https://redis.io/commands/bitpos
68
+ */
69
+ declare class BitPosCommand extends Command<number, number> {
70
+ constructor(key: string, start: number, end: number);
71
+ }
72
+
73
+ /**
74
+ * @see https://redis.io/commands/decr
75
+ */
76
+ declare class DecrCommand extends Command<number, number> {
77
+ constructor(key: string);
78
+ }
79
+
80
+ /**
81
+ * @see https://redis.io/commands/decrby
82
+ */
83
+ declare class DecrByCommand extends Command<number, number> {
84
+ constructor(key: string, decrement: number);
85
+ }
86
+
87
+ declare type NonEmptyArray<T> = [T, ...T[]];
88
+ declare type CommandArgs<TCommand extends new (...args: any) => any> = ConstructorParameters<TCommand>;
89
+
90
+ /**
91
+ * @see https://redis.io/commands/del
92
+ */
93
+ declare class DelCommand extends Command<number, number> {
94
+ constructor(...keys: NonEmptyArray<string>);
95
+ }
96
+
97
+ /**
98
+ * @see https://redis.io/commands/echo
99
+ */
100
+ declare class EchoCommand extends Command<string, string> {
101
+ constructor(message: string);
102
+ }
103
+
104
+ /**
105
+ * @see https://redis.io/commands/exists
106
+ */
107
+ declare class ExistsCommand extends Command<0 | 1, "0" | "1"> {
108
+ constructor(...keys: NonEmptyArray<string>);
109
+ }
110
+
111
+ /**
112
+ * @see https://redis.io/commands/expire
113
+ */
114
+ declare class ExpireCommand extends Command<0 | 1, "0" | "1"> {
115
+ constructor(key: string, seconds: number);
116
+ }
117
+
118
+ /**
119
+ * @see https://redis.io/commands/expireat
120
+ */
121
+ declare class ExpireAtCommand extends Command<0 | 1, "0" | "1"> {
122
+ constructor(key: string, unix: number);
123
+ }
124
+
125
+ /**
126
+ * @see https://redis.io/commands/flushall
127
+ */
128
+ declare class FlushAllCommand extends Command<"OK", "OK"> {
129
+ constructor(opts?: {
130
+ async?: boolean;
131
+ });
132
+ }
133
+
134
+ /**
135
+ * @see https://redis.io/commands/flushdb
136
+ */
137
+ declare class FlushDBCommand extends Command<"OK", "OK"> {
138
+ constructor(opts?: {
139
+ async?: boolean;
140
+ });
141
+ }
142
+
143
+ /**
144
+ * @see https://redis.io/commands/get
145
+ */
146
+ declare class GetCommand<TData = string> extends Command<TData | null, unknown | null> {
147
+ constructor(key: string);
148
+ }
149
+
150
+ /**
151
+ * @see https://redis.io/commands/getbit
152
+ */
153
+ declare class GetBitCommand extends Command<0 | 1, "0" | "1"> {
154
+ constructor(key: string, offset: number);
155
+ }
156
+
157
+ /**
158
+ * @see https://redis.io/commands/getrange
159
+ */
160
+ declare class GetRangeCommand extends Command<string, string> {
161
+ constructor(key: string, start: number, end: number);
162
+ }
163
+
164
+ /**
165
+ * @see https://redis.io/commands/hdel
166
+ */
167
+ declare class HDelCommand extends Command<0 | 1, "0" | "1"> {
168
+ constructor(key: string, field: string);
169
+ }
170
+
171
+ /**
172
+ * @see https://redis.io/commands/hexists
173
+ */
174
+ declare class HExistsCommand extends Command<number, number> {
175
+ constructor(key: string, field: string);
176
+ }
177
+
178
+ /**
179
+ * @see https://redis.io/commands/hget
180
+ */
181
+ declare class HGetCommand<TData> extends Command<TData | null, unknown | null> {
182
+ constructor(key: string, field: string);
183
+ }
184
+
185
+ /**
186
+ * @see https://redis.io/commands/hgetall
187
+ */
188
+ declare class HGetAllCommand<TData extends Record<string, unknown>> extends Command<TData | null, unknown | null> {
189
+ constructor(key: string);
190
+ }
191
+
192
+ /**
193
+ * @see https://redis.io/commands/hincrby
194
+ */
195
+ declare class HIncrByCommand extends Command<number, number> {
196
+ constructor(key: string, field: string, increment: number);
197
+ }
198
+
199
+ /**
200
+ * @see https://redis.io/commands/hincrbyfloat
201
+ */
202
+ declare class HIncrByFloatCommand extends Command<number, number> {
203
+ constructor(key: string, field: string, increment: number);
204
+ }
205
+
206
+ /**
207
+ * @see https://redis.io/commands/hkeys
208
+ */
209
+ declare class HKeysCommand extends Command<string[], string[]> {
210
+ constructor(key: string);
211
+ }
212
+
213
+ /**
214
+ * @see https://redis.io/commands/hlen
215
+ */
216
+ declare class HLenCommand extends Command<number, number> {
217
+ constructor(key: string);
218
+ }
219
+
220
+ /**
221
+ * hmget returns an object of all requested fields from a hash
222
+ * The field values are returned as an object like this:
223
+ * ```ts
224
+ * {[fieldName: string]: T | null}
225
+ * ```
226
+ *
227
+ * In case the hash does not exist or all fields are empty `null` is returned
228
+ *
229
+ * @see https://redis.io/commands/hmget
230
+ */
231
+ declare class HMGetCommand<TData extends Record<string, unknown>> extends Command<TData | null, (string | null)[]> {
232
+ constructor(key: string, ...fields: string[]);
233
+ }
234
+
235
+ declare type ScanCommandOptions = {
236
+ match?: string;
237
+ count?: number;
238
+ };
239
+ /**
240
+ * @see https://redis.io/commands/scan
241
+ */
242
+ declare class ScanCommand extends Command<[number, string[]], [number, string[]]> {
243
+ constructor(cursor: number, opts?: ScanCommandOptions);
244
+ }
245
+
246
+ /**
247
+ * @see https://redis.io/commands/hscan
248
+ */
249
+ declare class HScanCommand extends Command<[
250
+ number,
251
+ (string | number)[]
252
+ ], [
253
+ number,
254
+ (string | number)[]
255
+ ]> {
256
+ constructor(key: string, cursor: number, opts?: ScanCommandOptions);
257
+ }
258
+
259
+ /**
260
+ * @see https://redis.io/commands/hstrlen
261
+ */
262
+ declare class HStrLenCommand extends Command<number, number> {
263
+ constructor(key: string, field: string);
264
+ }
265
+
266
+ /**
267
+ * @see https://redis.io/commands/hvals
268
+ */
269
+ declare class HValsCommand<TData extends unknown[]> extends Command<TData, unknown[]> {
270
+ constructor(key: string);
271
+ }
272
+
273
+ /**
274
+ * @see https://redis.io/commands/incr
275
+ */
276
+ declare class IncrCommand extends Command<number, number> {
277
+ constructor(key: string);
278
+ }
279
+
280
+ /**
281
+ * @see https://redis.io/commands/incrby
282
+ */
283
+ declare class IncrByCommand extends Command<number, number> {
284
+ constructor(key: string, value: number);
285
+ }
286
+
287
+ /**
288
+ * @see https://redis.io/commands/incrbyfloat
289
+ */
290
+ declare class IncrByFloatCommand extends Command<number, number> {
291
+ constructor(key: string, value: number);
292
+ }
293
+
294
+ /**
295
+ * @see https://redis.io/commands/keys
296
+ */
297
+ declare class KeysCommand extends Command<string[], string[]> {
298
+ constructor(pattern: string);
299
+ }
300
+
301
+ declare class LIndexCommand<TData = string> extends Command<TData | null, unknown | null> {
302
+ constructor(key: string, index: number);
303
+ }
304
+
305
+ /**
306
+ * @see https://redis.io/commands/llen
307
+ */
308
+ declare class LLenCommand extends Command<number, number> {
309
+ constructor(key: string);
310
+ }
311
+
312
+ /**
313
+ * @see https://redis.io/commands/lpop
314
+ */
315
+ declare class LPopCommand<TData = string> extends Command<TData | null, unknown | null> {
316
+ constructor(key: string);
317
+ }
318
+
319
+ declare class LRangeCommand<TData = string> extends Command<TData[], unknown[]> {
320
+ constructor(key: string, start: number, end: number);
321
+ }
322
+
323
+ declare class LTrimCommand extends Command<"OK", "OK"> {
324
+ constructor(key: string, start: number, end: number);
325
+ }
326
+
327
+ /**
328
+ * @see https://redis.io/commands/mget
329
+ */
330
+ declare class MGetCommand<TData extends unknown[]> extends Command<TData, (string | null)[]> {
331
+ constructor(...keys: [string, ...string[]]);
332
+ }
333
+
334
+ /**
335
+ * @see https://redis.io/commands/persist
336
+ */
337
+ declare class PersistCommand extends Command<0 | 1, "0" | "1"> {
338
+ constructor(key: string);
339
+ }
340
+
341
+ /**
342
+ * @see https://redis.io/commands/pexpire
343
+ */
344
+ declare class PExpireCommand extends Command<0 | 1, "0" | "1"> {
345
+ constructor(key: string, milliseconds: number);
346
+ }
347
+
348
+ /**
349
+ * @see https://redis.io/commands/pexpireat
350
+ */
351
+ declare class PExpireAtCommand extends Command<0 | 1, "0" | "1"> {
352
+ constructor(key: string, unix: number);
353
+ }
354
+
355
+ /**
356
+ * @see https://redis.io/commands/ping
357
+ */
358
+ declare class PingCommand extends Command<string | "PONG", string | "PONG"> {
359
+ constructor(message?: string);
360
+ }
361
+
362
+ /**
363
+ * @see https://redis.io/commands/pttl
364
+ */
365
+ declare class PTtlCommand extends Command<number, number> {
366
+ constructor(key: string);
367
+ }
368
+
369
+ /**
370
+ * @see https://redis.io/commands/rename
371
+ */
372
+ declare class RenameCommand extends Command<"OK", "OK"> {
373
+ constructor(source: string, destination: string);
374
+ }
375
+
376
+ /**
377
+ * @see https://redis.io/commands/renamenx
378
+ */
379
+ declare class RenameNXCommand extends Command<0 | 1, "0" | "1"> {
380
+ constructor(source: string, destination: string);
381
+ }
382
+
383
+ /**
384
+ * @see https://redis.io/commands/rpop
385
+ */
386
+ declare class RPopCommand<TData = string> extends Command<TData | null, unknown | null> {
387
+ constructor(key: string);
388
+ }
389
+
390
+ /**
391
+ * @see https://redis.io/commands/scard
392
+ */
393
+ declare class SCardCommand extends Command<number, number> {
394
+ constructor(key: string);
395
+ }
396
+
397
+ /**
398
+ * @see https://redis.io/commands/sdiff
399
+ */
400
+ declare class SDiffCommand<TData> extends Command<TData[], unknown[]> {
401
+ constructor(key: string, ...keys: string[]);
402
+ }
403
+
404
+ /**
405
+ * @see https://redis.io/commands/sdiffstpre
406
+ */
407
+ declare class SDiffStoreCommand extends Command<number, number> {
408
+ constructor(destination: string, ...keys: NonEmptyArray<string>);
409
+ }
410
+
411
+ declare type SetCommandOptions = ({
412
+ ex: number;
413
+ px?: never;
414
+ } | {
415
+ ex?: never;
416
+ px: number;
417
+ } | {
418
+ ex?: never;
419
+ px?: never;
420
+ }) & ({
421
+ nx: true;
422
+ xx?: never;
423
+ } | {
424
+ xx: true;
425
+ nx?: never;
426
+ } | {
427
+ xx?: never;
428
+ nx?: never;
429
+ });
430
+ /**
431
+ * @see https://redis.io/commands/set
432
+ */
433
+ declare class SetCommand<TData, TResult = "OK"> extends Command<TData, TResult> {
434
+ constructor(key: string, value: TData, opts?: SetCommandOptions);
435
+ }
436
+
437
+ /**
438
+ * @see https://redis.io/commands/setbit
439
+ */
440
+ declare class SetBitCommand extends Command<0 | 1, "0" | "1"> {
441
+ constructor(key: string, offset: number, value: 0 | 1);
442
+ }
443
+
444
+ /**
445
+ * @see https://redis.io/commands/setrange
446
+ */
447
+ declare class SetRangeCommand extends Command<number, number> {
448
+ constructor(key: string, offset: number, value: string);
449
+ }
450
+
451
+ /**
452
+ * @see https://redis.io/commands/sinter
453
+ */
454
+ declare class SInterCommand<TData = string> extends Command<TData[], unknown[]> {
455
+ constructor(key: string, ...keys: string[]);
456
+ }
457
+
458
+ /**
459
+ * @see https://redis.io/commands/sinterstore
460
+ */
461
+ declare class SInterStoreCommand<TData = string> extends Command<TData[], unknown[]> {
462
+ constructor(destination: string, key: string, ...keys: string[]);
463
+ }
464
+
465
+ /**
466
+ * @see https://redis.io/commands/smembers
467
+ */
468
+ declare class SMembersCommand<TData = string> extends Command<TData[], unknown[]> {
469
+ constructor(key: string);
470
+ }
471
+
472
+ /**
473
+ * @see https://redis.io/commands/spop
474
+ */
475
+ declare class SPopCommand<TData = number> extends Command<TData | null, string | null> {
476
+ constructor(key: string, count?: number);
477
+ }
478
+
479
+ /**
480
+ * @see https://redis.io/commands/srandmember
481
+ */
482
+ declare class SRandMemberCommand<TData> extends Command<TData | null, string | null> {
483
+ constructor(key: string, count?: number);
484
+ }
485
+
486
+ /**
487
+ * @see https://redis.io/commands/sscan
488
+ */
489
+ declare class SScanCommand extends Command<[
490
+ number,
491
+ (string | number)[]
492
+ ], [
493
+ number,
494
+ (string | number)[]
495
+ ]> {
496
+ constructor(key: string, cursor: number, opts?: ScanCommandOptions);
497
+ }
498
+
499
+ /**
500
+ * @see https://redis.io/commands/strlen
501
+ */
502
+ declare class StrLenCommand extends Command<number, number> {
503
+ constructor(key: string);
504
+ }
505
+
506
+ /**
507
+ * @see https://redis.io/commands/sunion
508
+ */
509
+ declare class SUnionCommand<TData> extends Command<TData[], string[]> {
510
+ constructor(key: string, ...keys: string[]);
511
+ }
512
+
513
+ /**
514
+ * @see https://redis.io/commands/sunionstore
515
+ */
516
+ declare class SUnionStoreCommand extends Command<number, number> {
517
+ constructor(destination: string, key: string, ...keys: string[]);
518
+ }
519
+
520
+ /**
521
+ * @see https://redis.io/commands/touch
522
+ */
523
+ declare class TouchCommand extends Command<number, number> {
524
+ constructor(...keys: string[]);
525
+ }
526
+
527
+ /**
528
+ * @see https://redis.io/commands/ttl
529
+ */
530
+ declare class TtlCommand extends Command<number, number> {
531
+ constructor(key: string);
532
+ }
533
+
534
+ declare type Type = "string" | "list" | "set" | "zset" | "hash" | "none";
535
+ /**
536
+ * @see https://redis.io/commands/type
537
+ */
538
+ declare class TypeCommand extends Command<Type, Type> {
539
+ constructor(key: string);
540
+ }
541
+
542
+ /**
543
+ * @see https://redis.io/commands/unlink
544
+ */
545
+ declare class UnlinkCommand extends Command<number, number> {
546
+ constructor(...keys: string[]);
547
+ }
548
+
549
+ declare type ZAddCommandOptions = ({
550
+ nx: true;
551
+ xx?: never;
552
+ } | {
553
+ nx?: never;
554
+ xx: true;
555
+ } | {
556
+ nx?: never;
557
+ xx?: never;
558
+ }) & {
559
+ ch?: true;
560
+ };
561
+ declare type ZAddCommandOptionsWithIncr = ZAddCommandOptions & {
562
+ incr: true;
563
+ };
564
+ declare type ScoreMember<TData> = {
565
+ score: number;
566
+ member: TData;
567
+ };
568
+ /**
569
+ * @see https://redis.io/commands/zadd
570
+ */
571
+ declare class ZAddCommand<TData = string> extends Command<number | null, number | null> {
572
+ constructor(key: string, scoreMember: ScoreMember<TData>, ...scoreMemberPairs: ScoreMember<TData>[]);
573
+ constructor(key: string, opts: ZAddCommandOptions | ZAddCommandOptionsWithIncr, ...scoreMemberPairs: [ScoreMember<TData>, ...ScoreMember<TData>[]]);
574
+ }
575
+
576
+ /**
577
+ * @see https://redis.io/commands/zcard
578
+ */
579
+ declare class ZCardCommand extends Command<number, number> {
580
+ constructor(key: string);
581
+ }
582
+
583
+ /**
584
+ * @see https://redis.io/commands/zcount
585
+ */
586
+ declare class ZCountCommand extends Command<number, number> {
587
+ constructor(key: string, min: number | string, max: number | string);
588
+ }
589
+
590
+ declare type ZInterStoreCommandOptions = {
591
+ aggregate?: "sum" | "min" | "max";
592
+ } & ({
593
+ weight: number;
594
+ weights?: never;
595
+ } | {
596
+ weight?: never;
597
+ weights: number[];
598
+ } | {
599
+ weight?: never;
600
+ weights?: never;
601
+ });
602
+ /**
603
+ * @see https://redis.io/commands/zInterstore
604
+ */
605
+ declare class ZInterStoreCommand extends Command<number, number> {
606
+ constructor(destination: string, numKeys: 1, key: string, opts?: ZInterStoreCommandOptions);
607
+ constructor(destination: string, numKeys: number, keys: string[], opts?: ZInterStoreCommandOptions);
608
+ }
609
+
610
+ /**
611
+ * @see https://redis.io/commands/zlexcount
612
+ */
613
+ declare class ZLexCountCommand extends Command<number, number> {
614
+ constructor(key: string, min: string, max: string);
615
+ }
616
+
617
+ /**
618
+ * @see https://redis.io/commands/zpopmax
619
+ */
620
+ declare class ZPopMaxCommand<TData> extends Command<TData[], string[]> {
621
+ constructor(key: string, count?: number);
622
+ }
623
+
624
+ /**
625
+ * @see https://redis.io/commands/zpopmin
626
+ */
627
+ declare class ZPopMinCommand<TData> extends Command<TData[], string[]> {
628
+ constructor(key: string, count?: number);
629
+ }
630
+
631
+ declare type ZRangeCommandOptions = {
632
+ withScores?: boolean;
633
+ };
634
+ /**
635
+ * @see https://redis.io/commands/zrange
636
+ */
637
+ declare class ZRangeCommand<TData extends unknown[]> extends Command<TData, string[]> {
638
+ constructor(key: string, min: number | `(${number}`, max: number | `(${number}`, opts?: ZRangeCommandOptions);
639
+ }
640
+
641
+ /**
642
+ * @see https://redis.io/commands/zremrangebylex
643
+ */
644
+ declare class ZRemRangeByLexCommand extends Command<number, number> {
645
+ constructor(key: string, min: string, max: string);
646
+ }
647
+
648
+ /**
649
+ * @see https://redis.io/commands/zremrangebyrank
650
+ */
651
+ declare class ZRemRangeByRankCommand extends Command<number, number> {
652
+ constructor(key: string, start: number, stop: number);
653
+ }
654
+
655
+ /**
656
+ * @see https://redis.io/commands/zremrangebyscore
657
+ */
658
+ declare class ZRemRangeByScoreCommand extends Command<number, number> {
659
+ constructor(key: string, min: number, max: number);
660
+ }
661
+
662
+ /**
663
+ * @see https://redis.io/commands/zscan
664
+ */
665
+ declare class ZScanCommand extends Command<[
666
+ number,
667
+ (string | number)[]
668
+ ], [
669
+ number,
670
+ (string | number)[]
671
+ ]> {
672
+ constructor(key: string, cursor: number, opts?: ScanCommandOptions);
673
+ }
674
+
675
+ declare type ZUnionStoreCommandOptions = {
676
+ aggregate?: "sum" | "min" | "max";
677
+ } & ({
678
+ weight: number;
679
+ weights?: never;
680
+ } | {
681
+ weight?: never;
682
+ weights: number[];
683
+ } | {
684
+ weight?: never;
685
+ weights?: never;
686
+ });
687
+ /**
688
+ * @see https://redis.io/commands/zunionstore
689
+ */
690
+ declare class ZUnionStoreCommand extends Command<number, number> {
691
+ constructor(destination: string, numKeys: 1, key: string, opts?: ZUnionStoreCommandOptions);
692
+ constructor(destination: string, numKeys: number, keys: string[], opts?: ZUnionStoreCommandOptions);
693
+ }
694
+
695
+ export { SetBitCommand as $, AppendCommand as A, BitCountCommand as B, CommandArgs as C, DecrCommand as D, EchoCommand as E, FlushAllCommand as F, GetCommand as G, HttpClient as H, IncrCommand as I, LTrimCommand as J, KeysCommand as K, LIndexCommand as L, MGetCommand as M, NonEmptyArray as N, PExpireCommand as O, PersistCommand as P, PExpireAtCommand as Q, PingCommand as R, PTtlCommand as S, RenameCommand as T, RenameNXCommand as U, RPopCommand as V, ScanCommand as W, SCardCommand as X, SDiffCommand as Y, SDiffStoreCommand as Z, SetCommandOptions as _, BitPosCommand as a, SetRangeCommand as a0, SInterCommand as a1, SInterStoreCommand as a2, SMembersCommand as a3, SPopCommand as a4, SRandMemberCommand as a5, SScanCommand as a6, StrLenCommand as a7, SUnionCommand as a8, SUnionStoreCommand as a9, ZUnionStoreCommandOptions as aA, TouchCommand as aa, TtlCommand as ab, TypeCommand as ac, UnlinkCommand as ad, ScoreMember as ae, ZAddCommandOptions as af, ZAddCommandOptionsWithIncr as ag, ZCardCommand as ah, ZCountCommand as ai, ZInterStoreCommand as aj, ZLexCountCommand as ak, ZPopMaxCommand as al, ZPopMinCommand as am, ZRangeCommand as an, ZRemRangeByLexCommand as ao, ZRemRangeByRankCommand as ap, ZRemRangeByScoreCommand as aq, ZScanCommand as ar, ZUnionStoreCommand as as, Type as at, Command as au, ScanCommandOptions as av, SetCommand as aw, ZAddCommand as ax, ZInterStoreCommandOptions as ay, ZRangeCommandOptions as az, DecrByCommand as b, DelCommand as c, ExistsCommand as d, ExpireCommand as e, ExpireAtCommand as f, FlushDBCommand as g, GetBitCommand as h, GetRangeCommand as i, HDelCommand as j, HExistsCommand as k, HGetCommand as l, HGetAllCommand as m, HIncrByCommand as n, HIncrByFloatCommand as o, HKeysCommand as p, HLenCommand as q, HMGetCommand as r, HScanCommand as s, HStrLenCommand as t, HValsCommand as u, IncrByCommand as v, IncrByFloatCommand as w, LLenCommand as x, LPopCommand as y, LRangeCommand as z };