diff --git a/docs/docs/modules/indexes/vector_stores/integrations/weaviate.mdx b/docs/docs/modules/indexes/vector_stores/integrations/weaviate.mdx
new file mode 100644
index 000000000000..5a834d6cedbf
--- /dev/null
+++ b/docs/docs/modules/indexes/vector_stores/integrations/weaviate.mdx
@@ -0,0 +1,31 @@
+---
+hide_table_of_contents: true
+---
+
+import CodeBlock from "@theme/CodeBlock";
+
+# Weaviate
+
+Weaviate is an open source vector database that stores both objects and vectors, allowing for combining vector search with structured filtering. LangChain connects to Weaviate via the `weaviate-ts-client` package, the official Typescript client for Weaviate.
+
+LangChain inserts vectors directly to Weaviate, and queries Weaviate for the nearest neighbors of a given vector, so that you can use all the LangChain Embeddings integrations with Weaviate.
+
+## Setup
+
+```bash npm2yarn
+npm install weaviate-ts-client graphql
+```
+
+You'll need to run Weaviate either locally or on a server, see [the Weaviate documentation](https://weaviate.io/developers/weaviate/installation) for more information.
+
+## Usage, insert documents
+
+import InsertExample from "@examples/indexes/vector_stores/weaviate_fromTexts.ts";
+
+{InsertExample}
+
+## Usage, query documents
+
+import QueryExample from "@examples/indexes/vector_stores/weaviate_search.ts";
+
+{QueryExample}
diff --git a/examples/.env.example b/examples/.env.example
index c58141fad70a..7e887324d2f2 100644
--- a/examples/.env.example
+++ b/examples/.env.example
@@ -11,3 +11,6 @@ SERPAPI_API_KEY=ADD_YOURS_HERE # https://serpapi.com/manage-api-key
SERPER_API_KEY=ADD_YOURS_HERE # https://serper.dev/api-key
SUPABASE_PRIVATE_KEY=ADD_YOURS_HERE # https://app.supabase.com/project/YOUR_PROJECT_ID/settings/api
SUPABASE_URL=ADD_YOURS_HERE # # https://app.supabase.com/project/YOUR_PROJECT_ID/settings/api
+WEAVIATE_HOST=ADD_YOURS_HERE
+WEAVIATE_SCHEME=ADD_YOURS_HERE
+WEAVIATE_API_KEY=ADD_YOURS_HERE
diff --git a/examples/package.json b/examples/package.json
index 78ebfd7d505c..3800fdf3c985 100644
--- a/examples/package.json
+++ b/examples/package.json
@@ -30,6 +30,7 @@
"@zilliz/milvus2-sdk-node": "^2.2.0",
"axios": "^0.26.0",
"chromadb": "^1.3.0",
+ "graphql": "^16.6.0",
"js-yaml": "^4.1.0",
"langchain": "workspace:*",
"ml-distance": "^4.0.0",
@@ -37,6 +38,7 @@
"prisma": "^4.11.0",
"sqlite3": "^5.1.4",
"typeorm": "^0.3.12",
+ "weaviate-ts-client": "^1.0.0",
"zod": "^3.21.4"
},
"devDependencies": {
diff --git a/examples/src/indexes/vector_stores/weaviate_fromTexts.ts b/examples/src/indexes/vector_stores/weaviate_fromTexts.ts
new file mode 100644
index 000000000000..71a67c4e359f
--- /dev/null
+++ b/examples/src/indexes/vector_stores/weaviate_fromTexts.ts
@@ -0,0 +1,28 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+import weaviate from "weaviate-ts-client";
+import { WeaviateStore } from "langchain/vectorstores/weaviate";
+import { OpenAIEmbeddings } from "langchain/embeddings/openai";
+
+export async function run() {
+ // Something wrong with the weaviate-ts-client types, so we need to disable
+ const client = (weaviate as any).client({
+ scheme: process.env.WEAVIATE_SCHEME || "https",
+ host: process.env.WEAVIATE_HOST || "localhost",
+ apiKey: new (weaviate as any).ApiKey(
+ process.env.WEAVIATE_API_KEY || "default"
+ ),
+ });
+
+ // Create a store and fill it with some texts + metadata
+ await WeaviateStore.fromTexts(
+ ["hello world", "hi there", "how are you", "bye now"],
+ [{ foo: "bar" }, { foo: "baz" }, { foo: "qux" }, { foo: "bar" }],
+ new OpenAIEmbeddings(),
+ {
+ client,
+ indexName: "Test",
+ textKey: "text",
+ metadataKeys: ["foo"],
+ }
+ );
+}
diff --git a/examples/src/indexes/vector_stores/weaviate_search.ts b/examples/src/indexes/vector_stores/weaviate_search.ts
new file mode 100644
index 000000000000..1eeb12c8510a
--- /dev/null
+++ b/examples/src/indexes/vector_stores/weaviate_search.ts
@@ -0,0 +1,44 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+import weaviate from "weaviate-ts-client";
+import { WeaviateStore } from "langchain/vectorstores/weaviate";
+import { OpenAIEmbeddings } from "langchain/embeddings/openai";
+
+export async function run() {
+ // Something wrong with the weaviate-ts-client types, so we need to disable
+ const client = (weaviate as any).client({
+ scheme: process.env.WEAVIATE_SCHEME || "https",
+ host: process.env.WEAVIATE_HOST || "localhost",
+ apiKey: new (weaviate as any).ApiKey(
+ process.env.WEAVIATE_API_KEY || "default"
+ ),
+ });
+
+ // Create a store for an existing index
+ const store = await WeaviateStore.fromExistingIndex(new OpenAIEmbeddings(), {
+ client,
+ indexName: "Test",
+ metadataKeys: ["foo"],
+ });
+
+ // Search the index without any filters
+ const results = await store.similaritySearch("hello world", 1);
+ console.log(results);
+ /*
+ [ Document { pageContent: 'hello world', metadata: { foo: 'bar' } } ]
+ */
+
+ // Search the index with a filter, in this case, only return results where
+ // the "foo" metadata key is equal to "baz", see the Weaviate docs for more
+ // https://weaviate.io/developers/weaviate/api/graphql/filters
+ const results2 = await store.similaritySearch("hello world", 1, {
+ where: {
+ operator: "Equal",
+ path: ["foo"],
+ valueText: "baz",
+ },
+ });
+ console.log(results2);
+ /*
+ [ Document { pageContent: 'hi there', metadata: { foo: 'baz' } } ]
+ */
+}
diff --git a/langchain/.env.example b/langchain/.env.example
index 68627635fcc3..ed3908416a0a 100644
--- a/langchain/.env.example
+++ b/langchain/.env.example
@@ -15,3 +15,6 @@ ANTHROPIC_API_KEY=ADD_YOURS_HERE
REPLICATE_API_KEY=ADD_YOURS_HERE
MONGO_URI=ADD_YOURS_HERE
MILVUS_URL=ADD_YOURS_HERE
+WEAVIATE_HOST=ADD_YOURS_HERE
+WEAVIATE_SCHEME=ADD_YOURS_HERE
+WEAVIATE_API_KEY=ADD_YOURS_HERE
diff --git a/langchain/.gitignore b/langchain/.gitignore
index 9fdc5dcea7c4..1d89d2440d2f 100644
--- a/langchain/.gitignore
+++ b/langchain/.gitignore
@@ -82,6 +82,9 @@ vectorstores/chroma.d.ts
vectorstores/hnswlib.cjs
vectorstores/hnswlib.js
vectorstores/hnswlib.d.ts
+vectorstores/weaviate.cjs
+vectorstores/weaviate.js
+vectorstores/weaviate.d.ts
vectorstores/mongo.cjs
vectorstores/mongo.js
vectorstores/mongo.d.ts
diff --git a/langchain/package.json b/langchain/package.json
index c435a2a7ae11..902e0c27c376 100644
--- a/langchain/package.json
+++ b/langchain/package.json
@@ -94,6 +94,9 @@
"vectorstores/hnswlib.cjs",
"vectorstores/hnswlib.js",
"vectorstores/hnswlib.d.ts",
+ "vectorstores/weaviate.cjs",
+ "vectorstores/weaviate.js",
+ "vectorstores/weaviate.d.ts",
"vectorstores/mongo.cjs",
"vectorstores/mongo.js",
"vectorstores/mongo.d.ts",
@@ -293,6 +296,7 @@
"eslint-plugin-no-instanceof": "^1.0.1",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-tree-shaking": "^1.10.0",
+ "graphql": "^16.6.0",
"hnswlib-node": "^1.4.2",
"html-to-text": "^9.0.5",
"jest": "^29.5.0",
@@ -310,7 +314,8 @@
"srt-parser-2": "^1.2.2",
"ts-jest": "^29.0.5",
"typeorm": "^0.3.12",
- "typescript": "^4.9.5"
+ "typescript": "^4.9.5",
+ "weaviate-ts-client": "^1.0.0"
},
"peerDependencies": {
"@aws-sdk/client-lambda": "^3.310.0",
@@ -337,7 +342,8 @@
"redis": "^4.6.4",
"replicate": "^0.9.0",
"srt-parser-2": "^1.2.2",
- "typeorm": "^0.3.12"
+ "typeorm": "^0.3.12",
+ "weaviate-ts-client": "^1.0.0"
},
"peerDependenciesMeta": {
"@aws-sdk/client-lambda": {
@@ -414,6 +420,9 @@
},
"typeorm": {
"optional": true
+ },
+ "weaviate-ts-client": {
+ "optional": true
}
},
"dependencies": {
@@ -602,6 +611,11 @@
"import": "./vectorstores/hnswlib.js",
"require": "./vectorstores/hnswlib.cjs"
},
+ "./vectorstores/weaviate": {
+ "types": "./vectorstores/weaviate.d.ts",
+ "import": "./vectorstores/weaviate.js",
+ "require": "./vectorstores/weaviate.cjs"
+ },
"./vectorstores/mongo": {
"types": "./vectorstores/mongo.d.ts",
"import": "./vectorstores/mongo.js",
diff --git a/langchain/scripts/create-entrypoints.js b/langchain/scripts/create-entrypoints.js
index 4d6d9314cd0e..478e85a0c3cc 100644
--- a/langchain/scripts/create-entrypoints.js
+++ b/langchain/scripts/create-entrypoints.js
@@ -43,6 +43,7 @@ const entrypoints = {
"vectorstores/memory": "vectorstores/memory",
"vectorstores/chroma": "vectorstores/chroma",
"vectorstores/hnswlib": "vectorstores/hnswlib",
+ "vectorstores/weaviate": "vectorstores/weaviate",
"vectorstores/mongo": "vectorstores/mongo",
"vectorstores/pinecone": "vectorstores/pinecone",
"vectorstores/supabase": "vectorstores/supabase",
@@ -132,6 +133,7 @@ const requiresOptionalDependency = [
"prompts/load",
"vectorstores/chroma",
"vectorstores/hnswlib",
+ "vectorstores/weaviate",
"vectorstores/mongo",
"vectorstores/pinecone",
"vectorstores/supabase",
diff --git a/langchain/src/vectorstores/base.ts b/langchain/src/vectorstores/base.ts
index 526657bd2528..e9e297ec4a93 100644
--- a/langchain/src/vectorstores/base.ts
+++ b/langchain/src/vectorstores/base.ts
@@ -58,7 +58,7 @@ export abstract class VectorStore {
query: string,
k = 4,
filter: object | undefined = undefined
- ): Promise<[object, number][]> {
+ ): Promise<[Document, number][]> {
return this.similaritySearchVectorWithScore(
await this.embeddings.embedQuery(query),
k,
diff --git a/langchain/src/vectorstores/opensearch.ts b/langchain/src/vectorstores/opensearch.ts
index d24e948d8636..526f73cf986e 100644
--- a/langchain/src/vectorstores/opensearch.ts
+++ b/langchain/src/vectorstores/opensearch.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-instanceof/no-instanceof */
import { Client, RequestParams, errors } from "@opensearch-project/opensearch";
import { v4 as uuid } from "uuid";
import { Embeddings } from "../embeddings/base.js";
@@ -111,6 +110,7 @@ export class OpenSearchVectorStore extends VectorStore {
const { body } = await this.client.search(search);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
return body.hits.hits.map((hit: any) => [
new Document({
pageContent: hit._source.text,
@@ -125,7 +125,7 @@ export class OpenSearchVectorStore extends VectorStore {
metadatas: object[] | object,
embeddings: Embeddings,
args: OpenSearchClientArgs
- ): Promise {
+ ): Promise {
const documents = texts.map((text, idx) => {
const metadata = Array.isArray(metadatas) ? metadatas[idx] : metadatas;
return new Document({ pageContent: text, metadata });
@@ -138,12 +138,21 @@ export class OpenSearchVectorStore extends VectorStore {
docs: Document[],
embeddings: Embeddings,
dbConfig: OpenSearchClientArgs
- ): Promise {
+ ): Promise {
const store = new OpenSearchVectorStore(embeddings, dbConfig);
await store.addDocuments(docs).then(() => store);
return store;
}
+ static async fromExistingIndex(
+ embeddings: Embeddings,
+ dbConfig: OpenSearchClientArgs
+ ): Promise {
+ const store = new OpenSearchVectorStore(embeddings, dbConfig);
+ await store.client.cat.indices({ index: store.indexName });
+ return store;
+ }
+
private async ensureIndexExists(
dimension: number,
engine = "nmslib",
@@ -210,6 +219,7 @@ export class OpenSearchVectorStore extends VectorStore {
await this.client.cat.indices({ index: this.indexName });
return true;
} catch (err: unknown) {
+ // eslint-disable-next-line no-instanceof/no-instanceof
if (err instanceof errors.ResponseError && err.statusCode === 404) {
return false;
}
diff --git a/langchain/src/vectorstores/tests/opensearch.int.test.ts b/langchain/src/vectorstores/tests/opensearch.int.test.ts
index 0df33b96ac64..50198e946bb8 100644
--- a/langchain/src/vectorstores/tests/opensearch.int.test.ts
+++ b/langchain/src/vectorstores/tests/opensearch.int.test.ts
@@ -5,7 +5,7 @@ import { OpenAIEmbeddings } from "../../embeddings/openai.js";
import { OpenSearchVectorStore } from "../opensearch.js";
import { Document } from "../../document.js";
-test("OpenSearchVectorStore integration", async () => {
+test.skip("OpenSearchVectorStore integration", async () => {
if (!process.env.OPENSEARCH_URL) {
throw new Error("OPENSEARCH_URL not set");
}
diff --git a/langchain/src/vectorstores/tests/weaviate.int.test.ts b/langchain/src/vectorstores/tests/weaviate.int.test.ts
new file mode 100644
index 000000000000..1a4fbd469baa
--- /dev/null
+++ b/langchain/src/vectorstores/tests/weaviate.int.test.ts
@@ -0,0 +1,46 @@
+/* eslint-disable no-process-env */
+import { test, expect } from "@jest/globals";
+import weaviate from "weaviate-ts-client";
+import { WeaviateStore } from "../weaviate.js";
+import { OpenAIEmbeddings } from "../../embeddings/openai.js";
+import { Document } from "../../document.js";
+
+test.skip("WeaviateStore", async () => {
+ // Something wrong with the weaviate-ts-client types, so we need to disable
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const client = (weaviate as any).client({
+ scheme: process.env.WEAVIATE_SCHEME || "https",
+ host: process.env.WEAVIATE_HOST || "localhost",
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ apiKey: new (weaviate as any).ApiKey(
+ process.env.WEAVIATE_API_KEY || "default"
+ ),
+ });
+ const store = await WeaviateStore.fromTexts(
+ ["hello world", "hi there", "how are you", "bye now"],
+ [{ foo: "bar" }, { foo: "baz" }, { foo: "qux" }, { foo: "bar" }],
+ new OpenAIEmbeddings(),
+ {
+ client,
+ indexName: "Test",
+ textKey: "text",
+ metadataKeys: ["foo"],
+ }
+ );
+
+ const results = await store.similaritySearch("hello world", 1);
+ expect(results).toEqual([
+ new Document({ pageContent: "hello world", metadata: { foo: "bar" } }),
+ ]);
+
+ const results2 = await store.similaritySearch("hello world", 1, {
+ where: {
+ operator: "Equal",
+ path: ["foo"],
+ valueText: "baz",
+ },
+ });
+ expect(results2).toEqual([
+ new Document({ pageContent: "hi there", metadata: { foo: "baz" } }),
+ ]);
+});
diff --git a/langchain/src/vectorstores/weaviate.ts b/langchain/src/vectorstores/weaviate.ts
new file mode 100644
index 000000000000..fcd70fa81cbf
--- /dev/null
+++ b/langchain/src/vectorstores/weaviate.ts
@@ -0,0 +1,171 @@
+import { v4 } from "uuid";
+import type {
+ WeaviateObject,
+ WeaviateClient,
+ WhereFilter,
+} from "weaviate-ts-client";
+import { VectorStore } from "./base.js";
+import { Embeddings } from "../embeddings/base.js";
+import { Document } from "../document.js";
+
+export interface WeaviateLibArgs {
+ client: WeaviateClient;
+ /**
+ * The name of the class in Weaviate. Must start with a capital letter.
+ */
+ indexName: string;
+ textKey?: string;
+ metadataKeys?: string[];
+}
+
+interface ResultRow {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ [key: string]: any;
+}
+
+export interface WeaviateFilter {
+ distance?: number;
+ where: WhereFilter;
+}
+
+export class WeaviateStore extends VectorStore {
+ private client: WeaviateClient;
+
+ private indexName: string;
+
+ private textKey: string;
+
+ private queryAttrs: string[];
+
+ constructor(public embeddings: Embeddings, args: WeaviateLibArgs) {
+ super(embeddings, args);
+
+ this.client = args.client;
+ this.indexName = args.indexName;
+ this.textKey = args.textKey || "text";
+ this.queryAttrs = [this.textKey];
+
+ if (args.metadataKeys) {
+ this.queryAttrs = this.queryAttrs.concat(args.metadataKeys);
+ }
+ }
+
+ async addVectors(vectors: number[][], documents: Document[]): Promise {
+ const batch: WeaviateObject[] = documents.map((document, index) => ({
+ class: this.indexName,
+ id: v4(),
+ vector: vectors[index],
+ properties: {
+ [this.textKey]: document.pageContent,
+ ...document.metadata,
+ },
+ }));
+
+ try {
+ await this.client.batch
+ .objectsBatcher()
+ .withObjects(...batch)
+ .do();
+ } catch (e) {
+ throw Error(`'Error in addDocuments' ${e}`);
+ }
+ }
+
+ async addDocuments(documents: Document[]): Promise {
+ return this.addVectors(
+ await this.embeddings.embedDocuments(documents.map((d) => d.pageContent)),
+ documents
+ );
+ }
+
+ async similaritySearch(
+ query: string,
+ k: number,
+ filter?: WeaviateFilter
+ ): Promise {
+ return super.similaritySearch(query, k, filter);
+ }
+
+ async similaritySearchWithScore(
+ query: string,
+ k: number,
+ filter?: WeaviateFilter
+ ): Promise<[Document, number][]> {
+ return super.similaritySearchWithScore(query, k, filter);
+ }
+
+ async similaritySearchVectorWithScore(
+ query: number[],
+ k: number,
+ filter?: WeaviateFilter
+ ): Promise<[Document, number][]> {
+ try {
+ let builder = await this.client.graphql
+ .get()
+ .withClassName(this.indexName)
+ .withFields(`${this.queryAttrs.join(" ")} _additional { distance }`)
+ .withNearVector({
+ vector: query,
+ distance: filter?.distance,
+ })
+ .withLimit(k);
+
+ if (filter?.where) {
+ builder = builder.withWhere(filter.where);
+ }
+
+ const result = await builder.do();
+
+ const documents: [Document, number][] = [];
+ for (const data of result.data.Get[this.indexName]) {
+ const { [this.textKey]: text, _additional, ...rest }: ResultRow = data;
+
+ documents.push([
+ new Document({
+ pageContent: text,
+ metadata: rest,
+ }),
+ _additional.distance,
+ ]);
+ }
+ return documents;
+ } catch (e) {
+ throw Error(`'Error in similaritySearch' ${e}`);
+ }
+ }
+
+ static fromTexts(
+ texts: string[],
+ metadatas: object | object[],
+ embeddings: Embeddings,
+ args: WeaviateLibArgs
+ ): Promise {
+ const docs: Document[] = [];
+ for (let i = 0; i < texts.length; i += 1) {
+ const metadata = Array.isArray(metadatas) ? metadatas[i] : metadatas;
+ const newDoc = new Document({
+ pageContent: texts[i],
+ metadata,
+ });
+ docs.push(newDoc);
+ }
+ return WeaviateStore.fromDocuments(docs, embeddings, args);
+ }
+
+ static async fromDocuments(
+ docs: Document[],
+ embeddings: Embeddings,
+ args: WeaviateLibArgs
+ ): Promise {
+ const instance = new this(embeddings, args);
+ await instance.addDocuments(docs);
+ return instance;
+ }
+
+ static async fromExistingIndex(
+ embeddings: Embeddings,
+ args: WeaviateLibArgs
+ ): Promise {
+ return new this(embeddings, args);
+ }
+}
diff --git a/langchain/tsconfig.json b/langchain/tsconfig.json
index 8d3389135326..7f2c0198bf2f 100644
--- a/langchain/tsconfig.json
+++ b/langchain/tsconfig.json
@@ -59,6 +59,7 @@
"src/vectorstores/memory.ts",
"src/vectorstores/chroma.ts",
"src/vectorstores/hnswlib.ts",
+ "src/vectorstores/weaviate.ts",
"src/vectorstores/mongo.ts",
"src/vectorstores/pinecone.ts",
"src/vectorstores/supabase.ts",
diff --git a/yarn.lock b/yarn.lock
index f9bd6c1bd5d9..32c237f3ee43 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4609,6 +4609,15 @@ __metadata:
languageName: node
linkType: hard
+"@graphql-typed-document-node/core@npm:^3.1.1":
+ version: 3.2.0
+ resolution: "@graphql-typed-document-node/core@npm:3.2.0"
+ peerDependencies:
+ graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
+ checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d
+ languageName: node
+ linkType: hard
+
"@grpc/grpc-js@npm:^1.2.12":
version: 1.8.13
resolution: "@grpc/grpc-js@npm:1.8.13"
@@ -13014,6 +13023,7 @@ __metadata:
eslint-config-prettier: ^8.6.0
eslint-plugin-import: ^2.27.5
eslint-plugin-prettier: ^4.2.1
+ graphql: ^16.6.0
js-yaml: ^4.1.0
langchain: "workspace:*"
ml-distance: ^4.0.0
@@ -13024,6 +13034,7 @@ __metadata:
tsx: ^3.12.3
typeorm: ^0.3.12
typescript: ^4.9.5
+ weaviate-ts-client: ^1.0.0
zod: ^3.21.4
languageName: unknown
linkType: soft
@@ -13210,6 +13221,13 @@ __metadata:
languageName: node
linkType: hard
+"extract-files@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "extract-files@npm:9.0.0"
+ checksum: c31781d090f8d8f62cc541f1023b39ea863f24bd6fb3d4011922d71cbded70cef8191f2b70b43ec6cb5c5907cdad1dc5e9f29f78228936c10adc239091d8ab64
+ languageName: node
+ linkType: hard
+
"extract-zip@npm:2.0.1":
version: 2.0.1
resolution: "extract-zip@npm:2.0.1"
@@ -14194,6 +14212,27 @@ __metadata:
languageName: node
linkType: hard
+"graphql-request@npm:^5.1.0":
+ version: 5.2.0
+ resolution: "graphql-request@npm:5.2.0"
+ dependencies:
+ "@graphql-typed-document-node/core": ^3.1.1
+ cross-fetch: ^3.1.5
+ extract-files: ^9.0.0
+ form-data: ^3.0.0
+ peerDependencies:
+ graphql: 14 - 16
+ checksum: a8aa37816378898e6fc8c4db04a1c114c98f98d90718cf1680bd96b22724bd43b1210619f9b0d328b5c1acb4f7b76d2227a2537cd5ab059bb54cf0debecb33bf
+ languageName: node
+ linkType: hard
+
+"graphql@npm:^16.6.0":
+ version: 16.6.0
+ resolution: "graphql@npm:16.6.0"
+ checksum: bf1d9e3c1938ce3c1a81e909bd3ead1ae4707c577f91cff1ca2eca474bfbc7873d5d7b942e1e9777ff5a8304421dba57a4b76d7a29eb19de8711cb70e3c2415e
+ languageName: node
+ linkType: hard
+
"gray-matter@npm:^4.0.3":
version: 4.0.3
resolution: "gray-matter@npm:4.0.3"
@@ -15626,6 +15665,16 @@ __metadata:
languageName: node
linkType: hard
+"isomorphic-fetch@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "isomorphic-fetch@npm:3.0.0"
+ dependencies:
+ node-fetch: ^2.6.1
+ whatwg-fetch: ^3.4.1
+ checksum: e5ab79a56ce5af6ddd21265f59312ad9a4bc5a72cebc98b54797b42cb30441d5c5f8d17c5cd84a99e18101c8af6f90c081ecb8d12fd79e332be1778d58486d75
+ languageName: node
+ linkType: hard
+
"issue-parser@npm:6.0.0":
version: 6.0.0
resolution: "issue-parser@npm:6.0.0"
@@ -17135,6 +17184,7 @@ __metadata:
eslint-plugin-tree-shaking: ^1.10.0
expr-eval: ^2.0.2
flat: ^5.0.2
+ graphql: ^16.6.0
hnswlib-node: ^1.4.2
html-to-text: ^9.0.5
jest: ^29.5.0
@@ -17160,6 +17210,7 @@ __metadata:
typeorm: ^0.3.12
typescript: ^4.9.5
uuid: ^9.0.0
+ weaviate-ts-client: ^1.0.0
yaml: ^2.2.1
zod: ^3.21.4
peerDependencies:
@@ -17188,6 +17239,7 @@ __metadata:
replicate: ^0.9.0
srt-parser-2: ^1.2.2
typeorm: ^0.3.12
+ weaviate-ts-client: ^1.0.0
peerDependenciesMeta:
"@aws-sdk/client-lambda":
optional: true
@@ -17239,6 +17291,8 @@ __metadata:
optional: true
typeorm:
optional: true
+ weaviate-ts-client:
+ optional: true
languageName: unknown
linkType: soft
@@ -18673,7 +18727,7 @@ __metadata:
languageName: node
linkType: hard
-"node-fetch@npm:^2.6.7":
+"node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7":
version: 2.6.9
resolution: "node-fetch@npm:2.6.9"
dependencies:
@@ -23711,7 +23765,7 @@ __metadata:
languageName: node
linkType: hard
-"tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2":
+"tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.13, tar@npm:^6.1.2":
version: 6.1.13
resolution: "tar@npm:6.1.13"
dependencies:
@@ -25452,6 +25506,17 @@ __metadata:
languageName: node
linkType: hard
+"weaviate-ts-client@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "weaviate-ts-client@npm:1.0.0"
+ dependencies:
+ graphql-request: ^5.1.0
+ isomorphic-fetch: ^3.0.0
+ tar: ^6.1.13
+ checksum: ffa3c13913cf8999a1bfd3db1cc1952d7bfd4e6ca3d2f6eadfb17a56595bfc74fd9f068d1e9d73677b87281d53486ba333d5d5aedb31f072f05d6a5d8e7b2502
+ languageName: node
+ linkType: hard
+
"web-namespaces@npm:^1.0.0":
version: 1.1.4
resolution: "web-namespaces@npm:1.1.4"
@@ -25821,7 +25886,7 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-fetch@npm:^3.6.2":
+"whatwg-fetch@npm:^3.4.1, whatwg-fetch@npm:^3.6.2":
version: 3.6.2
resolution: "whatwg-fetch@npm:3.6.2"
checksum: ee976b7249e7791edb0d0a62cd806b29006ad7ec3a3d89145921ad8c00a3a67e4be8f3fb3ec6bc7b58498724fd568d11aeeeea1f7827e7e1e5eae6c8a275afed