redis-vl 0.1.0 → 0.3.0

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 (83) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +14 -13
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/indexes/search-index.d.ts +30 -4
  7. package/dist/indexes/search-index.d.ts.map +1 -1
  8. package/dist/indexes/search-index.js +44 -16
  9. package/dist/indexes/search-index.js.map +1 -1
  10. package/dist/query/{aggregation.d.ts → aggregate/aggregation.d.ts} +1 -1
  11. package/dist/query/aggregate/aggregation.d.ts.map +1 -0
  12. package/dist/query/{aggregation.js → aggregate/aggregation.js} +2 -2
  13. package/dist/query/aggregate/aggregation.js.map +1 -0
  14. package/dist/query/hybrid.d.ts +17 -8
  15. package/dist/query/hybrid.d.ts.map +1 -1
  16. package/dist/query/hybrid.js +22 -13
  17. package/dist/query/hybrid.js.map +1 -1
  18. package/dist/query/index.d.ts +7 -7
  19. package/dist/query/index.d.ts.map +1 -1
  20. package/dist/query/index.js +7 -7
  21. package/dist/query/index.js.map +1 -1
  22. package/dist/query/search/base.d.ts +170 -0
  23. package/dist/query/search/base.d.ts.map +1 -0
  24. package/dist/query/search/base.js +196 -0
  25. package/dist/query/search/base.js.map +1 -0
  26. package/dist/query/{count.d.ts → search/count.d.ts} +2 -6
  27. package/dist/query/search/count.d.ts.map +1 -0
  28. package/dist/query/{count.js → search/count.js} +3 -9
  29. package/dist/query/search/count.js.map +1 -0
  30. package/dist/query/{filter-query.d.ts → search/filter-query.d.ts} +3 -8
  31. package/dist/query/search/filter-query.d.ts.map +1 -0
  32. package/dist/query/{filter-query.js → search/filter-query.js} +10 -14
  33. package/dist/query/search/filter-query.js.map +1 -0
  34. package/dist/query/{range.d.ts → search/range.d.ts} +4 -16
  35. package/dist/query/search/range.d.ts.map +1 -0
  36. package/dist/query/{range.js → search/range.js} +9 -36
  37. package/dist/query/search/range.js.map +1 -0
  38. package/dist/query/{text.d.ts → search/text.d.ts} +5 -9
  39. package/dist/query/search/text.d.ts.map +1 -0
  40. package/dist/query/{text.js → search/text.js} +13 -14
  41. package/dist/query/search/text.js.map +1 -0
  42. package/dist/query/{vector.d.ts → search/vector.d.ts} +7 -33
  43. package/dist/query/search/vector.d.ts.map +1 -0
  44. package/dist/query/{vector.js → search/vector.js} +9 -38
  45. package/dist/query/search/vector.js.map +1 -0
  46. package/dist/redis/client-types.d.ts +1 -1
  47. package/dist/redis/client-types.js +1 -1
  48. package/dist/redis/utils.d.ts +12 -1
  49. package/dist/redis/utils.d.ts.map +1 -1
  50. package/dist/redis/utils.js +17 -1
  51. package/dist/redis/utils.js.map +1 -1
  52. package/dist/schema/schema.d.ts +2 -2
  53. package/dist/schema/types.d.ts +5 -0
  54. package/dist/schema/types.d.ts.map +1 -1
  55. package/dist/schema/types.js.map +1 -1
  56. package/dist/storage/base-storage.d.ts +0 -1
  57. package/dist/storage/base-storage.d.ts.map +1 -1
  58. package/dist/storage/base-storage.js.map +1 -1
  59. package/dist/storage/json-storage.d.ts +5 -0
  60. package/dist/storage/json-storage.d.ts.map +1 -1
  61. package/dist/storage/json-storage.js +34 -0
  62. package/dist/storage/json-storage.js.map +1 -1
  63. package/package.json +13 -13
  64. package/dist/query/aggregation.d.ts.map +0 -1
  65. package/dist/query/aggregation.js.map +0 -1
  66. package/dist/query/base.d.ts +0 -77
  67. package/dist/query/base.d.ts.map +0 -1
  68. package/dist/query/base.js +0 -14
  69. package/dist/query/base.js.map +0 -1
  70. package/dist/query/count.d.ts.map +0 -1
  71. package/dist/query/count.js.map +0 -1
  72. package/dist/query/filter-query.d.ts.map +0 -1
  73. package/dist/query/filter-query.js.map +0 -1
  74. package/dist/query/range.d.ts.map +0 -1
  75. package/dist/query/range.js.map +0 -1
  76. package/dist/query/text.d.ts.map +0 -1
  77. package/dist/query/text.js.map +0 -1
  78. package/dist/query/vector.d.ts.map +0 -1
  79. package/dist/query/vector.js.map +0 -1
  80. package/dist/redis/protocol.d.ts +0 -34
  81. package/dist/redis/protocol.d.ts.map +0 -1
  82. package/dist/redis/protocol.js +0 -47
  83. package/dist/redis/protocol.js.map +0 -1
