redis-vl 0.1.0-beta.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 (87) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +212 -0
  3. package/dist/errors.d.ts +50 -0
  4. package/dist/errors.d.ts.map +1 -0
  5. package/dist/errors.js +87 -0
  6. package/dist/errors.js.map +1 -0
  7. package/dist/index.d.ts +21 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +25 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/indexes/search-index.d.ts +368 -0
  12. package/dist/indexes/search-index.d.ts.map +1 -0
  13. package/dist/indexes/search-index.js +475 -0
  14. package/dist/indexes/search-index.js.map +1 -0
  15. package/dist/query/base.d.ts +51 -0
  16. package/dist/query/base.d.ts.map +1 -0
  17. package/dist/query/base.js +6 -0
  18. package/dist/query/base.js.map +1 -0
  19. package/dist/query/index.d.ts +7 -0
  20. package/dist/query/index.d.ts.map +1 -0
  21. package/dist/query/index.js +7 -0
  22. package/dist/query/index.js.map +1 -0
  23. package/dist/query/vector.d.ts +199 -0
  24. package/dist/query/vector.d.ts.map +1 -0
  25. package/dist/query/vector.js +198 -0
  26. package/dist/query/vector.js.map +1 -0
  27. package/dist/redis/index-info-parser.d.ts +25 -0
  28. package/dist/redis/index-info-parser.d.ts.map +1 -0
  29. package/dist/redis/index-info-parser.js +301 -0
  30. package/dist/redis/index-info-parser.js.map +1 -0
  31. package/dist/redis/schema-types.d.ts +81 -0
  32. package/dist/redis/schema-types.d.ts.map +1 -0
  33. package/dist/redis/schema-types.js +18 -0
  34. package/dist/redis/schema-types.js.map +1 -0
  35. package/dist/redis/utils.d.ts +7 -0
  36. package/dist/redis/utils.d.ts.map +1 -0
  37. package/dist/redis/utils.js +221 -0
  38. package/dist/redis/utils.js.map +1 -0
  39. package/dist/schema/fields.d.ts +163 -0
  40. package/dist/schema/fields.d.ts.map +1 -0
  41. package/dist/schema/fields.js +304 -0
  42. package/dist/schema/fields.js.map +1 -0
  43. package/dist/schema/index.d.ts +8 -0
  44. package/dist/schema/index.d.ts.map +1 -0
  45. package/dist/schema/index.js +8 -0
  46. package/dist/schema/index.js.map +1 -0
  47. package/dist/schema/schema.d.ts +247 -0
  48. package/dist/schema/schema.d.ts.map +1 -0
  49. package/dist/schema/schema.js +403 -0
  50. package/dist/schema/schema.js.map +1 -0
  51. package/dist/schema/types.d.ts +56 -0
  52. package/dist/schema/types.d.ts.map +1 -0
  53. package/dist/schema/types.js +62 -0
  54. package/dist/schema/types.js.map +1 -0
  55. package/dist/storage/base-storage.d.ts +107 -0
  56. package/dist/storage/base-storage.d.ts.map +1 -0
  57. package/dist/storage/base-storage.js +187 -0
  58. package/dist/storage/base-storage.js.map +1 -0
  59. package/dist/storage/hash-storage.d.ts +29 -0
  60. package/dist/storage/hash-storage.d.ts.map +1 -0
  61. package/dist/storage/hash-storage.js +122 -0
  62. package/dist/storage/hash-storage.js.map +1 -0
  63. package/dist/storage/index.d.ts +4 -0
  64. package/dist/storage/index.d.ts.map +1 -0
  65. package/dist/storage/index.js +4 -0
  66. package/dist/storage/index.js.map +1 -0
  67. package/dist/storage/json-storage.d.ts +19 -0
  68. package/dist/storage/json-storage.d.ts.map +1 -0
  69. package/dist/storage/json-storage.js +81 -0
  70. package/dist/storage/json-storage.js.map +1 -0
  71. package/dist/utils/distance.d.ts +92 -0
  72. package/dist/utils/distance.d.ts.map +1 -0
  73. package/dist/utils/distance.js +98 -0
  74. package/dist/utils/distance.js.map +1 -0
  75. package/dist/vectorizers/base-vectorizer.d.ts +88 -0
  76. package/dist/vectorizers/base-vectorizer.d.ts.map +1 -0
  77. package/dist/vectorizers/base-vectorizer.js +32 -0
  78. package/dist/vectorizers/base-vectorizer.js.map +1 -0
  79. package/dist/vectorizers/huggingface-vectorizer.d.ts +103 -0
  80. package/dist/vectorizers/huggingface-vectorizer.d.ts.map +1 -0
  81. package/dist/vectorizers/huggingface-vectorizer.js +142 -0
  82. package/dist/vectorizers/huggingface-vectorizer.js.map +1 -0
  83. package/dist/vectorizers/index.d.ts +10 -0
  84. package/dist/vectorizers/index.d.ts.map +1 -0
  85. package/dist/vectorizers/index.js +10 -0
  86. package/dist/vectorizers/index.js.map +1 -0
  87. package/package.json +96 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/redis/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { VectorDistanceMetric, VectorDataType } from './types.js';
