@redis/search 2.0.0-next.2 → 5.0.0-next.6

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 (146) hide show
  1. package/README.md +6 -4
  2. package/dist/lib/commands/AGGREGATE.d.ts +20 -4
  3. package/dist/lib/commands/AGGREGATE.d.ts.map +1 -0
  4. package/dist/lib/commands/AGGREGATE.js +100 -78
  5. package/dist/lib/commands/AGGREGATE.js.map +1 -0
  6. package/dist/lib/commands/AGGREGATE_WITHCURSOR.d.ts +17 -5
  7. package/dist/lib/commands/AGGREGATE_WITHCURSOR.d.ts.map +1 -0
  8. package/dist/lib/commands/AGGREGATE_WITHCURSOR.js +16 -8
  9. package/dist/lib/commands/AGGREGATE_WITHCURSOR.js.map +1 -0
  10. package/dist/lib/commands/ALIASADD.d.ts +4 -2
  11. package/dist/lib/commands/ALIASADD.d.ts.map +1 -0
  12. package/dist/lib/commands/ALIASADD.js +4 -3
  13. package/dist/lib/commands/ALIASADD.js.map +1 -0
  14. package/dist/lib/commands/ALIASDEL.d.ts +4 -2
  15. package/dist/lib/commands/ALIASDEL.d.ts.map +1 -0
  16. package/dist/lib/commands/ALIASDEL.js +4 -3
  17. package/dist/lib/commands/ALIASDEL.js.map +1 -0
  18. package/dist/lib/commands/ALIASUPDATE.d.ts +4 -2
  19. package/dist/lib/commands/ALIASUPDATE.d.ts.map +1 -0
  20. package/dist/lib/commands/ALIASUPDATE.js +4 -3
  21. package/dist/lib/commands/ALIASUPDATE.js.map +1 -0
  22. package/dist/lib/commands/ALTER.d.ts +4 -2
  23. package/dist/lib/commands/ALTER.d.ts.map +1 -0
  24. package/dist/lib/commands/ALTER.js +5 -5
  25. package/dist/lib/commands/ALTER.js.map +1 -0
  26. package/dist/lib/commands/CONFIG_GET.d.ts +4 -2
  27. package/dist/lib/commands/CONFIG_GET.d.ts.map +1 -0
  28. package/dist/lib/commands/CONFIG_GET.js +4 -3
  29. package/dist/lib/commands/CONFIG_GET.js.map +1 -0
  30. package/dist/lib/commands/CONFIG_SET.d.ts +4 -2
  31. package/dist/lib/commands/CONFIG_SET.d.ts.map +1 -0
  32. package/dist/lib/commands/CONFIG_SET.js +4 -3
  33. package/dist/lib/commands/CONFIG_SET.js.map +1 -0
  34. package/dist/lib/commands/CREATE.d.ts +33 -24
  35. package/dist/lib/commands/CREATE.d.ts.map +1 -0
  36. package/dist/lib/commands/CREATE.js +68 -54
  37. package/dist/lib/commands/CREATE.js.map +1 -0
  38. package/dist/lib/commands/CURSOR_DEL.d.ts +5 -3
  39. package/dist/lib/commands/CURSOR_DEL.d.ts.map +1 -0
  40. package/dist/lib/commands/CURSOR_DEL.js +4 -3
  41. package/dist/lib/commands/CURSOR_DEL.js.map +1 -0
  42. package/dist/lib/commands/CURSOR_READ.d.ts +10 -4
  43. package/dist/lib/commands/CURSOR_READ.d.ts.map +1 -0
  44. package/dist/lib/commands/CURSOR_READ.js +7 -6
  45. package/dist/lib/commands/CURSOR_READ.js.map +1 -0
  46. package/dist/lib/commands/DICTADD.d.ts +4 -2
  47. package/dist/lib/commands/DICTADD.d.ts.map +1 -0
  48. package/dist/lib/commands/DICTADD.js +5 -4
  49. package/dist/lib/commands/DICTADD.js.map +1 -0
  50. package/dist/lib/commands/DICTDEL.d.ts +4 -2
  51. package/dist/lib/commands/DICTDEL.d.ts.map +1 -0
  52. package/dist/lib/commands/DICTDEL.js +5 -4
  53. package/dist/lib/commands/DICTDEL.js.map +1 -0
  54. package/dist/lib/commands/DICTDUMP.d.ts +4 -2
  55. package/dist/lib/commands/DICTDUMP.d.ts.map +1 -0
  56. package/dist/lib/commands/DICTDUMP.js +4 -3
  57. package/dist/lib/commands/DICTDUMP.js.map +1 -0
  58. package/dist/lib/commands/DROPINDEX.d.ts +4 -2
  59. package/dist/lib/commands/DROPINDEX.d.ts.map +1 -0
  60. package/dist/lib/commands/DROPINDEX.js +5 -5
  61. package/dist/lib/commands/DROPINDEX.js.map +1 -0
  62. package/dist/lib/commands/EXPLAIN.d.ts +15 -0
  63. package/dist/lib/commands/EXPLAIN.d.ts.map +1 -0
  64. package/dist/lib/commands/EXPLAIN.js +15 -23
  65. package/dist/lib/commands/EXPLAIN.js.map +1 -0
  66. package/dist/lib/commands/EXPLAINCLI.d.ts +4 -2
  67. package/dist/lib/commands/EXPLAINCLI.d.ts.map +1 -0
  68. package/dist/lib/commands/EXPLAINCLI.js +4 -3
  69. package/dist/lib/commands/EXPLAINCLI.js.map +1 -0
  70. package/dist/lib/commands/INFO.d.ts +64 -0
  71. package/dist/lib/commands/INFO.d.ts.map +1 -0
  72. package/dist/lib/commands/INFO.js +100 -163
  73. package/dist/lib/commands/INFO.js.map +1 -0
  74. package/dist/lib/commands/PROFILE_AGGREGATE.d.ts +17 -0
  75. package/dist/lib/commands/PROFILE_AGGREGATE.d.ts.map +1 -0
  76. package/dist/lib/commands/PROFILE_AGGREGATE.js +49 -23
  77. package/dist/lib/commands/PROFILE_AGGREGATE.js.map +1 -0
  78. package/dist/lib/commands/PROFILE_SEARCH.d.ts +60 -0
  79. package/dist/lib/commands/PROFILE_SEARCH.d.ts.map +1 -0
  80. package/dist/lib/commands/PROFILE_SEARCH.js +110 -23
  81. package/dist/lib/commands/PROFILE_SEARCH.js.map +1 -0
  82. package/dist/lib/commands/SEARCH.d.ts +23 -5
  83. package/dist/lib/commands/SEARCH.d.ts.map +1 -0
  84. package/dist/lib/commands/SEARCH.js +116 -75
  85. package/dist/lib/commands/SEARCH.js.map +1 -0
  86. package/dist/lib/commands/SEARCH_NOCONTENT.d.ts +14 -3
  87. package/dist/lib/commands/SEARCH_NOCONTENT.d.ts.map +1 -0
  88. package/dist/lib/commands/SEARCH_NOCONTENT.js +16 -6
  89. package/dist/lib/commands/SEARCH_NOCONTENT.js.map +1 -0
  90. package/dist/lib/commands/SPELLCHECK.d.ts +22 -4
  91. package/dist/lib/commands/SPELLCHECK.d.ts.map +1 -0
  92. package/dist/lib/commands/SPELLCHECK.js +23 -33
  93. package/dist/lib/commands/SPELLCHECK.js.map +1 -0
  94. package/dist/lib/commands/SUGADD.d.ts +3 -2
  95. package/dist/lib/commands/SUGADD.d.ts.map +1 -0
  96. package/dist/lib/commands/SUGADD.js +7 -6
  97. package/dist/lib/commands/SUGADD.js.map +1 -0
  98. package/dist/lib/commands/SUGDEL.d.ts +3 -2
  99. package/dist/lib/commands/SUGDEL.d.ts.map +1 -0
  100. package/dist/lib/commands/SUGDEL.js +5 -3
  101. package/dist/lib/commands/SUGDEL.js.map +1 -0
  102. package/dist/lib/commands/SUGGET.d.ts +3 -2
  103. package/dist/lib/commands/SUGGET.d.ts.map +1 -0
  104. package/dist/lib/commands/SUGGET.js +7 -6
  105. package/dist/lib/commands/SUGGET.js.map +1 -0
  106. package/dist/lib/commands/SUGGET_WITHPAYLOADS.d.ts +2 -2
  107. package/dist/lib/commands/SUGGET_WITHPAYLOADS.d.ts.map +1 -0
  108. package/dist/lib/commands/SUGGET_WITHPAYLOADS.js +4 -5
  109. package/dist/lib/commands/SUGGET_WITHPAYLOADS.js.map +1 -0
  110. package/dist/lib/commands/SUGGET_WITHSCORES.d.ts +9 -11
  111. package/dist/lib/commands/SUGGET_WITHSCORES.d.ts.map +1 -0
  112. package/dist/lib/commands/SUGGET_WITHSCORES.js +7 -8
  113. package/dist/lib/commands/SUGGET_WITHSCORES.js.map +1 -0
  114. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts +10 -13
  115. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts.map +1 -0
  116. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js +7 -8
  117. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js.map +1 -0
  118. package/dist/lib/commands/SUGLEN.d.ts +3 -2
  119. package/dist/lib/commands/SUGLEN.d.ts.map +1 -0
  120. package/dist/lib/commands/SUGLEN.js +3 -3
  121. package/dist/lib/commands/SUGLEN.js.map +1 -0
  122. package/dist/lib/commands/SYNDUMP.d.ts +4 -2
  123. package/dist/lib/commands/SYNDUMP.d.ts.map +1 -0
  124. package/dist/lib/commands/SYNDUMP.js +4 -3
  125. package/dist/lib/commands/SYNDUMP.js.map +1 -0
  126. package/dist/lib/commands/SYNUPDATE.d.ts +4 -2
  127. package/dist/lib/commands/SYNUPDATE.d.ts.map +1 -0
  128. package/dist/lib/commands/SYNUPDATE.js +6 -6
  129. package/dist/lib/commands/SYNUPDATE.js.map +1 -0
  130. package/dist/lib/commands/TAGVALS.d.ts +4 -2
  131. package/dist/lib/commands/TAGVALS.d.ts.map +1 -0
  132. package/dist/lib/commands/TAGVALS.js +4 -3
  133. package/dist/lib/commands/TAGVALS.js.map +1 -0
  134. package/dist/lib/commands/_LIST.d.ts +4 -2
  135. package/dist/lib/commands/_LIST.d.ts.map +1 -0
  136. package/dist/lib/commands/_LIST.js +4 -3
  137. package/dist/lib/commands/_LIST.js.map +1 -0
  138. package/dist/lib/commands/index.d.ts +269 -140
  139. package/dist/lib/commands/index.d.ts.map +1 -0
  140. package/dist/lib/commands/index.js +16 -15
  141. package/dist/lib/commands/index.js.map +1 -0
  142. package/dist/lib/index.d.ts +1 -0
  143. package/dist/lib/index.d.ts.map +1 -0
  144. package/dist/lib/index.js +3 -2
  145. package/dist/lib/index.js.map +1 -0
  146. package/package.json +5 -2