@@ -1,14 +1,10 @@
1
- import { type BaseQuery, type FilterInput } from './base.js';
2
- import { VectorDataType, VectorDistanceMetric } from '../schema/types.js';
1
+ import { BaseVectorQuery, type BaseVectorQueryConfig, type FilterInput } from './base.js';
2
+ import { VectorDataType, VectorDistanceMetric } from '../../schema/types.js';
3
3
  import type { HybridPolicy } from './vector.js';
4
4
  /**
5
5
  * Configuration for {@link VectorRangeQuery}.
6
6
  */
7
- export interface VectorRangeQueryConfig {
8
- /** Query vector. */
9
- vector: number[];
10
- /** Vector field name to search against. */
11
- vectorField: string;
7
+ export interface VectorRangeQueryConfig extends BaseVectorQueryConfig {
12
8
  /**
13
9
  * Maximum allowed vector distance for results.
14
10
  *
@@ -60,20 +56,12 @@ export interface VectorRangeQueryConfig {
60
56
  * const results = await index.search(q);
61
57
  * ```
62
58
  */
63
- export declare class VectorRangeQuery implements BaseQuery {
64
- readonly vector: number[];
65
- readonly vectorField: string;
59
+ export declare class VectorRangeQuery extends BaseVectorQuery {
66
60
  readonly distanceThreshold: number;
67
- readonly filter?: FilterInput;
68
- readonly returnFields?: string[];
69
61
  readonly distanceMetric: VectorDistanceMetric;
70
- readonly datatype: VectorDataType;
71
- readonly offset?: number;
72
- readonly limit?: number;
73
62
  readonly scoreAlias: string;
74
63
  readonly hybridPolicy?: HybridPolicy;
75
64
  readonly batchSize?: number;
76
- readonly normalizeDistance: boolean;
77
65
  constructor(config: VectorRangeQueryConfig);
78
66
  buildQuery(): string;
79
67
  buildParams(): Record<string, unknown>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/query/search/range.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EAEf,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACjE;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,uEAAuE;IACvE,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAEnC,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yEAAyE;IACzE,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACjD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,SAAgB,cAAc,EAAE,oBAAoB,CAAC;IACrD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,MAAM,EAAE,sBAAsB;IA8B1C,UAAU,IAAI,MAAM;IAUpB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgBzC"}
@@ -1,7 +1,7 @@
1
- import { renderFilter } from './base.js';
2
- import { VectorDistanceMetric } from '../schema/types.js';
3
- import { QueryValidationError, SchemaValidationError } from '../errors.js';
4
- import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
1
+ import { BaseVectorQuery, renderFilter, } from './base.js';
2
+ import { VectorDistanceMetric } from '../../schema/types.js';
3
+ import { QueryValidationError } from '../../errors.js';
4
+ import { encodeVectorInput } from '../../redis/utils.js';
5
5
  /**
6
6
  * Vector similarity search by distance threshold rather than top-K.
7
7
  *
@@ -22,27 +22,14 @@ import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
22
22
  * const results = await index.search(q);
23
23
  * ```
24
24
  */
25
- export class VectorRangeQuery {
26
- vector;
27
- vectorField;
25
+ export class VectorRangeQuery extends BaseVectorQuery {
28
26
  distanceThreshold;
29
- filter;
30
- returnFields;
31
27
  distanceMetric;
32
- datatype;
33
- offset;
34
- limit;
35
28
  scoreAlias;
36
29
  hybridPolicy;
37
30
  batchSize;
38
- normalizeDistance;
39
31
  constructor(config) {
40
- if (!config.vector || config.vector.length === 0) {
41
- throw new QueryValidationError('Vector cannot be empty');
42
- }
43
- if (!config.vectorField) {
44
- throw new QueryValidationError('vectorField is required');
45
- }
32
+ super(config);
46
33
  if (config.distanceThreshold !== undefined && config.distanceThreshold < 0) {
47
34
  throw new QueryValidationError('distanceThreshold must be non-negative');
48
35
  }
@@ -59,27 +46,12 @@ export class VectorRangeQuery {
59
46
  throw new QueryValidationError('batchSize must be positive');
60
47
  }
61
48
  }
62
- this.vector = config.vector;
63
- this.vectorField = config.vectorField;
64
49
  this.distanceThreshold = config.distanceThreshold ?? 0.2;
65
- this.filter = config.filter;
66
- this.returnFields = config.returnFields;
67
50
  this.distanceMetric = config.distanceMetric ?? VectorDistanceMetric.COSINE;
68
- try {
69
- this.datatype = normalizeVectorDataType(config.datatype);
70
- }
71
- catch (error) {
72
- if (error instanceof SchemaValidationError) {
73
- throw new QueryValidationError(error.message);
74
- }
75
- throw error;
76
- }
77
- this.offset = config.offset;
78
- this.limit = config.limit;
79
51
  this.scoreAlias = config.scoreAlias ?? 'vector_distance';
80
52
  this.hybridPolicy = config.hybridPolicy;
81
53
  this.batchSize = config.batchSize;
82
- this.normalizeDistance = config.normalizeDistance ?? false;
54
+ this.sortBy(this.scoreAlias);
83
55
  }
84
56
  buildQuery() {
85
57
  const rangeClause = `@${this.vectorField}:[VECTOR_RANGE $distance_threshold $vector]=>{$yield_distance_as: ${this.scoreAlias}}`;
@@ -91,7 +63,8 @@ export class VectorRangeQuery {
91
63
  }
92
64
  buildParams() {
93
65
  const params = {
94
- vector: encodeVectorBuffer(this.vector, this.datatype),
66
+ ...super.buildParams(),
67
+ vector: encodeVectorInput(this.vector, this.datatype),
95
68
  distance_threshold: this.distanceThreshold,
96
69
  };
97
70
  if (this.hybridPolicy !== undefined) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/query/search/range.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type BaseQuery, type FilterInput } from './base.js';
2
- import { type StopwordsInput } from '../utils/stopwords/resolve.js';
1
+ import { BaseQuery, type FilterInput } from './base.js';
2
+ import { type StopwordsInput } from '../../utils/stopwords/resolve.js';
3
3
  /**
4
4
  * A Redis Search built-in text scorer.
5
5
  * @see https://redis.io/docs/latest/develop/interact/search-and-query/advanced-concepts/scoring/
@@ -26,11 +26,11 @@ export interface TextQueryConfig {
26
26
  filter?: FilterInput;
27
27
  /** Fields to include in each result document. */
28
28
  returnFields?: string[];
29
- /** Number of results to return. Defaults to 10. */
29
+ /** Number of results to return. Default for `limit` (the `LIMIT` count). Defaults to 10. */
30
30
  numResults?: number;
31
31
  /** Pagination offset. */
32
32
  offset?: number;
33
- /** Pagination limit. Defaults to numResults. */
33
+ /** `LIMIT` count. Takes priority over `numResults`. */
34
34
  limit?: number;
35
35
  /**
36
36
  * Per-token weight map. Keys are individual words (no inner whitespace) and
@@ -96,7 +96,7 @@ export interface TextQueryConfig {
96
96
  * });
97
97
  * ```
98
98
  */
99
- export declare class TextQuery implements BaseQuery {
99
+ export declare class TextQuery extends BaseQuery {
100
100
  readonly text: string;
101
101
  /**
102
102
  * Per-field weights. Iteration follows insertion order, which determines
@@ -107,11 +107,7 @@ export declare class TextQuery implements BaseQuery {
107
107
  /** Per-token weights. Keys are normalised to lowercase, whitespace-trimmed single tokens. */
108
108
  readonly textWeights: Readonly<Record<string, number>>;
109
109
  readonly textScorer: TextScorer;
110
- readonly filter?: FilterInput;
111
- readonly returnFields?: string[];
112
110
  readonly numResults: number;
113
- readonly offset?: number;
114
- readonly limit?: number;
115
111
  readonly stopwords: ReadonlySet<string> | null;
116
112
  constructor(config: TextQueryConfig);
117
113
  buildQuery(): string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/query/search/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAezF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,sIAAsI;IACtI,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/C;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,wEAAwE;IACxE,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC9B;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACpC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,SAAgB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,6FAA6F;IAC7F,SAAgB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;gBAE1C,MAAM,EAAE,eAAe;IAgBnC,UAAU,IAAI,MAAM;IAqCpB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItC;;;;;OAKG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAS7D;CACJ"}
@@ -1,7 +1,7 @@
1
- import { renderFilter } from './base.js';
2
- import { TokenEscaper } from '../utils/token-escaper.js';
3
- import { QueryValidationError } from '../errors.js';
4
- import { resolveStopwords } from '../utils/stopwords/resolve.js';
1
+ import { BaseQuery, renderFilter } from './base.js';
2
+ import { TokenEscaper } from '../../utils/token-escaper.js';
3
+ import { QueryValidationError } from '../../errors.js';
4
+ import { resolveStopwords } from '../../utils/stopwords/resolve.js';
5
5
  const escaper = new TokenEscaper();
6
6
  const STRIP_LEADING_TRAILING_COMMAS = /^,+|,+$/g;
7
7
  const TYPOGRAPHIC_QUOTES = /[“”]/g;
@@ -100,7 +100,7 @@ function parseTextWeights(weights) {
100
100
  * });
101
101
  * ```
102
102
  */
103
- export class TextQuery {
103
+ export class TextQuery extends BaseQuery {
104
104
  text;
105
105
  /**
106
106
  * Per-field weights. Iteration follows insertion order, which determines
@@ -111,22 +111,21 @@ export class TextQuery {
111
111
  /** Per-token weights. Keys are normalised to lowercase, whitespace-trimmed single tokens. */
112
112
  textWeights;
113
113
  textScorer;
114
- filter;
115
- returnFields;
116
114
  numResults;
117
- offset;
118
- limit;
119
115
  stopwords;
120
116
  constructor(config) {
117
+ const numResults = config.numResults ?? 10;
118
+ super({
119
+ filter: config.filter,
120
+ returnFields: config.returnFields,
121
+ offset: config.offset,
122
+ limit: config.limit ?? numResults,
123
+ });
121
124
  this.text = config.text;
122
125
  this.fieldWeights = parseFieldWeights(config.textFieldName);
123
126
  this.textWeights = parseTextWeights(config.textWeights);
124
127
  this.textScorer = config.textScorer ?? 'BM25STD';
125
- this.filter = config.filter;
126
- this.returnFields = config.returnFields;
127
- this.numResults = config.numResults ?? 10;
128
- this.offset = config.offset;
129
- this.limit = config.limit ?? this.numResults;
128
+ this.numResults = numResults;
130
129
  this.stopwords = resolveStopwords(config.stopwords);
131
130
  }
132
131
  buildQuery() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/query/search/text.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type BaseQuery, type FilterInput } from './base.js';
2
- import { VectorDataType, VectorDistanceMetric } from '../schema/types.js';
1
+ import { BaseVectorQuery, type BaseVectorQueryConfig } from './base.js';
2
+ import { VectorDistanceMetric } from '../../schema/types.js';
3
3
  /**
4
4
  * Hybrid policy options for vector search with filters
5
5
  */
@@ -11,32 +11,14 @@ export type UseSearchHistory = 'OFF' | 'ON' | 'AUTO';
11
11
  /**
12
12
  * Configuration for VectorQuery
13
13
  */
14
- export interface VectorQueryConfig {
15
- /** Vector to search with */
16
- vector: number[];
17
- /** Name of the vector field in the index */
18
- vectorField: string;
19
- /** Number of results to return */
20
- numResults?: number;
14
+ export interface VectorQueryConfig extends BaseVectorQueryConfig {
21
15
  /**
22
- * Filter expression — either a {@link FilterExpression} from the filter
23
- * DSL, or a raw Redis Search filter string (e.g. `'@category:{electronics}'`).
16
+ * Number of nearest neighbours to retrieve (the `KNN <k>` clause).
17
+ * Also the default for `limit`. Defaults to 10.
24
18
  */
25
- filter?: FilterInput;
26
- /** Fields to return in results */
27
- returnFields?: string[];
19
+ numResults?: number;
28
20
  /** Distance metric to use */
29
21
  distanceMetric?: VectorDistanceMetric;
30
- /**
31
- * Vector datatype to use when serializing the query vector.
32
- * Must match the datatype declared on the schema's vector field.
33
- * @default 'FLOAT32'
34
- */
35
- datatype?: VectorDataType | string;
36
- /** Pagination offset */
37
- offset?: number;
38
- /** Pagination limit */
39
- limit?: number;
40
22
  /**
41
23
  * Alias for the score field in results
42
24
  * @default 'vector_distance'
@@ -155,21 +137,13 @@ export interface VectorQueryConfig {
155
137
  * const results = await index.search(query);
156
138
  * ```
157
139
  */
158
- export declare class VectorQuery implements BaseQuery {
159
- readonly vector: number[];
160
- readonly vectorField: string;
140
+ export declare class VectorQuery extends BaseVectorQuery {
161
141
  readonly numResults: number;
162
- readonly filter?: FilterInput;
163
- readonly returnFields?: string[];
164
142
  readonly distanceMetric: VectorDistanceMetric;
165
- readonly datatype: VectorDataType;
166
- readonly offset?: number;
167
- readonly limit?: number;
168
143
  readonly scoreAlias: string;
169
144
  readonly efRuntime?: number;
170
145
  readonly hybridPolicy?: HybridPolicy;
171
146
  readonly batchSize?: number;
172
- readonly normalizeDistance: boolean;
173
147
  readonly searchWindowSize?: number;
174
148
  readonly useSearchHistory?: UseSearchHistory;
175
149
  readonly searchBufferCapacity?: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../../src/query/search/vector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgB,KAAK,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAI7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC5D;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC5C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,cAAc,EAAE,oBAAoB,CAAC;IACrD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5C,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1C,SAAgB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpD,SAAgB,oBAAoB,CAAC,EAAE,MAAM,CAAC;gBAElC,MAAM,EAAE,iBAAiB;IA4DrC;;;;;;;;OAQG;IACH,UAAU,IAAI,MAAM;IA6BpB;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAuBzC"}
@@ -1,7 +1,7 @@
1
- import { renderFilter } from './base.js';
2
- import { VectorDistanceMetric } from '../schema/types.js';
3
- import { QueryValidationError, SchemaValidationError } from '../errors.js';
4
- import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
1
+ import { BaseVectorQuery, renderFilter } from './base.js';
2
+ import { VectorDistanceMetric } from '../../schema/types.js';
3
+ import { QueryValidationError } from '../../errors.js';
4
+ import { encodeVectorInput } from '../../redis/utils.js';
5
5
  /**
6
6
  * Vector similarity search query using KNN (K-Nearest Neighbors)
7
7
  *
@@ -35,33 +35,18 @@ import { encodeVectorBuffer, normalizeVectorDataType } from '../redis/utils.js';
35
35
  * const results = await index.search(query);
36
36
  * ```
37
37
  */
38
- export class VectorQuery {
39
- vector;
40
- vectorField;
38
+ export class VectorQuery extends BaseVectorQuery {
41
39
  numResults;
42
- filter;
43
- returnFields;
44
40
  distanceMetric;
45
- datatype;
46
- offset;
47
- limit;
48
41
  scoreAlias;
49
42
  efRuntime;
50
43
  hybridPolicy;
51
44
  batchSize;
52
- normalizeDistance;
53
45
  searchWindowSize;
54
46
  useSearchHistory;
55
47
  searchBufferCapacity;
56
48
  constructor(config) {
57
- // Validate vector
58
- if (!config.vector || config.vector.length === 0) {
59
- throw new QueryValidationError('Vector cannot be empty');
60
- }
61
- // Validate vectorField
62
- if (!config.vectorField) {
63
- throw new QueryValidationError('vectorField is required');
64
- }
49
+ super({ ...config, limit: config.limit ?? config.numResults ?? 10 });
65
50
  // Validate HNSW parameters
66
51
  if (config.efRuntime !== undefined && config.efRuntime <= 0) {
67
52
  throw new QueryValidationError('efRuntime must be positive');
@@ -98,31 +83,16 @@ export class VectorQuery {
98
83
  if (config.searchBufferCapacity !== undefined && config.searchBufferCapacity <= 0) {
99
84
  throw new QueryValidationError('searchBufferCapacity must be positive');
100
85
  }
101
- this.vector = config.vector;
102
- this.vectorField = config.vectorField;
103
86
  this.numResults = config.numResults ?? 10;
104
- this.filter = config.filter;
105
- this.returnFields = config.returnFields;
106
87
  this.distanceMetric = config.distanceMetric ?? VectorDistanceMetric.COSINE;
107
- try {
108
- this.datatype = normalizeVectorDataType(config.datatype);
109
- }
110
- catch (error) {
111
- if (error instanceof SchemaValidationError) {
112
- throw new QueryValidationError(error.message);
113
- }
114
- throw error;
115
- }
116
- this.offset = config.offset;
117
- this.limit = config.limit;
118
88
  this.scoreAlias = config.scoreAlias ?? 'vector_distance';
119
89
  this.efRuntime = config.efRuntime;
120
90
  this.hybridPolicy = config.hybridPolicy;
121
91
  this.batchSize = config.batchSize;
122
- this.normalizeDistance = config.normalizeDistance ?? false;
123
92
  this.searchWindowSize = config.searchWindowSize;
124
93
  this.useSearchHistory = config.useSearchHistory;
125
94
  this.searchBufferCapacity = config.searchBufferCapacity;
95
+ this.sortBy(this.scoreAlias);
126
96
  }
127
97
  /**
128
98
  * Build the Redis KNN query string
@@ -167,8 +137,9 @@ export class VectorQuery {
167
137
  * @returns Query parameters object with vector buffer and algorithm params
168
138
  */
169
139
  buildParams() {
170
- const vectorBuffer = encodeVectorBuffer(this.vector, this.datatype);
140
+ const vectorBuffer = encodeVectorInput(this.vector, this.datatype);
171
141
  const params = {
142
+ ...super.buildParams(),
172
143
  vector: vectorBuffer,
173
144
  };
174
145
  // Add HNSW parameters if provided
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/query/search/vector.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Redis Client Type Definitions
3
3
  *
4
4
  * The bare `RedisClientType` / `RedisClusterType` aliases re-exported from
5
- * the `redis` package default their `RESP` generic to `2`. When consumers
5
+ * the `redis` package default their `RESP` generic to `3`. When consumers
6
6
  * call `createClient(...)` without an explicit annotation, TypeScript
7
7
  * infers `RESP` as the full `RespVersions` union (`2 | 3`), making the
8
8
  * inferred client unassignable to APIs typed against the bare alias.
@@ -2,7 +2,7 @@
2
2
  * Redis Client Type Definitions
3
3
  *
4
4
  * The bare `RedisClientType` / `RedisClusterType` aliases re-exported from
5
- * the `redis` package default their `RESP` generic to `2`. When consumers
5
+ * the `redis` package default their `RESP` generic to `3`. When consumers
6
6
  * call `createClient(...)` without an explicit annotation, TypeScript
7
7
  * infers `RESP` as the full `RespVersions` union (`2 | 3`), making the
8
8
  * inferred client unassignable to APIs typed against the bare alias.
@@ -1,7 +1,18 @@
1
- import { VectorDataType } from '../schema/types.js';
1
+ import { VectorDataType, VectorInput } from '../schema/types.js';
2
2
  export type VectorDataTypeInput = VectorDataType | string | undefined;
3
3
  export declare function normalizeVectorDataType(datatype: VectorDataTypeInput): VectorDataType;
4
4
  export declare function vectorElementByteLength(datatype: VectorDataTypeInput): number;
5
5
  export declare function encodeVectorBuffer(vector: readonly unknown[], datatype?: VectorDataTypeInput): Buffer;
6
+ /**
7
+ * Convert a query vector into the bytes Redis expects. A Buffer is assumed to
8
+ * be encoded already and is returned unchanged; a number array is encoded
9
+ * using `datatype`.
10
+ */
11
+ export declare function encodeVectorInput(vector: VectorInput, datatype?: VectorDataTypeInput): Buffer;
12
+ /**
13
+ * Check that the Buffer's length is an exact number of elements of the given
14
+ * datatype.
15
+ */
16
+ export declare function validateWholeVectorElements(buffer: Buffer, datatype?: VectorDataTypeInput): void;
6
17
  export declare function decodeVectorBuffer(buffer: Buffer, datatype?: VectorDataTypeInput): number[];
7
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/redis/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAItE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,CAYrF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAa7E;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,QAAQ,GAAE,mBAA4C,GACvD,MAAM,CAmBR;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,mBAA4C,GACvD,MAAM,EAAE,CAwBV"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/redis/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAItE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,CAYrF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAa7E;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,QAAQ,GAAE,mBAA4C,GACvD,MAAM,CAmBR;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,WAAW,EACnB,QAAQ,GAAE,mBAA4C,GACvD,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,mBAA4C,GACvD,IAAI,CASN;AAED,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,mBAA4C,GACvD,MAAM,EAAE,CAkBV"}
@@ -38,12 +38,28 @@ export function encodeVectorBuffer(vector, datatype = VectorDataType.FLOAT32) {
38
38
  return Buffer.from(new Float32Array(validateVectorValues(vector)).buffer);
39
39
  }
40
40
  }
41
- export function decodeVectorBuffer(buffer, datatype = VectorDataType.FLOAT32) {
41
+ /**
42
+ * Convert a query vector into the bytes Redis expects. A Buffer is assumed to
43
+ * be encoded already and is returned unchanged; a number array is encoded
44
+ * using `datatype`.
45
+ */
46
+ export function encodeVectorInput(vector, datatype = VectorDataType.FLOAT32) {
47
+ return Buffer.isBuffer(vector) ? vector : encodeVectorBuffer(vector, datatype);
48
+ }
49
+ /**
50
+ * Check that the Buffer's length is an exact number of elements of the given
51
+ * datatype.
52
+ */
53
+ export function validateWholeVectorElements(buffer, datatype = VectorDataType.FLOAT32) {
42
54
  const normalizedDatatype = normalizeVectorDataType(datatype);
43
55
  const elementSize = vectorElementByteLength(normalizedDatatype);
44
56
  if (buffer.byteLength % elementSize !== 0) {
45
57
  throw new SchemaValidationError(`Vector buffer byte length (${buffer.byteLength}) is not a multiple of the ${normalizedDatatype} element size (${elementSize} bytes)`);
46
58
  }
59
+ }
60
+ export function decodeVectorBuffer(buffer, datatype = VectorDataType.FLOAT32) {
61
+ const normalizedDatatype = normalizeVectorDataType(datatype);
62
+ validateWholeVectorElements(buffer, normalizedDatatype);
47
63
  switch (normalizedDatatype) {
48
64
  case VectorDataType.FLOAT64:
49
65
  return decodeFloat64Buffer(buffer);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/redis/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/redis/utils.ts"],"names":[],"mappings":"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"}
@@ -37,8 +37,8 @@ export declare class IndexInfo {
37
37
  * Zod schema for IndexSchema validation.
38
38
  */
39
39
  export declare const IndexSchemaOptionsSchema: z.ZodObject<{
40
- index: z.ZodCustom<IndexInfo, IndexInfo>;
41
- fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodCustom<BaseField, BaseField>>>;
40
+ index: z.ZodInstanceOf<IndexInfo>;
41
+ fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodInstanceOf<BaseField>>>;
42
42
  version: z.ZodOptional<z.ZodLiteral<"0.1.0">>;
43
43
  }, z.core.$strip>;
44
44
  /**
@@ -34,6 +34,11 @@ export declare enum VectorDataType {
34
34
  INT8 = "INT8",
35
35
  UINT8 = "UINT8"
36
36
  }
37
+ /**
38
+ * A vector supplied to a query: a number array, or a Buffer already encoded
39
+ * in the vector datatype
40
+ */
41
+ export type VectorInput = number[] | Buffer;
37
42
  /**
38
43
  * Vector index algorithms
39
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;CACpB;AAED;;GAEG;AACH,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,EAAE,OAAO;CACZ;AAED;;GAEG;AACH,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;CAC5B;AAED;;GAEG;AACH,oBAAY,eAAe;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,UAAU,eAAe;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;CACpB;AAED;;GAEG;AACH,oBAAY,WAAW;IACnB,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,EAAE,OAAO;CACZ;AAED;;GAEG;AACH,oBAAY,cAAc;IACtB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;AAE5C;;GAEG;AACH,oBAAY,oBAAoB;IAC5B,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;CAC5B;AAED;;GAEG;AACH,oBAAY,eAAe;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,UAAU,eAAe;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,0BAAa,CAAA;IACb,gCAAmB,CAAA;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACrB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACjB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,iCAAS,CAAA;IACT,iCAAS,CAAA;AACb,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;IACb,iCAAe,CAAA;AACnB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,iDAAyB,CAAA;AAC7B,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;AAC7B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,0BAAa,CAAA;IACb,gCAAmB,CAAA;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;AACrB,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACjB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,yCAAiB,CAAA;IACjB,iCAAS,CAAA;IACT,iCAAS,CAAA;AACb,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;IACb,iCAAe,CAAA;AACnB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAQD;;GAEG;AACH,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,qCAAa,CAAA;IACb,qCAAa,CAAA;IACb,iDAAyB,CAAA;AAC7B,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;AAC7B,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B"}
@@ -2,7 +2,6 @@ import type { RedisClientType, RedisClusterType } from 'redis';
2
2
  import type { IndexSchema } from '../schema/schema.js';
3
3
  /**
4
4
  * Redis client type (standalone or cluster) used internally by storage.
5
- * Matches the RESP=2 reply shapes this library is implemented against.
6
5
  */
7
6
  export type RedisClient = RedisClientType | RedisClusterType;
8
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base-storage.d.ts","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-storage.d.ts","sourceRoot":"","sources":["../../src/storage/base-storage.ts"],"names":[],"mappings":"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"}