@oracle/langchain-oracledb 0.2.0 → 1.1.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 (42) hide show
  1. package/README.md +62 -1
  2. package/dist/cache.cjs +535 -0
  3. package/dist/cache.cjs.map +1 -0
  4. package/dist/cache.d.cts +168 -0
  5. package/dist/cache.d.ts +168 -0
  6. package/dist/cache.js +527 -0
  7. package/dist/cache.js.map +1 -0
  8. package/dist/chatMessageHistories.cjs +345 -0
  9. package/dist/chatMessageHistories.cjs.map +1 -0
  10. package/dist/chatMessageHistories.d.cts +107 -0
  11. package/dist/chatMessageHistories.d.ts +107 -0
  12. package/dist/chatMessageHistories.js +338 -0
  13. package/dist/chatMessageHistories.js.map +1 -0
  14. package/dist/document_loaders.cjs +4 -3
  15. package/dist/document_loaders.cjs.map +1 -1
  16. package/dist/document_loaders.js +4 -3
  17. package/dist/document_loaders.js.map +1 -1
  18. package/dist/errors.cjs +123 -0
  19. package/dist/errors.cjs.map +1 -0
  20. package/dist/errors.d.cts +57 -0
  21. package/dist/errors.d.ts +57 -0
  22. package/dist/errors.js +113 -0
  23. package/dist/errors.js.map +1 -0
  24. package/dist/index.cjs +11 -0
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +3 -0
  27. package/dist/index.d.ts +3 -0
  28. package/dist/index.js +3 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/utils.cjs +49 -0
  31. package/dist/utils.cjs.map +1 -0
  32. package/dist/utils.d.cts +5 -0
  33. package/dist/utils.d.ts +5 -0
  34. package/dist/utils.js +44 -0
  35. package/dist/utils.js.map +1 -0
  36. package/dist/vectorstores.cjs +156 -108
  37. package/dist/vectorstores.cjs.map +1 -1
  38. package/dist/vectorstores.d.cts +11 -3
  39. package/dist/vectorstores.d.ts +11 -3
  40. package/dist/vectorstores.js +137 -91
  41. package/dist/vectorstores.js.map +1 -1
  42. package/package.json +27 -26
@@ -3,6 +3,17 @@ import oracledb from "oracledb";
3
3
  import { VectorStore, } from "@langchain/core/vectorstores";
4
4
  import { Document } from "@langchain/core/documents";
5
5
  import { maximalMarginalRelevance } from "@langchain/core/utils/math";