package/README.md CHANGED
@@ -1,18 +1,20 @@
1
1
  # @redis/search
2
2
 
3
- This package provides support for the [RediSearch](https://redisearch.io) module, which adds indexing and querying support for data stored in Redis Hashes or as JSON documents with the RedisJSON module. It extends the [Node Redis client](https://github.com/redis/node-redis) to include functions for each of the RediSearch commands.
3
+ This package provides support for the [RediSearch](https://redis.io/docs/interact/search-and-query/) module, which adds indexing and querying support for data stored in Redis Hashes or as JSON documents with the [RedisJSON](https://redis.io/docs/data-types/json/) module.
4
4
 
5
- To use these extra commands, your Redis server must have the RediSearch module installed. To index and query JSON documents, you'll also need to add the RedisJSON module.
5
+ Should be used with [`redis`/`@redis/client`](https://github.com/redis/node-redis).
6
+
7
+ :warning: To use these extra commands, your Redis server must have the RediSearch module installed. To index and query JSON documents, you'll also need to add the RedisJSON module.
6
8
 
7
9
  ## Usage
8
10
 
9
- For complete examples, see [`search-hashes.js`](https://github.com/redis/node-redis/blob/master/examples/search-hashes.js) and [`search-json.js`](https://github.com/redis/node-redis/blob/master/examples/search-json.js) in the Node Redis examples folder.
11
+ For complete examples, see [`search-hashes.js`](https://github.com/redis/node-redis/blob/master/examples/search-hashes.js) and [`search-json.js`](https://github.com/redis/node-redis/blob/master/examples/search-json.js) in the [examples folder](https://github.com/redis/node-redis/tree/master/examples).
10
12
 
11
13
  ### Indexing and Querying Data in Redis Hashes
12
14
 
13
15
  #### Creating an Index
14
16
 
15
- Before we can perform any searches, we need to tell RediSearch how to index our data, and which Redis keys to find that data in. The [FT.CREATE](https://redis.io/commands/ft.create) command creates a RediSearch index. Here's how to use it to create an index we'll call `idx:animals` where we want to index hashes containing `name`, `species` and `age` fields, and whose key names in Redis begin with the prefix `noderedis:animals`:
17
+ Before we can perform any searches, we need to tell RediSearch how to index our data, and which Redis keys to find that data in. The [FT.CREATE](https://redis.io/commands/ft.create) command creates a RediSearch index. Here's how to use it to create an index we'll call `idx:animals` where we want to index hashes containing `name`, `species` and `age` fields, and whose key names in Redis begin with the prefix `noderedis:animals`:
16
18
 
17
19
  ```javascript
18
20
  await client.ft.create('idx:animals', {
@@ -1,4 +1,5 @@
1
- import { RedisArgument } from '@redis/client/dist/lib/RESP/types';
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
2
+ import { ArrayReply, BlobStringReply, MapReply, NumberReply, RedisArgument, ReplyUnion, TypeMapping, UnwrapReply } from '@redis/client/dist/lib/RESP/types';
2
3
  import { RediSearchProperty } from './CREATE';
3
4
  import { FtSearchParams } from './SEARCH';
4
5
  type LoadField = RediSearchProperty | {
@@ -87,16 +88,31 @@ interface FilterStep extends AggregateStep<FT_AGGREGATE_STEPS['FILTER']> {
87
88
  }
88
89
  export interface FtAggregateOptions {
89
90
  VERBATIM?: boolean;
91
+ ADDSCORES?: boolean;
90
92
  LOAD?: LoadField | Array<LoadField>;
91
93
  TIMEOUT?: number;
92
94
  STEPS?: Array<GroupByStep | SortStep | ApplyStep | LimitStep | FilterStep>;
93
95
  PARAMS?: FtSearchParams;
94
96
  DIALECT?: number;
95
97
  }
98
+ export type AggregateRawReply = [
99
+ total: UnwrapReply<NumberReply>,
100
+ ...results: UnwrapReply<ArrayReply<ArrayReply<BlobStringReply>>>
101
+ ];
102
+ export interface AggregateReply {
103
+ total: number;
104
+ results: Array<MapReply<BlobStringReply, BlobStringReply>>;
105
+ }
96
106
  declare const _default: {
97
- readonly FIRST_KEY_INDEX: undefined;
107
+ readonly NOT_KEYED_COMMAND: true;
98
108
  readonly IS_READ_ONLY: false;
99
- readonly transformArguments: (this: void, index: RedisArgument, query: RedisArgument, options?: FtAggregateOptions) => RedisArgument[];
100
- readonly transformReply: () => any;
109
+ readonly parseCommand: (this: void, parser: CommandParser, index: RedisArgument, query: RedisArgument, options?: FtAggregateOptions) => void;
110
+ readonly transformReply: {
111
+ readonly 2: (rawReply: [total: UnwrapReply<NumberReply<number>>, ...results: ArrayReply<BlobStringReply<string>>[]], preserve?: any, typeMapping?: TypeMapping) => AggregateReply;
112
+ readonly 3: () => ReplyUnion;
113
+ };
114
+ readonly unstableResp3: true;
101
115
  };
102
116
  export default _default;
117
+ export declare function parseAggregateOptions(parser: CommandParser, options?: FtAggregateOptions): void;
118
+ //# sourceMappingURL=AGGREGATE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AGGREGATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAW,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrK,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAuB,MAAM,UAAU,CAAC;AAG/D,KAAK,SAAS,GAAG,kBAAkB,GAAG;IACpC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAEX,KAAK,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAE3E,UAAU,aAAa,CAAC,CAAC,SAAS,eAAe;IAC/C,IAAI,EAAE,CAAC,CAAC;CACT;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAajC,CAAC;AAEX,KAAK,8BAA8B,GAAG,OAAO,8BAA8B,CAAC;AAE5E,MAAM,MAAM,yBAAyB,GAAG,8BAA8B,CAAC,MAAM,8BAA8B,CAAC,CAAC;AAE7G,UAAU,cAAc,CAAC,CAAC,SAAS,yBAAyB;IAC1D,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB;AAED,UAAU,0BAA0B,CAAC,CAAC,SAAS,yBAAyB,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACjG,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,KAAK,YAAY,GAAG,cAAc,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;AAE5E,KAAK,oBAAoB,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEzG,KAAK,uBAAuB,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE/G,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,UAAU,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpF,KAAK,aAAa,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE1F,UAAU,eAAgB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;IACtG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,aAAa,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE1F,UAAU,iBAAkB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;IAC3G,EAAE,CAAC,EAAE,kBAAkB,GAAG;QACxB,QAAQ,EAAE,kBAAkB,CAAC;QAC7B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,UAAU,mBAAoB,SAAQ,0BAA0B,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC;IAC/G,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,eAAe,GAAG,YAAY,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAErO,UAAU,WAAY,SAAQ,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5D,MAAM,EAAE,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;CAClD;AAED,KAAK,cAAc,GAAG,aAAa,GAAG;IACpC,EAAE,EAAE,kBAAkB,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,UAAU,QAAS,SAAQ,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpE,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAU,SAAQ,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpE,UAAU,EAAE,aAAa,CAAC;IAC1B,EAAE,EAAE,aAAa,CAAC;CACnB;AAED,UAAU,SAAU,SAAQ,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAW,SAAQ,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtE,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IAC3E,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC;IAC/B,GAAG,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;CAC5D;;;;gDAKsB,aAAa,SAAS,aAAa,SAAS,aAAa,YAAY,kBAAkB;;wIAM9D,GAAG,gBAAgB,WAAW,KAAG,cAAc;0BAa1D,UAAU;;;;AAtB/C,wBAyB6B;AAE7B,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAG,OAAO,CAAC,EAAE,kBAAkB,QAwFzF"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FT_AGGREGATE_GROUP_BY_REDUCERS = exports.FT_AGGREGATE_STEPS = void 0;
3
+ exports.parseAggregateOptions = exports.FT_AGGREGATE_GROUP_BY_REDUCERS = exports.FT_AGGREGATE_STEPS = void 0;
4
4
  const SEARCH_1 = require("./SEARCH");
5
5
  const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers");
6
6
  exports.FT_AGGREGATE_STEPS = {
@@ -24,84 +24,105 @@ exports.FT_AGGREGATE_GROUP_BY_REDUCERS = {
24
24
  FIRST_VALUE: 'FIRST_VALUE',
25
25
  RANDOM_SAMPLE: 'RANDOM_SAMPLE'
26
26
  };
27
+ ;
27
28
  exports.default = {
28
- FIRST_KEY_INDEX: undefined,
29
+ NOT_KEYED_COMMAND: true,
29
30
  IS_READ_ONLY: false,
30
- transformArguments(index, query, options) {
31
- const args = ['FT.AGGREGATE', index, query];
32
- if (options?.VERBATIM) {
33
- args.push('VERBATIM');
34
- }
35
- if (options?.LOAD) {
36
- const length = args.push('LOAD', '');
37
- if (Array.isArray(options.LOAD)) {
38
- for (const load of options.LOAD) {
39
- pushLoadField(args, load);
40
- }
31
+ parseCommand(parser, index, query, options) {
32
+ parser.push('FT.AGGREGATE', index, query);
33
+ return parseAggregateOptions(parser, options);
34
+ },
35
+ transformReply: {
36
+ 2: (rawReply, preserve, typeMapping) => {
37
+ const results = [];
38
+ for (let i = 1; i < rawReply.length; i++) {
39
+ results.push((0, generic_transformers_1.transformTuplesReply)(rawReply[i], preserve, typeMapping));
41
40
  }
42
- else {
43
- pushLoadField(args, options.LOAD);
41
+ return {
42
+ total: Number(rawReply[0]),
43
+ results
44
+ };
45
+ },
46
+ 3: undefined
47
+ },
48
+ unstableResp3: true
49
+ };
50
+ function parseAggregateOptions(parser, options) {
51
+ if (options?.VERBATIM) {
52
+ parser.push('VERBATIM');
53
+ }
54
+ if (options?.ADDSCORES) {
55
+ parser.push('ADDSCORES');
56
+ }
57
+ if (options?.LOAD) {
58
+ const args = [];
59
+ if (Array.isArray(options.LOAD)) {
60
+ for (const load of options.LOAD) {
61
+ pushLoadField(args, load);
44
62
  }
45
- args[length - 1] = (args.length - length).toString();
46
63
  }
47
- if (options?.TIMEOUT !== undefined) {
48
- args.push('TIMEOUT', options.TIMEOUT.toString());
64
+ else {
65
+ pushLoadField(args, options.LOAD);
49
66
  }
50
- if (options?.STEPS) {
51
- for (const step of options.STEPS) {
52
- args.push(step.type);
53
- switch (step.type) {
54
- case exports.FT_AGGREGATE_STEPS.GROUPBY:
55
- if (!step.properties) {
56
- args.push('0');
57
- }
58
- else {
59
- (0, generic_transformers_1.pushVariadicArgument)(args, step.properties);
60
- }
61
- if (Array.isArray(step.REDUCE)) {
62
- for (const reducer of step.REDUCE) {
63
- pushGroupByReducer(args, reducer);
64
- }
65
- }
66
- else {
67
- pushGroupByReducer(args, step.REDUCE);
68
- }
69
- break;
70
- case exports.FT_AGGREGATE_STEPS.SORTBY:
71
- const length = args.push('');
72
- if (Array.isArray(step.BY)) {
73
- for (const by of step.BY) {
74
- pushSortByProperty(args, by);
75
- }
76
- }
77
- else {
78
- pushSortByProperty(args, step.BY);
67
+ parser.push('LOAD');
68
+ parser.pushVariadicWithLength(args);
69
+ }
70
+ if (options?.TIMEOUT !== undefined) {
71
+ parser.push('TIMEOUT', options.TIMEOUT.toString());
72
+ }
73
+ if (options?.STEPS) {
74
+ for (const step of options.STEPS) {
75
+ parser.push(step.type);
76
+ switch (step.type) {
77
+ case exports.FT_AGGREGATE_STEPS.GROUPBY:
78
+ if (!step.properties) {
79
+ parser.push('0');
80
+ }
81
+ else {
82
+ parser.pushVariadicWithLength(step.properties);
83
+ }
84
+ if (Array.isArray(step.REDUCE)) {
85
+ for (const reducer of step.REDUCE) {
86
+ parseGroupByReducer(parser, reducer);
79
87
  }
80
- if (step.MAX) {
81
- args.push('MAX', step.MAX.toString());
88
+ }
89
+ else {
90
+ parseGroupByReducer(parser, step.REDUCE);
91
+ }
92
+ break;
93
+ case exports.FT_AGGREGATE_STEPS.SORTBY:
94
+ const args = [];
95
+ if (Array.isArray(step.BY)) {
96
+ for (const by of step.BY) {
97
+ pushSortByProperty(args, by);
82
98
  }
83
- args[length - 1] = (args.length - length).toString();
84
- break;
85
- case exports.FT_AGGREGATE_STEPS.APPLY:
86
- args.push(step.expression, 'AS', step.AS);
87
- break;
88
- case exports.FT_AGGREGATE_STEPS.LIMIT:
89
- args.push(step.from.toString(), step.size.toString());
90
- break;
91
- case exports.FT_AGGREGATE_STEPS.FILTER:
92
- args.push(step.expression);
93
- break;
94
- }
99
+ }
100
+ else {
101
+ pushSortByProperty(args, step.BY);
102
+ }
103
+ if (step.MAX) {
104
+ args.push('MAX', step.MAX.toString());
105
+ }
106
+ parser.pushVariadicWithLength(args);
107
+ break;
108
+ case exports.FT_AGGREGATE_STEPS.APPLY:
109
+ parser.push(step.expression, 'AS', step.AS);
110
+ break;
111
+ case exports.FT_AGGREGATE_STEPS.LIMIT:
112
+ parser.push(step.from.toString(), step.size.toString());
113
+ break;
114
+ case exports.FT_AGGREGATE_STEPS.FILTER:
115
+ parser.push(step.expression);
116
+ break;
95
117
  }
96
118
  }
97
- (0, SEARCH_1.pushParamsArgument)(args, options?.PARAMS);
98
- if (options?.DIALECT !== undefined) {
99
- args.push('DIALECT', options.DIALECT.toString());
100
- }
101
- return args;
102
- },
103
- transformReply: undefined
104
- };
119
+ }
120
+ (0, SEARCH_1.parseParamsArgument)(parser, options?.PARAMS);
121
+ if (options?.DIALECT !== undefined) {
122
+ parser.push('DIALECT', options.DIALECT.toString());
123
+ }
124
+ }
125
+ exports.parseAggregateOptions = parseAggregateOptions;
105
126
  function pushLoadField(args, toLoad) {
106
127
  if (typeof toLoad === 'string' || toLoad instanceof Buffer) {
107
128
  args.push(toLoad);
@@ -113,11 +134,11 @@ function pushLoadField(args, toLoad) {
113
134
  }
114
135
  }
115
136
  }
116
- function pushGroupByReducer(args, reducer) {
117
- args.push('REDUCE', reducer.type);
137
+ function parseGroupByReducer(parser, reducer) {
138
+ parser.push('REDUCE', reducer.type);
118
139
  switch (reducer.type) {
119
140
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT:
120
- args.push('0');
141
+ parser.push('0');
121
142
  break;
122
143
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCT:
123
144
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCTISH:
@@ -127,13 +148,13 @@ function pushGroupByReducer(args, reducer) {
127
148
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.AVG:
128
149
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.STDDEV:
129
150
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.TOLIST:
130
- args.push('1', reducer.property);
151
+ parser.push('1', reducer.property);
131
152
  break;
132
153
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.QUANTILE:
133
- args.push('2', reducer.property, reducer.quantile.toString());
154
+ parser.push('2', reducer.property, reducer.quantile.toString());
134
155
  break;
135
156
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.FIRST_VALUE: {
136
- const length = args.push('', reducer.property) - 1;
157
+ const args = [reducer.property];
137
158
  if (reducer.BY) {
138
159
  args.push('BY');
139
160
  if (typeof reducer.BY === 'string' || reducer.BY instanceof Buffer) {
@@ -146,15 +167,15 @@ function pushGroupByReducer(args, reducer) {
146
167
  }
147
168
  }
148
169
  }
149
- args[length - 1] = (args.length - length).toString();
170
+ parser.pushVariadicWithLength(args);
150
171
  break;
151
172
  }
152
173
  case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.RANDOM_SAMPLE:
153
- args.push('2', reducer.property, reducer.sampleSize.toString());
174
+ parser.push('2', reducer.property, reducer.sampleSize.toString());
154
175
  break;
155
176
  }
156
177
  if (reducer.AS) {
157
- args.push('AS', reducer.AS);
178
+ parser.push('AS', reducer.AS);
158
179
  }
159
180
  }
160
181
  function pushSortByProperty(args, sortBy) {
@@ -168,3 +189,4 @@ function pushSortByProperty(args, sortBy) {
168
189
  }
169
190
  }
170
191
  }
192
+ //# sourceMappingURL=AGGREGATE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AGGREGATE.js","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,25 @@
1
- import { RedisArgument } from '@redis/client/dist/lib/RESP/types';
2
- import { FtAggregateOptions } from './AGGREGATE';
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
2
+ import { RedisArgument, ReplyUnion, NumberReply } from '@redis/client/dist/lib/RESP/types';
3
+ import { AggregateRawReply, AggregateReply, FtAggregateOptions } from './AGGREGATE';
3
4
  export interface FtAggregateWithCursorOptions extends FtAggregateOptions {
4
5
  COUNT?: number;
5
6
  MAXIDLE?: number;
6
7
  }
8
+ type AggregateWithCursorRawReply = [
9
+ result: AggregateRawReply,
10
+ cursor: NumberReply
11
+ ];
12
+ export interface AggregateWithCursorReply extends AggregateReply {
13
+ cursor: NumberReply;
14
+ }
7
15
  declare const _default: {
8
- readonly FIRST_KEY_INDEX: undefined;
9
16
  readonly IS_READ_ONLY: false;
10
- readonly transformArguments: (this: void, index: RedisArgument, query: RedisArgument, options?: FtAggregateWithCursorOptions) => RedisArgument[];
11
- readonly transformReply: () => any;
17
+ readonly parseCommand: (this: void, parser: CommandParser, index: RedisArgument, query: RedisArgument, options?: FtAggregateWithCursorOptions) => void;
18
+ readonly transformReply: {
19
+ readonly 2: (reply: AggregateWithCursorRawReply) => AggregateWithCursorReply;
20
+ readonly 3: () => ReplyUnion;
21
+ };
22
+ readonly unstableResp3: true;
12
23
  };
13
24
  export default _default;
25
+ //# sourceMappingURL=AGGREGATE_WITHCURSOR.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AGGREGATE_WITHCURSOR.d.ts","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE_WITHCURSOR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAW,UAAU,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/F,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,KAAK,2BAA2B,GAAG;IACjC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,cAAc;IAC9D,MAAM,EAAE,WAAW,CAAC;CACrB;;;gDAIsB,aAAa,SAAS,aAAa,SAAS,aAAa,YAAY,4BAA4B;;4DAa3E,wBAAwB;0BAMhC,UAAU;;;;AArB/C,wBAwB6B"}
@@ -5,18 +5,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const AGGREGATE_1 = __importDefault(require("./AGGREGATE"));
7
7
  exports.default = {
8
- FIRST_KEY_INDEX: AGGREGATE_1.default.FIRST_KEY_INDEX,
9
8
  IS_READ_ONLY: AGGREGATE_1.default.IS_READ_ONLY,
10
- transformArguments(index, query, options) {
11
- const args = AGGREGATE_1.default.transformArguments(index, query, options);
12
- args.push('WITHCURSOR');
9
+ parseCommand(parser, index, query, options) {
10
+ AGGREGATE_1.default.parseCommand(parser, index, query, options);
11
+ parser.push('WITHCURSOR');
13
12
  if (options?.COUNT !== undefined) {
14
- args.push('COUNT', options.COUNT.toString());
13
+ parser.push('COUNT', options.COUNT.toString());
15
14
  }
16
15
  if (options?.MAXIDLE !== undefined) {
17
- args.push('MAXIDLE', options.MAXIDLE.toString());
16
+ parser.push('MAXIDLE', options.MAXIDLE.toString());
18
17
  }
19
- return args;
20
18
  },
21
- transformReply: undefined
19
+ transformReply: {
20
+ 2: (reply) => {
21
+ return {
22
+ ...AGGREGATE_1.default.transformReply[2](reply[0]),
23
+ cursor: reply[1]
24
+ };
25
+ },
26
+ 3: undefined
27
+ },
28
+ unstableResp3: true
22
29
  };
30
+ //# sourceMappingURL=AGGREGATE_WITHCURSOR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AGGREGATE_WITHCURSOR.js","sourceRoot":"","sources":["../../../lib/commands/AGGREGATE_WITHCURSOR.ts"],"names":[],"mappings":";;;;;AAEA,4DAA+F;AAiB/F,kBAAe;IACb,YAAY,EAAE,mBAAS,CAAC,YAAY;IACpC,YAAY,CAAC,MAAqB,EAAE,KAAoB,EAAE,KAAoB,EAAE,OAAsC;QACpH,mBAAS,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1B,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAG,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,cAAc,EAAE;QACd,CAAC,EAAE,CAAC,KAAkC,EAA4B,EAAE;YAClE,OAAO;gBACL,GAAG,mBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;aACjB,CAAC;QACJ,CAAC;QACD,CAAC,EAAE,SAAwC;KAC5C;IACD,aAAa,EAAE,IAAI;CACO,CAAC"}
@@ -1,8 +1,10 @@
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
1
2
  import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
3
  declare const _default: {
3
- readonly FIRST_KEY_INDEX: undefined;
4
+ readonly NOT_KEYED_COMMAND: true;
4
5
  readonly IS_READ_ONLY: true;
5
- readonly transformArguments: (this: void, alias: RedisArgument, index: RedisArgument) => RedisArgument[];
6
+ readonly parseCommand: (this: void, parser: CommandParser, alias: RedisArgument, index: RedisArgument) => void;
6
7
  readonly transformReply: () => SimpleStringReply<'OK'>;
7
8
  };
8
9
  export default _default;
10
+ //# sourceMappingURL=ALIASADD.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASADD.d.ts","sourceRoot":"","sources":["../../../lib/commands/ALIASADD.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,mCAAmC,CAAC;;;;gDAKvE,aAAa,SAAS,aAAa,SAAS,aAAa;mCAGhC,kBAAkB,IAAI,CAAC;;AANvE,wBAO6B"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- FIRST_KEY_INDEX: undefined,
4
+ NOT_KEYED_COMMAND: true,
5
5
  IS_READ_ONLY: true,
6
- transformArguments(alias, index) {
7
- return ['FT.ALIASADD', alias, index];
6
+ parseCommand(parser, alias, index) {
7
+ parser.push('FT.ALIASADD', alias, index);
8
8
  },
9
9
  transformReply: undefined
10
10
  };
11
+ //# sourceMappingURL=ALIASADD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASADD.js","sourceRoot":"","sources":["../../../lib/commands/ALIASADD.ts"],"names":[],"mappings":";;AAGA,kBAAe;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,YAAY,CAAC,MAAqB,EAAE,KAAoB,EAAE,KAAoB;QAC5E,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,SAAqD;CAC3C,CAAC"}
@@ -1,8 +1,10 @@
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
1
2
  import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
3
  declare const _default: {
3
- readonly FIRST_KEY_INDEX: undefined;
4
+ readonly NOT_KEYED_COMMAND: true;
4
5
  readonly IS_READ_ONLY: true;
5
- readonly transformArguments: (this: void, alias: RedisArgument) => RedisArgument[];
6
+ readonly parseCommand: (this: void, parser: CommandParser, alias: RedisArgument) => void;
6
7
  readonly transformReply: () => SimpleStringReply<'OK'>;
7
8
  };
8
9
  export default _default;
10
+ //# sourceMappingURL=ALIASDEL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASDEL.d.ts","sourceRoot":"","sources":["../../../lib/commands/ALIASDEL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,mCAAmC,CAAC;;;;gDAKvE,aAAa,SAAS,aAAa;mCAGV,kBAAkB,IAAI,CAAC;;AANvE,wBAO6B"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- FIRST_KEY_INDEX: undefined,
4
+ NOT_KEYED_COMMAND: true,
5
5
  IS_READ_ONLY: true,
6
- transformArguments(alias) {
7
- return ['FT.ALIASDEL', alias];
6
+ parseCommand(parser, alias) {
7
+ parser.push('FT.ALIASDEL', alias);
8
8
  },
9
9
  transformReply: undefined
10
10
  };
11
+ //# sourceMappingURL=ALIASDEL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASDEL.js","sourceRoot":"","sources":["../../../lib/commands/ALIASDEL.ts"],"names":[],"mappings":";;AAGA,kBAAe;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,YAAY,CAAC,MAAqB,EAAE,KAAoB;QACtD,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,cAAc,EAAE,SAAqD;CAC3C,CAAC"}
@@ -1,8 +1,10 @@
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
1
2
  import { SimpleStringReply, RedisArgument } from '@redis/client/dist/lib/RESP/types';
2
3
  declare const _default: {
3
- readonly FIRST_KEY_INDEX: undefined;
4
+ readonly NOT_KEYED_COMMAND: true;
4
5
  readonly IS_READ_ONLY: true;
5
- readonly transformArguments: (this: void, alias: RedisArgument, index: RedisArgument) => RedisArgument[];
6
+ readonly parseCommand: (this: void, parser: CommandParser, alias: RedisArgument, index: RedisArgument) => void;
6
7
  readonly transformReply: () => SimpleStringReply<'OK'>;
7
8
  };
8
9
  export default _default;
10
+ //# sourceMappingURL=ALIASUPDATE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASUPDATE.d.ts","sourceRoot":"","sources":["../../../lib/commands/ALIASUPDATE.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAW,aAAa,EAAE,MAAM,mCAAmC,CAAC;;;;gDAKvE,aAAa,SAAS,aAAa,SAAS,aAAa;mCAGhC,kBAAkB,IAAI,CAAC;;AANvE,wBAO6B"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- FIRST_KEY_INDEX: undefined,
4
+ NOT_KEYED_COMMAND: true,
5
5
  IS_READ_ONLY: true,
6
- transformArguments(alias, index) {
7
- return ['FT.ALIASUPDATE', alias, index];
6
+ parseCommand(parser, alias, index) {
7
+ parser.push('FT.ALIASUPDATE', alias, index);
8
8
  },
9
9
  transformReply: undefined
10
10
  };
11
+ //# sourceMappingURL=ALIASUPDATE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALIASUPDATE.js","sourceRoot":"","sources":["../../../lib/commands/ALIASUPDATE.ts"],"names":[],"mappings":";;AAGA,kBAAe;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,YAAY,CAAC,MAAqB,EAAE,KAAoB,EAAE,KAAoB;QAC5E,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,cAAc,EAAE,SAAqD;CAC3C,CAAC"}
@@ -1,9 +1,11 @@
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
1
2
  import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
3
  import { RediSearchSchema } from './CREATE';
3
4
  declare const _default: {
4
- readonly FIRST_KEY_INDEX: undefined;
5
+ readonly NOT_KEYED_COMMAND: true;
5
6
  readonly IS_READ_ONLY: true;
6
- readonly transformArguments: (this: void, index: RedisArgument, schema: RediSearchSchema) => RedisArgument[];
7
+ readonly parseCommand: (this: void, parser: CommandParser, index: RedisArgument, schema: RediSearchSchema) => void;
7
8
  readonly transformReply: () => SimpleStringReply<'OK'>;
8
9
  };
9
10
  export default _default;
11
+ //# sourceMappingURL=ALTER.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALTER.d.ts","sourceRoot":"","sources":["../../../lib/commands/ALTER.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAe,MAAM,UAAU,CAAC;;;;gDAKlC,aAAa,SAAS,aAAa,UAAU,gBAAgB;mCAIpC,kBAAkB,IAAI,CAAC;;AAPvE,wBAQ6B"}
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const CREATE_1 = require("./CREATE");
4
4
  exports.default = {
5
- FIRST_KEY_INDEX: undefined,
5
+ NOT_KEYED_COMMAND: true,
6
6
  IS_READ_ONLY: true,
7
- transformArguments(index, schema) {
8
- const args = ['FT.ALTER', index, 'SCHEMA', 'ADD'];
9
- (0, CREATE_1.pushSchema)(args, schema);
10
- return args;
7
+ parseCommand(parser, index, schema) {
8
+ parser.push('FT.ALTER', index, 'SCHEMA', 'ADD');
9
+ (0, CREATE_1.parseSchema)(parser, schema);
11
10
  },
12
11
  transformReply: undefined
13
12
  };
13
+ //# sourceMappingURL=ALTER.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ALTER.js","sourceRoot":"","sources":["../../../lib/commands/ALTER.ts"],"names":[],"mappings":";;AAEA,qCAAyD;AAEzD,kBAAe;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,YAAY,CAAC,MAAqB,EAAE,KAAoB,EAAE,MAAwB;QAChF,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,IAAA,oBAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,cAAc,EAAE,SAAqD;CAC3C,CAAC"}
@@ -1,8 +1,10 @@
1
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
1
2
  import { ArrayReply, TuplesReply, BlobStringReply, NullReply, UnwrapReply } from '@redis/client/dist/lib/RESP/types';
2
3
  declare const _default: {
3
- readonly FIRST_KEY_INDEX: undefined;
4
+ readonly NOT_KEYED_COMMAND: true;
4
5
  readonly IS_READ_ONLY: true;
5
- readonly transformArguments: (this: void, option: string) => string[];
6
+ readonly parseCommand: (this: void, parser: CommandParser, option: string) => void;
6
7
  readonly transformReply: (this: void, reply: UnwrapReply<ArrayReply<TuplesReply<[BlobStringReply, BlobStringReply | NullReply]>>>) => Record<string, BlobStringReply<string> | NullReply>;
7
8
  };
8
9
  export default _default;
10
+ //# sourceMappingURL=CONFIG_GET.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CONFIG_GET.d.ts","sourceRoot":"","sources":["../../../lib/commands/CONFIG_GET.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAW,MAAM,mCAAmC,CAAC;;;;gDAKvG,aAAa,UAAU,MAAM;iDAG5B,YAAY,WAAW,YAAY,CAAC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;AAN5G,wBAe6B"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
- FIRST_KEY_INDEX: undefined,
4
+ NOT_KEYED_COMMAND: true,
5
5
  IS_READ_ONLY: true,
6
- transformArguments(option) {
7
- return ['FT.CONFIG', 'GET', option];
6
+ parseCommand(parser, option) {
7
+ parser.push('FT.CONFIG', 'GET', option);
8
8
  },
9
9
  transformReply(reply) {
10
10
  const transformedReply = Object.create(null);
@@ -15,3 +15,4 @@ exports.default = {
15
15
  return transformedReply;
16
16
  }
17
17
  };
18
+ //# sourceMappingURL=CONFIG_GET.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CONFIG_GET.js","sourceRoot":"","sources":["../../../lib/commands/CONFIG_GET.ts"],"names":[],"mappings":";;AAGA,kBAAe;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,YAAY,CAAC,MAAqB,EAAE,MAAc;QAChD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,cAAc,CAAC,KAA2F;QACxG,MAAM,gBAAgB,GAAgD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAA2C,CAAC;YACjE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;QAC3C,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CACyB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  /// <reference types="node" />
2
+ import { CommandParser } from '@redis/client/dist/lib/client/parser';
2
3
  import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
3
4
  type FtConfigProperties = 'a' | 'b' | (string & {}) | Buffer;
4
5
  declare const _default: {
5
- readonly FIRST_KEY_INDEX: undefined;
6
+ readonly NOT_KEYED_COMMAND: true;
6
7
  readonly IS_READ_ONLY: true;
7
- readonly transformArguments: (this: void, property: FtConfigProperties, value: RedisArgument) => (string | Buffer)[];
8
+ readonly parseCommand: (this: void, parser: CommandParser, property: FtConfigProperties, value: RedisArgument) => void;
8
9
  readonly transformReply: () => SimpleStringReply<'OK'>;
9
10
  };
10
11
  export default _default;
12
+ //# sourceMappingURL=CONFIG_SET.d.ts.map