@functional-systems/lambdadb 0.3.4-dev.0 → 0.4.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 (70) hide show
  1. package/README.md +50 -7
  2. package/dist/commonjs/compat/qdrant/client.d.ts +210 -0
  3. package/dist/commonjs/compat/qdrant/client.d.ts.map +1 -0
  4. package/dist/commonjs/compat/qdrant/client.js +573 -0
  5. package/dist/commonjs/compat/qdrant/client.js.map +1 -0
  6. package/dist/commonjs/compat/qdrant/conversions.d.ts +40 -0
  7. package/dist/commonjs/compat/qdrant/conversions.d.ts.map +1 -0
  8. package/dist/commonjs/compat/qdrant/conversions.js +386 -0
  9. package/dist/commonjs/compat/qdrant/conversions.js.map +1 -0
  10. package/dist/commonjs/compat/qdrant/errors.d.ts +10 -0
  11. package/dist/commonjs/compat/qdrant/errors.d.ts.map +1 -0
  12. package/dist/commonjs/compat/qdrant/errors.js +25 -0
  13. package/dist/commonjs/compat/qdrant/errors.js.map +1 -0
  14. package/dist/commonjs/compat/qdrant/filters.d.ts +10 -0
  15. package/dist/commonjs/compat/qdrant/filters.d.ts.map +1 -0
  16. package/dist/commonjs/compat/qdrant/filters.js +172 -0
  17. package/dist/commonjs/compat/qdrant/filters.js.map +1 -0
  18. package/dist/commonjs/compat/qdrant/models.d.ts +198 -0
  19. package/dist/commonjs/compat/qdrant/models.d.ts.map +1 -0
  20. package/dist/commonjs/compat/qdrant/models.js +205 -0
  21. package/dist/commonjs/compat/qdrant/models.js.map +1 -0
  22. package/dist/commonjs/compat/qdrant.d.ts +4 -0
  23. package/dist/commonjs/compat/qdrant.d.ts.map +1 -0
  24. package/dist/commonjs/compat/qdrant.js +45 -0
  25. package/dist/commonjs/compat/qdrant.js.map +1 -0
  26. package/dist/commonjs/models/indexconfigsunion.d.ts +2 -2
  27. package/dist/commonjs/models/indexconfigsunion.d.ts.map +1 -1
  28. package/dist/commonjs/models/indexconfigsunion.js +4 -4
  29. package/dist/commonjs/models/indexconfigsunion.js.map +1 -1
  30. package/dist/esm/compat/qdrant/client.d.ts +210 -0
  31. package/dist/esm/compat/qdrant/client.d.ts.map +1 -0
  32. package/dist/esm/compat/qdrant/client.js +536 -0
  33. package/dist/esm/compat/qdrant/client.js.map +1 -0
  34. package/dist/esm/compat/qdrant/conversions.d.ts +40 -0
  35. package/dist/esm/compat/qdrant/conversions.d.ts.map +1 -0
  36. package/dist/esm/compat/qdrant/conversions.js +336 -0
  37. package/dist/esm/compat/qdrant/conversions.js.map +1 -0
  38. package/dist/esm/compat/qdrant/errors.d.ts +10 -0
  39. package/dist/esm/compat/qdrant/errors.d.ts.map +1 -0
  40. package/dist/esm/compat/qdrant/errors.js +19 -0
  41. package/dist/esm/compat/qdrant/errors.js.map +1 -0
  42. package/dist/esm/compat/qdrant/filters.d.ts +10 -0
  43. package/dist/esm/compat/qdrant/filters.d.ts.map +1 -0
  44. package/dist/esm/compat/qdrant/filters.js +169 -0
  45. package/dist/esm/compat/qdrant/filters.js.map +1 -0
  46. package/dist/esm/compat/qdrant/models.d.ts +198 -0
  47. package/dist/esm/compat/qdrant/models.d.ts.map +1 -0
  48. package/dist/esm/compat/qdrant/models.js +185 -0
  49. package/dist/esm/compat/qdrant/models.js.map +1 -0
  50. package/dist/esm/compat/qdrant.d.ts +4 -0
  51. package/dist/esm/compat/qdrant.d.ts.map +1 -0
  52. package/dist/esm/compat/qdrant.js +4 -0
  53. package/dist/esm/compat/qdrant.js.map +1 -0
  54. package/dist/esm/models/indexconfigsunion.d.ts +2 -2
  55. package/dist/esm/models/indexconfigsunion.d.ts.map +1 -1
  56. package/dist/esm/models/indexconfigsunion.js +4 -4
  57. package/dist/esm/models/indexconfigsunion.js.map +1 -1
  58. package/jsr.json +3 -1
  59. package/package.json +32 -1
  60. package/src/compat/qdrant/client.ts +901 -0
  61. package/src/compat/qdrant/conversions.ts +422 -0
  62. package/src/compat/qdrant/errors.ts +20 -0
  63. package/src/compat/qdrant/filters.ts +213 -0
  64. package/src/compat/qdrant/models.ts +317 -0
  65. package/src/compat/qdrant.ts +3 -0
  66. package/src/models/indexconfigsunion.ts +6 -6
  67. package/test/integration/qdrant-compat-external.test.mjs +226 -0
  68. package/test/integration/qdrant-compat-live.test.mjs +122 -0
  69. package/test/public-api.test.mjs +145 -4
  70. package/test/qdrant-compat.test.mjs +402 -0
