@valkey/valkey-glide-darwin-x64 1.3.4 → 255.255.255

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 (45) hide show
  1. package/package.json +31 -95
  2. package/README.md +0 -106
  3. package/build-ts/index.d.ts +0 -14
  4. package/build-ts/index.js +0 -34
  5. package/build-ts/index.js.map +0 -1
  6. package/build-ts/src/BaseClient.d.ts +0 -5254
  7. package/build-ts/src/BaseClient.js +0 -6391
  8. package/build-ts/src/BaseClient.js.map +0 -1
  9. package/build-ts/src/Commands.d.ts +0 -1034
  10. package/build-ts/src/Commands.js +0 -2710
  11. package/build-ts/src/Commands.js.map +0 -1
  12. package/build-ts/src/Errors.d.ts +0 -21
  13. package/build-ts/src/Errors.js +0 -43
  14. package/build-ts/src/Errors.js.map +0 -1
  15. package/build-ts/src/GlideClient.d.ts +0 -832
  16. package/build-ts/src/GlideClient.js +0 -940
  17. package/build-ts/src/GlideClient.js.map +0 -1
  18. package/build-ts/src/GlideClusterClient.d.ts +0 -1323
  19. package/build-ts/src/GlideClusterClient.js +0 -1276
  20. package/build-ts/src/GlideClusterClient.js.map +0 -1
  21. package/build-ts/src/Logger.d.ts +0 -32
  22. package/build-ts/src/Logger.js +0 -68
  23. package/build-ts/src/Logger.js.map +0 -1
  24. package/build-ts/src/ProtobufMessage.d.ts +0 -2889
  25. package/build-ts/src/ProtobufMessage.js +0 -8785
  26. package/build-ts/src/ProtobufMessage.js.map +0 -1
  27. package/build-ts/src/Transaction.d.ts +0 -2963
  28. package/build-ts/src/Transaction.js +0 -3388
  29. package/build-ts/src/Transaction.js.map +0 -1
  30. package/build-ts/src/server-modules/GlideFt.d.ts +0 -412
  31. package/build-ts/src/server-modules/GlideFt.js +0 -664
  32. package/build-ts/src/server-modules/GlideFt.js.map +0 -1
  33. package/build-ts/src/server-modules/GlideFtOptions.d.ts +0 -244
  34. package/build-ts/src/server-modules/GlideFtOptions.js +0 -6
  35. package/build-ts/src/server-modules/GlideFtOptions.js.map +0 -1
  36. package/build-ts/src/server-modules/GlideJson.d.ts +0 -1335
  37. package/build-ts/src/server-modules/GlideJson.js +0 -1628
  38. package/build-ts/src/server-modules/GlideJson.js.map +0 -1
  39. package/index.ts +0 -15
  40. package/node_modules/glide-rs/glide-rs.darwin-x64.node +0 -0
  41. package/node_modules/glide-rs/index.d.ts +0 -71
  42. package/node_modules/glide-rs/index.js +0 -317
  43. package/node_modules/glide-rs/package.json +0 -65
  44. package/npm/glide/index.ts +0 -391
  45. package/npm/glide/package.json +0 -67
