Compare commits

...

2 Commits

Author SHA1 Message Date
github-actions[bot] 6f4549bdea Release 0.5.17 (#1117)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-12 17:45:29 +07:00
Thuc Pham c654398f75 feat: implement Weaviate Vector Store in TS (#1109) 2024-08-12 17:41:05 +07:00
26 changed files with 602 additions and 24 deletions
+7
View File
@@ -1,5 +1,12 @@
# docs
## 0.0.58
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.0.57
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "docs",
"version": "0.0.57",
"version": "0.0.58",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
+31
View File
@@ -0,0 +1,31 @@
# Weaviate Vector Store
Here are two sample scripts which work with loading and querying data from a Weaviate Vector Store.
## Prerequisites
- An Weaviate Vector Database
- Hosted https://weaviate.io/
- Self Hosted https://weaviate.io/developers/weaviate/installation/docker-compose#starter-docker-compose-file
- An OpenAI API Key
## Setup
1. Set your env variables:
- `WEAVIATE_CLUSTER_URL`: Address of your Weaviate Vector Store (like localhost:8080)
- `WEAVIATE_API_KEY`: Your Weaviate API key
- `OPENAI_API_KEY`: Your OpenAI key
2. `cd` Into the `examples` directory
3. run `npm i`
## Load the data
This sample loads the same dataset of movie reviews as sample dataset
run `npx tsx weaviate/load`
## Use RAG to Query the data
run `npx tsx weaviate/query`
+23
View File
@@ -0,0 +1,23 @@
import {
PapaCSVReader,
storageContextFromDefaults,
VectorStoreIndex,
WeaviateVectorStore,
} from "llamaindex";
const indexName = "MovieReviews";
async function main() {
try {
const reader = new PapaCSVReader(false);
const docs = await reader.loadData("./data/movie_reviews.csv");
const vectorStore = new WeaviateVectorStore({ indexName });
const storageContext = await storageContextFromDefaults({ vectorStore });
await VectorStoreIndex.fromDocuments(docs, { storageContext });
console.log("Successfully loaded data into Weaviate");
} catch (e) {
console.error(e);
}
}
void main();
+46
View File
@@ -0,0 +1,46 @@
import { VectorStoreIndex, WeaviateVectorStore } from "llamaindex";
const indexName = "MovieReviews";
async function main() {
try {
const query = "Get all movie titles.";
const vectorStore = new WeaviateVectorStore({ indexName });
const index = await VectorStoreIndex.fromVectorStore(vectorStore);
const retriever = index.asRetriever({ similarityTopK: 20 });
const queryEngine = index.asQueryEngine({ retriever });
const results = await queryEngine.query({ query });
console.log(`Query from ${results.sourceNodes?.length} nodes`);
console.log(results.response);
console.log("\n=====\nQuerying the index with filters");
const queryEngineWithFilters = index.asQueryEngine({
retriever,
preFilters: {
filters: [
{
key: "document_id",
value: "./data/movie_reviews.csv_37",
operator: "==",
},
{
key: "document_id",
value: "./data/movie_reviews.csv_21",
operator: "==",
},
],
condition: "or",
},
});
const resultAfterFilter = await queryEngineWithFilters.query({
query: "Get all movie titles.",
});
console.log(`Query from ${resultAfterFilter.sourceNodes?.length} nodes`);
console.log(resultAfterFilter.response);
} catch (e) {
console.error(e);
}
}
void main();
@@ -1,5 +1,13 @@
# @llamaindex/autotool-02-next-example
## 0.1.42
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
- @llamaindex/autotool@2.0.1
## 0.1.41
### Patch Changes
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/autotool-02-next-example",
"private": true,
"version": "0.1.41",
"version": "0.1.42",
"scripts": {
"dev": "next dev",
"build": "next build",
+1 -1
View File
@@ -51,7 +51,7 @@
"unplugin": "^1.10.1"
},
"peerDependencies": {
"llamaindex": "^0.5.16",
"llamaindex": "^0.5.17",
"openai": "^4",
"typescript": "^4"
},
+7
View File
@@ -1,5 +1,12 @@
# @llamaindex/experimental
## 0.0.67
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.0.66
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@llamaindex/experimental",
"description": "Experimental package for LlamaIndexTS",
"version": "0.0.66",
"version": "0.0.67",
"type": "module",
"types": "dist/type/index.d.ts",
"main": "dist/cjs/index.js",
+6
View File
@@ -1,5 +1,11 @@
# llamaindex
## 0.5.17
### Patch Changes
- c654398: Implement Weaviate Vector Store in TS
## 0.5.16
### Patch Changes
@@ -1,5 +1,12 @@
# @llamaindex/cloudflare-worker-agent-test
## 0.0.51
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.0.50
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/cloudflare-worker-agent-test",
"version": "0.0.50",
"version": "0.0.51",
"type": "module",
"private": true,
"scripts": {
@@ -1,5 +1,12 @@
# @llamaindex/next-agent-test
## 0.1.51
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.1.50
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-agent-test",
"version": "0.1.50",
"version": "0.1.51",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,5 +1,12 @@
# test-edge-runtime
## 0.1.50
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.1.49
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/nextjs-edge-runtime-test",
"version": "0.1.49",
"version": "0.1.50",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,5 +1,12 @@
# @llamaindex/next-node-runtime
## 0.0.32
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.0.31
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/next-node-runtime-test",
"version": "0.0.31",
"version": "0.0.32",
"private": true,
"scripts": {
"dev": "next dev",
@@ -1,5 +1,12 @@
# @llamaindex/waku-query-engine-test
## 0.0.51
### Patch Changes
- Updated dependencies [c654398]
- llamaindex@0.5.17
## 0.0.50
### Patch Changes
@@ -1,6 +1,6 @@
{
"name": "@llamaindex/waku-query-engine-test",
"version": "0.0.50",
"version": "0.0.51",
"type": "module",
"private": true,
"scripts": {
+2 -1
View File
@@ -1,6 +1,6 @@
{
"name": "llamaindex",
"version": "0.5.16",
"version": "0.5.17",
"license": "MIT",
"type": "module",
"keywords": [
@@ -65,6 +65,7 @@
"string-strip-html": "^13.4.8",
"tiktoken": "^1.0.15",
"unpdf": "^0.11.0",
"weaviate-client": "^3.1.4",
"wikipedia": "^2.1.2",
"wink-nlp": "^2.3.0",
"zod": "^3.23.8"
+1
View File
@@ -18,3 +18,4 @@ export { PineconeVectorStore } from "./vectorStore/PineconeVectorStore.js";
export { QdrantVectorStore } from "./vectorStore/QdrantVectorStore.js";
export { SimpleVectorStore } from "./vectorStore/SimpleVectorStore.js";
export * from "./vectorStore/types.js";
export { WeaviateVectorStore } from "./vectorStore/WeaviateVectorStore.js";
@@ -0,0 +1,339 @@
/* eslint-disable turbo/no-undeclared-env-vars */
import { BaseNode, MetadataMode, type Metadata } from "@llamaindex/core/schema";
import weaviate, {
Filters,
type Collection,
type DeleteManyOptions,
type FilterValue,
type WeaviateClient,
type WeaviateNonGenericObject,
} from "weaviate-client";
import {
VectorStoreBase,
VectorStoreQueryMode,
type IEmbedModel,
type MetadataFilter,
type MetadataFilters,
type VectorStoreNoEmbedModel,
type VectorStoreQuery,
type VectorStoreQueryResult,
} from "./types.js";
import {
metadataDictToNode,
nodeToMetadata,
parseArrayValue,
parseNumberValue,
} from "./utils.js";
const NODE_SCHEMA = [
{
dataType: ["text"],
description: "Text property",
name: "text",
},
{
dataType: ["text"],
description: "The ref_doc_id of the Node",
name: "ref_doc_id",
},
{
dataType: ["text"],
description: "node_info (in JSON)",
name: "node_info",
},
{
dataType: ["text"],
description: "The relationships of the node (in JSON)",
name: "relationships",
},
];
const SIMILARITY_KEYS: {
[key: string]: "distance" | "score";
} = {
[VectorStoreQueryMode.DEFAULT]: "distance",
[VectorStoreQueryMode.HYBRID]: "score",
};
const buildFilterItem = (
collection: Collection,
filter: MetadataFilter,
): FilterValue => {
const { key, operator, value } = filter;
switch (operator) {
case "==": {
return collection.filter.byProperty(key).equal(value);
}
case "!=": {
return collection.filter.byProperty(key).notEqual(value);
}
case ">": {
return collection.filter
.byProperty(key)
.greaterThan(parseNumberValue(value));
}
case "<": {
return collection.filter
.byProperty(key)
.lessThan(parseNumberValue(value));
}
case ">=": {
return collection.filter
.byProperty(key)
.greaterOrEqual(parseNumberValue(value));
}
case "<=": {
return collection.filter
.byProperty(key)
.lessOrEqual(parseNumberValue(value));
}
case "any": {
return collection.filter
.byProperty(key)
.containsAny(parseArrayValue(value).map(String));
}
case "all": {
return collection.filter
.byProperty(key)
.containsAll(parseArrayValue(value).map(String));
}
default: {
throw new Error(`Operator ${operator} is not supported.`);
}
}
};
const toWeaviateFilter = (
collection: Collection,
standardFilters?: MetadataFilters,
): FilterValue | undefined => {
if (!standardFilters?.filters.length) return undefined;
const filtersList = standardFilters.filters.map((filter) =>
buildFilterItem(collection, filter),
);
if (filtersList.length === 1) return filtersList[0];
const condition = standardFilters.condition ?? "and";
return Filters[condition](...filtersList);
};
export class WeaviateVectorStore
extends VectorStoreBase
implements VectorStoreNoEmbedModel
{
public storesText: boolean = true;
private flatMetadata: boolean = true;
private weaviateClient?: WeaviateClient;
private clusterURL!: string;
private apiKey!: string;
private indexName: string;
private idKey: string;
private contentKey: string;
private embeddingKey: string;
private metadataKey: string;
constructor(
init?: Partial<IEmbedModel> & {
weaviateClient?: WeaviateClient;
cloudOptions?: {
clusterURL?: string;
apiKey?: string;
};
indexName?: string;
idKey?: string;
contentKey?: string;
metadataKey?: string;
embeddingKey?: string;
},
) {
super(init?.embedModel);
if (init?.weaviateClient) {
// Use the provided client
this.weaviateClient = init.weaviateClient;
} else {
// Load client cloud options from config or env
const clusterURL =
init?.cloudOptions?.clusterURL ?? process.env.WEAVIATE_CLUSTER_URL;
const apiKey = init?.cloudOptions?.apiKey ?? process.env.WEAVIATE_API_KEY;
if (!clusterURL || !apiKey) {
throw new Error(
"Must specify WEAVIATE_CLUSTER_URL and WEAVIATE_API_KEY via env variable.",
);
}
this.clusterURL = clusterURL;
this.apiKey = apiKey;
}
this.checkIndexName(init?.indexName);
this.indexName = init?.indexName ?? "LlamaIndex";
this.idKey = init?.idKey ?? "id";
this.contentKey = init?.contentKey ?? "text";
this.embeddingKey = init?.embeddingKey ?? "vectors";
this.metadataKey = init?.metadataKey ?? "node_info";
}
public client() {
return this.getClient();
}
public async add(nodes: BaseNode<Metadata>[]): Promise<string[]> {
const collection = await this.ensureCollection({ createIfNotExists: true });
const result = await collection.data.insertMany(
nodes.map((node) => {
const metadata = nodeToMetadata(
node,
true,
this.contentKey,
this.flatMetadata,
);
const body = {
[this.idKey]: node.id_,
[this.embeddingKey]: node.getEmbedding(),
properties: {
...metadata,
[this.contentKey]: node.getContent(MetadataMode.NONE),
[this.metadataKey]: JSON.stringify(metadata),
relationships: JSON.stringify({ ref_doc_id: metadata.ref_doc_id }),
},
};
return body;
}),
);
return Object.values(result.uuids);
}
public async delete(
refDocId: string,
deleteOptions?: DeleteManyOptions<boolean>,
): Promise<void> {
const collection = await this.ensureCollection();
await collection.data.deleteMany(
collection.filter.byProperty("ref_doc_id").like(refDocId),
deleteOptions,
);
}
public async query(query: VectorStoreQuery): Promise<VectorStoreQueryResult> {
const collection = await this.ensureCollection();
const allProperties = await this.getAllProperties();
let filters: FilterValue | undefined = undefined;
if (query.docIds) {
filters = collection.filter
.byProperty("doc_id")
.containsAny(query.docIds);
}
if (query.filters) {
filters = toWeaviateFilter(collection, query.filters);
}
const queryResult = await collection.query.hybrid(query.queryStr!, {
vector: query.queryEmbedding,
alpha: this.getQueryAlpha(query),
limit: query.similarityTopK,
returnMetadata: Object.values(SIMILARITY_KEYS),
returnProperties: allProperties,
includeVector: true,
filters,
});
const entries = queryResult.objects;
const similarityKey = SIMILARITY_KEYS[query.mode];
const nodes: BaseNode<Metadata>[] = [];
const similarities: number[] = [];
const ids: string[] = [];
entries.forEach((entry, index) => {
if (index < query.similarityTopK && entry.metadata) {
const node = metadataDictToNode(entry.properties);
node.setContent(entry.properties[this.contentKey]);
nodes.push(node);
ids.push(entry.uuid);
similarities.push(this.getNodeSimilarity(entry, similarityKey));
}
});
return {
nodes,
similarities,
ids,
};
}
private async getClient(): Promise<WeaviateClient> {
if (this.weaviateClient) return this.weaviateClient;
const client = await weaviate.connectToWeaviateCloud(this.clusterURL, {
authCredentials: new weaviate.ApiKey(this.apiKey),
});
this.weaviateClient = client;
return client;
}
private async ensureCollection({ createIfNotExists = false } = {}) {
const client = await this.getClient();
const exists = await this.doesCollectionExist();
if (!exists) {
if (createIfNotExists) {
await this.createCollection();
} else {
throw new Error(`Collection ${this.indexName} does not exist.`);
}
}
return client.collections.get(this.indexName);
}
private async doesCollectionExist() {
const client = await this.getClient();
return client.collections.exists(this.indexName);
}
private async createCollection() {
const client = await this.getClient();
return await client.collections.createFromSchema({
class: this.indexName,
description: `Collection for ${this.indexName}`,
properties: NODE_SCHEMA,
});
}
private getQueryAlpha(query: VectorStoreQuery): number | undefined {
if (!query.queryEmbedding) return undefined;
if (query.mode === VectorStoreQueryMode.DEFAULT) return 1;
if (query.mode === VectorStoreQueryMode.HYBRID && query.queryStr)
return query.alpha;
return undefined;
}
private async getAllProperties(): Promise<string[]> {
const collection = await this.ensureCollection();
const properties = (await collection.config.get()).properties;
return properties.map((p) => p.name);
}
private checkIndexName(indexName?: string) {
if (indexName && indexName[0] !== indexName[0].toUpperCase()) {
throw new Error(
"Index name must start with a capital letter, e.g. 'LlamaIndex'",
);
}
}
private getNodeSimilarity(
entry: WeaviateNonGenericObject,
similarityKey: "distance" | "score" = "distance",
): number {
const distance = entry.metadata?.[similarityKey];
if (distance === undefined) return 1;
// convert distance https://forum.weaviate.io/t/distance-vs-certainty-scores/258
return 1 - distance;
}
}
@@ -99,3 +99,8 @@ export const parseArrayValue = (
}
return value;
};
export const parseNumberValue = (value?: MetadataFilterValue): number => {
if (typeof value !== "number") throw new Error("Value must be a number");
return value;
};
+83 -14
View File
@@ -163,7 +163,7 @@ importers:
version: link:../packages/llamaindex
mongodb:
specifier: ^6.7.0
version: 6.8.0(@aws-sdk/credential-providers@3.613.0(@aws-sdk/client-sso-oidc@3.613.0(@aws-sdk/client-sts@3.613.0)))
version: 6.8.0(@aws-sdk/credential-providers@3.613.0)
pathe:
specifier: ^1.1.2
version: 1.1.2
@@ -568,7 +568,7 @@ importers:
version: 2.0.0
mongodb:
specifier: ^6.7.0
version: 6.8.0(@aws-sdk/credential-providers@3.613.0(@aws-sdk/client-sso-oidc@3.613.0(@aws-sdk/client-sts@3.613.0)))
version: 6.8.0(@aws-sdk/credential-providers@3.613.0)
notion-md-crawler:
specifier: ^1.0.0
version: 1.0.0(encoding@0.1.13)
@@ -602,6 +602,9 @@ importers:
unpdf:
specifier: ^0.11.0
version: 0.11.0(encoding@0.1.13)
weaviate-client:
specifier: ^3.1.4
version: 3.1.4(encoding@0.1.13)
wikipedia:
specifier: ^2.1.2
version: 2.1.2
@@ -2666,6 +2669,11 @@ packages:
resolution: {integrity: sha512-krWjurjEUHSFhCX4lGHMOhbnpBfYZGU31mpHpPBQwcfWm0T+/+wxC4UCAJfkxxc3/HvGJVG8r4AqrffaeDHDlA==}
engines: {node: '>=18.0.0'}
'@graphql-typed-document-node/core@3.2.0':
resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==}
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
'@grpc/grpc-js@1.10.11':
resolution: {integrity: sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==}
engines: {node: '>=12.10.0'}
@@ -4375,6 +4383,9 @@ packages:
abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
abort-controller-x@0.4.3:
resolution: {integrity: sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==}
abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
@@ -6568,6 +6579,15 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
graphql-request@6.1.0:
resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==}
peerDependencies:
graphql: 14 - 16
graphql@16.9.0:
resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
gray-matter@4.0.3:
resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
engines: {node: '>=6.0'}
@@ -8126,6 +8146,15 @@ packages:
sass:
optional: true
nice-grpc-client-middleware-deadline@2.0.12:
resolution: {integrity: sha512-drKxQJzTbh+Qkd6v+BcRhTmY2mw9zR8Qigu/jk0vIkDi90K6NOOJGgvBdbTxKXtv6QY1g07T1LvwaqW3Mlwdvw==}
nice-grpc-common@2.0.2:
resolution: {integrity: sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==}
nice-grpc@2.1.9:
resolution: {integrity: sha512-shJlg1t4Wn3qTVE31gxofbTrgCX/p4tS1xRnk4bNskCYKvXNEUpJQZpjModsVk1aau69YZDViyC18K9nC7QHYA==}
nice-napi@1.0.2:
resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==}
os: ['!win32']
@@ -10313,6 +10342,9 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
ts-error@1.0.6:
resolution: {integrity: sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==}
ts-graphviz@1.8.2:
resolution: {integrity: sha512-5YhbFoHmjxa7pgQLkB07MtGnGJ/yhvjmc9uhsnDBEICME6gkPf83SBwLDQqGDoCa3XzUMWLk1AU2Wn1u1naDtA==}
engines: {node: '>=14.16'}
@@ -10788,6 +10820,10 @@ packages:
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
weaviate-client@3.1.4:
resolution: {integrity: sha512-Bw9KV0wtFd4TdifhPAkmc2Lv7bKIX0L2oqObUNG8K8Mv0zoVixGcqlAS3xJdfQ2jSqz0vH3mfetsOBdlvogxfg==}
engines: {node: '>=18.0.0'}
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
@@ -13987,6 +14023,10 @@ snapshots:
'@google/generative-ai@0.12.0': {}
'@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)':
dependencies:
graphql: 16.9.0
'@grpc/grpc-js@1.10.11':
dependencies:
'@grpc/proto-loader': 0.7.13
@@ -15865,6 +15905,8 @@ snapshots:
abbrev@1.1.1:
optional: true
abort-controller-x@0.4.3: {}
abort-controller@3.0.0:
dependencies:
event-target-shim: 5.0.1
@@ -17700,16 +17742,6 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.3)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7
@@ -17731,7 +17763,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0)
eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.14.0
is-glob: 4.0.3
@@ -18625,6 +18657,16 @@ snapshots:
graphemer@1.4.0: {}
graphql-request@6.1.0(encoding@0.1.13)(graphql@16.9.0):
dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0)
cross-fetch: 3.1.8(encoding@0.1.13)
graphql: 16.9.0
transitivePeerDependencies:
- encoding
graphql@16.9.0: {}
gray-matter@4.0.3:
dependencies:
js-yaml: 3.14.1
@@ -20421,7 +20463,7 @@ snapshots:
optionalDependencies:
'@aws-sdk/credential-providers': 3.613.0(@aws-sdk/client-sso-oidc@3.613.0(@aws-sdk/client-sts@3.613.0))
mongodb@6.8.0(@aws-sdk/credential-providers@3.613.0(@aws-sdk/client-sso-oidc@3.613.0(@aws-sdk/client-sts@3.613.0))):
mongodb@6.8.0(@aws-sdk/credential-providers@3.613.0):
dependencies:
'@mongodb-js/saslprep': 1.1.7
bson: 6.8.0
@@ -20599,6 +20641,20 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
nice-grpc-client-middleware-deadline@2.0.12:
dependencies:
nice-grpc-common: 2.0.2
nice-grpc-common@2.0.2:
dependencies:
ts-error: 1.0.6
nice-grpc@2.1.9:
dependencies:
'@grpc/grpc-js': 1.10.11
abort-controller-x: 0.4.3
nice-grpc-common: 2.0.2
nice-napi@1.0.2:
dependencies:
node-addon-api: 3.2.1
@@ -23091,6 +23147,8 @@ snapshots:
dependencies:
typescript: 5.5.3
ts-error@1.0.6: {}
ts-graphviz@1.8.2: {}
ts-interface-checker@0.1.13: {}
@@ -23603,6 +23661,17 @@ snapshots:
dependencies:
defaults: 1.0.4
weaviate-client@3.1.4(encoding@0.1.13):
dependencies:
graphql: 16.9.0
graphql-request: 6.1.0(encoding@0.1.13)(graphql@16.9.0)
long: 5.2.3
nice-grpc: 2.1.9
nice-grpc-client-middleware-deadline: 2.0.12
uuid: 9.0.1
transitivePeerDependencies:
- encoding
web-namespaces@2.0.1: {}
web-streams-polyfill@3.3.3: {}