@gomomento/sdk-core 1.79.0 → 1.81.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 (59) hide show
  1. package/dist/src/auth/credential-provider.d.ts +0 -6
  2. package/dist/src/auth/credential-provider.js +2 -10
  3. package/dist/src/clients/ICacheClient.d.ts +2 -1
  4. package/dist/src/clients/ICacheClient.js +1 -1
  5. package/dist/src/index.d.ts +0 -8
  6. package/dist/src/index.js +4 -18
  7. package/dist/src/internal/clients/cache/AbstractCacheClient.d.ts +9 -4
  8. package/dist/src/internal/clients/cache/AbstractCacheClient.js +11 -6
  9. package/dist/src/internal/clients/cache/IDataClient.d.ts +3 -3
  10. package/dist/src/internal/clients/cache/IDataClient.js +1 -1
  11. package/dist/src/internal/clients/index.d.ts +0 -1
  12. package/dist/src/internal/clients/index.js +1 -2
  13. package/dist/src/internal/utils/auth.d.ts +0 -2
  14. package/dist/src/internal/utils/auth.js +1 -3
  15. package/dist/src/internal/utils/validators.d.ts +1 -1
  16. package/dist/src/internal/utils/validators.js +4 -4
  17. package/dist/src/messages/responses/cache-batch-get.d.ts +5 -0
  18. package/dist/src/messages/responses/cache-batch-get.js +13 -1
  19. package/dist/src/utils/cache-call-options.d.ts +3 -1
  20. package/dist/src/utils/cache-call-options.js +1 -1
  21. package/package.json +1 -1
  22. package/dist/src/clients/IVectorIndexClient.d.ts +0 -47
  23. package/dist/src/clients/IVectorIndexClient.js +0 -12
  24. package/dist/src/internal/clients/vector/AbstractVectorIndexClient.d.ts +0 -142
  25. package/dist/src/internal/clients/vector/AbstractVectorIndexClient.js +0 -163
  26. package/dist/src/internal/clients/vector/IVectorIndexControlClient.d.ts +0 -26
  27. package/dist/src/internal/clients/vector/IVectorIndexControlClient.js +0 -25
  28. package/dist/src/internal/clients/vector/IVectorIndexDataClient.d.ts +0 -13
  29. package/dist/src/internal/clients/vector/IVectorIndexDataClient.js +0 -3
  30. package/dist/src/internal/clients/vector/index.d.ts +0 -3
  31. package/dist/src/internal/clients/vector/index.js +0 -20
  32. package/dist/src/messages/responses/vector/create-vector-index.d.ts +0 -67
  33. package/dist/src/messages/responses/vector/create-vector-index.js +0 -61
  34. package/dist/src/messages/responses/vector/delete-vector-index.d.ts +0 -61
  35. package/dist/src/messages/responses/vector/delete-vector-index.js +0 -54
  36. package/dist/src/messages/responses/vector/index.d.ts +0 -10
  37. package/dist/src/messages/responses/vector/index.js +0 -14
  38. package/dist/src/messages/responses/vector/list-vector-indexes.d.ts +0 -71
  39. package/dist/src/messages/responses/vector/list-vector-indexes.js +0 -75
  40. package/dist/src/messages/responses/vector/vector-count-items.d.ts +0 -70
  41. package/dist/src/messages/responses/vector/vector-count-items.js +0 -72
  42. package/dist/src/messages/responses/vector/vector-delete-item-batch.d.ts +0 -62
  43. package/dist/src/messages/responses/vector/vector-delete-item-batch.js +0 -55
  44. package/dist/src/messages/responses/vector/vector-get-item-batch.d.ts +0 -73
  45. package/dist/src/messages/responses/vector/vector-get-item-batch.js +0 -74
  46. package/dist/src/messages/responses/vector/vector-get-item-metadata-batch.d.ts +0 -73
  47. package/dist/src/messages/responses/vector/vector-get-item-metadata-batch.js +0 -74
  48. package/dist/src/messages/responses/vector/vector-search-and-fetch-vectors.d.ts +0 -69
  49. package/dist/src/messages/responses/vector/vector-search-and-fetch-vectors.js +0 -67
  50. package/dist/src/messages/responses/vector/vector-search.d.ts +0 -70
  51. package/dist/src/messages/responses/vector/vector-search.js +0 -67
  52. package/dist/src/messages/responses/vector/vector-upsert-item-batch.d.ts +0 -61
  53. package/dist/src/messages/responses/vector/vector-upsert-item-batch.js +0 -54
  54. package/dist/src/messages/vector-index-filters.d.ts +0 -279
  55. package/dist/src/messages/vector-index-filters.js +0 -325
  56. package/dist/src/messages/vector-index-info.d.ts +0 -15
  57. package/dist/src/messages/vector-index-info.js +0 -38
  58. package/dist/src/messages/vector-index.d.ts +0 -42
  59. package/dist/src/messages/vector-index.js +0 -3