@@ -1,664 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright Valkey GLIDE Project Contributors - SPDX Identifier: Apache-2.0
4
- */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.GlideFt = void 0;
16
- const BaseClient_1 = require("../BaseClient");
17
- const GlideClient_1 = require("../GlideClient");
18
- /** Module for Vector Search commands. */
19
- class GlideFt {
20
- /**
21
- * Creates an index and initiates a backfill of that index.
22
- *
23
- * @param client - The client to execute the command.
24
- * @param indexName - The index name for the index to be created.
25
- * @param schema - The fields of the index schema, specifying the fields and their types.
26
- * @param options - (Optional) Options for the `FT.CREATE` command. See {@link FtCreateOptions}.
27
- * @returns If the index is successfully created, returns "OK".
28
- *
29
- * @example
30
- * ```typescript
31
- * // Example usage of FT.CREATE to create a 6-dimensional JSON index using the HNSW algorithm
32
- * await GlideFt.create(client, "json_idx1", [{
33
- * type: "VECTOR",
34
- * name: "$.vec",
35
- * alias: "VEC",
36
- * attributes: {
37
- * algorithm: "HNSW",
38
- * type: "FLOAT32",
39
- * dimension: 6,
40
- * distanceMetric: "L2",
41
- * numberOfEdges: 32,
42
- * },
43
- * }], {
44
- * dataType: "JSON",
45
- * prefixes: ["json:"]
46
- * });
47
- * ```
48
- */
49
- static create(client, indexName, schema, options) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const args = ["FT.CREATE", indexName];
52
- if (options) {
53
- if ("dataType" in options) {
54
- args.push("ON", options.dataType);
55
- }
56
- if ("prefixes" in options && options.prefixes) {
57
- args.push("PREFIX", options.prefixes.length.toString(), ...options.prefixes);
58
- }
59
- }
60
- args.push("SCHEMA");
61
- schema.forEach((f) => {
62
- args.push(f.name);
63
- if (f.alias) {
64
- args.push("AS", f.alias);
65
- }
66
- args.push(f.type);
67
- switch (f.type) {
68
- case "TAG": {
69
- if (f.separator) {
70
- args.push("SEPARATOR", f.separator);
71
- }
72
- if (f.caseSensitive) {
73
- args.push("CASESENSITIVE");
74
- }
75
- break;
76
- }
77
- case "VECTOR": {
78
- if (f.attributes) {
79
- args.push(f.attributes.algorithm);
80
- const attributes = [];
81
- // all VectorFieldAttributes attributes
82
- if (f.attributes.dimensions) {
83
- attributes.push("DIM", f.attributes.dimensions.toString());
84
- }
85
- if (f.attributes.distanceMetric) {
86
- attributes.push("DISTANCE_METRIC", f.attributes.distanceMetric.toString());
87
- }
88
- if (f.attributes.type) {
89
- attributes.push("TYPE", f.attributes.type.toString());
90
- }
91
- else {
92
- attributes.push("TYPE", "FLOAT32");
93
- }
94
- if (f.attributes.initialCap) {
95
- attributes.push("INITIAL_CAP", f.attributes.initialCap.toString());
96
- }
97
- // VectorFieldAttributesHnsw attributes
98
- if ("m" in f.attributes && f.attributes.m) {
99
- attributes.push("M", f.attributes.m.toString());
100
- }
101
- if ("efContruction" in f.attributes &&
102
- f.attributes.efContruction) {
103
- attributes.push("EF_CONSTRUCTION", f.attributes.efContruction.toString());
104
- }
105
- if ("efRuntime" in f.attributes &&
106
- f.attributes.efRuntime) {
107
- attributes.push("EF_RUNTIME", f.attributes.efRuntime.toString());
108
- }
109
- args.push(attributes.length.toString(), ...attributes);
110
- }
111
- break;
112
- }
113
- default:
114
- // no-op
115
- }
116
- });
117
- return _handleCustomCommand(client, args, {
118
- decoder: BaseClient_1.Decoder.String,
119
- });
120
- });
121
- }
122
- /**
123
- * Deletes an index and associated content. Indexed document keys are unaffected.
124
- *
125
- * @param client - The client to execute the command.
126
- * @param indexName - The index name.
127
- * @returns "OK"
128
- *
129
- * @example
130
- * ```typescript
131
- * // Example usage of FT.DROPINDEX to drop an index
132
- * await GlideFt.dropindex(client, "json_idx1"); // "OK"
133
- * ```
134
- */
135
- static dropindex(client, indexName) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- const args = ["FT.DROPINDEX", indexName];
138
- return _handleCustomCommand(client, args, {
139
- decoder: BaseClient_1.Decoder.String,
140
- });
141
- });
142
- }
143
- /**
144
- * Lists all indexes.
145
- *
146
- * @param client - The client to execute the command.
147
- * @param options - (Optional) See {@link DecoderOption}.
148
- * @returns An array of index names.
149
- *
150
- * @example
151
- * ```typescript
152
- * console.log(await GlideFt.list(client)); // Output: ["index1", "index2"]
153
- * ```
154
- */
155
- static list(client, options) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- return _handleCustomCommand(client, ["FT._LIST"], options);
158
- });
159
- }
160
- /**
161
- * Runs a search query on an index, and perform aggregate transformations on the results.
162
- *
163
- * @param client - The client to execute the command.
164
- * @param indexName - The index name.
165
- * @param query - The text query to search.
166
- * @param options - Additional parameters for the command - see {@link FtAggregateOptions} and {@link DecoderOption}.
167
- * @returns Results of the last stage of the pipeline.
168
- *
169
- * @example
170
- * ```typescript
171
- * const options: FtAggregateOptions = {
172
- * loadFields: ["__key"],
173
- * clauses: [
174
- * {
175
- * type: "GROUPBY",
176
- * properties: ["@condition"],
177
- * reducers: [
178
- * {
179
- * function: "TOLIST",
180
- * args: ["__key"],
181
- * name: "bicycles",
182
- * },
183
- * ],
184
- * },
185
- * ],
186
- * };
187
- * const result = await GlideFt.aggregate(client, "myIndex", "*", options);
188
- * console.log(result); // Output:
189
- * // [
190
- * // [
191
- * // {
192
- * // key: "condition",
193
- * // value: "refurbished"
194
- * // },
195
- * // {
196
- * // key: "bicycles",
197
- * // value: [ "bicycle:9" ]
198
- * // }
199
- * // ],
200
- * // [
201
- * // {
202
- * // key: "condition",
203
- * // value: "used"
204
- * // },
205
- * // {
206
- * // key: "bicycles",
207
- * // value: [ "bicycle:1", "bicycle:2", "bicycle:3" ]
208
- * // }
209
- * // ],
210
- * // [
211
- * // {
212
- * // key: "condition",
213
- * // value: "new"
214
- * // },
215
- * // {
216
- * // key: "bicycles",
217
- * // value: [ "bicycle:0", "bicycle:5" ]
218
- * // }
219
- * // ]
220
- * // ]
221
- * ```
222
- */
223
- static aggregate(client, indexName, query, options) {
224
- return __awaiter(this, void 0, void 0, function* () {
225
- const args = [
226
- "FT.AGGREGATE",
227
- indexName,
228
- query,
229
- ..._addFtAggregateOptions(options),
230
- ];
231
- return _handleCustomCommand(client, args, options);
232
- });
233
- }
234
- /**
235
- * Returns information about a given index.
236
- *
237
- * @param client - The client to execute the command.
238
- * @param indexName - The index name.
239
- * @param options - (Optional) See {@link DecoderOption}.
240
- * @returns Nested maps with info about the index. See example for more details.
241
- *
242
- * @example
243
- * ```typescript
244
- * const info = await GlideFt.info(client, "myIndex");
245
- * console.log(info); // Output:
246
- * // {
247
- * // index_name: 'myIndex',
248
- * // index_status: 'AVAILABLE',
249
- * // key_type: 'JSON',
250
- * // creation_timestamp: 1728348101728771,
251
- * // key_prefixes: [ 'json:' ],
252
- * // num_indexed_vectors: 0,
253
- * // space_usage: 653471,
254
- * // num_docs: 0,
255
- * // vector_space_usage: 653471,
256
- * // index_degradation_percentage: 0,
257
- * // fulltext_space_usage: 0,
258
- * // current_lag: 0,
259
- * // fields: [
260
- * // {
261
- * // identifier: '$.vec',
262
- * // type: 'VECTOR',
263
- * // field_name: 'VEC',
264
- * // option: '',
265
- * // vector_params: {
266
- * // data_type: 'FLOAT32',
267
- * // initial_capacity: 1000,
268
- * // current_capacity: 1000,
269
- * // distance_metric: 'L2',
270
- * // dimension: 6,
271
- * // block_size: 1024,
272
- * // algorithm: 'FLAT'
273
- * // }
274
- * // },
275
- * // {
276
- * // identifier: 'name',
277
- * // type: 'TEXT',
278
- * // field_name: 'name',
279
- * // option: ''
280
- * // },
281
- * // ]
282
- * // }
283
- * ```
284
- */
285
- static info(client, indexName, options) {
286
- return __awaiter(this, void 0, void 0, function* () {
287
- const args = ["FT.INFO", indexName];
288
- return _handleCustomCommand(client, args, options).then(BaseClient_1.convertGlideRecordToRecord);
289
- });
290
- }
291
- /**
292
- * Parse a query and return information about how that query was parsed.
293
- *
294
- * @param client - The client to execute the command.
295
- * @param indexName - The index name.
296
- * @param query - The text query to search. It is the same as the query passed as
297
- * an argument to {@link search | FT.SEARCH} or {@link aggregate | FT.AGGREGATE}.
298
- * @param options - (Optional) See {@link DecoderOption}.
299
- * @returns A query execution plan.
300
- *
301
- * @example
302
- * ```typescript
303
- * const result = GlideFt.explain(client, "myIndex", "@price:[0 10]");
304
- * console.log(result); // Output: "Field {\n\tprice\n\t0\n\t10\n}"
305
- * ```
306
- */
307
- static explain(client, indexName, query, options) {
308
- const args = ["FT.EXPLAIN", indexName, query];
309
- return _handleCustomCommand(client, args, options);
310
- }
311
- /**
312
- * Parse a query and return information about how that query was parsed.
313
- * Same as {@link explain | FT.EXPLAIN}, except that the results are
314
- * displayed in a different format.
315
- *
316
- * @param client - The client to execute the command.
317
- * @param indexName - The index name.
318
- * @param query - The text query to search. It is the same as the query passed as
319
- * an argument to {@link search | FT.SEARCH} or {@link aggregate | FT.AGGREGATE}.
320
- * @param options - (Optional) See {@link DecoderOption}.
321
- * @returns A query execution plan.
322
- *
323
- * @example
324
- * ```typescript
325
- * const result = GlideFt.explaincli(client, "myIndex", "@price:[0 10]");
326
- * console.log(result); // Output: ["Field {", "price", "0", "10", "}"]
327
- * ```
328
- */
329
- static explaincli(client, indexName, query, options) {
330
- const args = ["FT.EXPLAINCLI", indexName, query];
331
- return _handleCustomCommand(client, args, options);
332
- }
333
- /**
334
- * Uses the provided query expression to locate keys within an index. Once located, the count
335
- * and/or content of indexed fields within those keys can be returned.
336
- *
337
- * @param client - The client to execute the command.
338
- * @param indexName - The index name to search into.
339
- * @param query - The text query to search.
340
- * @param options - (Optional) See {@link FtSearchOptions} and {@link DecoderOption}.
341
- * @returns A two-element array, where the first element is the number of documents in the result set, and the
342
- * second element has the format: `GlideRecord<GlideRecord<GlideString>>`:
343
- * a mapping between document names and a map of their attributes.
344
- *
345
- * If `count` or `limit` with values `{offset: 0, count: 0}` is
346
- * set, the command returns array with only one element: the number of documents.
347
- *
348
- * @example
349
- * ```typescript
350
- * //
351
- * const vector = Buffer.alloc(24);
352
- * const result = await GlideFt.search(client, "json_idx1", "*=>[KNN 2 @VEC $query_vec]", {params: [{key: "query_vec", value: vector}]});
353
- * console.log(result); // Output:
354
- * // [
355
- * // 2,
356
- * // [
357
- * // {
358
- * // key: "json:2",
359
- * // value: [
360
- * // {
361
- * // key: "$",
362
- * // value: '{"vec":[1.1,1.2,1.3,1.4,1.5,1.6]}',
363
- * // },
364
- * // {
365
- * // key: "__VEC_score",
366
- * // value: "11.1100006104",
367
- * // },
368
- * // ],
369
- * // },
370
- * // {
371
- * // key: "json:0",
372
- * // value: [
373
- * // {
374
- * // key: "$",
375
- * // value: '{"vec":[1,2,3,4,5,6]}',
376
- * // },
377
- * // {
378
- * // key: "__VEC_score",
379
- * // value: "91",
380
- * // },
381
- * // ],
382
- * // },
383
- * // ],
384
- * // ]
385
- * ```
386
- */
387
- static search(client, indexName, query, options) {
388
- return __awaiter(this, void 0, void 0, function* () {
389
- const args = [
390
- "FT.SEARCH",
391
- indexName,
392
- query,
393
- ..._addFtSearchOptions(options),
394
- ];
395
- return _handleCustomCommand(client, args, options);
396
- });
397
- }
398
- /**
399
- * Runs a search query and collects performance profiling information.
400
- *
401
- * @param client - The client to execute the command.
402
- * @param indexName - The index name.
403
- * @param query - The text query to search.
404
- * @param options - (Optional) See {@link FtSearchOptions} and {@link DecoderOption}. Additionally:
405
- * - `limited` (Optional) - Either provide a full verbose output or some brief version.
406
- *
407
- * @returns A two-element array. The first element contains results of the search query being profiled, the
408
- * second element stores profiling information.
409
- *
410
- * @example
411
- * ```typescript
412
- * // Example of running profile on a search query
413
- * const vector = Buffer.alloc(24);
414
- * const result = await GlideFt.profileSearch(client, "json_idx1", "*=>[KNN 2 @VEC $query_vec]", {params: [{key: "query_vec", value: vector}]});
415
- * console.log(result); // Output:
416
- * // result[0] contains `FT.SEARCH` response with the given query
417
- * // result[1] contains profiling data as a `Record<string, number>`
418
- * ```
419
- */
420
- static profileSearch(client, indexName, query, options) {
421
- return __awaiter(this, void 0, void 0, function* () {
422
- const args = ["FT.PROFILE", indexName, "SEARCH"];
423
- if (options === null || options === void 0 ? void 0 : options.limited) {
424
- args.push("LIMITED");
425
- }
426
- args.push("QUERY", query);
427
- if (options) {
428
- args.push(..._addFtSearchOptions(options));
429
- }
430
- return _handleCustomCommand(client, args, options).then((v) => [v[0], (0, BaseClient_1.convertGlideRecordToRecord)(v[1])]);
431
- });
432
- }
433
- /**
434
- * Runs an aggregate query and collects performance profiling information.
435
- *
436
- * @param client - The client to execute the command.
437
- * @param indexName - The index name.
438
- * @param query - The text query to search.
439
- * @param options - (Optional) See {@link FtAggregateOptions} and {@link DecoderOption}. Additionally:
440
- * - `limited` (Optional) - Either provide a full verbose output or some brief version.
441
- *
442
- * @returns A two-element array. The first element contains results of the aggregate query being profiled, the
443
- * second element stores profiling information.
444
- *
445
- * @example
446
- * ```typescript
447
- * // Example of running profile on an aggregate query
448
- * const options: FtAggregateOptions = {
449
- * loadFields: ["__key"],
450
- * clauses: [
451
- * {
452
- * type: "GROUPBY",
453
- * properties: ["@condition"],
454
- * reducers: [
455
- * {
456
- * function: "TOLIST",
457
- * args: ["__key"],
458
- * name: "bicycles",
459
- * },
460
- * ],
461
- * },
462
- * ],
463
- * };
464
- * const result = await GlideFt.profileAggregate(client, "myIndex", "*", options);
465
- * console.log(result); // Output:
466
- * // result[0] contains `FT.AGGREGATE` response with the given query
467
- * // result[1] contains profiling data as a `Record<string, number>`
468
- * ```
469
- */
470
- static profileAggregate(client, indexName, query, options) {
471
- return __awaiter(this, void 0, void 0, function* () {
472
- const args = ["FT.PROFILE", indexName, "AGGREGATE"];
473
- if (options === null || options === void 0 ? void 0 : options.limited) {
474
- args.push("LIMITED");
475
- }
476
- args.push("QUERY", query);
477
- if (options) {
478
- args.push(..._addFtAggregateOptions(options));
479
- }
480
- return _handleCustomCommand(client, args, options).then((v) => [v[0], (0, BaseClient_1.convertGlideRecordToRecord)(v[1])]);
481
- });
482
- }
483
- /**
484
- * Adds an alias for an index. The new alias name can be used anywhere that an index name is required.
485
- *
486
- * @param client - The client to execute the command.
487
- * @param indexName - The alias to be added to the index.
488
- * @param alias - The index name for which the alias has to be added.
489
- * @returns `"OK"`
490
- *
491
- * @example
492
- * ```typescript
493
- * // Example usage of FT.ALIASADD to add an alias for an index.
494
- * await GlideFt.aliasadd(client, "index", "alias"); // "OK"
495
- * ```
496
- */
497
- static aliasadd(client, indexName, alias) {
498
- return __awaiter(this, void 0, void 0, function* () {
499
- const args = ["FT.ALIASADD", alias, indexName];
500
- return _handleCustomCommand(client, args, {
501
- decoder: BaseClient_1.Decoder.String,
502
- });
503
- });
504
- }
505
- /**
506
- * Deletes an existing alias for an index.
507
- *
508
- * @param client - The client to execute the command.
509
- * @param alias - The existing alias to be deleted for an index.
510
- * @returns `"OK"`
511
- *
512
- * @example
513
- * ```typescript
514
- * // Example usage of FT.ALIASDEL to delete an existing alias.
515
- * await GlideFt.aliasdel(client, "alias"); // "OK"
516
- * ```
517
- */
518
- static aliasdel(client, alias) {
519
- return __awaiter(this, void 0, void 0, function* () {
520
- const args = ["FT.ALIASDEL", alias];
521
- return _handleCustomCommand(client, args, {
522
- decoder: BaseClient_1.Decoder.String,
523
- });
524
- });
525
- }
526
- /**
527
- * Updates an existing alias to point to a different physical index. This command only affects future references to the alias.
528
- *
529
- * @param client - The client to execute the command.
530
- * @param alias - The alias name. This alias will now be pointed to a different index.
531
- * @param indexName - The index name for which an existing alias has to updated.
532
- * @returns `"OK"`
533
- *
534
- * @example
535
- * ```typescript
536
- * // Example usage of FT.ALIASUPDATE to update an alias to point to a different index.
537
- * await GlideFt.aliasupdate(client, "newAlias", "index"); // "OK"
538
- * ```
539
- */
540
- static aliasupdate(client, alias, indexName) {
541
- return __awaiter(this, void 0, void 0, function* () {
542
- const args = ["FT.ALIASUPDATE", alias, indexName];
543
- return _handleCustomCommand(client, args, {
544
- decoder: BaseClient_1.Decoder.String,
545
- });
546
- });
547
- }
548
- /**
549
- * List the index aliases.
550
- *
551
- * @param client - The client to execute the command.
552
- * @param options - (Optional) See {@link DecoderOption}.
553
- * @returns A map of index aliases for indices being aliased.
554
- *
555
- * @example
556
- * ```typescript
557
- * // Example usage of FT._ALIASLIST to query index aliases
558
- * const result = await GlideFt.aliaslist(client);
559
- * console.log(result); // Output:
560
- * //[{"key": "alias1", "value": "index1"}, {"key": "alias2", "value": "index2"}]
561
- * ```
562
- */
563
- static aliaslist(client, options) {
564
- return __awaiter(this, void 0, void 0, function* () {
565
- const args = ["FT._ALIASLIST"];
566
- return _handleCustomCommand(client, args, options);
567
- });
568
- }
569
- }
570
- exports.GlideFt = GlideFt;
571
- /**
572
- * @internal
573
- */
574
- function _addFtAggregateOptions(options) {
575
- if (!options)
576
- return [];
577
- const args = [];
578
- if (options.loadAll)
579
- args.push("LOAD", "*");
580
- else if (options.loadFields)
581
- args.push("LOAD", options.loadFields.length.toString(), ...options.loadFields);
582
- if (options.timeout)
583
- args.push("TIMEOUT", options.timeout.toString());
584
- if (options.params) {
585
- args.push("PARAMS", (options.params.length * 2).toString(), ...options.params.flatMap((param) => [param.key, param.value]));
586
- }
587
- if (options.clauses) {
588
- for (const clause of options.clauses) {
589
- switch (clause.type) {
590
- case "LIMIT":
591
- args.push(clause.type, clause.offset.toString(), clause.count.toString());
592
- break;
593
- case "FILTER":
594
- args.push(clause.type, clause.expression);
595
- break;
596
- case "GROUPBY":
597
- args.push(clause.type, clause.properties.length.toString(), ...clause.properties);
598
- for (const reducer of clause.reducers) {
599
- args.push("REDUCE", reducer.function, reducer.args.length.toString(), ...reducer.args);
600
- if (reducer.name)
601
- args.push("AS", reducer.name);
602
- }
603
- break;
604
- case "SORTBY":
605
- args.push(clause.type, (clause.properties.length * 2).toString());
606
- for (const property of clause.properties)
607
- args.push(property.property, property.order);
608
- if (clause.max)
609
- args.push("MAX", clause.max.toString());
610
- break;
611
- case "APPLY":
612
- args.push(clause.type, clause.expression, "AS", clause.name);
613
- break;
614
- default:
615
- throw new Error("Unknown clause type in FtAggregateOptions");
616
- }
617
- }
618
- }
619
- return args;
620
- }
621
- /**
622
- * @internal
623
- */
624
- function _addFtSearchOptions(options) {
625
- if (!options)
626
- return [];
627
- const args = [];
628
- // RETURN
629
- if (options.returnFields) {
630
- const returnFields = [];
631
- options.returnFields.forEach((returnField) => returnField.alias
632
- ? returnFields.push(returnField.fieldIdentifier, "AS", returnField.alias)
633
- : returnFields.push(returnField.fieldIdentifier));
634
- args.push("RETURN", returnFields.length.toString(), ...returnFields);
635
- }
636
- // TIMEOUT
637
- if (options.timeout) {
638
- args.push("TIMEOUT", options.timeout.toString());
639
- }
640
- // PARAMS
641
- if (options.params) {
642
- args.push("PARAMS", (options.params.length * 2).toString(), ...options.params.flatMap((param) => [param.key, param.value]));
643
- }
644
- // LIMIT
645
- if (options.limit) {
646
- args.push("LIMIT", options.limit.offset.toString(), options.limit.count.toString());
647
- }
648
- // COUNT
649
- if (options.count) {
650
- args.push("COUNT");
651
- }
652
- return args;
653
- }
654
- /**
655
- * @internal
656
- */
657
- function _handleCustomCommand(client_1, args_1) {
658
- return __awaiter(this, arguments, void 0, function* (client, args, decoderOption = {}) {
659
- return client instanceof GlideClient_1.GlideClient
660
- ? client.customCommand(args, decoderOption)
661
- : client.customCommand(args, decoderOption);
662
- });
663
- }
664
- //# sourceMappingURL=GlideFt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlideFt.js","sourceRoot":"","sources":["../../../src/server-modules/GlideFt.ts"],"names":[],"mappings":"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"}