@redis/search 1.1.5 → 2.0.0-next.2

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 (145) hide show
  1. package/dist/lib/commands/AGGREGATE.d.ts +102 -0
  2. package/dist/lib/commands/AGGREGATE.js +170 -0
  3. package/dist/lib/commands/AGGREGATE_WITHCURSOR.d.ts +13 -0
  4. package/dist/lib/commands/AGGREGATE_WITHCURSOR.js +22 -0
  5. package/dist/lib/commands/ALIASADD.d.ts +8 -0
  6. package/dist/lib/commands/ALIASADD.js +10 -0
  7. package/dist/lib/commands/ALIASDEL.d.ts +8 -0
  8. package/dist/lib/commands/ALIASDEL.js +10 -0
  9. package/dist/lib/commands/ALIASUPDATE.d.ts +8 -0
  10. package/dist/lib/commands/ALIASUPDATE.js +10 -0
  11. package/dist/lib/commands/ALTER.d.ts +9 -0
  12. package/dist/lib/commands/ALTER.js +13 -0
  13. package/dist/lib/commands/CONFIG_GET.d.ts +8 -0
  14. package/dist/lib/commands/CONFIG_GET.js +17 -0
  15. package/dist/lib/commands/CONFIG_SET.d.ts +10 -0
  16. package/dist/lib/commands/CONFIG_SET.js +10 -0
  17. package/dist/lib/commands/CREATE.d.ts +124 -0
  18. package/dist/lib/commands/CREATE.js +193 -0
  19. package/dist/lib/commands/CURSOR_DEL.d.ts +8 -0
  20. package/dist/lib/commands/CURSOR_DEL.js +10 -0
  21. package/dist/lib/commands/CURSOR_READ.d.ts +11 -0
  22. package/dist/lib/commands/CURSOR_READ.js +18 -0
  23. package/dist/lib/commands/DICTADD.d.ts +9 -0
  24. package/dist/lib/commands/DICTADD.js +11 -0
  25. package/dist/lib/commands/DICTDEL.d.ts +9 -0
  26. package/dist/lib/commands/DICTDEL.js +11 -0
  27. package/dist/lib/commands/DICTDUMP.d.ts +11 -0
  28. package/dist/lib/commands/DICTDUMP.js +13 -0
  29. package/dist/lib/commands/DROPINDEX.d.ts +14 -0
  30. package/dist/lib/commands/DROPINDEX.js +17 -0
  31. package/dist/lib/commands/EXPLAIN.d.ts +0 -0
  32. package/dist/lib/commands/EXPLAIN.js +24 -0
  33. package/dist/lib/commands/EXPLAINCLI.d.ts +8 -0
  34. package/dist/lib/commands/EXPLAINCLI.js +10 -0
  35. package/dist/lib/commands/INFO.d.ts +0 -0
  36. package/dist/lib/commands/INFO.js +164 -0
  37. package/dist/lib/commands/PROFILE_AGGREGATE.d.ts +0 -0
  38. package/dist/lib/commands/PROFILE_AGGREGATE.js +24 -0
  39. package/dist/lib/commands/PROFILE_SEARCH.d.ts +0 -0
  40. package/dist/lib/commands/PROFILE_SEARCH.js +24 -0
  41. package/dist/lib/commands/SEARCH.d.ts +48 -0
  42. package/dist/lib/commands/SEARCH.js +96 -0
  43. package/dist/lib/commands/SEARCH_NOCONTENT.d.ts +7 -0
  44. package/dist/lib/commands/SEARCH_NOCONTENT.js +16 -0
  45. package/dist/lib/commands/SPELLCHECK.d.ts +17 -0
  46. package/dist/lib/commands/SPELLCHECK.js +52 -0
  47. package/dist/lib/commands/SUGADD.d.ts +12 -0
  48. package/dist/lib/commands/SUGADD.js +17 -0
  49. package/dist/lib/commands/SUGDEL.d.ts +8 -0
  50. package/dist/lib/commands/SUGDEL.js +10 -0
  51. package/dist/lib/commands/SUGGET.d.ts +12 -0
  52. package/dist/lib/commands/SUGGET.js +17 -0
  53. package/dist/lib/commands/SUGGET_WITHPAYLOADS.d.ts +11 -0
  54. package/dist/lib/commands/SUGGET_WITHPAYLOADS.js +29 -0
  55. package/dist/lib/commands/SUGGET_WITHSCORES.d.ts +17 -0
  56. package/dist/lib/commands/SUGGET_WITHSCORES.js +44 -0
  57. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts +19 -0
  58. package/dist/lib/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js +46 -0
  59. package/dist/lib/commands/SUGLEN.d.ts +8 -0
  60. package/dist/lib/commands/SUGLEN.js +10 -0
  61. package/dist/lib/commands/SYNDUMP.d.ts +11 -0
  62. package/dist/lib/commands/SYNDUMP.js +21 -0
  63. package/dist/lib/commands/SYNUPDATE.d.ts +12 -0
  64. package/dist/lib/commands/SYNUPDATE.js +15 -0
  65. package/dist/lib/commands/TAGVALS.d.ts +11 -0
  66. package/dist/lib/commands/TAGVALS.js +13 -0
  67. package/dist/lib/commands/_LIST.d.ts +11 -0
  68. package/dist/lib/commands/_LIST.js +13 -0
  69. package/dist/lib/commands/index.d.ts +428 -0
  70. package/dist/lib/commands/index.js +109 -0
  71. package/dist/lib/index.d.ts +2 -0
  72. package/dist/lib/index.js +13 -0
  73. package/package.json +8 -17
  74. package/dist/commands/AGGREGATE.d.ts +0 -117
  75. package/dist/commands/AGGREGATE.js +0 -167
  76. package/dist/commands/AGGREGATE_WITHCURSOR.d.ts +0 -14
  77. package/dist/commands/AGGREGATE_WITHCURSOR.js +0 -23
  78. package/dist/commands/ALIASADD.d.ts +0 -2
  79. package/dist/commands/ALIASADD.js +0 -7
  80. package/dist/commands/ALIASDEL.d.ts +0 -2
  81. package/dist/commands/ALIASDEL.js +0 -7
  82. package/dist/commands/ALIASUPDATE.d.ts +0 -2
  83. package/dist/commands/ALIASUPDATE.js +0 -7
  84. package/dist/commands/ALTER.d.ts +0 -3
  85. package/dist/commands/ALTER.js +0 -10
  86. package/dist/commands/CONFIG_GET.d.ts +0 -6
  87. package/dist/commands/CONFIG_GET.js +0 -15
  88. package/dist/commands/CONFIG_SET.d.ts +0 -2
  89. package/dist/commands/CONFIG_SET.js +0 -7
  90. package/dist/commands/CREATE.d.ts +0 -21
  91. package/dist/commands/CREATE.js +0 -56
  92. package/dist/commands/CURSOR_DEL.d.ts +0 -4
  93. package/dist/commands/CURSOR_DEL.js +0 -13
  94. package/dist/commands/CURSOR_READ.d.ts +0 -8
  95. package/dist/commands/CURSOR_READ.js +0 -20
  96. package/dist/commands/DICTADD.d.ts +0 -3
  97. package/dist/commands/DICTADD.js +0 -8
  98. package/dist/commands/DICTDEL.d.ts +0 -3
  99. package/dist/commands/DICTDEL.js +0 -8
  100. package/dist/commands/DICTDUMP.d.ts +0 -2
  101. package/dist/commands/DICTDUMP.js +0 -7
  102. package/dist/commands/DROPINDEX.d.ts +0 -6
  103. package/dist/commands/DROPINDEX.js +0 -11
  104. package/dist/commands/EXPLAIN.d.ts +0 -9
  105. package/dist/commands/EXPLAIN.js +0 -14
  106. package/dist/commands/EXPLAINCLI.d.ts +0 -3
  107. package/dist/commands/EXPLAINCLI.js +0 -8
  108. package/dist/commands/INFO.d.ts +0 -120
  109. package/dist/commands/INFO.js +0 -51
  110. package/dist/commands/PROFILE_AGGREGATE.d.ts +0 -7
  111. package/dist/commands/PROFILE_AGGREGATE.js +0 -23
  112. package/dist/commands/PROFILE_SEARCH.d.ts +0 -8
  113. package/dist/commands/PROFILE_SEARCH.js +0 -22
  114. package/dist/commands/SEARCH.d.ts +0 -41
  115. package/dist/commands/SEARCH.js +0 -43
  116. package/dist/commands/SEARCH_NOCONTENT.d.ts +0 -10
  117. package/dist/commands/SEARCH_NOCONTENT.js +0 -18
  118. package/dist/commands/SPELLCHECK.d.ts +0 -24
  119. package/dist/commands/SPELLCHECK.js +0 -37
  120. package/dist/commands/SUGADD.d.ts +0 -7
  121. package/dist/commands/SUGADD.js +0 -14
  122. package/dist/commands/SUGDEL.d.ts +0 -2
  123. package/dist/commands/SUGDEL.js +0 -9
  124. package/dist/commands/SUGGET.d.ts +0 -7
  125. package/dist/commands/SUGGET.js +0 -15
  126. package/dist/commands/SUGGET_WITHPAYLOADS.d.ts +0 -8
  127. package/dist/commands/SUGGET_WITHPAYLOADS.js +0 -26
  128. package/dist/commands/SUGGET_WITHSCORES.d.ts +0 -8
  129. package/dist/commands/SUGGET_WITHSCORES.js +0 -26
  130. package/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.d.ts +0 -7
  131. package/dist/commands/SUGGET_WITHSCORES_WITHPAYLOADS.js +0 -28
  132. package/dist/commands/SUGLEN.d.ts +0 -3
  133. package/dist/commands/SUGLEN.js +0 -8
  134. package/dist/commands/SYNDUMP.d.ts +0 -2
  135. package/dist/commands/SYNDUMP.js +0 -7
  136. package/dist/commands/SYNUPDATE.d.ts +0 -7
  137. package/dist/commands/SYNUPDATE.js +0 -12
  138. package/dist/commands/TAGVALS.d.ts +0 -2
  139. package/dist/commands/TAGVALS.js +0 -7
  140. package/dist/commands/_LIST.d.ts +0 -2
  141. package/dist/commands/_LIST.js +0 -7
  142. package/dist/commands/index.d.ts +0 -254
  143. package/dist/commands/index.js +0 -433
  144. package/dist/index.d.ts +0 -4
  145. package/dist/index.js +0 -12