@@ -1,279 +0,0 @@
1
- /**
2
- * Base class for all vector index filter expressions.
3
- */
4
- export declare abstract class VectorFilterExpression {
5
- abstract toString(): string;
6
- /**
7
- * Creates an AND expression between this expression and another one.
8
- * @param other The other expression.
9
- * @returns The AND expression.
10
- */
11
- and(other: VectorFilterExpression): VectorFilterAndExpression;
12
- /**
13
- * Creates an OR expression between this expression and another one.
14
- * @param other The other expression.
15
- * @returns The OR expression.
16
- */
17
- or(other: VectorFilterExpression): VectorFilterOrExpression;
18
- /**
19
- * Negates this expression.
20
- * @returns The negated expression.
21
- */
22
- not(): VectorFilterNotExpression;
23
- }
24
- /**
25
- * Factory for creating vector filter expressions.
26
- */
27
- export declare class VectorFilterExpressions {
28
- private constructor();
29
- /**
30
- * Creates an {@link VectorFilterAndExpression} between two vector filter expressions.
31
- * @param firstExpression The first expression.
32
- * @param secondExpression The second expression.
33
- * @returns The AND expression.
34
- */
35
- static and(firstExpression: VectorFilterExpression, secondExpression: VectorFilterExpression): VectorFilterAndExpression;
36
- /**
37
- * Creates an {@link VectorFilterOrExpression} between two vector filter expressions.
38
- * @param firstExpression The first expression.
39
- * @param secondExpression The second expression.
40
- * @returns The OR expression.
41
- */
42
- static or(firstExpression: VectorFilterExpression, secondExpression: VectorFilterExpression): VectorFilterOrExpression;
43
- /**
44
- * Creates a {@link VectorFilterNotExpression} expression of a vector filter expression.
45
- * @param expression The expression.
46
- * @returns The NOT expression.
47
- */
48
- static not(expression: VectorFilterExpression): VectorFilterNotExpression;
49
- /**
50
- * Creates a {@link VectorFilterEqualsExpression} between a field and a value.
51
- * @param field The field.
52
- * @param value The value.
53
- * @returns The equals expression.
54
- */
55
- static equals(field: string, value: string | number | boolean): VectorFilterEqualsExpression;
56
- /**
57
- * Creates a {@link VectorFilterGreaterThanExpression} between a field and a value.
58
- * @param field The field.
59
- * @param value The value.
60
- * @returns The greater than expression.
61
- */
62
- static greaterThan(field: string, value: number): VectorFilterGreaterThanExpression;
63
- /**
64
- * Creates a {@link VectorFilterGreaterThanOrEqualExpression} between a field and a value.
65
- * @param field The field.
66
- * @param value The value.
67
- * @returns The greater than or equal expression.
68
- */
69
- static greaterThanOrEqual(field: string, value: number): VectorFilterGreaterThanOrEqualExpression;
70
- /**
71
- * Creates a {@link VectorFilterLessThanExpression} between a field and a value.
72
- * @param field The field.
73
- * @param value The value.
74
- * @returns The less than expression.
75
- */
76
- static lessThan(field: string, value: number): VectorFilterLessThanExpression;
77
- /**
78
- * Creates a {@link VectorFilterLessThanOrEqualExpression} between a field and a value.
79
- * @param field The field.
80
- * @param value The value.
81
- * @returns The less than or equal expression.
82
- */
83
- static lessThanOrEqual(field: string, value: number): VectorFilterLessThanOrEqualExpression;
84
- /**
85
- * Creates a {@link VectorFilterListContainsExpression} between a list-valued field and a value.
86
- * @param field The field.
87
- * @param value The value.
88
- * @returns The contains expression.
89
- */
90
- static listContains(field: string, value: string): VectorFilterListContainsExpression;
91
- /**
92
- * Creates a {@link VectorFilterIdInSetExpression} for a set of ids.
93
- * @param ids The ids.
94
- */
95
- static idInSet(ids: string[]): VectorFilterIdInSetExpression;
96
- }
97
- /**
98
- * Represents an AND expression between two vector filter expressions.
99
- */
100
- export declare class VectorFilterAndExpression extends VectorFilterExpression {
101
- /**
102
- * The first expression to AND.
103
- * @private
104
- */
105
- private readonly firstExpression;
106
- /**
107
- * The second expression to AND.
108
- * @private
109
- */
110
- private readonly secondExpression;
111
- constructor(firstExpression: VectorFilterExpression, secondExpression: VectorFilterExpression);
112
- get FirstExpression(): VectorFilterExpression;
113
- get SecondExpression(): VectorFilterExpression;
114
- toString(): string;
115
- }
116
- /**
117
- * Represents an OR expression between two vector filter expressions.
118
- */
119
- export declare class VectorFilterOrExpression extends VectorFilterExpression {
120
- /**
121
- * The first expression to OR.
122
- * @private
123
- */
124
- private readonly firstExpression;
125
- /**
126
- * The second expression to OR.
127
- * @private
128
- */
129
- private readonly secondExpression;
130
- constructor(firstExpression: VectorFilterExpression, secondExpression: VectorFilterExpression);
131
- get FirstExpression(): VectorFilterExpression;
132
- get SecondExpression(): VectorFilterExpression;
133
- toString(): string;
134
- }
135
- /**
136
- * Represents a NOT expression of a vector filter expression.
137
- */
138
- export declare class VectorFilterNotExpression extends VectorFilterExpression {
139
- /**
140
- * The expression to negate.
141
- * @private
142
- */
143
- private readonly expression;
144
- constructor(expression: VectorFilterExpression);
145
- get Expression(): VectorFilterExpression;
146
- toString(): string;
147
- }
148
- /**
149
- * Represents an equals expression between a field and a value.
150
- */
151
- export declare class VectorFilterEqualsExpression extends VectorFilterExpression {
152
- /**
153
- * The field to compare.
154
- * @private
155
- */
156
- private readonly field;
157
- /**
158
- * The value to test for equality.
159
- * @private
160
- */
161
- private readonly value;
162
- constructor(field: string, value: string | number | boolean);
163
- get Field(): string;
164
- get Value(): string | number | boolean;
165
- toString(): string;
166
- }
167
- /**
168
- * Represents a greater than expression between a field and a value.
169
- */
170
- export declare class VectorFilterGreaterThanExpression extends VectorFilterExpression {
171
- /**
172
- * The field to compare.
173
- * @private
174
- */
175
- private readonly field;
176
- /**
177
- * The value to test for greater than.
178
- * @private
179
- */
180
- private readonly value;
181
- constructor(field: string, value: number);
182
- get Field(): string;
183
- get Value(): number;
184
- toString(): string;
185
- }
186
- /**
187
- * Represents a greater than or equal expression between a field and a value.
188
- */
189
- export declare class VectorFilterGreaterThanOrEqualExpression extends VectorFilterExpression {
190
- /**
191
- * The field to compare.
192
- * @private
193
- */
194
- private readonly field;
195
- /**
196
- * The value to test for greater than or equal.
197
- * @private
198
- */
199
- private readonly value;
200
- constructor(field: string, value: number);
201
- get Field(): string;
202
- get Value(): number;
203
- toString(): string;
204
- }
205
- /**
206
- * Represents a less than expression between a field and a value.
207
- */
208
- export declare class VectorFilterLessThanExpression extends VectorFilterExpression {
209
- /**
210
- * The field to compare.
211
- * @private
212
- */
213
- private readonly field;
214
- /**
215
- * The value to test for less than.
216
- * @private
217
- */
218
- private readonly value;
219
- constructor(field: string, value: number);
220
- get Field(): string;
221
- get Value(): number;
222
- toString(): string;
223
- }
224
- /**
225
- * Represents a less than or equal expression between a field and a value.
226
- */
227
- export declare class VectorFilterLessThanOrEqualExpression extends VectorFilterExpression {
228
- /**
229
- * The field to compare.
230
- * @private
231
- */
232
- private readonly field;
233
- /**
234
- * The value to test for less than or equal.
235
- * @private
236
- */
237
- private readonly value;
238
- constructor(field: string, value: number);
239
- get Field(): string;
240
- get Value(): number;
241
- toString(): string;
242
- }
243
- /**
244
- * Represents a contains expression between a list-valued field and a value.
245
- */
246
- export declare class VectorFilterListContainsExpression extends VectorFilterExpression {
247
- /**
248
- * The field to compare.
249
- * @private
250
- */
251
- private readonly field;
252
- /**
253
- * The value to test for containment, ie does the list contain this value.
254
- * @private
255
- */
256
- private readonly value;
257
- constructor(field: string, value: string);
258
- get Field(): string;
259
- get Value(): string;
260
- toString(): string;
261
- }
262
- /**
263
- * Represents an id in set expression.
264
- * An item is considered a match if its id is in the set of ids.
265
- */
266
- export declare class VectorFilterIdInSetExpression extends VectorFilterExpression {
267
- /**
268
- * The ids to test for membership.
269
- * @private
270
- */
271
- private readonly ids;
272
- constructor(ids: string[]);
273
- /**
274
- * The ids to test for membership.
275
- * @constructor
276
- */
277
- get Ids(): string[];
278
- toString(): string;
279
- }
@@ -1,325 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VectorFilterIdInSetExpression = exports.VectorFilterListContainsExpression = exports.VectorFilterLessThanOrEqualExpression = exports.VectorFilterLessThanExpression = exports.VectorFilterGreaterThanOrEqualExpression = exports.VectorFilterGreaterThanExpression = exports.VectorFilterEqualsExpression = exports.VectorFilterNotExpression = exports.VectorFilterOrExpression = exports.VectorFilterAndExpression = exports.VectorFilterExpressions = exports.VectorFilterExpression = void 0;
4
- /**
5
- * Base class for all vector index filter expressions.
6
- */
7
- class VectorFilterExpression {
8
- /**
9
- * Creates an AND expression between this expression and another one.
10
- * @param other The other expression.
11
- * @returns The AND expression.
12
- */
13
- and(other) {
14
- return VectorFilterExpressions.and(this, other);
15
- }
16
- /**
17
- * Creates an OR expression between this expression and another one.
18
- * @param other The other expression.
19
- * @returns The OR expression.
20
- */
21
- or(other) {
22
- return VectorFilterExpressions.or(this, other);
23
- }
24
- /**
25
- * Negates this expression.
26
- * @returns The negated expression.
27
- */
28
- not() {
29
- return VectorFilterExpressions.not(this);
30
- }
31
- }
32
- exports.VectorFilterExpression = VectorFilterExpression;
33
- /**
34
- * Factory for creating vector filter expressions.
35
- */
36
- class VectorFilterExpressions {
37
- // eslint-disable-next-line @typescript-eslint/no-empty-function
38
- constructor() { }
39
- /**
40
- * Creates an {@link VectorFilterAndExpression} between two vector filter expressions.
41
- * @param firstExpression The first expression.
42
- * @param secondExpression The second expression.
43
- * @returns The AND expression.
44
- */
45
- static and(firstExpression, secondExpression) {
46
- return new VectorFilterAndExpression(firstExpression, secondExpression);
47
- }
48
- /**
49
- * Creates an {@link VectorFilterOrExpression} between two vector filter expressions.
50
- * @param firstExpression The first expression.
51
- * @param secondExpression The second expression.
52
- * @returns The OR expression.
53
- */
54
- static or(firstExpression, secondExpression) {
55
- return new VectorFilterOrExpression(firstExpression, secondExpression);
56
- }
57
- /**
58
- * Creates a {@link VectorFilterNotExpression} expression of a vector filter expression.
59
- * @param expression The expression.
60
- * @returns The NOT expression.
61
- */
62
- static not(expression) {
63
- return new VectorFilterNotExpression(expression);
64
- }
65
- /**
66
- * Creates a {@link VectorFilterEqualsExpression} between a field and a value.
67
- * @param field The field.
68
- * @param value The value.
69
- * @returns The equals expression.
70
- */
71
- static equals(field, value) {
72
- return new VectorFilterEqualsExpression(field, value);
73
- }
74
- /**
75
- * Creates a {@link VectorFilterGreaterThanExpression} between a field and a value.
76
- * @param field The field.
77
- * @param value The value.
78
- * @returns The greater than expression.
79
- */
80
- static greaterThan(field, value) {
81
- return new VectorFilterGreaterThanExpression(field, value);
82
- }
83
- /**
84
- * Creates a {@link VectorFilterGreaterThanOrEqualExpression} between a field and a value.
85
- * @param field The field.
86
- * @param value The value.
87
- * @returns The greater than or equal expression.
88
- */
89
- static greaterThanOrEqual(field, value) {
90
- return new VectorFilterGreaterThanOrEqualExpression(field, value);
91
- }
92
- /**
93
- * Creates a {@link VectorFilterLessThanExpression} between a field and a value.
94
- * @param field The field.
95
- * @param value The value.
96
- * @returns The less than expression.
97
- */
98
- static lessThan(field, value) {
99
- return new VectorFilterLessThanExpression(field, value);
100
- }
101
- /**
102
- * Creates a {@link VectorFilterLessThanOrEqualExpression} between a field and a value.
103
- * @param field The field.
104
- * @param value The value.
105
- * @returns The less than or equal expression.
106
- */
107
- static lessThanOrEqual(field, value) {
108
- return new VectorFilterLessThanOrEqualExpression(field, value);
109
- }
110
- /**
111
- * Creates a {@link VectorFilterListContainsExpression} between a list-valued field and a value.
112
- * @param field The field.
113
- * @param value The value.
114
- * @returns The contains expression.
115
- */
116
- static listContains(field, value) {
117
- return new VectorFilterListContainsExpression(field, value);
118
- }
119
- /**
120
- * Creates a {@link VectorFilterIdInSetExpression} for a set of ids.
121
- * @param ids The ids.
122
- */
123
- static idInSet(ids) {
124
- return new VectorFilterIdInSetExpression(ids);
125
- }
126
- }
127
- exports.VectorFilterExpressions = VectorFilterExpressions;
128
- /**
129
- * Represents an AND expression between two vector filter expressions.
130
- */
131
- class VectorFilterAndExpression extends VectorFilterExpression {
132
- constructor(firstExpression, secondExpression) {
133
- super();
134
- this.firstExpression = firstExpression;
135
- this.secondExpression = secondExpression;
136
- }
137
- get FirstExpression() {
138
- return this.firstExpression;
139
- }
140
- get SecondExpression() {
141
- return this.secondExpression;
142
- }
143
- toString() {
144
- return `(${this.firstExpression.toString()} AND ${this.secondExpression.toString()})`;
145
- }
146
- }
147
- exports.VectorFilterAndExpression = VectorFilterAndExpression;
148
- /**
149
- * Represents an OR expression between two vector filter expressions.
150
- */
151
- class VectorFilterOrExpression extends VectorFilterExpression {
152
- constructor(firstExpression, secondExpression) {
153
- super();
154
- this.firstExpression = firstExpression;
155
- this.secondExpression = secondExpression;
156
- }
157
- get FirstExpression() {
158
- return this.firstExpression;
159
- }
160
- get SecondExpression() {
161
- return this.secondExpression;
162
- }
163
- toString() {
164
- return `(${this.firstExpression.toString()} OR ${this.secondExpression.toString()})`;
165
- }
166
- }
167
- exports.VectorFilterOrExpression = VectorFilterOrExpression;
168
- /**
169
- * Represents a NOT expression of a vector filter expression.
170
- */
171
- class VectorFilterNotExpression extends VectorFilterExpression {
172
- constructor(expression) {
173
- super();
174
- this.expression = expression;
175
- }
176
- get Expression() {
177
- return this.expression;
178
- }
179
- toString() {
180
- return `NOT ${this.expression.toString()}`;
181
- }
182
- }
183
- exports.VectorFilterNotExpression = VectorFilterNotExpression;
184
- /**
185
- * Represents an equals expression between a field and a value.
186
- */
187
- class VectorFilterEqualsExpression extends VectorFilterExpression {
188
- constructor(field, value) {
189
- super();
190
- this.field = field;
191
- this.value = value;
192
- }
193
- get Field() {
194
- return this.field;
195
- }
196
- get Value() {
197
- return this.value;
198
- }
199
- toString() {
200
- return `${this.field}=${this.value.toString()}`;
201
- }
202
- }
203
- exports.VectorFilterEqualsExpression = VectorFilterEqualsExpression;
204
- /**
205
- * Represents a greater than expression between a field and a value.
206
- */
207
- class VectorFilterGreaterThanExpression extends VectorFilterExpression {
208
- constructor(field, value) {
209
- super();
210
- this.field = field;
211
- this.value = value;
212
- }
213
- get Field() {
214
- return this.field;
215
- }
216
- get Value() {
217
- return this.value;
218
- }
219
- toString() {
220
- return `${this.field} > ${this.value.toString()}`;
221
- }
222
- }
223
- exports.VectorFilterGreaterThanExpression = VectorFilterGreaterThanExpression;
224
- /**
225
- * Represents a greater than or equal expression between a field and a value.
226
- */
227
- class VectorFilterGreaterThanOrEqualExpression extends VectorFilterExpression {
228
- constructor(field, value) {
229
- super();
230
- this.field = field;
231
- this.value = value;
232
- }
233
- get Field() {
234
- return this.field;
235
- }
236
- get Value() {
237
- return this.value;
238
- }
239
- toString() {
240
- return `${this.field} >= ${this.value.toString()}`;
241
- }
242
- }
243
- exports.VectorFilterGreaterThanOrEqualExpression = VectorFilterGreaterThanOrEqualExpression;
244
- /**
245
- * Represents a less than expression between a field and a value.
246
- */
247
- class VectorFilterLessThanExpression extends VectorFilterExpression {
248
- constructor(field, value) {
249
- super();
250
- this.field = field;
251
- this.value = value;
252
- }
253
- get Field() {
254
- return this.field;
255
- }
256
- get Value() {
257
- return this.value;
258
- }
259
- toString() {
260
- return `${this.field} < ${this.value.toString()}`;
261
- }
262
- }
263
- exports.VectorFilterLessThanExpression = VectorFilterLessThanExpression;
264
- /**
265
- * Represents a less than or equal expression between a field and a value.
266
- */
267
- class VectorFilterLessThanOrEqualExpression extends VectorFilterExpression {
268
- constructor(field, value) {
269
- super();
270
- this.field = field;
271
- this.value = value;
272
- }
273
- get Field() {
274
- return this.field;
275
- }
276
- get Value() {
277
- return this.value;
278
- }
279
- toString() {
280
- return `${this.field} <= ${this.value.toString()}`;
281
- }
282
- }
283
- exports.VectorFilterLessThanOrEqualExpression = VectorFilterLessThanOrEqualExpression;
284
- /**
285
- * Represents a contains expression between a list-valued field and a value.
286
- */
287
- class VectorFilterListContainsExpression extends VectorFilterExpression {
288
- constructor(field, value) {
289
- super();
290
- this.field = field;
291
- this.value = value;
292
- }
293
- get Field() {
294
- return this.field;
295
- }
296
- get Value() {
297
- return this.value;
298
- }
299
- toString() {
300
- return `${this.field} contains ${this.value.toString()}`;
301
- }
302
- }
303
- exports.VectorFilterListContainsExpression = VectorFilterListContainsExpression;
304
- /**
305
- * Represents an id in set expression.
306
- * An item is considered a match if its id is in the set of ids.
307
- */
308
- class VectorFilterIdInSetExpression extends VectorFilterExpression {
309
- constructor(ids) {
310
- super();
311
- this.ids = ids;
312
- }
313
- /**
314
- * The ids to test for membership.
315
- * @constructor
316
- */
317
- get Ids() {
318
- return this.ids;
319
- }
320
- toString() {
321
- return `id in [${this.ids.join(', ')}]`;
322
- }
323
- }
324
- exports.VectorFilterIdInSetExpression = VectorFilterIdInSetExpression;
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWluZGV4LWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVzc2FnZXMvdmVjdG9yLWluZGV4LWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxNQUFzQixzQkFBc0I7SUFHMUM7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxLQUE2QjtRQUN0QyxPQUFPLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxFQUFFLENBQUMsS0FBNkI7UUFDckMsT0FBTyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSSxHQUFHO1FBQ1IsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBNUJELHdEQTRCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSx1QkFBdUI7SUFDbEMsZ0VBQWdFO0lBQ2hFLGdCQUF1QixDQUFDO0lBRXhCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FDZixlQUF1QyxFQUN2QyxnQkFBd0M7UUFFeEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQ2QsZUFBdUMsRUFDdkMsZ0JBQXdDO1FBRXhDLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQ2YsVUFBa0M7UUFFbEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FL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QztJQUNsQixDQUFDO0lBRWUsUUFBUTtRQUN0QixPQUFPLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUF2QkQsc0VBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgdmVjdG9yIGluZGV4IGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICBwdWJsaWMgYWJzdHJhY3QgdG9TdHJpbmcoKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIEFORCBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgQU5EIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgYW5kKG90aGVyOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLmFuZCh0aGlzLCBvdGhlcik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBPUiBleHByZXNzaW9uIGJldHdlZW4gdGhpcyBleHByZXNzaW9uIGFuZCBhbm90aGVyIG9uZS5cbiAgICogQHBhcmFtIG90aGVyIFRoZSBvdGhlciBleHByZXNzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgT1IgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBvcihvdGhlcjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbik6IFZlY3RvckZpbHRlck9yRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm9yKHRoaXMsIG90aGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOZWdhdGVzIHRoaXMgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIG5lZ2F0ZWQgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBub3QoKTogVmVjdG9yRmlsdGVyTm90RXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIFZlY3RvckZpbHRlckV4cHJlc3Npb25zLm5vdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEZhY3RvcnkgZm9yIGNyZWF0aW5nIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9ucyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4ge0BsaW5rIFZlY3RvckZpbHRlckFuZEV4cHJlc3Npb259IGJldHdlZW4gdHdvIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbnMuXG4gICAqIEBwYXJhbSBmaXJzdEV4cHJlc3Npb24gVGhlIGZpcnN0IGV4cHJlc3Npb24uXG4gICAqIEBwYXJhbSBzZWNvbmRFeHByZXNzaW9uIFRoZSBzZWNvbmQgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIEFORCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbmQoXG4gICAgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uLFxuICAgIHNlY29uZEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb25cbiAgKTogVmVjdG9yRmlsdGVyQW5kRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJBbmRFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiB7QGxpbmsgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9ufSBiZXR3ZWVuIHR3byB2ZWN0b3IgZmlsdGVyIGV4cHJlc3Npb25zLlxuICAgKiBAcGFyYW0gZmlyc3RFeHByZXNzaW9uIFRoZSBmaXJzdCBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gc2Vjb25kRXhwcmVzc2lvbiBUaGUgc2Vjb25kIGV4cHJlc3Npb24uXG4gICAqIEByZXR1cm5zIFRoZSBPUiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJPckV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyT3JFeHByZXNzaW9uKGZpcnN0RXhwcmVzc2lvbiwgc2Vjb25kRXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9ufSBleHByZXNzaW9uIG9mIGEgdmVjdG9yIGZpbHRlciBleHByZXNzaW9uLlxuICAgKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgZXhwcmVzc2lvbi5cbiAgICogQHJldHVybnMgVGhlIE5PVCBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBub3QoXG4gICAgZXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApOiBWZWN0b3JGaWx0ZXJOb3RFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlck5vdEV4cHJlc3Npb24oZXhwcmVzc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBlcXVhbHMgZXhwcmVzc2lvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW5cbiAgKTogVmVjdG9yRmlsdGVyRXF1YWxzRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJFcXVhbHNFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGdyZWF0ZXIgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmVhdGVyVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckdyZWF0ZXJUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyR3JlYXRlclRoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMZXNzVGhhbkV4cHJlc3Npb259IGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZC5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS5cbiAgICogQHJldHVybnMgVGhlIGxlc3MgdGhhbiBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbihcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5FeHByZXNzaW9uIHtcbiAgICByZXR1cm4gbmV3IFZlY3RvckZpbHRlckxlc3NUaGFuRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbn0gYmV0d2VlbiBhIGZpZWxkIGFuZCBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZmllbGQgVGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlLlxuICAgKiBAcmV0dXJucyBUaGUgbGVzcyB0aGFuIG9yIGVxdWFsIGV4cHJlc3Npb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbChcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXJcbiAgKTogVmVjdG9yRmlsdGVyTGVzc1RoYW5PckVxdWFsRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3JGaWx0ZXJMZXNzVGhhbk9yRXF1YWxFeHByZXNzaW9uKGZpZWxkLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBWZWN0b3JGaWx0ZXJMaXN0Q29udGFpbnNFeHByZXNzaW9ufSBiZXR3ZWVuIGEgbGlzdC12YWx1ZWQgZmllbGQgYW5kIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBmaWVsZCBUaGUgZmllbGQuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuXG4gICAqIEByZXR1cm5zIFRoZSBjb250YWlucyBleHByZXNzaW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsaXN0Q29udGFpbnMoXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nXG4gICk6IFZlY3RvckZpbHRlckxpc3RDb250YWluc0V4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVyTGlzdENvbnRhaW5zRXhwcmVzc2lvbihmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb259IGZvciBhIHNldCBvZiBpZHMuXG4gICAqIEBwYXJhbSBpZHMgVGhlIGlkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaWRJblNldChpZHM6IHN0cmluZ1tdKTogVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb24ge1xuICAgIHJldHVybiBuZXcgVmVjdG9yRmlsdGVySWRJblNldEV4cHJlc3Npb24oaWRzKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gQU5EIGV4cHJlc3Npb24gYmV0d2VlbiB0d28gdmVjdG9yIGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckFuZEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaXJzdCBleHByZXNzaW9uIHRvIEFORC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RFeHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uO1xuICAvKipcbiAgICogVGhlIHNlY29uZCBleHByZXNzaW9uIHRvIEFORC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlyc3RFeHByZXNzaW9uID0gZmlyc3RFeHByZXNzaW9uO1xuICAgIHRoaXMuc2Vjb25kRXhwcmVzc2lvbiA9IHNlY29uZEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpcnN0RXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlY29uZEV4cHJlc3Npb24oKTogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgKCR7dGhpcy5maXJzdEV4cHJlc3Npb24udG9TdHJpbmcoKX0gQU5EICR7dGhpcy5zZWNvbmRFeHByZXNzaW9uLnRvU3RyaW5nKCl9KWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIE9SIGV4cHJlc3Npb24gYmV0d2VlbiB0d28gdmVjdG9yIGZpbHRlciBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlck9yRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpcnN0IGV4cHJlc3Npb24gdG8gT1IuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcnN0RXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcbiAgLyoqXG4gICAqIFRoZSBzZWNvbmQgZXhwcmVzc2lvbiB0byBPUi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmaXJzdEV4cHJlc3Npb246IFZlY3RvckZpbHRlckV4cHJlc3Npb24sXG4gICAgc2Vjb25kRXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvblxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmlyc3RFeHByZXNzaW9uID0gZmlyc3RFeHByZXNzaW9uO1xuICAgIHRoaXMuc2Vjb25kRXhwcmVzc2lvbiA9IHNlY29uZEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpcnN0RXhwcmVzc2lvbigpOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdEV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlY29uZEV4cHJlc3Npb24oKTogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kRXhwcmVzc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgKCR7dGhpcy5maXJzdEV4cHJlc3Npb24udG9TdHJpbmcoKX0gT1IgJHt0aGlzLnNlY29uZEV4cHJlc3Npb24udG9TdHJpbmcoKX0pYDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBOT1QgZXhwcmVzc2lvbiBvZiBhIHZlY3RvciBmaWx0ZXIgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlck5vdEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBleHByZXNzaW9uIHRvIG5lZ2F0ZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZXhwcmVzc2lvbjogVmVjdG9yRmlsdGVyRXhwcmVzc2lvbjtcblxuICBjb25zdHJ1Y3RvcihleHByZXNzaW9uOiBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBFeHByZXNzaW9uKCk6IFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb247XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYE5PVCAke3RoaXMuZXhwcmVzc2lvbi50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVxdWFscyBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckVxdWFsc0V4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGVxdWFsaXR5LlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH09JHt0aGlzLnZhbHVlLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncmVhdGVyIHRoYW4gZXhwcmVzc2lvbiBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbkV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGdyZWF0ZXIgdGhhbi5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9ID4gJHt0aGlzLnZhbHVlLnRvU3RyaW5nKCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZXhwcmVzc2lvbiBiZXR3ZWVuIGEgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJHcmVhdGVyVGhhbk9yRXF1YWxFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gY29tcGFyZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byB0ZXN0IGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfSA+PSAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGxlc3MgdGhhbiBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckxlc3NUaGFuRXhwcmVzc2lvbiBleHRlbmRzIFZlY3RvckZpbHRlckV4cHJlc3Npb24ge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIGNvbXBhcmUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gdGVzdCBmb3IgbGVzcyB0aGFuLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB2YWx1ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmllbGQgPSBmaWVsZDtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEZpZWxkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maWVsZH0gPCAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGxlc3MgdGhhbiBvciBlcXVhbCBleHByZXNzaW9uIGJldHdlZW4gYSBmaWVsZCBhbmQgYSB2YWx1ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlckxlc3NUaGFuT3JFcXVhbEV4cHJlc3Npb24gZXh0ZW5kcyBWZWN0b3JGaWx0ZXJFeHByZXNzaW9uIHtcbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byBjb21wYXJlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHRlc3QgZm9yIGxlc3MgdGhhbiBvciBlcXVhbC5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpZWxkID0gZmllbGQ7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBGaWVsZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpZWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBWYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmllbGR9IDw9ICR7dGhpcy52YWx1ZS50b1N0cmluZygpfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGFpbnMgZXhwcmVzc2lvbiBiZXR3ZWVuIGEgbGlzdC12YWx1ZWQgZmllbGQgYW5kIGEgdmFsdWUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JGaWx0ZXJMaXN0Q29udGFpbnNFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gY29tcGFyZS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0byB0ZXN0IGZvciBjb250YWlubWVudCwgaWUgZG9lcyB0aGUgbGlzdCBjb250YWluIHRoaXMgdmFsdWUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5maWVsZCA9IGZpZWxkO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmllbGQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmZpZWxkfSBjb250YWlucyAke3RoaXMudmFsdWUudG9TdHJpbmcoKX1gO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBpZCBpbiBzZXQgZXhwcmVzc2lvbi5cbiAqIEFuIGl0ZW0gaXMgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGl0cyBpZCBpcyBpbiB0aGUgc2V0IG9mIGlkcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvckZpbHRlcklkSW5TZXRFeHByZXNzaW9uIGV4dGVuZHMgVmVjdG9yRmlsdGVyRXhwcmVzc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgaWRzIHRvIHRlc3QgZm9yIG1lbWJlcnNoaXAuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGlkczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoaWRzOiBzdHJpbmdbXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pZHMgPSBpZHM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlkcyB0byB0ZXN0IGZvciBtZW1iZXJzaGlwLlxuICAgKiBAY29uc3RydWN0b3JcbiAgICovXG4gIHB1YmxpYyBnZXQgSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5pZHM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGlkIGluIFske3RoaXMuaWRzLmpvaW4oJywgJyl9XWA7XG4gIH1cbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { VectorSimilarityMetric } from '../internal/clients';
2
- export declare class VectorIndexInfo {
3
- private readonly _name;
4
- private readonly _numDimensions;
5
- private readonly _similarityMetric;
6
- constructor(name: string, numDimensions: number, similarityMetric: VectorSimilarityMetric);
7
- get name(): string;
8
- getName(): string;
9
- getNumDimensions(): number;
10
- get numDimensions(): number;
11
- getSimilarityMetric(): VectorSimilarityMetric;
12
- get similarityMetric(): VectorSimilarityMetric;
13
- toString(): string;
14
- equals(other: VectorIndexInfo): boolean;
15
- }