6
+ import { LangChainOracleError, ErrorCode, isLangChainOracleError, throwError, handleError, } from "./errors.js";
7
+ import { quoteIdentifier, } from "./utils.js";
8
+ export { LangChainOracleError, ErrorCode };
9
+ export { LangChainOracleError as OracleVSError, ErrorCode as OracleVSErrorCode, };
10
+ export { isLangChainOracleError };
11
+ function validateMetadataKey(column) {
12
+ const pattern = /^[a-zA-Z0-9_.[\],\s*]*$/;
13
+ if (!column || !pattern.test(column)) {
14
+ throwError(ErrorCode.FILTER_INVALID_METADATA_KEY, column);
15
+ }
16
+ }
6
17
  export function generateWhereClause(dbFilter, bindValues) {
7
18
  // Handle $and
8
19
  if ("$and" in dbFilter && Array.isArray(dbFilter.$and)) {
@@ -37,6 +48,7 @@ export function generateWhereClause(dbFilter, bindValues) {
37
48
  : conditions[0];
38
49
  }
39
50
  function generateOperatorCondition(column, operator, value, bindValues) {
51
+ validateMetadataKey(column);
40
52
  switch (operator) {
41
53
  case "$eq":
42
54
  return jsonCompare(column, "=", value, bindValues);
@@ -51,20 +63,23 @@ function generateOperatorCondition(column, operator, value, bindValues) {
51
63
  case "$gte":
52
64
  return jsonCompare(column, ">=", value, bindValues);
53
65
  case "$in": {
54
- if (!Array.isArray(value))
55
- throw new Error("$in requires array");
66
+ if (!Array.isArray(value)) {
67
+ throwError(ErrorCode.FILTER_INVALID_VALUE, "$in requires array");
68
+ }
56
69
  const inClauses = value.map((v) => jsonCompare(column, "=", v, bindValues));
57
70
  return `(${inClauses.join(" OR ")})`;
58
71
  }
59
72
  case "$nin": {
60
- if (!Array.isArray(value))
61
- throw new Error("$nin requires array");
73
+ if (!Array.isArray(value)) {
74
+ throwError(ErrorCode.FILTER_INVALID_VALUE, "$nin requires array");
75
+ }
62
76
  const ninClauses = value.map((v) => jsonCompare(column, "!=", v, bindValues));
63
77
  return `(${ninClauses.join(" AND ")})`;
64
78
  }
65
79
  case "$between": {
66
- if (!Array.isArray(value) || value.length !== 2)
67
- throw new Error("$between requires [low, high]");
80
+ if (!Array.isArray(value) || value.length !== 2) {
81
+ throwError(ErrorCode.FILTER_INVALID_VALUE, "$between requires [low, high]");
82
+ }
68
83
  const [low, high] = value;
69
84
  bindValues.push(low, high);
70
85
  const posLow = bindValues.length - 1;
@@ -79,7 +94,7 @@ function generateOperatorCondition(column, operator, value, bindValues) {
79
94
  return `NOT JSON_EXISTS(metadata, '$.${column}')`;
80
95
  }
81
96
  default:
82
- throw new Error(`Unsupported operator: ${operator}`);
97
+ throwError(ErrorCode.FILTER_UNSUPPORTED_OPERATOR, operator);
83
98
  }
84
99
  }
85
100
  // Helper: build JSON_EXISTS clause for comparison
@@ -109,42 +124,11 @@ export const DistanceStrategy = {
109
124
  HAMMING: "HAMMING",
110
125
  EUCLIDEAN_SQUARED: "EUCLIDEAN_SQUARED",
111
126
  };
112
- function handleError(error) {
113
- // Type guard to check if the error is an object and has 'name' and 'message' properties
114
- if (typeof error === "object" &&
115
- error !== null &&
116
- "name" in error &&
117
- "message" in error) {
118
- const err = error; // Type assertion based on guarded checks
119
- // Handle specific error types based on the name property
120
- switch (err.name) {
121
- case "RuntimeError":
122
- throw new Error("Database operation failed due to a runtime error.");
123
- case "ValidationError":
124
- throw new Error("Operation failed due to a validation error.");
125
- default:
126
- throw new Error(`An unexpected error occurred during the operation. ${error}`);
127
- }
128
- }
129
- throw new Error(`An unknown and unexpected error occurred. ${error}`);
130
- }
131
127
  function isPool(client) {
132
128
  return "getConnection" in client;
133
129
  }
134
- function quoteIdentifier(identifier) {
135
- const name = identifier.trim();
136
- const validateRegex = /^(?:"[^"]+"|[^".]+)(?:\.(?:"[^"]+"|[^".]+))*$/;
137
- if (!validateRegex.test(name)) {
138
- throw new Error(`Identifier name ${identifier} is not valid.`);
139
- }
140
- // extracts parts of the identifier with quoted and unquoted.
141
- const matchRegex = /"([^"]+)"|([^".]+)/g;
142
- const groups = [];
143
- for (const match of name.matchAll(matchRegex)) {
144
- groups.push(match[1] || match[2]);
145
- }
146
- const quotedParts = groups.map((g) => `"${g}"`);
147
- return quotedParts.join(".");
130
+ function isClientProvider(client) {
131
+ return typeof client === "function";
148
132
  }
149
133
  const isFloat32Array = (value) =>
150
134
  // eslint-disable-next-line no-instanceof/no-instanceof
@@ -179,25 +163,26 @@ function normalizeVectorFormat(value, vectorType) {
179
163
  const format = validFormats.includes(normalizedValue)
180
164
  ? normalizedValue
181
165
  : VectorElementFormat.FLOAT32;
182
- if (vectorType === VectorType.SPARSE && format === VectorElementFormat.BINARY) {
183
- throw new Error("BINARY format is not supported for SPARSE vectors.");
166
+ if (vectorType === VectorType.SPARSE &&
167
+ format === VectorElementFormat.BINARY) {
168
+ throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "BINARY format is not supported for SPARSE vectors.");
184
169
  }
185
170
  return format;
186
171
  }
