{"version":3,"file":"mariadb.d.cts","names":["Pool","PoolConfig","VectorStore","EmbeddingsInterface","Document","Metadata","Record","DistanceStrategy","MariaDBStoreArgs","MariaDBStore","Promise"],"sources":["../../src/vectorstores/mariadb.d.ts"],"sourcesContent":["import { type Pool, type PoolConfig } from \"mariadb\";\nimport { VectorStore } from \"@langchain/core/vectorstores\";\nimport type { EmbeddingsInterface } from \"@langchain/core/embeddings\";\nimport { Document } from \"@langchain/core/documents\";\ntype Metadata = Record<string, unknown>;\nexport type DistanceStrategy = \"COSINE\" | \"EUCLIDEAN\";\n/**\n * Interface that defines the arguments required to create a\n * `MariaDBStore` instance. It includes MariaDB connection options,\n * table name and verbosity level.\n */\nexport interface MariaDBStoreArgs {\n    connectionOptions?: PoolConfig;\n    pool?: Pool;\n    tableName?: string;\n    collectionTableName?: string;\n    collectionName?: string;\n    collectionMetadata?: Metadata | null;\n    schemaName?: string | null;\n    columns?: {\n        idColumnName?: string;\n        vectorColumnName?: string;\n        contentColumnName?: string;\n        metadataColumnName?: string;\n    };\n    verbose?: boolean;\n    /**\n     * The amount of documents to chunk by when\n     * adding vectors.\n     * @default 500\n     */\n    chunkSize?: number;\n    ids?: string[];\n    distanceStrategy?: DistanceStrategy;\n}\n/**\n * MariaDB vector store integration.\n *\n * Setup:\n * Install `@langchain/community` and `mariadb`.\n *\n * If you wish to generate ids, you should also install the `uuid` package.\n *\n * ```bash\n * npm install @langchain/community mariadb uuid\n * ```\n *\n * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_community.vectorstores_mariadb.MariaDB.html#constructor)\n *\n * <details open>\n * <summary><strong>Instantiate</strong></summary>\n *\n * ```typescript\n * import {\n *   MariaDBStore,\n *   DistanceStrategy,\n * } from \"@langchain/community/vectorstores/mariadb\";\n *\n * // Or other embeddings\n * import { OpenAIEmbeddings } from \"@langchain/openai\";\n * import { PoolConfig } from \"mariadb\";\n *\n * const embeddings = new OpenAIEmbeddings({\n *   model: \"text-embedding-3-small\",\n * });\n *\n * // Sample config\n * const config = {\n *   connectionOptions: {\n *     host: \"127.0.0.1\",\n *     port: 3306,\n *     user: \"myuser\",\n *     password: \"ChangeMe\",\n *     database: \"api\",\n *   } as PoolConfig,\n *   tableName: \"testlangchainjs\",\n *   columns: {\n *     idColumnName: \"id\",\n *     vectorColumnName: \"vector\",\n *     contentColumnName: \"content\",\n *     metadataColumnName: \"metadata\",\n *   },\n *   // supported distance strategies: COSINE (default) or EUCLIDEAN\n *   distanceStrategy: \"COSINE\" as DistanceStrategy,\n * };\n *\n * const vectorStore = await MariaDBStore.initialize(embeddings, config);\n * ```\n * </details>\n *\n * <br />\n *\n * <details>\n * <summary><strong>Add documents</strong></summary>\n *\n * ```typescript\n * import type { Document } from '@langchain/core/documents';\n *\n * const document1 = { pageContent: \"foo\", metadata: { baz: \"bar\" } };\n * const document2 = { pageContent: \"thud\", metadata: { bar: \"baz\" } };\n * const document3 = { pageContent: \"i will be deleted :(\", metadata: {} };\n *\n * const documents: Document[] = [document1, document2, document3];\n * const ids = [\"1\", \"2\", \"3\"];\n * await vectorStore.addDocuments(documents, { ids });\n * ```\n * </details>\n *\n * <br />\n *\n * <details>\n * <summary><strong>Delete documents</strong></summary>\n *\n * ```typescript\n * await vectorStore.delete({ ids: [\"3\"] });\n * ```\n * </details>\n *\n * <br />\n *\n * <details>\n * <summary><strong>Similarity search</strong></summary>\n *\n * ```typescript\n * const results = await vectorStore.similaritySearch(\"thud\", 1);\n * for (const doc of results) {\n *   console.log(`* ${doc.pageContent} [${JSON.stringify(doc.metadata, null)}]`);\n * }\n * // Output: * thud [{\"baz\":\"bar\"}]\n * ```\n * </details>\n *\n * <br />\n *\n *\n * <details>\n * <summary><strong>Similarity search with filter</strong></summary>\n *\n * ```typescript\n * const resultsWithFilter = await vectorStore.similaritySearch(\"thud\", 1, {\"country\": \"BG\"});\n *\n * for (const doc of resultsWithFilter) {\n *   console.log(`* ${doc.pageContent} [${JSON.stringify(doc.metadata, null)}]`);\n * }\n * // Output: * foo [{\"baz\":\"bar\"}]\n * ```\n * </details>\n *\n * <br />\n *\n *\n * <details>\n * <summary><strong>Similarity search with score</strong></summary>\n *\n * ```typescript\n * const resultsWithScore = await vectorStore.similaritySearchWithScore(\"qux\", 1);\n * for (const [doc, score] of resultsWithScore) {\n *   console.log(`* [SIM=${score.toFixed(6)}] ${doc.pageContent} [${JSON.stringify(doc.metadata, null)}]`);\n * }\n * // Output: * [SIM=0.000000] qux [{\"bar\":\"baz\",\"baz\":\"bar\"}]\n * ```\n * </details>\n *\n * <br />\n *\n * <details>\n * <summary><strong>As a retriever</strong></summary>\n *\n * ```typescript\n * const retriever = vectorStore.asRetriever({\n *   searchType: \"mmr\", // Leave blank for standard similarity search\n *   k: 1,\n * });\n * const resultAsRetriever = await retriever.invoke(\"thud\");\n * console.log(resultAsRetriever);\n *\n * // Output: [Document({ metadata: { \"baz\":\"bar\" }, pageContent: \"thud\" })]\n * ```\n * </details>\n *\n * <br />\n */\nexport declare class MariaDBStore extends VectorStore {\n    tableName: string;\n    collectionTableName?: string;\n    collectionName: string;\n    collectionId?: string;\n    collectionMetadata: Metadata | null;\n    schemaName: string | null;\n    idColumnName: string;\n    vectorColumnName: string;\n    contentColumnName: string;\n    metadataColumnName: string;\n    _verbose?: boolean;\n    pool: Pool;\n    chunkSize: number;\n    distanceStrategy: DistanceStrategy;\n    constructor(embeddings: EmbeddingsInterface, config: MariaDBStoreArgs);\n    get computedTableName(): string;\n    get computedCollectionTableName(): string;\n    /**\n     * Escape identifier\n     *\n     * @param identifier identifier value\n     * @param alwaysQuote must identifier be quoted if not required\n     */\n    private escapeId;\n    private printable;\n    /**\n     * Static method to create a new `MariaDBStore` instance from a\n     * connection. It creates a table if one does not exist, and calls\n     * `connect` to return a new instance of `MariaDBStore`.\n     *\n     * @param embeddings - Embeddings instance.\n     * @param fields - `MariaDBStoreArgs` instance\n     * @param fields.dimensions Number of dimensions in your vector data type. default to 1536.\n     * @returns A new instance of `MariaDBStore`.\n     */\n    static initialize(embeddings: EmbeddingsInterface, config: MariaDBStoreArgs & {\n        dimensions?: number;\n    }): Promise<MariaDBStore>;\n    /**\n     * Static method to create a new `MariaDBStore` instance from an\n     * array of texts and their metadata. It converts the texts into\n     * `Document` instances and adds them to the store.\n     *\n     * @param texts - Array of texts.\n     * @param metadatas - Array of metadata objects or a single metadata object.\n     * @param embeddings - Embeddings instance.\n     * @param dbConfig - `MariaDBStoreArgs` instance.\n     * @returns Promise that resolves with a new instance of `MariaDBStore`.\n     */\n    static fromTexts(texts: string[], metadatas: object[] | object, embeddings: EmbeddingsInterface, dbConfig: MariaDBStoreArgs & {\n        dimensions?: number;\n    }): Promise<MariaDBStore>;\n    /**\n     * Static method to create a new `MariaDBStore` instance from an\n     * array of `Document` instances. It adds the documents to the store.\n     *\n     * @param docs - Array of `Document` instances.\n     * @param embeddings - Embeddings instance.\n     * @param dbConfig - `MariaDBStoreArgs` instance.\n     * @returns Promise that resolves with a new instance of `MariaDBStore`.\n     */\n    static fromDocuments(docs: Document[], embeddings: EmbeddingsInterface, dbConfig: MariaDBStoreArgs & {\n        dimensions?: number;\n    }): Promise<MariaDBStore>;\n    _vectorstoreType(): string;\n    /**\n     * Method to add documents to the vector store. It converts the documents into\n     * vectors, and adds them to the store.\n     *\n     * @param documents - Array of `Document` instances.\n     * @param options - Optional arguments for adding documents\n     * @returns Promise that resolves when the documents have been added.\n     */\n    addDocuments(documents: Document[], options?: {\n        ids?: string[];\n    }): Promise<void>;\n    private loadCollectionId;\n    /**\n     * Method to add vectors to the vector store. It converts the vectors into\n     * rows and inserts them into the database.\n     *\n     * @param vectors - Array of vectors.\n     * @param documents - Array of `Document` instances.\n     * @param options - Optional arguments for adding documents\n     * @returns Promise that resolves when the vectors have been added.\n     */\n    addVectors(vectors: number[][], documents: Document[], options?: {\n        ids?: string[];\n    }): Promise<void>;\n    /**\n     * Convert float array to binary value\n     * @param vector embedding value\n     * @private\n     */\n    private getFloat32Buffer;\n    /**\n     * Method to delete documents from the vector store. It deletes the\n     * documents that match the provided ids\n     *\n     * @param ids - array of ids\n     * @returns Promise that resolves when the documents have been deleted.\n     * @example\n     * await vectorStore.delete([\"id1\", \"id2\"]);\n     */\n    delete(params: {\n        ids?: string[];\n        filter?: Record<string, unknown>;\n    }): Promise<void>;\n    private filterConverter;\n    private subFilterConverter;\n    /**\n     * Method to perform a similarity search in the vector store. It returns\n     * the `k` most similar documents to the query vector, along with their\n     * similarity scores.\n     *\n     * @param query - Query vector.\n     * @param k - Number of most similar documents to return.\n     * @param filter - Optional filter to apply to the search.\n     * @returns Promise that resolves with an array of tuples, each containing a `Document` and its similarity score.\n     */\n    similaritySearchVectorWithScore(query: number[], k: number, filter?: Record<string, unknown>): Promise<[Document, number][]>;\n    /**\n     * Method to ensure the existence of the table in the database. It creates\n     * the table if it does not already exist.\n     * @param dimensions Number of dimensions in your vector data type. Default to 1536.\n     * @returns Promise that resolves when the table has been ensured.\n     */\n    ensureTableInDatabase(dimensions?: number): Promise<void>;\n    /**\n     * Method to ensure the existence of the collection table in the database.\n     * It creates the table if it does not already exist.\n     *\n     * @returns Promise that resolves when the collection table has been ensured.\n     */\n    ensureCollectionTableInDatabase(): Promise<void>;\n    /**\n     * Close the pool.\n     *\n     * @returns Promise that resolves when the pool is terminated.\n     */\n    end(): Promise<void>;\n}\nexport {};\n//# sourceMappingURL=mariadb.d.ts.map"],"mappings":";;;;;;KAIKK,QAAAA,GAAWC;KACJC,gBAAAA;AAFyC;AAErD;AAMA;;;AAMyBF,UANRG,gBAAAA,CAMQH;EAgBFE,iBAAAA,CAAAA,EArBCN,UAqBDM;EAAgB,IAAA,CAAA,EApB5BP,IAoB4B;EAqJlBS,SAAAA,CAAAA,EAAAA,MAAY;EAKTJ,mBAAAA,CAAAA,EAAAA,MAAAA;EAOdL,cAAAA,CAAAA,EAAAA,MAAAA;EAEYO,kBAAAA,CAAAA,EAnLGF,QAmLHE,GAAAA,IAAAA;EACMJ,UAAAA,CAAAA,EAAAA,MAAAA,GAAAA,IAAAA;EAA6BK,OAAAA,CAAAA,EAAAA;IAqBvBL,YAAAA,CAAAA,EAAAA,MAAAA;IAA6BK,gBAAAA,CAAAA,EAAAA,MAAAA;IAE/CC,iBAAAA,CAAAA,EAAAA,MAAAA;IAARC,kBAAAA,CAAAA,EAAAA,MAAAA;EAYwEP,CAAAA;EAA+BK,OAAAA,CAAAA,EAAAA,OAAAA;EAE/FC;;;;;EAYAA,SAAAA,CAAAA,EAAAA,MAAAA;EAARC,GAAAA,CAAAA,EAAAA,MAAAA,EAAAA;EAUoBN,gBAAAA,CAAAA,EA/NLG,gBA+NKH;;;;;;;;;;;;;AA1EyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAhCK,YAAAA,SAAqBP,WAAAA;;;;;sBAKlBG;;;;;;;QAOdL;;oBAEYO;0BACMJ,6BAA6BK;;;;;;;;;;;;;;;;;;;;;gCAqBvBL,6BAA6BK;;MAEvDE,QAAQD;;;;;;;;;;;;8EAYgEN,+BAA+BK;;MAEvGE,QAAQD;;;;;;;;;;6BAUeL,wBAAwBD,+BAA+BK;;MAE9EE,QAAQD;;;;;;;;;;0BAUYL;;MAEpBM;;;;;;;;;;;6CAWuCN;;MAEvCM;;;;;;;;;;;;;;;;;;aAkBSJ;MACTI;;;;;;;;;;;;;uEAaiEJ,0BAA0BI,SAASN;;;;;;;8CAO5DM;;;;;;;qCAOTA;;;;;;SAM5BA"}