@@ -0,0 +1,102 @@
1
+ import { RedisArgument } from '@redis/client/dist/lib/RESP/types';
2
+ import { RediSearchProperty } from './CREATE';
3
+ import { FtSearchParams } from './SEARCH';
4
+ type LoadField = RediSearchProperty | {
5
+ identifier: RediSearchProperty;
6
+ AS?: RedisArgument;
7
+ };
8
+ export declare const FT_AGGREGATE_STEPS: {
9
+ readonly GROUPBY: "GROUPBY";
10
+ readonly SORTBY: "SORTBY";
11
+ readonly APPLY: "APPLY";
12
+ readonly LIMIT: "LIMIT";
13
+ readonly FILTER: "FILTER";
14
+ };
15
+ type FT_AGGREGATE_STEPS = typeof FT_AGGREGATE_STEPS;
16
+ export type FtAggregateStep = FT_AGGREGATE_STEPS[keyof FT_AGGREGATE_STEPS];
17
+ interface AggregateStep<T extends FtAggregateStep> {
18
+ type: T;
19
+ }
20
+ export declare const FT_AGGREGATE_GROUP_BY_REDUCERS: {
21
+ readonly COUNT: "COUNT";
22
+ readonly COUNT_DISTINCT: "COUNT_DISTINCT";
23
+ readonly COUNT_DISTINCTISH: "COUNT_DISTINCTISH";
24
+ readonly SUM: "SUM";
25
+ readonly MIN: "MIN";
26
+ readonly MAX: "MAX";
27
+ readonly AVG: "AVG";
28
+ readonly STDDEV: "STDDEV";
29
+ readonly QUANTILE: "QUANTILE";
30
+ readonly TOLIST: "TOLIST";
31
+ readonly FIRST_VALUE: "FIRST_VALUE";
32
+ readonly RANDOM_SAMPLE: "RANDOM_SAMPLE";
33
+ };
34
+ type FT_AGGREGATE_GROUP_BY_REDUCERS = typeof FT_AGGREGATE_GROUP_BY_REDUCERS;
35
+ export type FtAggregateGroupByReducer = FT_AGGREGATE_GROUP_BY_REDUCERS[keyof FT_AGGREGATE_GROUP_BY_REDUCERS];
36
+ interface GroupByReducer<T extends FtAggregateGroupByReducer> {
37
+ type: T;
38
+ AS?: RedisArgument;
39
+ }
40
+ interface GroupByReducerWithProperty<T extends FtAggregateGroupByReducer> extends GroupByReducer<T> {
41
+ property: RediSearchProperty;
42
+ }
43
+ type CountReducer = GroupByReducer<FT_AGGREGATE_GROUP_BY_REDUCERS['COUNT']>;
44
+ type CountDistinctReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['COUNT_DISTINCT']>;
45
+ type CountDistinctishReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['COUNT_DISTINCTISH']>;
46
+ type SumReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['SUM']>;
47
+ type MinReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['MIN']>;
48
+ type MaxReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['MAX']>;
49
+ type AvgReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['AVG']>;
50
+ type StdDevReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['STDDEV']>;
51
+ interface QuantileReducer extends GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['QUANTILE']> {
52
+ quantile: number;
53
+ }
54
+ type ToListReducer = GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['TOLIST']>;
55
+ interface FirstValueReducer extends GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['FIRST_VALUE']> {
56
+ BY?: RediSearchProperty | {
57
+ property: RediSearchProperty;
58
+ direction?: 'ASC' | 'DESC';
59
+ };
60
+ }
61
+ interface RandomSampleReducer extends GroupByReducerWithProperty<FT_AGGREGATE_GROUP_BY_REDUCERS['RANDOM_SAMPLE']> {
62
+ sampleSize: number;
63
+ }
64
+ type GroupByReducers = CountReducer | CountDistinctReducer | CountDistinctishReducer | SumReducer | MinReducer | MaxReducer | AvgReducer | StdDevReducer | QuantileReducer | ToListReducer | FirstValueReducer | RandomSampleReducer;
65
+ interface GroupByStep extends AggregateStep<FT_AGGREGATE_STEPS['GROUPBY']> {
66
+ properties?: RediSearchProperty | Array<RediSearchProperty>;
67
+ REDUCE: GroupByReducers | Array<GroupByReducers>;
68
+ }
69
+ type SortByProperty = RedisArgument | {
70
+ BY: RediSearchProperty;
71
+ DIRECTION?: 'ASC' | 'DESC';
72
+ };
73
+ interface SortStep extends AggregateStep<FT_AGGREGATE_STEPS['SORTBY']> {
74
+ BY: SortByProperty | Array<SortByProperty>;
75
+ MAX?: number;
76
+ }
77
+ interface ApplyStep extends AggregateStep<FT_AGGREGATE_STEPS['APPLY']> {
78
+ expression: RedisArgument;
79
+ AS: RedisArgument;
80
+ }
81
+ interface LimitStep extends AggregateStep<FT_AGGREGATE_STEPS['LIMIT']> {
82
+ from: number;
83
+ size: number;
84
+ }
85
+ interface FilterStep extends AggregateStep<FT_AGGREGATE_STEPS['FILTER']> {
86
+ expression: RedisArgument;
87
+ }
88
+ export interface FtAggregateOptions {
89
+ VERBATIM?: boolean;
90
+ LOAD?: LoadField | Array<LoadField>;
91
+ TIMEOUT?: number;
92
+ STEPS?: Array<GroupByStep | SortStep | ApplyStep | LimitStep | FilterStep>;
93
+ PARAMS?: FtSearchParams;
94
+ DIALECT?: number;
95
+ }
96
+ declare const _default: {
97
+ readonly FIRST_KEY_INDEX: undefined;
98
+ readonly IS_READ_ONLY: false;
99
+ readonly transformArguments: (this: void, index: RedisArgument, query: RedisArgument, options?: FtAggregateOptions) => RedisArgument[];
100
+ readonly transformReply: () => any;
101
+ };
102
+ export default _default;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FT_AGGREGATE_GROUP_BY_REDUCERS = exports.FT_AGGREGATE_STEPS = void 0;
4
+ const SEARCH_1 = require("./SEARCH");
5
+ const generic_transformers_1 = require("@redis/client/dist/lib/commands/generic-transformers");
6
+ exports.FT_AGGREGATE_STEPS = {
7
+ GROUPBY: 'GROUPBY',
8
+ SORTBY: 'SORTBY',
9
+ APPLY: 'APPLY',
10
+ LIMIT: 'LIMIT',
11
+ FILTER: 'FILTER'
12
+ };
13
+ exports.FT_AGGREGATE_GROUP_BY_REDUCERS = {
14
+ COUNT: 'COUNT',
15
+ COUNT_DISTINCT: 'COUNT_DISTINCT',
16
+ COUNT_DISTINCTISH: 'COUNT_DISTINCTISH',
17
+ SUM: 'SUM',
18
+ MIN: 'MIN',
19
+ MAX: 'MAX',
20
+ AVG: 'AVG',
21
+ STDDEV: 'STDDEV',
22
+ QUANTILE: 'QUANTILE',
23
+ TOLIST: 'TOLIST',
24
+ FIRST_VALUE: 'FIRST_VALUE',
25
+ RANDOM_SAMPLE: 'RANDOM_SAMPLE'
26
+ };
27
+ exports.default = {
28
+ FIRST_KEY_INDEX: undefined,
29
+ 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
+ }
41
+ }
42
+ else {
43
+ pushLoadField(args, options.LOAD);
44
+ }
45
+ args[length - 1] = (args.length - length).toString();
46
+ }
47
+ if (options?.TIMEOUT !== undefined) {
48
+ args.push('TIMEOUT', options.TIMEOUT.toString());
49
+ }
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);
79
+ }
80
+ if (step.MAX) {
81
+ args.push('MAX', step.MAX.toString());
82
+ }
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
+ }
95
+ }
96
+ }
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
+ };
105
+ function pushLoadField(args, toLoad) {
106
+ if (typeof toLoad === 'string' || toLoad instanceof Buffer) {
107
+ args.push(toLoad);
108
+ }
109
+ else {
110
+ args.push(toLoad.identifier);
111
+ if (toLoad.AS) {
112
+ args.push('AS', toLoad.AS);
113
+ }
114
+ }
115
+ }
116
+ function pushGroupByReducer(args, reducer) {
117
+ args.push('REDUCE', reducer.type);
118
+ switch (reducer.type) {
119
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT:
120
+ args.push('0');
121
+ break;
122
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCT:
123
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.COUNT_DISTINCTISH:
124
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.SUM:
125
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.MIN:
126
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.MAX:
127
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.AVG:
128
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.STDDEV:
129
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.TOLIST:
130
+ args.push('1', reducer.property);
131
+ break;
132
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.QUANTILE:
133
+ args.push('2', reducer.property, reducer.quantile.toString());
134
+ break;
135
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.FIRST_VALUE: {
136
+ const length = args.push('', reducer.property) - 1;
137
+ if (reducer.BY) {
138
+ args.push('BY');
139
+ if (typeof reducer.BY === 'string' || reducer.BY instanceof Buffer) {
140
+ args.push(reducer.BY);
141
+ }
142
+ else {
143
+ args.push(reducer.BY.property);
144
+ if (reducer.BY.direction) {
145
+ args.push(reducer.BY.direction);
146
+ }
147
+ }
148
+ }
149
+ args[length - 1] = (args.length - length).toString();
150
+ break;
151
+ }
152
+ case exports.FT_AGGREGATE_GROUP_BY_REDUCERS.RANDOM_SAMPLE:
153
+ args.push('2', reducer.property, reducer.sampleSize.toString());
154
+ break;
155
+ }
156
+ if (reducer.AS) {
157
+ args.push('AS', reducer.AS);
158
+ }
159
+ }
160
+ function pushSortByProperty(args, sortBy) {
161
+ if (typeof sortBy === 'string' || sortBy instanceof Buffer) {
162
+ args.push(sortBy);
163
+ }
164
+ else {
165
+ args.push(sortBy.BY);
166
+ if (sortBy.DIRECTION) {
167
+ args.push(sortBy.DIRECTION);
168
+ }
169
+ }
170
+ }
@@ -0,0 +1,13 @@
1
+ import { RedisArgument } from '@redis/client/dist/lib/RESP/types';
2
+ import { FtAggregateOptions } from './AGGREGATE';
3
+ export interface FtAggregateWithCursorOptions extends FtAggregateOptions {
4
+ COUNT?: number;
5
+ MAXIDLE?: number;
6
+ }
7
+ declare const _default: {
8
+ readonly FIRST_KEY_INDEX: undefined;
9
+ readonly IS_READ_ONLY: false;
10
+ readonly transformArguments: (this: void, index: RedisArgument, query: RedisArgument, options?: FtAggregateWithCursorOptions) => RedisArgument[];
11
+ readonly transformReply: () => any;
12
+ };
13
+ export default _default;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AGGREGATE_1 = __importDefault(require("./AGGREGATE"));
7
+ exports.default = {
8
+ FIRST_KEY_INDEX: AGGREGATE_1.default.FIRST_KEY_INDEX,
9
+ 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');
13
+ if (options?.COUNT !== undefined) {
14
+ args.push('COUNT', options.COUNT.toString());
15
+ }
16
+ if (options?.MAXIDLE !== undefined) {
17
+ args.push('MAXIDLE', options.MAXIDLE.toString());
18
+ }
19
+ return args;
20
+ },
21
+ transformReply: undefined
22
+ };
@@ -0,0 +1,8 @@
1
+ import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
+ declare const _default: {
3
+ readonly FIRST_KEY_INDEX: undefined;
4
+ readonly IS_READ_ONLY: true;
5
+ readonly transformArguments: (this: void, alias: RedisArgument, index: RedisArgument) => RedisArgument[];
6
+ readonly transformReply: () => SimpleStringReply<'OK'>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ FIRST_KEY_INDEX: undefined,
5
+ IS_READ_ONLY: true,
6
+ transformArguments(alias, index) {
7
+ return ['FT.ALIASADD', alias, index];
8
+ },
9
+ transformReply: undefined
10
+ };
@@ -0,0 +1,8 @@
1
+ import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
+ declare const _default: {
3
+ readonly FIRST_KEY_INDEX: undefined;
4
+ readonly IS_READ_ONLY: true;
5
+ readonly transformArguments: (this: void, alias: RedisArgument) => RedisArgument[];
6
+ readonly transformReply: () => SimpleStringReply<'OK'>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ FIRST_KEY_INDEX: undefined,
5
+ IS_READ_ONLY: true,
6
+ transformArguments(alias) {
7
+ return ['FT.ALIASDEL', alias];
8
+ },
9
+ transformReply: undefined
10
+ };
@@ -0,0 +1,8 @@
1
+ import { SimpleStringReply, RedisArgument } from '@redis/client/dist/lib/RESP/types';
2
+ declare const _default: {
3
+ readonly FIRST_KEY_INDEX: undefined;
4
+ readonly IS_READ_ONLY: true;
5
+ readonly transformArguments: (this: void, alias: RedisArgument, index: RedisArgument) => RedisArgument[];
6
+ readonly transformReply: () => SimpleStringReply<'OK'>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ FIRST_KEY_INDEX: undefined,
5
+ IS_READ_ONLY: true,
6
+ transformArguments(alias, index) {
7
+ return ['FT.ALIASUPDATE', alias, index];
8
+ },
9
+ transformReply: undefined
10
+ };
@@ -0,0 +1,9 @@
1
+ import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
2
+ import { RediSearchSchema } from './CREATE';
3
+ declare const _default: {
4
+ readonly FIRST_KEY_INDEX: undefined;
5
+ readonly IS_READ_ONLY: true;
6
+ readonly transformArguments: (this: void, index: RedisArgument, schema: RediSearchSchema) => RedisArgument[];
7
+ readonly transformReply: () => SimpleStringReply<'OK'>;
8
+ };
9
+ export default _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const CREATE_1 = require("./CREATE");
4
+ exports.default = {
5
+ FIRST_KEY_INDEX: undefined,
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;
11
+ },
12
+ transformReply: undefined
13
+ };
@@ -0,0 +1,8 @@
1
+ import { ArrayReply, TuplesReply, BlobStringReply, NullReply, UnwrapReply } from '@redis/client/dist/lib/RESP/types';
2
+ declare const _default: {
3
+ readonly FIRST_KEY_INDEX: undefined;
4
+ readonly IS_READ_ONLY: true;
5
+ readonly transformArguments: (this: void, option: string) => string[];
6
+ readonly transformReply: (this: void, reply: UnwrapReply<ArrayReply<TuplesReply<[BlobStringReply, BlobStringReply | NullReply]>>>) => Record<string, BlobStringReply<string> | NullReply>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ FIRST_KEY_INDEX: undefined,
5
+ IS_READ_ONLY: true,
6
+ transformArguments(option) {
7
+ return ['FT.CONFIG', 'GET', option];
8
+ },
9
+ transformReply(reply) {
10
+ const transformedReply = Object.create(null);
11
+ for (const item of reply) {
12
+ const [key, value] = item;
13
+ transformedReply[key.toString()] = value;
14
+ }
15
+ return transformedReply;
16
+ }
17
+ };
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import { RedisArgument, SimpleStringReply } from '@redis/client/dist/lib/RESP/types';
3
+ type FtConfigProperties = 'a' | 'b' | (string & {}) | Buffer;
4
+ declare const _default: {
5
+ readonly FIRST_KEY_INDEX: undefined;
6
+ readonly IS_READ_ONLY: true;
7
+ readonly transformArguments: (this: void, property: FtConfigProperties, value: RedisArgument) => (string | Buffer)[];
8
+ readonly transformReply: () => SimpleStringReply<'OK'>;
9
+ };
10
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ FIRST_KEY_INDEX: undefined,
5
+ IS_READ_ONLY: true,
6
+ transformArguments(property, value) {
7
+ return ['FT.CONFIG', 'SET', property, value];
8
+ },
9
+ transformReply: undefined
10
+ };
@@ -0,0 +1,124 @@
1
+ import { RedisArgument, SimpleStringReply, CommandArguments } from '@redis/client/dist/lib/RESP/types';
2
+ import { RedisVariadicArgument } from '@redis/client/dist/lib/commands/generic-transformers';
3
+ export declare const SCHEMA_FIELD_TYPE: {
4
+ readonly TEXT: "TEXT";
5
+ readonly NUMERIC: "NUMERIC";
6
+ readonly GEO: "GEO";
7
+ readonly TAG: "TAG";
8
+ readonly VECTOR: "VECTOR";
9
+ readonly GEOSHAPE: "GEOSHAPE";
10
+ };
11
+ export type SchemaFieldType = typeof SCHEMA_FIELD_TYPE[keyof typeof SCHEMA_FIELD_TYPE];
12
+ type SchemaField<T extends SchemaFieldType, E = Record<PropertyKey, unknown>> = T | ({
13
+ type: T;
14
+ AS?: RedisArgument;
15
+ } & E);
16
+ type SchemaCommonField<T extends SchemaFieldType, E = Record<PropertyKey, unknown>> = SchemaField<T, ({
17
+ SORTABLE?: boolean | 'UNF';
18
+ NOINDEX?: boolean;
19
+ } & E)>;
20
+ export declare const SCHEMA_TEXT_FIELD_PHONETIC: {
21
+ readonly DM_EN: "dm:en";
22
+ readonly DM_FR: "dm:fr";
23
+ readonly FM_PT: "dm:pt";
24
+ readonly DM_ES: "dm:es";
25
+ };
26
+ export type SchemaTextFieldPhonetic = typeof SCHEMA_TEXT_FIELD_PHONETIC[keyof typeof SCHEMA_TEXT_FIELD_PHONETIC];
27
+ type SchemaTextField = SchemaCommonField<typeof SCHEMA_FIELD_TYPE['TEXT'], {
28
+ NOSTEM?: boolean;
29
+ WEIGHT?: number;
30
+ PHONETIC?: SchemaTextFieldPhonetic;
31
+ WITHSUFFIXTRIE?: boolean;
32
+ }>;
33
+ type SchemaNumericField = SchemaCommonField<typeof SCHEMA_FIELD_TYPE['NUMERIC']>;
34
+ type SchemaGeoField = SchemaCommonField<typeof SCHEMA_FIELD_TYPE['GEO']>;
35
+ type SchemaTagField = SchemaCommonField<typeof SCHEMA_FIELD_TYPE['TAG'], {
36
+ SEPARATOR?: RedisArgument;
37
+ CASESENSITIVE?: boolean;
38
+ WITHSUFFIXTRIE?: boolean;
39
+ }>;
40
+ export declare const SCHEMA_VECTOR_FIELD_ALGORITHM: {
41
+ readonly FLAT: "FLAT";
42
+ readonly HNSW: "HNSW";
43
+ };
44
+ export type SchemaVectorFieldAlgorithm = typeof SCHEMA_VECTOR_FIELD_ALGORITHM[keyof typeof SCHEMA_VECTOR_FIELD_ALGORITHM];
45
+ type SchemaVectorField<T extends SchemaVectorFieldAlgorithm, A extends Record<string, unknown>> = SchemaField<typeof SCHEMA_FIELD_TYPE['VECTOR'], {
46
+ ALGORITHM: T;
47
+ TYPE: string;
48
+ DIM: number;
49
+ DISTANCE_METRIC: 'L2' | 'IP' | 'COSINE';
50
+ INITIAL_CAP?: number;
51
+ } & A>;
52
+ type SchemaFlatVectorField = SchemaVectorField<typeof SCHEMA_VECTOR_FIELD_ALGORITHM['FLAT'], {
53
+ BLOCK_SIZE?: number;
54
+ }>;
55
+ type SchemaHNSWVectorField = SchemaVectorField<typeof SCHEMA_VECTOR_FIELD_ALGORITHM['HNSW'], {
56
+ M?: number;
57
+ EF_CONSTRUCTION?: number;
58
+ EF_RUNTIME?: number;
59
+ }>;
60
+ export declare const SCHEMA_GEO_SHAPE_COORD_SYSTEM: {
61
+ readonly SPHERICAL: "SPHERICAL";
62
+ readonly FLAT: "FLAT";
63
+ };
64
+ export type SchemaGeoShapeFieldCoordSystem = typeof SCHEMA_GEO_SHAPE_COORD_SYSTEM[keyof typeof SCHEMA_GEO_SHAPE_COORD_SYSTEM];
65
+ type SchemaGeoShapeField = SchemaField<typeof SCHEMA_FIELD_TYPE['GEOSHAPE'], {
66
+ COORD_SYSTEM?: SchemaGeoShapeFieldCoordSystem;
67
+ }>;
68
+ export interface RediSearchSchema {
69
+ [field: string]: (SchemaTextField | SchemaNumericField | SchemaGeoField | SchemaTagField | SchemaFlatVectorField | SchemaHNSWVectorField | SchemaGeoShapeField);
70
+ }
71
+ export declare function pushSchema(args: CommandArguments, schema: RediSearchSchema): void;
72
+ export declare const REDISEARCH_LANGUAGE: {
73
+ readonly ARABIC: "Arabic";
74
+ readonly BASQUE: "Basque";
75
+ readonly CATALANA: "Catalan";
76
+ readonly DANISH: "Danish";
77
+ readonly DUTCH: "Dutch";
78
+ readonly ENGLISH: "English";
79
+ readonly FINNISH: "Finnish";
80
+ readonly FRENCH: "French";
81
+ readonly GERMAN: "German";
82
+ readonly GREEK: "Greek";
83
+ readonly HUNGARIAN: "Hungarian";
84
+ readonly INDONESAIN: "Indonesian";
85
+ readonly IRISH: "Irish";
86
+ readonly ITALIAN: "Italian";
87
+ readonly LITHUANIAN: "Lithuanian";
88
+ readonly NEPALI: "Nepali";
89
+ readonly NORWEIGAN: "Norwegian";
90
+ readonly PORTUGUESE: "Portuguese";
91
+ readonly ROMANIAN: "Romanian";
92
+ readonly RUSSIAN: "Russian";
93
+ readonly SPANISH: "Spanish";
94
+ readonly SWEDISH: "Swedish";
95
+ readonly TAMIL: "Tamil";
96
+ readonly TURKISH: "Turkish";
97
+ readonly CHINESE: "Chinese";
98
+ };
99
+ export type RediSearchLanguage = typeof REDISEARCH_LANGUAGE[keyof typeof REDISEARCH_LANGUAGE];
100
+ export type RediSearchProperty = `${'@' | '$.'}${string}`;
101
+ export interface CreateOptions {
102
+ ON?: 'HASH' | 'JSON';
103
+ PREFIX?: RedisVariadicArgument;
104
+ FILTER?: RedisArgument;
105
+ LANGUAGE?: RediSearchLanguage;
106
+ LANGUAGE_FIELD?: RediSearchProperty;
107
+ SCORE?: number;
108
+ SCORE_FIELD?: RediSearchProperty;
109
+ MAXTEXTFIELDS?: boolean;
110
+ TEMPORARY?: number;
111
+ NOOFFSETS?: boolean;
112
+ NOHL?: boolean;
113
+ NOFIELDS?: boolean;
114
+ NOFREQS?: boolean;
115
+ SKIPINITIALSCAN?: boolean;
116
+ STOPWORDS?: RedisVariadicArgument;
117
+ }
118
+ declare const _default: {
119
+ readonly FIRST_KEY_INDEX: undefined;
120
+ readonly IS_READ_ONLY: true;
121
+ readonly transformArguments: (this: void, index: RedisArgument, schema: RediSearchSchema, options?: CreateOptions) => RedisArgument[];
122
+ readonly transformReply: () => SimpleStringReply<'OK'>;
123
+ };
124
+ export default _default;