2
+ import type { SchemaTextField, SchemaTextFieldPhonetic, SchemaNumericField, SchemaGeoField, SchemaTagField, SchemaFlatVectorField, SchemaHNSWVectorField, RedisSchemaFieldType } from '../redis/schema-types.js';
3
+ /**
4
+ * Base interface for all field attributes
5
+ */
6
+ export interface BaseFieldAttrs {
7
+ as?: string;
8
+ sortable?: boolean;
9
+ indexMissing?: boolean;
10
+ indexEmpty?: boolean;
11
+ }
12
+ /**
13
+ * Base class for all field types
14
+ */
15
+ export declare abstract class BaseField {
16
+ readonly name: string;
17
+ readonly type: string;
18
+ readonly attrs: BaseFieldAttrs;
19
+ path?: string | null;
20
+ constructor(name: string, type: string, attrs?: BaseFieldAttrs);
21
+ /**
22
+ * Convert this field to Redis schema field format.
23
+ * Each subclass must implement this method to return the appropriate Redis field type.
24
+ * @param isJson - Whether the index uses JSON storage (affects field naming with $.prefix)
25
+ */
26
+ abstract toRedisField(isJson: boolean): RedisSchemaFieldType;
27
+ }
28
+ /**
29
+ * TextField attributes
30
+ */
31
+ export interface TextFieldAttrs extends BaseFieldAttrs {
32
+ weight?: number;
33
+ noStem?: boolean;
34
+ phonetic?: SchemaTextFieldPhonetic;
35
+ withSuffixTrie?: boolean;
36
+ }
37
+ /**
38
+ * TextField for full-text search
39
+ */
40
+ export declare class TextField extends BaseField {
41
+ readonly attrs: TextFieldAttrs;
42
+ constructor(name: string, attrs?: TextFieldAttrs);
43
+ toRedisField(isJson: boolean): SchemaTextField;
44
+ }
45
+ /**
46
+ * TagField attributes
47
+ */
48
+ export interface TagFieldAttrs extends BaseFieldAttrs {
49
+ separator?: string;
50
+ caseSensitive?: boolean;
51
+ }
52
+ /**
53
+ * TagField for exact matching
54
+ */
55
+ export declare class TagField extends BaseField {
56
+ readonly attrs: TagFieldAttrs;
57
+ constructor(name: string, attrs?: TagFieldAttrs);
58
+ toRedisField(isJson: boolean): SchemaTagField;
59
+ }
60
+ /**
61
+ * NumericField attributes
62
+ */
63
+ export interface NumericFieldAttrs extends BaseFieldAttrs {
64
+ }
65
+ /**
66
+ * NumericField for range queries
67
+ */
68
+ export declare class NumericField extends BaseField {
69
+ readonly attrs: NumericFieldAttrs;
70
+ constructor(name: string, attrs?: NumericFieldAttrs);
71
+ toRedisField(isJson: boolean): SchemaNumericField;
72
+ }
73
+ /**
74
+ * GeoField attributes
75
+ */
76
+ export interface GeoFieldAttrs extends BaseFieldAttrs {
77
+ }
78
+ /**
79
+ * GeoField for geographic queries
80
+ */
81
+ export declare class GeoField extends BaseField {
82
+ readonly attrs: GeoFieldAttrs;
83
+ constructor(name: string, attrs?: GeoFieldAttrs);
84
+ toRedisField(isJson: boolean): SchemaGeoField;
85
+ }
86
+ /**
87
+ * Base vector field attributes (for generic VectorField)
88
+ */
89
+ export interface VectorFieldAttrs extends BaseFieldAttrs {
90
+ algorithm: 'flat' | 'hnsw';
91
+ dims: number;
92
+ distanceMetric?: VectorDistanceMetric;
93
+ datatype?: VectorDataType;
94
+ blockSize?: number;
95
+ initialCap?: number;
96
+ m?: number;
97
+ efConstruction?: number;
98
+ efRuntime?: number;
99
+ epsilon?: number;
100
+ }
101
+ /**
102
+ * FlatVectorField attributes
103
+ */
104
+ export interface FlatVectorFieldAttrs extends VectorFieldAttrs {
105
+ algorithm: 'flat';
106
+ blockSize?: number;
107
+ initialCap?: number;
108
+ }
109
+ /**
110
+ * FlatVectorField for FLAT algorithm
111
+ */
112
+ export declare class FlatVectorField extends BaseField {
113
+ readonly attrs: FlatVectorFieldAttrs;
114
+ constructor(name: string, attrs: FlatVectorFieldAttrs);
115
+ toRedisField(isJson: boolean): SchemaFlatVectorField;
116
+ }
117
+ /**
118
+ * HNSWVectorField attributes
119
+ */
120
+ export interface HNSWVectorFieldAttrs extends VectorFieldAttrs {
121
+ algorithm: 'hnsw';
122
+ m?: number;
123
+ efConstruction?: number;
124
+ efRuntime?: number;
125
+ epsilon?: number;
126
+ }
127
+ /**
128
+ * HNSWVectorField for HNSW algorithm
129
+ */
130
+ export declare class HNSWVectorField extends BaseField {
131
+ readonly attrs: HNSWVectorFieldAttrs;
132
+ constructor(name: string, attrs: HNSWVectorFieldAttrs);
133
+ toRedisField(isJson: boolean): SchemaHNSWVectorField;
134
+ }
135
+ /**
136
+ * Generic VectorField that supports both FLAT and HNSW algorithms
137
+ *
138
+ * This is a convenience wrapper that delegates to FlatVectorField or HNSWVectorField
139
+ * based on the algorithm specified. This allows users to write algorithm-agnostic code:
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * // Generic approach - algorithm specified in attrs
144
+ * new VectorField('embedding', { algorithm: 'hnsw', dims: 768 })
145
+ *
146
+ * // Algorithm-specific approach - algorithm implied by class
147
+ * new HNSWVectorField('embedding', { dims: 768 })
148
+ * ```
149
+ */
150
+ export declare class VectorField extends BaseField {
151
+ readonly attrs: VectorFieldAttrs;
152
+ private delegateField;
153
+ constructor(name: string, attrs: VectorFieldAttrs);
154
+ toRedisField(isJson: boolean): SchemaFlatVectorField | SchemaHNSWVectorField;
155
+ }
156
+ /**
157
+ * Factory for creating field instances
158
+ */
159
+ export declare class FieldFactory {
160
+ static createField(fieldType: string, name: string, attrs?: BaseFieldAttrs | VectorFieldAttrs): BaseField;
161
+ private static createVectorField;
162
+ }
163
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/schema/fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ import { FieldType } from './types.js';
2
+ import { SchemaValidationError } from '../errors.js';
3
+ /**
4
+ * Base class for all field types
5
+ */
6
+ export class BaseField {
7
+ name;
8
+ type;
9
+ attrs;
10
+ path;
11
+ constructor(name, type, attrs = {}) {
12
+ this.name = name;
13
+ this.type = type;
14
+ this.attrs = attrs;
15
+ this.path = undefined;
16
+ }
17
+ }
18
+ /**
19
+ * TextField for full-text search
20
+ */
21
+ export class TextField extends BaseField {
22
+ attrs;
23
+ constructor(name, attrs = {}) {
24
+ super(name, 'text', attrs);
25
+ this.attrs = attrs;
26
+ }
27
+ toRedisField(isJson) {
28
+ const field = {
29
+ type: 'TEXT',
30
+ };
31
+ // Add AS field for JSON storage
32
+ if (isJson && this.attrs.as) {
33
+ field.AS = this.attrs.as;
34
+ }
35
+ // Add text-specific attributes
36
+ if (this.attrs.weight !== undefined) {
37
+ field.WEIGHT = this.attrs.weight;
38
+ }
39
+ if (this.attrs.noStem) {
40
+ field.NOSTEM = true;
41
+ }
42
+ if (this.attrs.phonetic) {
43
+ field.PHONETIC = this.attrs.phonetic; // Phonetic matcher string
44
+ }
45
+ if (this.attrs.withSuffixTrie) {
46
+ field.WITHSUFFIXTRIE = true;
47
+ }
48
+ // Add common attributes
49
+ if (this.attrs.sortable) {
50
+ field.SORTABLE = true;
51
+ }
52
+ if (this.attrs.indexMissing) {
53
+ field.INDEXMISSING = true;
54
+ }
55
+ if (this.attrs.indexEmpty) {
56
+ field.INDEXEMPTY = true;
57
+ }
58
+ return field;
59
+ }
60
+ }
61
+ /**
62
+ * TagField for exact matching
63
+ */
64
+ export class TagField extends BaseField {
65
+ attrs;
66
+ constructor(name, attrs = {}) {
67
+ super(name, 'tag', attrs);
68
+ this.attrs = attrs;
69
+ // Set default separator if not provided
70
+ if (!this.attrs.separator) {
71
+ this.attrs.separator = ',';
72
+ }
73
+ }
74
+ toRedisField(isJson) {
75
+ const field = {
76
+ type: 'TAG',
77
+ };
78
+ // Add AS field for JSON storage
79
+ if (isJson && this.attrs.as) {
80
+ field.AS = this.attrs.as;
81
+ }
82
+ // Add tag-specific attributes
83
+ if (this.attrs.separator) {
84
+ field.SEPARATOR = this.attrs.separator;
85
+ }
86
+ if (this.attrs.caseSensitive) {
87
+ field.CASESENSITIVE = true;
88
+ }
89
+ // Add common attributes
90
+ if (this.attrs.sortable) {
91
+ field.SORTABLE = true;
92
+ }
93
+ if (this.attrs.indexMissing) {
94
+ field.INDEXMISSING = true;
95
+ }
96
+ if (this.attrs.indexEmpty) {
97
+ field.INDEXEMPTY = true;
98
+ }
99
+ return field;
100
+ }
101
+ }
102
+ /**
103
+ * NumericField for range queries
104
+ */
105
+ export class NumericField extends BaseField {
106
+ attrs;
107
+ constructor(name, attrs = {}) {
108
+ super(name, 'numeric', attrs);
109
+ this.attrs = attrs;
110
+ }
111
+ toRedisField(isJson) {
112
+ const field = {
113
+ type: 'NUMERIC',
114
+ };
115
+ // Add AS field for JSON storage
116
+ if (isJson && this.attrs.as) {
117
+ field.AS = this.attrs.as;
118
+ }
119
+ // Add common attributes
120
+ if (this.attrs.sortable) {
121
+ field.SORTABLE = true;
122
+ }
123
+ if (this.attrs.indexMissing) {
124
+ field.INDEXMISSING = true;
125
+ }
126
+ return field;
127
+ }
128
+ }
129
+ /**
130
+ * GeoField for geographic queries
131
+ */
132
+ export class GeoField extends BaseField {
133
+ attrs;
134
+ constructor(name, attrs = {}) {
135
+ super(name, 'geo', attrs);
136
+ this.attrs = attrs;
137
+ }
138
+ toRedisField(isJson) {
139
+ const field = {
140
+ type: 'GEO',
141
+ };
142
+ // Add AS field for JSON storage
143
+ if (isJson && this.attrs.as) {
144
+ field.AS = this.attrs.as;
145
+ }
146
+ // Add common attributes
147
+ if (this.attrs.sortable) {
148
+ field.SORTABLE = true;
149
+ }
150
+ if (this.attrs.indexMissing) {
151
+ field.INDEXMISSING = true;
152
+ }
153
+ return field;
154
+ }
155
+ }
156
+ /**
157
+ * FlatVectorField for FLAT algorithm
158
+ */
159
+ export class FlatVectorField extends BaseField {
160
+ attrs;
161
+ constructor(name, attrs) {
162
+ super(name, 'vector', attrs);
163
+ this.attrs = attrs;
164
+ }
165
+ toRedisField(isJson) {
166
+ const field = {
167
+ type: 'VECTOR',
168
+ ALGORITHM: 'FLAT',
169
+ TYPE: (this.attrs.datatype || 'FLOAT32').toUpperCase(),
170
+ DIM: this.attrs.dims,
171
+ DISTANCE_METRIC: (this.attrs.distanceMetric || 'COSINE').toUpperCase(),
172
+ };
173
+ // Add AS field for JSON storage
174
+ if (isJson && this.attrs.as) {
175
+ field.AS = this.attrs.as;
176
+ }
177
+ // Add FLAT-specific attributes
178
+ if (this.attrs.blockSize !== undefined) {
179
+ field.BLOCK_SIZE = this.attrs.blockSize;
180
+ }
181
+ if (this.attrs.initialCap !== undefined) {
182
+ field.INITIAL_CAP = this.attrs.initialCap;
183
+ }
184
+ return field;
185
+ }
186
+ }
187
+ /**
188
+ * HNSWVectorField for HNSW algorithm
189
+ */
190
+ export class HNSWVectorField extends BaseField {
191
+ attrs;
192
+ constructor(name, attrs) {
193
+ super(name, 'vector', attrs);
194
+ this.attrs = attrs;
195
+ // Set default HNSW parameters
196
+ if (this.attrs.m === undefined)
197
+ this.attrs.m = 16;
198
+ if (this.attrs.efConstruction === undefined)
199
+ this.attrs.efConstruction = 200;
200
+ if (this.attrs.efRuntime === undefined)
201
+ this.attrs.efRuntime = 10;
202
+ if (this.attrs.epsilon === undefined)
203
+ this.attrs.epsilon = 0.01;
204
+ }
205
+ toRedisField(isJson) {
206
+ const field = {
207
+ type: 'VECTOR',
208
+ ALGORITHM: 'HNSW',
209
+ TYPE: (this.attrs.datatype || 'FLOAT32').toUpperCase(),
210
+ DIM: this.attrs.dims,
211
+ DISTANCE_METRIC: (this.attrs.distanceMetric || 'COSINE').toUpperCase(),
212
+ };
213
+ // Add AS field for JSON storage
214
+ if (isJson && this.attrs.as) {
215
+ field.AS = this.attrs.as;
216
+ }
217
+ // Add HNSW-specific attributes
218
+ if (this.attrs.m !== undefined) {
219
+ field.M = this.attrs.m;
220
+ }
221
+ if (this.attrs.efConstruction !== undefined) {
222
+ field.EF_CONSTRUCTION = this.attrs.efConstruction;
223
+ }
224
+ if (this.attrs.efRuntime !== undefined) {
225
+ field.EF_RUNTIME = this.attrs.efRuntime;
226
+ }
227
+ return field;
228
+ }
229
+ }
230
+ /**
231
+ * Generic VectorField that supports both FLAT and HNSW algorithms
232
+ *
233
+ * This is a convenience wrapper that delegates to FlatVectorField or HNSWVectorField
234
+ * based on the algorithm specified. This allows users to write algorithm-agnostic code:
235
+ *
236
+ * @example
237
+ * ```typescript
238
+ * // Generic approach - algorithm specified in attrs
239
+ * new VectorField('embedding', { algorithm: 'hnsw', dims: 768 })
240
+ *
241
+ * // Algorithm-specific approach - algorithm implied by class
242
+ * new HNSWVectorField('embedding', { dims: 768 })
243
+ * ```
244
+ */
245
+ export class VectorField extends BaseField {
246
+ attrs;
247
+ delegateField;
248
+ constructor(name, attrs) {
249
+ super(name, 'vector', attrs);
250
+ this.attrs = attrs;
251
+ // Create the appropriate delegate field based on algorithm
252
+ if (attrs.algorithm === 'flat') {
253
+ this.delegateField = new FlatVectorField(name, attrs);
254
+ }
255
+ else {
256
+ this.delegateField = new HNSWVectorField(name, attrs);
257
+ }
258
+ }
259
+ toRedisField(isJson) {
260
+ // Delegate to the appropriate field class
261
+ return this.delegateField.toRedisField(isJson);
262
+ }
263
+ }
264
+ /**
265
+ * Factory for creating field instances
266
+ */
267
+ export class FieldFactory {
268
+ static createField(fieldType, name, attrs) {
269
+ switch (fieldType) {
270
+ case FieldType.TAG:
271
+ return new TagField(name, attrs);
272
+ case FieldType.TEXT:
273
+ return new TextField(name, attrs);
274
+ case FieldType.NUMERIC:
275
+ return new NumericField(name, attrs);
276
+ case FieldType.GEO:
277
+ return new GeoField(name, attrs);
278
+ case FieldType.VECTOR:
279
+ return this.createVectorField(name, attrs);
280
+ default:
281
+ throw new SchemaValidationError(`Unknown field type: ${fieldType}`);
282
+ }
283
+ }
284
+ static createVectorField(name, attrs) {
285
+ if (!attrs) {
286
+ throw new SchemaValidationError('Vector field requires attrs parameter');
287
+ }
288
+ if (!attrs.algorithm) {
289
+ throw new SchemaValidationError('Must provide algorithm param');
290
+ }
291
+ if (attrs.dims === undefined) {
292
+ throw new SchemaValidationError('Must provide dims param');
293
+ }
294
+ switch (attrs.algorithm) {
295
+ case 'flat':
296
+ return new FlatVectorField(name, attrs);
297
+ case 'hnsw':
298
+ return new HNSWVectorField(name, attrs);
299
+ default:
300
+ throw new SchemaValidationError(`Unknown vector field algorithm: ${attrs.algorithm}`);
301
+ }
302
+ }
303
+ }
304
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/schema/fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module Schema
3
+ * Schema definition and field types for Redis search indexes.
4
+ */
5
+ export * from './schema.js';
6
+ export * from './fields.js';
7
+ export * from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @module Schema
3
+ * Schema definition and field types for Redis search indexes.
4
+ */
5
+ export * from './schema.js';
6
+ export * from './fields.js';
7
+ export * from './types.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}