187
172
  function buildVectorColumnDefinition(embeddingDim, customization) {
188
173
  if (embeddingDim === undefined || embeddingDim === null) {
189
- throw new Error("Embedding dimension is required to create the vector column.");
174
+ throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Embedding dimension is required to create the vector column.");
190
175
  }
191
176
  if (!Number.isInteger(embeddingDim) || embeddingDim <= 0) {
192
- throw new Error("Embedding dimension must be a positive integer.");
177
+ throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Embedding dimension must be a positive integer.");
193
178
  }
194
179
  const vectorType = normalizeVectorTypeValue(customization?.vectorType);
195
180
  if (vectorType === VectorType.SPARSE && customization?.format === undefined) {
196
- throw new Error("Sparse vector type requires a vector format to be specified.");
181
+ throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Sparse vector type requires a vector format to be specified.");
197
182
  }
198
183
  const format = normalizeVectorFormat(customization?.format, vectorType);
199
184
  if (format === VectorElementFormat.BINARY && embeddingDim % 8 !== 0) {
200
- throw new Error("BINARY vector format requires dimensions to be a multiple of 8.");
185
+ throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "BINARY vector format requires dimensions to be a multiple of 8.");
201
186
  }
202
187
  const dimensionSegment = String(embeddingDim);
203
188
  const formatSegment = format ?? VectorElementFormat.FLOAT32;