@@ -0,0 +1,536 @@
1
+ import { LambdaDBClient } from "../../client.js";
2
+ import { ResourceNotFoundError } from "../../models/errors/index.js";
3
+ import { mergeIndexConfigs, payloadSchemaToIndexConfigs, plainIndexConfigs, pointsToDocs, qdrantVectorsConfig, queryVectorAndField, resultToScoredPoint, docToRecord, vectorConfigToIndexConfigs, } from "./conversions.js";
4
+ import { filterToLambdaDB } from "./filters.js";
5
+ import * as models from "./models.js";
6
+ import { QdrantCompatError, QdrantCompatValidationError, UnsupportedQdrantFeatureError, } from "./errors.js";
7
+ export class QdrantCompatClient {
8
+ constructor(clientOrOptions) {
9
+ if (isLambdaDBLike(clientOrOptions)) {
10
+ this.client = clientOrOptions;
11
+ return;
12
+ }
13
+ this.client = new LambdaDBClient(normalizeConstructorOptions(clientOrOptions));
14
+ }
15
+ async collectionExists(collectionName) {
16
+ try {
17
+ await this.client.collection(collectionName).get();
18
+ return true;
19
+ }
20
+ catch (error) {
21
+ if (isNotFoundError(error))
22
+ return false;
23
+ throw error;
24
+ }
25
+ }
26
+ async collection_exists(collectionName) {
27
+ return this.collectionExists(collectionName);
28
+ }
29
+ async getCollection(collectionName) {
30
+ const collection = await this.currentCollection(collectionName);
31
+ const indexConfigs = plainIndexConfigs(collection["indexConfigs"]);
32
+ return {
33
+ config: {
34
+ params: {
35
+ vectors: qdrantVectorsConfig(indexConfigs),
36
+ sparseVectors: {},
37
+ sparse_vectors: {},
38
+ },
39
+ },
40
+ collectionName,
41
+ collection_name: collectionName,
42
+ };
43
+ }
44
+ async get_collection(collectionName) {
45
+ return this.getCollection(collectionName);
46
+ }
47
+ async getCollections() {
48
+ if (typeof this.client.listCollections !== "function") {
49
+ return { collections: [] };
50
+ }
51
+ const response = await this.client.listCollections();
52
+ return {
53
+ collections: response.collections
54
+ .map((collection) => collection.name ?? collection.collectionName)
55
+ .filter((name) => typeof name === "string")
56
+ .map((name) => ({ name })),
57
+ };
58
+ }
59
+ async createCollection(collectionNameOrInput, options = {}) {
60
+ const { collectionName, body } = normalizeCollectionArgs(collectionNameOrInput, options);
61
+ const payloadSchema = popPayloadSchema(body);
62
+ rejectResultChanging(body, new Set(["timeout", "initFrom", "init_from"]));
63
+ const vectorsConfig = body.vectorsConfig ?? body.vectors_config ?? body["vectors"];
64
+ if (vectorsConfig === undefined) {
65
+ throw new QdrantCompatValidationError("vectorsConfig is required");
66
+ }
67
+ const indexConfigs = mergeIndexConfigs(vectorConfigToIndexConfigs(vectorsConfig), payloadSchemaToIndexConfigs(payloadSchema));
68
+ await this.client.createCollection({
69
+ collectionName,
70
+ indexConfigs: indexConfigs,
71
+ });
72
+ await this.waitForCollectionActive(collectionName, body.timeout);
73
+ return true;
74
+ }
75
+ async create_collection(collectionNameOrInput, options) {
76
+ return this.createCollection(collectionNameOrInput, options);
77
+ }
78
+ async recreateCollection(collectionNameOrInput, options = {}) {
79
+ const { collectionName } = normalizeCollectionArgs(collectionNameOrInput, options);
80
+ if (await this.collectionExists(collectionName)) {
81
+ await this.deleteCollection(collectionName);
82
+ }
83
+ return this.createCollection(collectionNameOrInput, options);
84
+ }
85
+ async recreate_collection(collectionNameOrInput, options) {
86
+ return this.recreateCollection(collectionNameOrInput, options);
87
+ }
88
+ async deleteCollection(collectionName) {
89
+ await this.client.collection(collectionName).delete();
90
+ return true;
91
+ }
92
+ async delete_collection(collectionName) {
93
+ return this.deleteCollection(collectionName);
94
+ }
95
+ async createPayloadIndex(collectionName, fieldName, fieldSchema, options = {}) {
96
+ const { timeout, wait, ...rest } = options;
97
+ if (wait === false) {
98
+ warn("wait=false is accepted but LambdaDB index updates follow LambdaDB semantics");
99
+ }
100
+ warnIgnored(rest);
101
+ const collection = await this.currentCollection(collectionName);
102
+ const existingIndexConfigs = plainIndexConfigs(collection["indexConfigs"]);
103
+ const payloadIndexConfig = payloadSchemaToIndexConfigs({ [fieldName]: fieldSchema });
104
+ if (hasSameIndexConfigs(existingIndexConfigs, payloadIndexConfig))
105
+ return true;
106
+ const numDocs = typeof collection["numDocs"] === "number" ? collection["numDocs"] : 0;
107
+ if (numDocs > 0) {
108
+ throw new UnsupportedQdrantFeatureError("createPayloadIndex is only supported for empty LambdaDB collections. " +
109
+ "Declare payloadSchema during createCollection or reingest documents after adding the index.");
110
+ }
111
+ await this.client.collection(collectionName).update({
112
+ indexConfigs: mergeIndexConfigs(existingIndexConfigs, payloadIndexConfig),
113
+ });
114
+ await this.waitForCollectionActive(collectionName, timeout);
115
+ return true;
116
+ }
117
+ async create_payload_index(collectionName, fieldName, fieldSchema, options) {
118
+ return this.createPayloadIndex(collectionName, fieldName, fieldSchema, options);
119
+ }
120
+ async upsert(collectionName, options) {
121
+ const { points, wait, ...rest } = options;
122
+ warnIgnored(rest);
123
+ if (wait === false) {
124
+ warn("wait=false is accepted but LambdaDB write visibility follows LambdaDB semantics");
125
+ }
126
+ await this.client.collection(collectionName).docs.upsert({
127
+ docs: pointsToDocs(points),
128
+ });
129
+ return new models.UpdateResult({ status: models.UpdateStatus.COMPLETED });
130
+ }
131
+ async uploadPoints(collectionName, options) {
132
+ const { points, batchSize, batch_size: batchSizeSnake, wait, shardKeySelector, shard_key_selector: shardKeySelectorSnake, ...rest } = options;
133
+ if (shardKeySelector !== undefined || shardKeySelectorSnake !== undefined) {
134
+ throw new UnsupportedQdrantFeatureError("Qdrant shard key routing is not supported in v1");
135
+ }
136
+ warnIgnored(rest);
137
+ const effectiveBatchSize = batchSize ?? batchSizeSnake ?? 64;
138
+ let batch = [];
139
+ for (const point of points) {
140
+ batch.push(point);
141
+ if (batch.length >= effectiveBatchSize) {
142
+ const upsertOptions = {
143
+ points: batch,
144
+ };
145
+ if (wait !== undefined)
146
+ upsertOptions.wait = wait;
147
+ await this.upsert(collectionName, upsertOptions);
148
+ batch = [];
149
+ }
150
+ }
151
+ if (batch.length > 0) {
152
+ const upsertOptions = {
153
+ points: batch,
154
+ };
155
+ if (wait !== undefined)
156
+ upsertOptions.wait = wait;
157
+ await this.upsert(collectionName, upsertOptions);
158
+ }
159
+ }
160
+ async upload_points(collectionName, options) {
161
+ return this.uploadPoints(collectionName, options);
162
+ }
163
+ async uploadCollection(collectionName, options) {
164
+ const { vectors, ids, payload, batchSize, batch_size: batchSizeSnake, ...rest } = options;
165
+ warnIgnored(rest);
166
+ const vectorList = Array.from(vectors);
167
+ const idList = ids ? Array.from(ids) : vectorList.map((_, index) => index);
168
+ const payloadList = payload
169
+ ? Array.from(payload)
170
+ : vectorList.map(() => undefined);
171
+ if (vectorList.length !== idList.length || vectorList.length !== payloadList.length) {
172
+ throw new QdrantCompatValidationError("vectors, ids, and payload must have the same length");
173
+ }
174
+ const points = vectorList.map((vector, index) => {
175
+ const pointInit = {
176
+ id: idList[index] ?? index,
177
+ vector: vector,
178
+ };
179
+ const pointPayload = payloadList[index];
180
+ if (pointPayload !== undefined && pointPayload !== null) {
181
+ pointInit.payload = pointPayload;
182
+ }
183
+ return new models.PointStruct(pointInit);
184
+ });
185
+ const uploadOptions = {
186
+ points,
187
+ };
188
+ const effectiveBatchSize = batchSize ?? batchSizeSnake;
189
+ if (effectiveBatchSize !== undefined)
190
+ uploadOptions.batchSize = effectiveBatchSize;
191
+ await this.uploadPoints(collectionName, uploadOptions);
192
+ }
193
+ async upload_collection(collectionName, options) {
194
+ return this.uploadCollection(collectionName, options);
195
+ }
196
+ async retrieve(collectionName, options) {
197
+ const { ids, withPayload, with_payload: withPayloadSnake, withVectors, with_vectors: withVectorsSnake, ...rest } = options;
198
+ warnIgnored(rest);
199
+ const includeVectors = withVectors ?? withVectorsSnake ?? false;
200
+ const response = await this.client.collection(collectionName).docs.fetch({
201
+ ids: ids.map(String),
202
+ consistentRead: true,
203
+ includeVectors,
204
+ });
205
+ return response.docs.map((doc) => docToRecord(doc, {
206
+ withPayload: withPayload ?? withPayloadSnake ?? true,
207
+ withVectors: includeVectors,
208
+ }));
209
+ }
210
+ async delete(collectionName, options = {}) {
211
+ const { pointsSelector, points_selector: pointsSelectorSnake, points, ids: idsOption, filter, wait, ...rest } = options;
212
+ warnIgnored(rest);
213
+ const selector = pointsSelector ?? pointsSelectorSnake ?? points ?? idsOption;
214
+ const ids = idsFromSelector(selector);
215
+ const convertedFilter = filterToLambdaDB(filterFromSelector(selector) ?? filter);
216
+ if (ids === undefined && Object.keys(convertedFilter).length === 0) {
217
+ throw new UnsupportedQdrantFeatureError("delete requires point IDs or a supported Qdrant filter");
218
+ }
219
+ if (wait === false) {
220
+ warn("wait=false is accepted but LambdaDB write visibility follows LambdaDB semantics");
221
+ }
222
+ const body = {};
223
+ if (ids !== undefined)
224
+ body.ids = ids.map(String);
225
+ if (Object.keys(convertedFilter).length > 0)
226
+ body.filter = convertedFilter;
227
+ await this.client.collection(collectionName).docs.delete(body);
228
+ return new models.UpdateResult({ status: models.UpdateStatus.COMPLETED });
229
+ }
230
+ async queryPoints(collectionName, options) {
231
+ const { query, queryFilter, query_filter: queryFilterSnake, limit = 10, withPayload, with_payload: withPayloadSnake, withVectors, with_vectors: withVectorsSnake, using, searchParams, search_params: searchParamsSnake, offset, scoreThreshold, score_threshold: scoreThresholdSnake, consistency, shardKeySelector, shard_key_selector: shardKeySelectorSnake, ...rest } = options;
232
+ warnIgnored(rest);
233
+ if (offset !== undefined && offset !== 0) {
234
+ throw new UnsupportedQdrantFeatureError("Query offset is not supported in v1");
235
+ }
236
+ if (scoreThreshold !== undefined || scoreThresholdSnake !== undefined) {
237
+ throw new UnsupportedQdrantFeatureError("Query scoreThreshold is not supported in v1");
238
+ }
239
+ if (shardKeySelector !== undefined || shardKeySelectorSnake !== undefined) {
240
+ throw new UnsupportedQdrantFeatureError("Qdrant shard key routing is not supported in v1");
241
+ }
242
+ if (consistency !== undefined) {
243
+ warn("Qdrant consistency is ignored; LambdaDB queryPoints uses consistentRead=true");
244
+ }
245
+ if (searchParams !== undefined || searchParamsSnake !== undefined) {
246
+ warn("Qdrant searchParams are ignored by the LambdaDB compatibility client");
247
+ }
248
+ const includeVectors = withVectors ?? withVectorsSnake ?? false;
249
+ const { vector, field } = queryVectorAndField(query, using);
250
+ const knn = {
251
+ field,
252
+ k: limit,
253
+ queryVector: vector,
254
+ };
255
+ const convertedFilter = filterToLambdaDB(queryFilter ?? queryFilterSnake);
256
+ if (Object.keys(convertedFilter).length > 0)
257
+ knn["filter"] = convertedFilter;
258
+ const response = await this.client.collection(collectionName).query({
259
+ query: { knn },
260
+ size: limit,
261
+ consistentRead: true,
262
+ includeVectors,
263
+ });
264
+ return new models.QueryResponse({
265
+ points: response.docs.map((result) => resultToScoredPoint(result, {
266
+ withPayload: withPayload ?? withPayloadSnake ?? true,
267
+ withVectors: includeVectors,
268
+ })),
269
+ });
270
+ }
271
+ async query_points(collectionName, options) {
272
+ return this.queryPoints(collectionName, options);
273
+ }
274
+ async query(collectionName, options) {
275
+ const { query, limit, filter, with_payload: withPayloadSnake, withPayload, with_vector: withVectorSnake, withVectors, params, ...rest } = options;
276
+ warnIgnored(rest);
277
+ const queryOptions = {
278
+ query,
279
+ };
280
+ if (filter !== undefined)
281
+ queryOptions.queryFilter = filter;
282
+ if (limit !== undefined)
283
+ queryOptions.limit = limit;
284
+ const payloadSelector = payloadSelectorToBoolean(withPayload ?? withPayloadSnake);
285
+ if (payloadSelector !== undefined)
286
+ queryOptions.withPayload = payloadSelector;
287
+ const vectorSelector = withVectors ?? withVectorSnake;
288
+ if (vectorSelector !== undefined)
289
+ queryOptions.withVectors = vectorSelector;
290
+ if (isObject(params))
291
+ queryOptions.searchParams = params;
292
+ return this.queryPoints(collectionName, queryOptions);
293
+ }
294
+ async search(collectionName, options) {
295
+ const query = options.queryVector ?? options.query_vector;
296
+ if (query === undefined) {
297
+ throw new QdrantCompatValidationError("queryVector is required");
298
+ }
299
+ const response = await this.queryPoints(collectionName, { ...options, query });
300
+ return response.points;
301
+ }
302
+ async scroll(collectionName, options = {}) {
303
+ const { scrollFilter, scroll_filter: scrollFilterSnake, limit = 10, withPayload, with_payload: withPayloadSnake, withVectors, with_vectors: withVectorsSnake, ...rest } = options;
304
+ warnIgnored(rest);
305
+ if (scrollFilter !== undefined || scrollFilterSnake !== undefined) {
306
+ throw new UnsupportedQdrantFeatureError("Filtered scroll is not supported in v1");
307
+ }
308
+ if (withVectors === true || withVectorsSnake === true) {
309
+ throw new UnsupportedQdrantFeatureError("Scroll with vectors is not supported in v1");
310
+ }
311
+ const response = await this.client.collection(collectionName).docs.list({ size: limit });
312
+ return [
313
+ response.docs.map((doc) => docToRecord(doc, {
314
+ withPayload: withPayload ?? withPayloadSnake ?? true,
315
+ withVectors: false,
316
+ })),
317
+ response.nextPageToken,
318
+ ];
319
+ }
320
+ async count(collectionName, options = {}) {
321
+ const { countFilter, count_filter: countFilterSnake, ...rest } = options;
322
+ warnIgnored(rest);
323
+ if (countFilter !== undefined || countFilterSnake !== undefined) {
324
+ throw new UnsupportedQdrantFeatureError("Filtered count is not supported in v1");
325
+ }
326
+ const collection = await this.currentCollection(collectionName);
327
+ return new models.CountResult({
328
+ count: typeof collection["numDocs"] === "number" ? collection["numDocs"] : 0,
329
+ });
330
+ }
331
+ async currentCollection(collectionName) {
332
+ const response = await this.client.collection(collectionName).get();
333
+ if (!isObject(response.collection)) {
334
+ throw new QdrantCompatError("LambdaDB collection response is missing collection metadata");
335
+ }
336
+ return response.collection;
337
+ }
338
+ async waitForCollectionActive(collectionName, timeoutSeconds) {
339
+ const timeout = typeof timeoutSeconds === "number" ? timeoutSeconds : 60;
340
+ const deadline = Date.now() + timeout * 1000;
341
+ let lastStatus = "unknown";
342
+ while (true) {
343
+ const collection = await this.currentCollection(collectionName);
344
+ const status = collection["collectionStatus"];
345
+ if (status === undefined || status === "ACTIVE")
346
+ return;
347
+ lastStatus = String(status);
348
+ if (Date.now() >= deadline) {
349
+ throw new QdrantCompatError(`Collection ${collectionName} did not become ACTIVE within ${timeout}s; last status=${lastStatus}`);
350
+ }
351
+ await sleep(500);
352
+ }
353
+ }
354
+ }
355
+ export const QdrantClient = QdrantCompatClient;
356
+ function normalizeConstructorOptions(options = {}) {
357
+ if (options.path !== undefined || options.location === ":memory:") {
358
+ throw new UnsupportedQdrantFeatureError("Qdrant local mode is not supported by LambdaDB compatibility client");
359
+ }
360
+ const known = new Set([
361
+ "projectApiKey",
362
+ "project_api_key",
363
+ "apiKey",
364
+ "api_key",
365
+ "baseUrl",
366
+ "base_url",
367
+ "url",
368
+ "projectName",
369
+ "project_name",
370
+ "timeout",
371
+ "timeoutMs",
372
+ "retryConfig",
373
+ "httpClient",
374
+ "serverURL",
375
+ "projectHost",
376
+ "path",
377
+ "location",
378
+ "host",
379
+ "port",
380
+ "https",
381
+ "prefix",
382
+ ]);
383
+ warnIgnored(unknownEntries(options, known));
384
+ let baseUrl = options.baseUrl ?? options.base_url ?? options.url;
385
+ if (baseUrl === undefined && options.host !== undefined) {
386
+ const scheme = options.https === false ? "http" : "https";
387
+ baseUrl = `${scheme}://${options.host}`;
388
+ if (options.port !== undefined)
389
+ baseUrl = `${baseUrl}:${options.port}`;
390
+ if (options.prefix !== undefined) {
391
+ baseUrl = `${baseUrl.replace(/\/+$/, "")}/${options.prefix.replace(/^\/+/, "")}`;
392
+ }
393
+ }
394
+ if (typeof baseUrl === "string" &&
395
+ (baseUrl.includes("localhost") || baseUrl.includes("127.0.0.1"))) {
396
+ warn("The Qdrant compatibility client interprets url as LambdaDB baseUrl, not a Qdrant server URL.");
397
+ }
398
+ const timeoutMs = options.timeoutMs ??
399
+ (typeof options.timeout === "number" ? Math.trunc(options.timeout * 1000) : undefined);
400
+ const normalized = {};
401
+ const projectApiKey = options.projectApiKey ?? options.project_api_key ??
402
+ options.apiKey ?? options.api_key;
403
+ if (projectApiKey !== undefined)
404
+ normalized.projectApiKey = projectApiKey;
405
+ if (typeof baseUrl === "string")
406
+ normalized.baseUrl = baseUrl;
407
+ const projectName = options.projectName ?? options.project_name;
408
+ if (projectName !== undefined)
409
+ normalized.projectName = projectName;
410
+ if (timeoutMs !== undefined)
411
+ normalized.timeoutMs = timeoutMs;
412
+ if (options.retryConfig !== undefined)
413
+ normalized.retryConfig = options.retryConfig;
414
+ if (options.httpClient !== undefined)
415
+ normalized.httpClient = options.httpClient;
416
+ if (options.serverURL !== undefined)
417
+ normalized.serverURL = options.serverURL;
418
+ if (options.projectHost !== undefined)
419
+ normalized.projectHost = options.projectHost;
420
+ return normalized;
421
+ }
422
+ function normalizeCollectionArgs(collectionNameOrInput, options) {
423
+ if (typeof collectionNameOrInput === "string") {
424
+ return { collectionName: collectionNameOrInput, body: { ...options } };
425
+ }
426
+ const collectionName = collectionNameOrInput.collectionName ??
427
+ collectionNameOrInput.collection_name;
428
+ if (collectionName === undefined) {
429
+ throw new QdrantCompatValidationError("collectionName is required");
430
+ }
431
+ return { collectionName, body: { ...collectionNameOrInput, ...options } };
432
+ }
433
+ function popPayloadSchema(body) {
434
+ const keys = [
435
+ "payloadSchema",
436
+ "payload_schema",
437
+ "payloadIndexes",
438
+ "payload_indexes",
439
+ "payloadIndexConfigs",
440
+ "payload_index_configs",
441
+ ];
442
+ const present = keys.filter((key) => body[key] !== undefined && body[key] !== null);
443
+ if (present.length > 1) {
444
+ throw new QdrantCompatValidationError(`Use only one payload schema option, got: ${present.join(", ")}`);
445
+ }
446
+ const [firstKey] = present;
447
+ return firstKey === undefined ? undefined : body[firstKey];
448
+ }
449
+ function rejectResultChanging(body, allowed) {
450
+ const ignored = Object.entries(body)
451
+ .filter(([key, value]) => value !== undefined &&
452
+ value !== null &&
453
+ !allowed.has(key) &&
454
+ ![
455
+ "collectionName",
456
+ "collection_name",
457
+ "vectorsConfig",
458
+ "vectors_config",
459
+ "vectors",
460
+ "payloadSchema",
461
+ "payload_schema",
462
+ "payloadIndexes",
463
+ "payload_indexes",
464
+ "payloadIndexConfigs",
465
+ "payload_index_configs",
466
+ ].includes(key))
467
+ .map(([key]) => key);
468
+ if (ignored.length > 0) {
469
+ throw new UnsupportedQdrantFeatureError(`Unsupported Qdrant collection options: ${ignored.join(", ")}`);
470
+ }
471
+ }
472
+ function idsFromSelector(selector) {
473
+ if (selector === undefined || selector === null)
474
+ return undefined;
475
+ if (Array.isArray(selector))
476
+ return selector;
477
+ if (isObject(selector)) {
478
+ const points = selector["points"];
479
+ const ids = selector["ids"];
480
+ if (Array.isArray(points))
481
+ return points;
482
+ if (Array.isArray(ids))
483
+ return ids;
484
+ }
485
+ return undefined;
486
+ }
487
+ function filterFromSelector(selector) {
488
+ if (isObject(selector) && "filter" in selector) {
489
+ return selector["filter"];
490
+ }
491
+ return undefined;
492
+ }
493
+ function hasSameIndexConfigs(existing, expected) {
494
+ return Object.entries(expected).every(([fieldName, indexConfig]) => JSON.stringify(existing[fieldName]) === JSON.stringify(indexConfig));
495
+ }
496
+ function payloadSelectorToBoolean(selector) {
497
+ if (Array.isArray(selector))
498
+ return true;
499
+ return selector;
500
+ }
501
+ function isLambdaDBLike(value) {
502
+ return isObject(value) &&
503
+ typeof value["createCollection"] === "function" &&
504
+ typeof value["collection"] === "function";
505
+ }
506
+ function isNotFoundError(error) {
507
+ return error instanceof ResourceNotFoundError ||
508
+ (isObject(error) && error["name"] === "ResourceNotFoundError");
509
+ }
510
+ function unknownEntries(options, known) {
511
+ const result = {};
512
+ for (const [key, value] of Object.entries(options)) {
513
+ if (!known.has(key))
514
+ result[key] = value;
515
+ }
516
+ return result;
517
+ }
518
+ function warnIgnored(options) {
519
+ const keys = Object.entries(options)
520
+ .filter(([, value]) => value !== undefined && value !== null)
521
+ .map(([key]) => key)
522
+ .sort();
523
+ if (keys.length > 0) {
524
+ warn(`Ignoring unsupported Qdrant options: ${keys.join(", ")}`);
525
+ }
526
+ }
527
+ function warn(message) {
528
+ console.warn(message);
529
+ }
530
+ function sleep(ms) {
531
+ return new Promise((resolve) => setTimeout(resolve, ms));
532
+ }
533
+ function isObject(value) {
534
+ return typeof value === "object" && value !== null && !Array.isArray(value);
535
+ }
536
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/compat/qdrant/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { PointStruct, type DenseVector } from "./models.js";
2
+ import * as models from "./models.js";
3
+ export declare const DEFAULT_VECTOR_NAME = "_qdrant_vector";
4
+ export declare const ID_FIELD = "id";
5
+ export declare const ORIGINAL_ID_FIELD = "_qdrant_id";
6
+ export declare const RESERVED_PREFIX = "_qdrant_";
7
+ type JsonObject = {
8
+ [key: string]: unknown;
9
+ };
10
+ type IndexConfig = {
11
+ [key: string]: unknown;
12
+ };
13
+ type IndexConfigs = {
14
+ [fieldName: string]: IndexConfig;
15
+ };
16
+ export declare function vectorFieldName(name?: string | null): string;
17
+ export declare function pointFromAny(point: unknown): PointStruct;
18
+ export declare function pointsToDocs(points: Iterable<unknown>): JsonObject[];
19
+ export declare function pointToDoc(point: unknown): JsonObject;
20
+ export declare function docToRecord(input: unknown, options?: {
21
+ withPayload?: boolean;
22
+ withVectors?: boolean;
23
+ }): models.Record;
24
+ export declare function resultToScoredPoint(result: unknown, options?: {
25
+ withPayload?: boolean;
26
+ withVectors?: boolean;
27
+ }): models.ScoredPoint;
28
+ export declare function vectorConfigToIndexConfigs(vectorsConfig: unknown): IndexConfigs;
29
+ export declare function payloadSchemaToIndexConfigs(payloadSchema?: unknown): IndexConfigs;
30
+ export declare function mergeIndexConfigs(...configs: IndexConfigs[]): IndexConfigs;
31
+ export declare function queryVectorAndField(query: unknown, using?: string): {
32
+ vector: DenseVector;
33
+ field: string;
34
+ };
35
+ export declare function plainIndexConfigs(rawIndexConfigs: unknown): IndexConfigs;
36
+ export declare function qdrantVectorsConfig(indexConfigs: IndexConfigs): unknown;
37
+ export declare function validatePayloadFieldName(key: string): void;
38
+ export declare function distanceToSimilarity(distance: models.Distance | string): string;
39
+ export type { IndexConfigs };
40
+ //# sourceMappingURL=conversions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../src/compat/qdrant/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAMtC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAC7C,KAAK,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAC9C,KAAK,YAAY,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAgBzD,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAG5D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAUxD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,EAAE,CAEpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAoCrD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7D,MAAM,CAAC,MAAM,CAOf;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7D,MAAM,CAAC,WAAW,CAWpB;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,OAAO,GAAG,YAAY,CAgC/E;AAED,wBAAgB,2BAA2B,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,YAAY,CAcjF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAgB1E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0CxC;AAED,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,OAAO,GAAG,YAAY,CAYxE;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAwBvE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAW1D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,CAO/E;AA0HD,YAAY,EAAE,YAAY,EAAE,CAAC"}