@@ -288,7 +273,7 @@ function convertDenseVectorForFormat(values, format) {
288
273
  for (let i = 0; i < values.length; i += 1) {
289
274
  const rounded = Math.round(values[i]);
290
275
  if (rounded < -128 || rounded > 127) {
291
- throw new Error("INT8 vector values must be within [-128, 127].");
276
+ throwError(ErrorCode.VECTOR_INVALID_VALUE, "INT8 vector values must be within [-128, 127].");
292
277
  }
293
278
  clamped[i] = rounded;
294
279
  }
@@ -327,7 +312,7 @@ async function createHNSWIndex(connection, oraclevs, params = {}) {
327
312
  const { idxName = _getIndexName("HNSW"), idxType = "HNSW", neighbors = 32, efConstruction = 200, accuracy = 90, parallel = 8, ...extra } = params;
328
313
  const invalidKeys = Object.keys(extra);
329
314
  if (invalidKeys.length > 0) {
330
- throw new Error(`Invalid parameter(s): ${invalidKeys.join(", ")}`);
315
+ throwError(ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS, invalidKeys);
331
316
  }
332
317
  const ddl = `
333
318
  CREATE VECTOR INDEX IF NOT EXISTS ${quoteIdentifier(idxName)}
@@ -351,7 +336,7 @@ async function createIVFIndex(connection, oraclevs, params = {}) {
351
336
  const { idxName = _getIndexName("IVF"), idxType = "IVF", neighborPart = 32, accuracy = 90, parallel = 8, ...extra } = params;
352
337
  const invalidKeys = Object.keys(extra);
353
338
  if (invalidKeys.length > 0) {
354
- throw new Error(`Invalid parameter(s): ${invalidKeys.join(", ")}`);
339
+ throwError(ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS, invalidKeys);
355
340
  }
356
341
  const ddl = `
357
342
  CREATE VECTOR INDEX IF NOT EXISTS ${quoteIdentifier(idxName)}
@@ -391,6 +376,14 @@ export class OracleVS extends VectorStore {
391
376
  writable: true,
392
377
  value: void 0
393
378
  });
379
+ // Tracks connections borrowed from a pool so retConnection() can return them
380
+ // without closing direct connections owned by the caller.
381
+ Object.defineProperty(this, "poolConnections", {
382
+ enumerable: true,
383
+ configurable: true,
384
+ writable: true,
385
+ value: new WeakSet()
386
+ });
394
387
  Object.defineProperty(this, "embeddingDimension", {
395
388
  enumerable: true,
396
389
  configurable: true,
@@ -464,16 +457,20 @@ export class OracleVS extends VectorStore {
464
457
  }
465
458
  }
466
459
  getActiveVectorType() {
467
- return this.vectorType ? normalizeVectorTypeValue(this.vectorType) : VectorType.DENSE;
460
+ return this.vectorType
461
+ ? normalizeVectorTypeValue(this.vectorType)
462
+ : VectorType.DENSE;
468
463
  }
469
464
  ensureEmbeddingDimension() {
470
- if (this.embeddingDimension === undefined || this.embeddingDimension === null) {
471
- throw new Error("Embedding dimension is not initialized for this vector store.");
465
+ if (this.embeddingDimension === undefined ||
466
+ this.embeddingDimension === null) {
467
+ throwError(ErrorCode.STATE_INVALID, "Embedding dimension is not initialized for this vector store.");
472
468
  }
473
469
  return this.embeddingDimension;
474
470
  }
475
471
  prepareVectorForStorage(vector) {
476
- if (this.embeddingDimension === undefined || this.embeddingDimension === null) {
472
+ if (this.embeddingDimension === undefined ||
473
+ this.embeddingDimension === null) {
477
474
  this.embeddingDimension = vector.length;
478
475
  }
479
476
  const dimension = this.ensureEmbeddingDimension();
@@ -483,30 +480,63 @@ export class OracleVS extends VectorStore {
483
480
  : VectorElementFormat.FLOAT32;
484
481
  if (vectorType === VectorType.SPARSE) {
485
482
  if (vector.length !== dimension) {
486
- throw new Error("Sparse vectors must supply full-dimension arrays for conversion.");
483
+ throwError(ErrorCode.VECTOR_INVALID_VALUE, "Sparse vectors must supply full-dimension arrays for conversion.");
487
484
  }
488
- let sparseInput = vector;
485
+ // The dense-input SparseVector constructor stores its values as a
486
+ // Float64Array regardless of the typed array passed in, so FLOAT32 and
487
+ // INT8 query vectors reach the database as FLOAT64 and VECTOR_DISTANCE()
488
+ // fails with ORA-51812 against a non-FLOAT64 sparse column. The
489
+ // object-form constructor preserves the values' typed array, so build
490
+ // the nonzero indices/values explicitly and use that form.
491
+ const indices = [];
492
+ const nonzero = [];
489
493
  if (format === VectorElementFormat.INT8) {
490
- const clamped = new Int8Array(vector.length);
491
494
  for (let i = 0; i < vector.length; i += 1) {
492
- const rounded = Math.round(vector[i]);
493
- if (rounded < -128 || rounded > 127) {
494
- throw new Error("INT8 sparse vector values must be within [-128, 127].");
495
+ const value = vector[i];
496
+ const rounded = Math.round(value);
497
+ if (!Number.isFinite(value) || rounded < -128 || rounded > 127) {
498
+ throwError(ErrorCode.VECTOR_INVALID_VALUE, "INT8 sparse vector values must be finite and within [-128, 127].");
499
+ }
500
+ if (rounded !== 0) {
501
+ indices.push(i);
502
+ nonzero.push(rounded);
503
+ }
504
+ }
505
+ }
506
+ else if (format === VectorElementFormat.FLOAT32) {
507
+ for (let i = 0; i < vector.length; i += 1) {
508
+ if (Math.fround(vector[i]) !== 0) {
509
+ indices.push(i);
510
+ nonzero.push(vector[i]);
495
511
  }
496
- clamped[i] = rounded;
497
512
  }
498
- sparseInput = clamped;
513
+ }
514
+ else {
515
+ for (let i = 0; i < vector.length; i += 1) {
516
+ if (vector[i] !== 0) {
517
+ indices.push(i);
518
+ nonzero.push(vector[i]);
519
+ }
520
+ }
521
+ }
522
+ let values;
523
+ if (format === VectorElementFormat.INT8) {
524
+ values = new Int8Array(nonzero);
499
525
  }
500
526
  else if (format === VectorElementFormat.FLOAT64) {
501
- sparseInput = new Float64Array(vector);
527
+ values = new Float64Array(nonzero);
502
528
  }
503
- else if (format === VectorElementFormat.FLOAT32) {
504
- sparseInput = new Float32Array(vector);
529
+ else {
530
+ values = new Float32Array(nonzero);
505
531
  }
506
- return new oracledb.SparseVector(sparseInput);
532
+ return new oracledb.SparseVector({
533
+ values,
534
+ indices: new Uint32Array(indices),
535
+ numDimensions: vector.length,
536
+ });
507
537
  }
508
538
  if (vector.length !== dimension) {
509
- throw new Error("Vector length does not match the embedding dimension.");
539
+ throwError(ErrorCode.VECTOR_INVALID_VALUE, "Vector length does not match the embedding dimension.");
510
540
  }
511
541
  return convertDenseVectorForFormat(vector, format);
512
542
  }
@@ -519,7 +549,7 @@ export class OracleVS extends VectorStore {
519
549
  if (isSparseVector(value)) {
520
550
  const dense = value.dense?.();
521
551
  if (!dense) {
522
- throw new Error("Unable to expand sparse vector to dense representation.");
552
+ throwError(ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION, "Unable to expand sparse vector to dense representation.");
523
553
  }
524
554
  if (isFloat32Array(dense)) {
525
555
  return dense;
@@ -535,13 +565,16 @@ export class OracleVS extends VectorStore {
535
565
  }
536
566
  return Float32Array.from(dense);
537
567
  }
538
- if (isFloat32Array(value) || isFloat64Array(value) || isInt8Array(value) || isUint8Array(value)) {
568
+ if (isFloat32Array(value) ||
569
+ isFloat64Array(value) ||
570
+ isInt8Array(value) ||
571
+ isUint8Array(value)) {
539
572
  return value;
540
573
  }
541
574
  if (Array.isArray(value)) {
542
575
  return value;
543
576
  }
544
- throw new Error("Received unsupported vector representation from the database.");
577
+ throwError(ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION, "Received unsupported vector representation from the database.");
545
578
  }
546
579
  // Normalizes any supported vector representation into Float32Array so downstream math
547
580
  // (MMR, distance calculations) can assume a consistent element type without forcing
@@ -579,7 +612,7 @@ export class OracleVS extends VectorStore {
579
612
  description: this.description,
580
613
  annotations: this.annotations,
581
614
  vectorType: this.vectorType,
582
- format: this.vectorFormat
615
+ format: this.vectorFormat,
583
616
  });
584
617
  }
585
618
  catch (error) {
@@ -590,12 +623,18 @@ export class OracleVS extends VectorStore {
590
623
  await this.retConnection(connection);
591
624
  }
592
625
  }
626
+ async resolveClient() {
627
+ return isClientProvider(this.client) ? await this.client() : this.client;
628
+ }
593
629
  async getConnection() {
594
630
  try {
595
- if (isPool(this.client)) {
596
- return await this.client.getConnection();
631
+ const client = await this.resolveClient();
632
+ if (isPool(client)) {
633
+ const connection = await client.getConnection();
634
+ this.poolConnections.add(connection);
635
+ return connection;
597
636
  }
598
- return this.client;
637
+ return client;
599
638
  }
600
639
  catch (error) {
601
640
  handleError(error);
@@ -604,9 +643,10 @@ export class OracleVS extends VectorStore {
604
643
  // Close connection or return it to the pool
605
644
  async retConnection(connection) {
606
645
  try {
607
- // If the client is a pool, close the connection (return it to the pool)
608
- if (isPool(this.client)) {
646
+ // If this public connection came from any pool, close it to return it to the pool.
647
+ if (this.poolConnections.has(connection)) {
609
648
  await connection.close();
649
+ this.poolConnections.delete(connection);
610
650
  }
611
651
  }
612
652
  catch (error) {
@@ -624,16 +664,15 @@ export class OracleVS extends VectorStore {
624
664
  */
625
665
  async addVectors(vectors, documents, options) {
626
666
  if (vectors.length === 0) {
627
- throw new Error("Vectors input null. Nothing to add...");
667
+ throwError(ErrorCode.VALIDATION_INVALID_INPUT, "Vectors input null. Nothing to add...");
628
668
  }
629
669
  const inputIds = options?.ids;
630
670
  let connection = null;
631
671
  try {
632
672
  // Ensure there are IDs for all documents
633
673
  if (inputIds !== undefined && inputIds.length !== vectors.length) {
634
- throw new Error("The number of ids must match the number of vectors provided.");
674
+ throwError(ErrorCode.VALIDATION_INVALID_INPUT, "The number of ids must match the number of vectors provided.");
635
675
  }
636
- connection = await this.getConnection();
637
676
  const finalIds = [];
638
677
  const binds = [];
639
678
  for (let index = 0; index < documents.length; index += 1) {
@@ -679,6 +718,7 @@ export class OracleVS extends VectorStore {
679
718
  },
680
719
  autoCommit: false,
681
720
  };
721
+ connection = await this.getConnection();
682
722
  await connection.executeMany(sql, binds, executeOptions);
683
723
  // Commit once all inserts are queued up
684
724
  await connection.commit();
@@ -709,14 +749,22 @@ export class OracleVS extends VectorStore {
709
749
  let connection = null;
710
750
  try {
711
751
  const bindValues = [this.prepareQueryVector(query)];
752
+ const hasFilter = !!filter && Object.keys(filter).length > 0;
753
+ // Keep the vector index hint for unfiltered searches. When a JSON filter
754
+ // is present, forcing VECTOR_INDEX_TRANSFORM can change result semantics
755
+ // by doing approximate top-k before the filter is applied.
756
+ const selectClause = hasFilter
757
+ ? "SELECT"
758
+ : `SELECT /*+ VECTOR_INDEX_TRANSFORM(${this.tableName}) */`;
712
759
  let sqlQuery = `
713
- SELECT external_id,
760
+ ${selectClause}
761
+ external_id,
714
762
  text,
715
763
  metadata,
716
764
  vector_distance(embedding, :1, ${this.distanceStrategy}) as distance,
717
765
  embedding
718
766
  FROM ${this.tableName} `;
719
- if (filter && Object.keys(filter).length > 0) {
767
+ if (hasFilter) {
720
768
  sqlQuery += ` WHERE ${generateWhereClause(filter, bindValues)}`;
721
769
  }
722
770
  bindValues.push(k);
@@ -744,14 +792,10 @@ export class OracleVS extends VectorStore {
744
792
  docsScoresAndEmbeddings.push([document, distance, embedding]);
745
793
  }
746
794
  }
747
- else {
748
- // Throw an exception if no rows are found
749
- throw new Error("No rows found.");
750
- }
751
795
  }
752
796
  finally {
753
797
  if (connection) {
754
- await connection.close();
798
+ await this.retConnection(connection);
755
799
  }
756
800
  }
757
801
  return docsScoresAndEmbeddings;
@@ -832,14 +876,16 @@ export class OracleVS extends VectorStore {
832
876
  handleError(error);
833
877
  }
834
878
  finally {
835
- if (connection)
836
- await connection.close();
879
+ if (connection) {
880
+ await this.retConnection(connection);
881
+ }
837
882
  }
838
883
  }
839
884
  static async fromDocuments(documents, embeddings, dbConfig, options) {
840
885
  const { client } = dbConfig;
841
- if (!client)
842
- throw new Error("client parameter is required...");
886
+ if (!client) {
887
+ throwError(ErrorCode.VALIDATION_MISSING_REQUIRED_PARAMETER, "client");
888
+ }
843
889
  try {
844
890
  const vss = new OracleVS(embeddings, dbConfig);
845
891
  await vss.initialize();
@@ -859,8 +905,8 @@ export class OracleVS extends VectorStore {
859
905
  * inside the pool are terminated.
860
906
  */
861
907
  async end() {
862
- if (isPool(this.client)) {
863
- await this.client?.close();
908
+ if (!isClientProvider(this.client) && isPool(this.client)) {
909
+ await this.client.close();
864
910
  }
865
911
  }
866
912
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vectorstores.js","sourceRoot":"","sources":["../src/vectorstores.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vectorstores.js","sourceRoot":"","sources":["../src/vectorstores.ts"],"names":[],"mappings":"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"}