feat(ts-sdk): add AWS Neptune Analytics vector store (#5797)
Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
@@ -2,26 +2,37 @@
|
||||
title: "Neptune Analytics"
|
||||
description: "Use AWS Neptune Analytics as a vector store in Mem0, combining graph analytics with vector search capabilities."
|
||||
---
|
||||
# Neptune Analytics Vector Store
|
||||
|
||||
[Neptune Analytics](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/what-is-neptune-analytics.html/) is a memory-optimized graph database engine for analytics. With Neptune Analytics, you can get insights and find trends by processing large amounts of graph data in seconds, including vector search.
|
||||
[Neptune Analytics](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/what-is-neptune-analytics.html) is a memory-optimized graph database engine for analytics. With Neptune Analytics, you can get insights and find trends by processing large amounts of graph data in seconds, including vector search.
|
||||
|
||||
### Installation
|
||||
|
||||
## Installation
|
||||
The Neptune Analytics provider needs the AWS Neptune Graph client. Install it alongside `mem0ai`:
|
||||
|
||||
```bash
|
||||
<CodeGroup>
|
||||
```bash Python
|
||||
pip install mem0ai[vector-stores]
|
||||
```
|
||||
|
||||
## Usage
|
||||
```bash TypeScript
|
||||
npm install @aws-sdk/client-neptune-graph
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
### Usage
|
||||
|
||||
Configure AWS credentials in your environment (environment variables, shared config file, an IAM role, or an instance profile). Both SDKs pick them up automatically through the standard AWS credential chain.
|
||||
|
||||
<CodeGroup>
|
||||
```python Python
|
||||
from mem0 import Memory
|
||||
|
||||
```python
|
||||
config = {
|
||||
"vector_store": {
|
||||
"provider": "neptune",
|
||||
"config": {
|
||||
"collection_name": "mem0",
|
||||
"endpoint": f"neptune-graph://my-graph-identifier",
|
||||
"endpoint": "neptune-graph://g-abc123xyz0",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -29,18 +40,90 @@ config = {
|
||||
m = Memory.from_config(config)
|
||||
messages = [
|
||||
{"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
|
||||
{"role": "assistant", "content": "How about a thriller movies? They can be quite engaging."},
|
||||
{"role": "assistant", "content": "How about a thriller movie? They can be quite engaging."},
|
||||
{"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
|
||||
{"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
|
||||
]
|
||||
m.add(messages, user_id="alice", metadata={"category": "movies"})
|
||||
```
|
||||
|
||||
## Parameters
|
||||
```typescript TypeScript
|
||||
import { Memory } from 'mem0ai/oss';
|
||||
|
||||
Let's see the available parameters for the `neptune` config:
|
||||
const config = {
|
||||
vectorStore: {
|
||||
provider: 'neptune',
|
||||
config: {
|
||||
collectionName: 'mem0',
|
||||
graphIdentifier: 'g-abc123xyz0',
|
||||
// Any other key here (region, credentials, maxAttempts, ...) is
|
||||
// forwarded to the underlying NeptuneGraphClient constructor.
|
||||
region: 'us-east-1',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const memory = new Memory(config);
|
||||
const messages = [
|
||||
{ role: "user", content: "I'm planning to watch a movie tonight. Any recommendations?" },
|
||||
{ role: "assistant", content: "How about a thriller movie? They can be quite engaging." },
|
||||
{ role: "user", content: "I'm not a big fan of thriller movies but I love sci-fi movies." },
|
||||
{ role: "assistant", content: "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future." },
|
||||
];
|
||||
await memory.add(messages, { userId: "alice", metadata: { category: "movies" } });
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
### Config
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Python">
|
||||
| Parameter | Description | Default Value |
|
||||
| --- | --- | --- |
|
||||
| `collection_name` | The name of the collection to store the vectors | `mem0` |
|
||||
| `endpoint` | Connection URL for the Neptune Analytics service | `neptune-graph://my-graph-identifier` |
|
||||
| `endpoint` | Connection URL for the Neptune Analytics service, must be `neptune-graph://<graph-id>` | Required |
|
||||
</Tab>
|
||||
<Tab title="TypeScript">
|
||||
| Parameter | Description | Default Value |
|
||||
| --- | --- | --- |
|
||||
| `collectionName` | The name of the collection to store the vectors | `memories` |
|
||||
| `graphIdentifier` | Graph ID, e.g. `g-abc123xyz0`. Takes priority over `endpoint`. | Required, unless `endpoint` supplies it |
|
||||
| `endpoint` | Either `neptune-graph://<graph-id>` (or a bare graph ID) to supply the graph ID, or an `https://` service endpoint to override the AWS endpoint. An `https://` value must be paired with `graphIdentifier`. | `undefined` |
|
||||
| `dimension` | Embedding vector dimension | Auto-detected from the embedder when omitted |
|
||||
| `client` | A pre-built `NeptuneGraphClient` to use instead of constructing one | `undefined` |
|
||||
| any other key | Forwarded as-is to the [`NeptuneGraphClient`](https://www.npmjs.com/package/@aws-sdk/client-neptune-graph) constructor, e.g. `region`, `credentials`, `maxAttempts` | N/A |
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Both SDKs store vectors on graph nodes labeled `MEM0_VECTOR_<collection_name>`. Point them at the same
|
||||
graph with the same `collection_name` — the defaults differ, `mem0` in Python and `memories` in
|
||||
TypeScript — and `get()`, `list()`, and `delete()` interoperate across SDKs.
|
||||
|
||||
<Note>
|
||||
`search()` is not currently cross-SDK compatible. The TypeScript provider filters on Neptune's reserved
|
||||
`~label` metafield, while the Python provider filters on a synthetic `label` property that only Python's
|
||||
own `insert()` writes. Python's `search()` therefore cannot see nodes written by the TypeScript provider.
|
||||
</Note>
|
||||
|
||||
### IAM Permissions
|
||||
|
||||
Your AWS identity (user or role) needs a policy that allows the [`ExecuteQuery`](https://docs.aws.amazon.com/neptune-analytics/latest/apiref/API_ExecuteQuery.html) actions used for reads, writes, and deletes:
|
||||
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Effect": "Allow",
|
||||
"Action": [
|
||||
"neptune-graph:ReadDataViaQuery",
|
||||
"neptune-graph:WriteDataViaQuery",
|
||||
"neptune-graph:DeleteDataViaQuery"
|
||||
],
|
||||
"Resource": "*"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
For production, scope the resource ARN down to your specific graph.
|
||||
|
||||
@@ -10,7 +10,7 @@ Mem0 includes built-in support for various popular databases. Memory can utilize
|
||||
See the list of supported vector databases below.
|
||||
|
||||
<Note>
|
||||
The following vector databases are supported in the Python implementation. The TypeScript implementation currently supports Qdrant, Redis, PGVector, Supabase, LangChain, Azure AI Search, Vectorize, Amazon S3 Vectors, Milvus, and an in-memory store.
|
||||
The following vector databases are supported in the Python implementation. The TypeScript implementation currently supports Qdrant, Redis, PGVector, Supabase, LangChain, Azure AI Search, Vectorize, Amazon S3 Vectors, Milvus, Neptune Analytics, and an in-memory store.
|
||||
</Note>
|
||||
|
||||
<CardGroup cols={3}>
|
||||
@@ -32,6 +32,7 @@ See the list of supported vector databases below.
|
||||
<Card title="FAISS" icon="layer-group" href="/components/vectordbs/dbs/faiss"></Card>
|
||||
<Card title="LangChain" icon="/images/provider-icons/langchain-color.svg" href="/components/vectordbs/dbs/langchain"></Card>
|
||||
<Card title="Amazon S3 Vectors" icon="/images/provider-icons/aws-color.svg" href="/components/vectordbs/dbs/s3_vectors"></Card>
|
||||
<Card title="Neptune Analytics" icon="/images/provider-icons/aws-color.svg" href="/components/vectordbs/dbs/neptune_analytics"></Card>
|
||||
<Card title="Databricks" icon="/images/provider-icons/databricks.svg" href="/components/vectordbs/dbs/databricks"></Card>
|
||||
<Card title="Turbopuffer" icon="/images/provider-icons/turbopuffer.svg" href="/components/vectordbs/dbs/turbopuffer"></Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@anthropic-ai/sdk": "^0.40.1",
|
||||
"@aws-sdk/client-neptune-graph": "3.966.0",
|
||||
"@aws-sdk/client-s3vectors": "3.967.0",
|
||||
"@mochow/mochow-sdk-node": "^2.1.5",
|
||||
"@azure/identity": "^4.0.0",
|
||||
|
||||
Generated
+379
-20
@@ -39,6 +39,9 @@ importers:
|
||||
'@aws-sdk/client-bedrock-runtime':
|
||||
specifier: 3.967.0
|
||||
version: 3.967.0
|
||||
'@aws-sdk/client-neptune-graph':
|
||||
specifier: 3.966.0
|
||||
version: 3.966.0
|
||||
'@aws-sdk/client-s3vectors':
|
||||
specifier: 3.967.0
|
||||
version: 3.967.0
|
||||
@@ -113,7 +116,7 @@ importers:
|
||||
version: 4.5.0
|
||||
cohere-ai:
|
||||
specifier: ^7.17.0 || ^8.0.0
|
||||
version: 8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.2)
|
||||
version: 8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.3)
|
||||
compromise:
|
||||
specifier: ^14.0.0
|
||||
version: 14.15.1
|
||||
@@ -254,6 +257,10 @@ packages:
|
||||
resolution: {integrity: sha512-pFID1Lb/54u413HTpnqQYLJjX+voEKLZyqlpdVHDbxcw8MfalmmSg5PR/uJWGO3kku0LkB+H/Ca5ftL11PTL9w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/client-neptune-graph@3.966.0':
|
||||
resolution: {integrity: sha512-O10O8/hKrZiSGxAQUG0T1UcdIRfE9szG7toipoUoYsbI6BOlov8U6zWz43ao+TfUCeI0luNcjevGhiqt04lB/w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/client-s3@3.1083.0':
|
||||
resolution: {integrity: sha512-3YOicHy6qjexsy4rHk5jPvtLgg6Ho1u+ycOWtJcVTAIMlMq32MRtnhllAyFSezhAXeBnnLLtKtAGXim7vV8oog==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
@@ -262,10 +269,18 @@ packages:
|
||||
resolution: {integrity: sha512-DDmq8Jm/4IwliVEYVUbTub0RhcYJXVexRklhsIOdIWM42zf4ZMWPeeNvHJBSI+DMNbpqRN57TLCfH5tgiPdyVQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/client-sso@3.966.0':
|
||||
resolution: {integrity: sha512-hQZDQgqRJclALDo9wK+bb5O+VpO8JcjImp52w9KPSz9XveNRgE9AYfklRJd8qT2Bwhxe6IbnqYEino2wqUMA1w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/client-sso@3.967.0':
|
||||
resolution: {integrity: sha512-7RgUwHcRMJtWme6kCHGUVT+Rn9GmNH+FHm34N9UgMXzUqQlzFMweE7T5E9O8nv3wIp7xFNB20ADaCw9Xdnox1Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/core@3.966.0':
|
||||
resolution: {integrity: sha512-QaRVBHD1prdrFXIeFAY/1w4b4S0EFyo/ytzU+rCklEjMRT7DKGXGoHXTWLGz+HD7ovlS5u+9cf8a/LeSOEMzww==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/core@3.967.0':
|
||||
resolution: {integrity: sha512-sJmuP7GrVmlbO6DpXkuf9Mbn6jGNNvy6PLawvaxVF150c8bpNk3w39rerRls6q1dot1dBFV2D29hBXMY1agNMg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -274,6 +289,10 @@ packages:
|
||||
resolution: {integrity: sha512-8qh/6EYb7hl/ZwVfQufhbMEZs1gQIc7GbdrIf4eprQJ7cv042+74nE6l3YDfyWNzb9iPXb8fRyYSHkNIk5eE6Q==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.966.0':
|
||||
resolution: {integrity: sha512-sxVKc9PY0SH7jgN/8WxhbKQ7MWDIgaJv1AoAKJkhJ+GM5r09G5Vb2Vl8ALYpsy+r8b+iYpq5dGJj8k2VqxoQMg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.967.0':
|
||||
resolution: {integrity: sha512-+XWw0+f/txeMbEVRtTFZhgSw1ymH1ffaVKkdMBSnw48rfSohJElKmitCqdihagRTZpzh7m8qI6tIQ5t3OUqugw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -282,6 +301,10 @@ packages:
|
||||
resolution: {integrity: sha512-1RfJaF7SW1TOnvNGU7kaYjwUf5H3sfm+synGH1bHhRlqcnxCt3szebH3dmKEyY4tuGcbQ6ffzUT89cRitBV8OQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.966.0':
|
||||
resolution: {integrity: sha512-VTJDP1jOibVtc5pn5TNE12rhqOO/n10IjkoJi8fFp9BMfmh3iqo70Ppvphz/Pe/R9LcK5Z3h0Z4EB9IXDR6kag==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.967.0':
|
||||
resolution: {integrity: sha512-0/GIAEv5pY5htg6IBMuYccBgzz3oS2DqHjHi396ziTrwlhbrCNX96AbNhQhzAx3LBZUk13sPfeapjyQ7G57Ekg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -290,6 +313,10 @@ packages:
|
||||
resolution: {integrity: sha512-sRCkpTiFnCdQvuaRVjQ6SVoHu6i7RUpurVo1c4F81HWhPvUJ7Wdp5MNtSdX1O29CNXc8em3O5m52hCjVtAD9SA==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.966.0':
|
||||
resolution: {integrity: sha512-4oQKkYMCUx0mffKuH8LQag1M4Fo5daKVmsLAnjrIqKh91xmCrcWlAFNMgeEYvI1Yy125XeNSaFMfir6oNc2ODA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.967.0':
|
||||
resolution: {integrity: sha512-U8dMpaM6Qf6+2Qvp1uG6OcWv1RlrZW7tQkpmzEVWH8HZTGrVHIXXju64NMtIOr7yOnNwd0CKcytuD1QG+phCwQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -298,6 +325,10 @@ packages:
|
||||
resolution: {integrity: sha512-6d8H6ZAh3ZPKZ6fe1nG2OWeZEZPtt9ravoD1dezPdPtsSkJRoxGAnFSHwKT3E/Te6fHE30zRzjV6TD12rvF6yQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.966.0':
|
||||
resolution: {integrity: sha512-wD1KlqLyh23Xfns/ZAPxebwXixoJJCuDbeJHFrLDpP4D4h3vA2S8nSFgBSFR15q9FhgRfHleClycf6g5K4Ww6w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.967.0':
|
||||
resolution: {integrity: sha512-kbvZsZL6CBlfnb71zuJdJmBUFZN5utNrcziZr/DZ2olEOkA9vlmizE8i9BUIbmS7ptjgvRnmcY1A966yfhiblw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -306,6 +337,10 @@ packages:
|
||||
resolution: {integrity: sha512-GREWRrMj0XnNKMaVa/Mauoaui26qBEHu71WWqXbwZOu/jFQOnPZjTf7u0KtGKC8VGa6VUs9kDWGgocrKNLS9vw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.966.0':
|
||||
resolution: {integrity: sha512-7QCOERGddMw7QbjE+LSAFgwOBpPv4px2ty0GCK7ZiPJGsni2EYmM4TtYnQb9u1WNHmHqIPWMbZR0pKDbyRyHlQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.967.0':
|
||||
resolution: {integrity: sha512-WuNbHs9rfKKSVok4+OBrZf0AHfzDgFYYMxN2G/q6ZfUmY4QmiPyxV5HkNFh1rqDxS9VV6kAZPo0EBmry10idSg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -314,6 +349,10 @@ packages:
|
||||
resolution: {integrity: sha512-f+qjRXZpz7sgzbc4QB+6nLKfyKFgRRXzWdXbsKPv/VhVRyHsDyq4yBWC/B75BAJpFIcUeI2XR/3gdWJ677zB4A==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.966.0':
|
||||
resolution: {integrity: sha512-q5kCo+xHXisNbbPAh/DiCd+LZX4wdby77t7GLk0b2U0/mrel4lgy6o79CApe+0emakpOS1nPZS7voXA7vGPz4w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.967.0':
|
||||
resolution: {integrity: sha512-sNCY5JDV0whsfsZ6c2+6eUwH33H7UhKbqvCPbEYlIIa8wkGjCtCyFI3zZIJHVcMKJJ3117vSUFHEkNA7g+8rtw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -322,6 +361,10 @@ packages:
|
||||
resolution: {integrity: sha512-TiVQhuU0pbhIZAUZacbPHMyzrIdiH+lnx+PMY/Pu/b93dJrq3wdZwzUJ0TPpvNxaqbHsxJvQZW3/h/beLiKq7Q==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.966.0':
|
||||
resolution: {integrity: sha512-Rv5aEfbpqsQZzxpX2x+FbSyVFOE3Dngome+exNA8jGzc00rrMZEUnm3J3yAsLp/I2l7wnTfI0r2zMe+T9/nZAQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.967.0':
|
||||
resolution: {integrity: sha512-0K6kITKNytFjk1UYabYUsTThgU6TQkyW6Wmt8S5zd1A/up7NSQGpp58Rpg9GIf4amQDQwb+p9FGG7emmV8FEeA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -330,6 +373,10 @@ packages:
|
||||
resolution: {integrity: sha512-3foTZUJ4821Ij60X7K3NJroygiZLnbBmarN+T//O2cjkISan90zElN3NBmgSlDrTQ7Gs6z/yO8V7h60QNcDZHQ==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.966.0':
|
||||
resolution: {integrity: sha512-Yv1lc9iic9xg3ywMmIAeXN1YwuvfcClLVdiF2y71LqUgIOupW8B8my84XJr6pmOQuKzZa++c2znNhC9lGsbKyw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.967.0':
|
||||
resolution: {integrity: sha512-Vkr7S2ec7q/v8i/MzkHcBEdqqfWz3lyb8FDjb+NjslEwdxC3f6XwADRZzWwV1pChfx6SbsvJXKfkcF/pKAelhA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -362,6 +409,10 @@ packages:
|
||||
resolution: {integrity: sha512-k8JJwYXVYlOOjWnPZDThQS1xDFJgi5Dokt73qFlDtrZAbdcint5aIdjB9XgJAAQVP5OoqcefQmh1FYXiPpvsvw==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.966.0':
|
||||
resolution: {integrity: sha512-MvGoy0vhMluVpSB5GaGJbYLqwbZfZjwEZhneDHdPhgCgQqmCtugnYIIjpUw7kKqWGsmaMQmNEgSFf1zYYmwOyg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.967.0':
|
||||
resolution: {integrity: sha512-2qzJzZj5u+cZiG7kz3XJPaTH4ssUY/aet1kwJsUTFKrWeHUf7mZZkDFfkXP5cOffgiOyR5ZkrmJoLKAde9hshg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -371,6 +422,10 @@ packages:
|
||||
engines: {node: '>= 14.0.0'}
|
||||
deprecated: Please update your @aws-sdk client to a more recent version, such as https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.982.0, if using browser-based WebSocket bidirectional streaming.
|
||||
|
||||
'@aws-sdk/nested-clients@3.966.0':
|
||||
resolution: {integrity: sha512-FRzAWwLNoKiaEWbYhnpnfartIdOgiaBLnPcd3uG1Io+vvxQUeRPhQIy4EfKnT3AuA+g7gzSCjMG2JKoJOplDtQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/nested-clients@3.967.0':
|
||||
resolution: {integrity: sha512-PYa7V8w0gaNux6Sz/Z7zrHmPloEE+EKpRxQIOG/D0askTr5Yd4oO2KGgcInf65uHK3f0Z9U4CTUGHZvQvABypA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -391,6 +446,10 @@ packages:
|
||||
resolution: {integrity: sha512-s0woKnxuHrExLc5L2ArIH5BMkbonHPtt+5hSBM8oknp9M6QTuUmmAmJ2E0EdzCGONrO+8+ADPqvv6UX0nNcc7A==}
|
||||
engines: {node: '>=20.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.966.0':
|
||||
resolution: {integrity: sha512-8k5cBTicTGYJHhKaweO4gL4fud1KDnLS5fByT6/Xbiu59AxYM4E/h3ds+3jxDMnniCE3gIWpEnyfM9khtmw2lA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.967.0':
|
||||
resolution: {integrity: sha512-Qnd/nJ0CgeUa7zQczgmdQm0vYUF7pD1G0C+dR1T7huHQHRIsgCWIsCV9wNKzOFluqtcr6YAeuTwvY0+l8XWxnA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -422,6 +481,15 @@ packages:
|
||||
'@aws-sdk/util-user-agent-browser@3.965.0':
|
||||
resolution: {integrity: sha512-Xiza/zMntQGpkd2dETQeAK8So1pg5+STTzpcdGWxj5q0jGO5ayjqT/q1Q7BrsX5KIr6PvRkl9/V7lLCv04wGjQ==}
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.966.0':
|
||||
resolution: {integrity: sha512-vPPe8V0GLj+jVS5EqFz2NUBgWH35favqxliUOvhp8xBdNRkEjiZm5TqitVtFlxS4RrLY3HOndrWbrP5ejbwl1Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
aws-crt: '>=1.0.0'
|
||||
peerDependenciesMeta:
|
||||
aws-crt:
|
||||
optional: true
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.967.0':
|
||||
resolution: {integrity: sha512-yUz6pCGxyG4+QaDg0dkdIBphjQp8A9rrbZa/+U3RJgRrW47hy64clFQUROzj5Poy1Ur8ICVXEUpBsSqRuYEU2g==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -1658,6 +1726,10 @@ packages:
|
||||
resolution: {integrity: sha512-N5CpfaL+/LPQU9PFdOT55ayUo5T0QypG4Almzd1/efJvoDypuT1shkgJk1+hhg/02scYluW6Q2JGnSHIPwCEGQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@smithy/util-waiter@4.5.7':
|
||||
resolution: {integrity: sha512-9NFs7MyxFBEQenFHrveJK/rirLSnYAgCMfAqKvvA+UlyzJCKFc51TYKbMUv5rGsM4bQ419Fw6KKgHc53QyJ30w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@so-ric/colorspace@1.1.6':
|
||||
resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==}
|
||||
|
||||
@@ -4436,7 +4508,7 @@ snapshots:
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-crypto/supports-web-crypto': 5.2.0
|
||||
'@aws-crypto/util': 5.2.0
|
||||
'@aws-sdk/types': 3.973.13
|
||||
'@aws-sdk/types': 3.974.0
|
||||
'@aws-sdk/util-locate-window': 3.965.8
|
||||
'@smithy/util-utf8': 2.3.0
|
||||
tslib: 2.8.1
|
||||
@@ -4444,7 +4516,7 @@ snapshots:
|
||||
'@aws-crypto/sha256-js@5.2.0':
|
||||
dependencies:
|
||||
'@aws-crypto/util': 5.2.0
|
||||
'@aws-sdk/types': 3.973.13
|
||||
'@aws-sdk/types': 3.974.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-crypto/supports-web-crypto@5.2.0':
|
||||
@@ -4517,6 +4589,52 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-neptune-graph@3.966.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/credential-provider-node': 3.966.0
|
||||
'@aws-sdk/middleware-host-header': 3.965.0
|
||||
'@aws-sdk/middleware-logger': 3.965.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.965.0
|
||||
'@aws-sdk/middleware-user-agent': 3.966.0
|
||||
'@aws-sdk/region-config-resolver': 3.965.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws-sdk/util-endpoints': 3.965.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.965.0
|
||||
'@aws-sdk/util-user-agent-node': 3.966.0
|
||||
'@smithy/config-resolver': 4.6.2
|
||||
'@smithy/core': 3.29.2
|
||||
'@smithy/fetch-http-handler': 5.6.4
|
||||
'@smithy/hash-node': 4.4.2
|
||||
'@smithy/invalid-dependency': 4.4.2
|
||||
'@smithy/middleware-content-length': 4.4.2
|
||||
'@smithy/middleware-endpoint': 4.6.2
|
||||
'@smithy/middleware-retry': 4.7.2
|
||||
'@smithy/middleware-serde': 4.4.2
|
||||
'@smithy/middleware-stack': 4.4.2
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/node-http-handler': 4.9.4
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/smithy-client': 4.14.2
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/url-parser': 4.4.2
|
||||
'@smithy/util-base64': 4.5.2
|
||||
'@smithy/util-body-length-browser': 4.4.2
|
||||
'@smithy/util-body-length-node': 4.4.2
|
||||
'@smithy/util-defaults-mode-browser': 4.5.2
|
||||
'@smithy/util-defaults-mode-node': 4.4.2
|
||||
'@smithy/util-endpoints': 3.6.2
|
||||
'@smithy/util-middleware': 4.4.2
|
||||
'@smithy/util-retry': 4.5.2
|
||||
'@smithy/util-stream': 4.7.2
|
||||
'@smithy/util-utf8': 4.4.2
|
||||
'@smithy/util-waiter': 4.5.7
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-s3@3.1083.0':
|
||||
dependencies:
|
||||
'@aws-sdk/checksums': 3.1000.16
|
||||
@@ -4575,6 +4693,49 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-sso@3.966.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/middleware-host-header': 3.965.0
|
||||
'@aws-sdk/middleware-logger': 3.965.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.965.0
|
||||
'@aws-sdk/middleware-user-agent': 3.966.0
|
||||
'@aws-sdk/region-config-resolver': 3.965.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws-sdk/util-endpoints': 3.965.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.965.0
|
||||
'@aws-sdk/util-user-agent-node': 3.966.0
|
||||
'@smithy/config-resolver': 4.6.2
|
||||
'@smithy/core': 3.29.2
|
||||
'@smithy/fetch-http-handler': 5.6.4
|
||||
'@smithy/hash-node': 4.4.2
|
||||
'@smithy/invalid-dependency': 4.4.2
|
||||
'@smithy/middleware-content-length': 4.4.2
|
||||
'@smithy/middleware-endpoint': 4.6.2
|
||||
'@smithy/middleware-retry': 4.7.2
|
||||
'@smithy/middleware-serde': 4.4.2
|
||||
'@smithy/middleware-stack': 4.4.2
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/node-http-handler': 4.9.4
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/smithy-client': 4.14.2
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/url-parser': 4.4.2
|
||||
'@smithy/util-base64': 4.5.2
|
||||
'@smithy/util-body-length-browser': 4.4.2
|
||||
'@smithy/util-body-length-node': 4.4.2
|
||||
'@smithy/util-defaults-mode-browser': 4.5.2
|
||||
'@smithy/util-defaults-mode-node': 4.4.2
|
||||
'@smithy/util-endpoints': 3.6.2
|
||||
'@smithy/util-middleware': 4.4.2
|
||||
'@smithy/util-retry': 4.5.2
|
||||
'@smithy/util-utf8': 4.4.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-sso@3.967.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
@@ -4618,6 +4779,22 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/core@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws-sdk/xml-builder': 3.965.0
|
||||
'@smithy/core': 3.29.2
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/signature-v4': 5.6.3
|
||||
'@smithy/smithy-client': 4.14.2
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/util-base64': 4.5.2
|
||||
'@smithy/util-middleware': 4.4.2
|
||||
'@smithy/util-utf8': 4.4.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/core@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
@@ -4645,6 +4822,14 @@ snapshots:
|
||||
bowser: 2.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4661,6 +4846,19 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/fetch-http-handler': 5.6.4
|
||||
'@smithy/node-http-handler': 4.9.4
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/smithy-client': 4.14.2
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/util-stream': 4.7.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4684,6 +4882,25 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/credential-provider-env': 3.966.0
|
||||
'@aws-sdk/credential-provider-http': 3.966.0
|
||||
'@aws-sdk/credential-provider-login': 3.966.0
|
||||
'@aws-sdk/credential-provider-process': 3.966.0
|
||||
'@aws-sdk/credential-provider-sso': 3.966.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.966.0
|
||||
'@aws-sdk/nested-clients': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/credential-provider-imds': 4.4.7
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4719,6 +4936,19 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/nested-clients': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-login@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4741,6 +4971,23 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.966.0
|
||||
'@aws-sdk/credential-provider-http': 3.966.0
|
||||
'@aws-sdk/credential-provider-ini': 3.966.0
|
||||
'@aws-sdk/credential-provider-process': 3.966.0
|
||||
'@aws-sdk/credential-provider-sso': 3.966.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/credential-provider-imds': 4.4.7
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.967.0
|
||||
@@ -4772,6 +5019,15 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4789,6 +5045,19 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/client-sso': 3.966.0
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/token-providers': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/client-sso': 3.967.0
|
||||
@@ -4812,6 +5081,18 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/nested-clients': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4851,13 +5132,13 @@ snapshots:
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-logger@3.965.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-recursion-detection@3.965.0':
|
||||
@@ -4865,7 +5146,7 @@ snapshots:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws/lambda-invoke-store': 0.2.4
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-sdk-s3@3.972.62':
|
||||
@@ -4877,6 +5158,16 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws-sdk/util-endpoints': 3.965.0
|
||||
'@smithy/core': 3.29.2
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4900,6 +5191,49 @@ snapshots:
|
||||
'@smithy/util-hex-encoding': 4.4.6
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/nested-clients@3.966.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/middleware-host-header': 3.965.0
|
||||
'@aws-sdk/middleware-logger': 3.965.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.965.0
|
||||
'@aws-sdk/middleware-user-agent': 3.966.0
|
||||
'@aws-sdk/region-config-resolver': 3.965.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@aws-sdk/util-endpoints': 3.965.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.965.0
|
||||
'@aws-sdk/util-user-agent-node': 3.966.0
|
||||
'@smithy/config-resolver': 4.6.2
|
||||
'@smithy/core': 3.29.2
|
||||
'@smithy/fetch-http-handler': 5.6.4
|
||||
'@smithy/hash-node': 4.4.2
|
||||
'@smithy/invalid-dependency': 4.4.2
|
||||
'@smithy/middleware-content-length': 4.4.2
|
||||
'@smithy/middleware-endpoint': 4.6.2
|
||||
'@smithy/middleware-retry': 4.7.2
|
||||
'@smithy/middleware-serde': 4.4.2
|
||||
'@smithy/middleware-stack': 4.4.2
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/node-http-handler': 4.9.4
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/smithy-client': 4.14.2
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/url-parser': 4.4.2
|
||||
'@smithy/util-base64': 4.5.2
|
||||
'@smithy/util-body-length-browser': 4.4.2
|
||||
'@smithy/util-body-length-node': 4.4.2
|
||||
'@smithy/util-defaults-mode-browser': 4.5.2
|
||||
'@smithy/util-defaults-mode-node': 4.4.2
|
||||
'@smithy/util-endpoints': 3.6.2
|
||||
'@smithy/util-middleware': 4.4.2
|
||||
'@smithy/util-retry': 4.5.2
|
||||
'@smithy/util-utf8': 4.4.2
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/nested-clients@3.967.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
@@ -4959,7 +5293,7 @@ snapshots:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/config-resolver': 4.6.2
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/signature-v4-multi-region@3.996.39':
|
||||
@@ -4978,6 +5312,18 @@ snapshots:
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/token-providers@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.966.0
|
||||
'@aws-sdk/nested-clients': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/property-provider': 4.4.2
|
||||
'@smithy/shared-ini-file-loader': 4.6.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/token-providers@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.967.0
|
||||
@@ -4992,7 +5338,7 @@ snapshots:
|
||||
|
||||
'@aws-sdk/types@3.965.0':
|
||||
dependencies:
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/types@3.973.13':
|
||||
@@ -5008,7 +5354,7 @@ snapshots:
|
||||
'@aws-sdk/util-endpoints@3.965.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
'@smithy/url-parser': 4.4.2
|
||||
'@smithy/util-endpoints': 3.6.2
|
||||
tslib: 2.8.1
|
||||
@@ -5027,10 +5373,18 @@ snapshots:
|
||||
'@aws-sdk/util-user-agent-browser@3.965.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/types': 4.15.0
|
||||
'@smithy/types': 4.16.0
|
||||
bowser: 2.14.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.966.0':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-user-agent': 3.966.0
|
||||
'@aws-sdk/types': 3.965.0
|
||||
'@smithy/node-config-provider': 4.5.2
|
||||
'@smithy/types': 4.16.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.967.0':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-user-agent': 3.967.0
|
||||
@@ -6171,12 +6525,12 @@ snapshots:
|
||||
|
||||
'@smithy/hash-node@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/invalid-dependency@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/is-array-buffer@2.2.0':
|
||||
@@ -6190,7 +6544,7 @@ snapshots:
|
||||
|
||||
'@smithy/middleware-endpoint@4.6.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/middleware-retry@4.7.2':
|
||||
@@ -6200,7 +6554,7 @@ snapshots:
|
||||
|
||||
'@smithy/middleware-serde@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/middleware-stack@4.4.2':
|
||||
@@ -6294,7 +6648,7 @@ snapshots:
|
||||
|
||||
'@smithy/util-base64@4.5.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/util-body-length-browser@4.4.2':
|
||||
@@ -6304,7 +6658,7 @@ snapshots:
|
||||
|
||||
'@smithy/util-body-length-node@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/util-buffer-from@2.2.0':
|
||||
@@ -6334,7 +6688,7 @@ snapshots:
|
||||
|
||||
'@smithy/util-middleware@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/util-retry@4.5.2':
|
||||
@@ -6354,7 +6708,12 @@ snapshots:
|
||||
|
||||
'@smithy/util-utf8@4.4.2':
|
||||
dependencies:
|
||||
'@smithy/core': 3.26.0
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/util-waiter@4.5.7':
|
||||
dependencies:
|
||||
'@smithy/core': 3.29.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@so-ric/colorspace@1.1.6':
|
||||
@@ -6894,7 +7253,7 @@ snapshots:
|
||||
|
||||
co@4.6.0: {}
|
||||
|
||||
cohere-ai@8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.2):
|
||||
cohere-ai@8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.3):
|
||||
dependencies:
|
||||
convict: 6.2.5
|
||||
form-data: 4.0.6
|
||||
@@ -6904,7 +7263,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@smithy/protocol-http': 5.5.2
|
||||
'@smithy/signature-v4': 5.6.2
|
||||
'@smithy/signature-v4': 5.6.3
|
||||
|
||||
collect-v8-coverage@1.0.3: {}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ export * from "./vector_stores/langchain";
|
||||
export * from "./vector_stores/vectorize";
|
||||
export * from "./vector_stores/azure_ai_search";
|
||||
export * from "./vector_stores/pgvector";
|
||||
export * from "./vector_stores/neptune_analytics";
|
||||
export * from "./vector_stores/elasticsearch";
|
||||
export * from "./vector_stores/upstash_vector";
|
||||
export * from "./vector_stores/azure_mysql";
|
||||
|
||||
@@ -55,6 +55,7 @@ import { HuggingFaceEmbedder } from "../embeddings/huggingface";
|
||||
import { LangchainVectorStore } from "../vector_stores/langchain";
|
||||
import { AzureAISearch } from "../vector_stores/azure_ai_search";
|
||||
import { PGVector } from "../vector_stores/pgvector";
|
||||
import { NeptuneAnalyticsVectorStore } from "../vector_stores/neptune_analytics";
|
||||
import { VertexAIEmbedder } from "../embeddings/vertexai";
|
||||
import { ElasticsearchDB } from "../vector_stores/elasticsearch";
|
||||
import { OpenSearchDB } from "../vector_stores/opensearch";
|
||||
@@ -172,6 +173,9 @@ export class VectorStoreFactory {
|
||||
return new VertexAIVectorSearch(config as any);
|
||||
case "pgvector":
|
||||
return new PGVector(config as any);
|
||||
case "neptune":
|
||||
case "neptune-analytics":
|
||||
return new NeptuneAnalyticsVectorStore(config as any);
|
||||
case "elasticsearch":
|
||||
return new ElasticsearchDB(config as any);
|
||||
case "opensearch":
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { createPool } from "mysql2/promise";
|
||||
import type { Pool, RowDataPacket } from "mysql2/promise";
|
||||
import { VectorStore } from "./base";
|
||||
import { SearchFilters, VectorStoreConfig, VectorStoreResult } from "../types";
|
||||
@@ -93,6 +92,17 @@ export class AzureMySQLDB implements VectorStore {
|
||||
...(this.config.sslCa ? { ca: this.config.sslCa } : {}),
|
||||
};
|
||||
|
||||
// Loaded dynamically: mysql2 is an optional peer dependency, so a static value import
|
||||
// would break `import { Memory } from "mem0ai/oss"` for everyone else.
|
||||
let createPool: typeof import("mysql2/promise").createPool;
|
||||
try {
|
||||
({ createPool } = await import("mysql2/promise"));
|
||||
} catch {
|
||||
throw new Error(
|
||||
"The Azure MySQL vector store requires the 'mysql2' package. Install it with: npm install mysql2",
|
||||
);
|
||||
}
|
||||
|
||||
this.pool = createPool({
|
||||
host: this.config.host,
|
||||
port: this.config.port ?? 3306,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -183,6 +183,12 @@ jest.mock("../src/vector_stores/pgvector", () => ({
|
||||
.fn()
|
||||
.mockImplementation((config) => ({ type: "pgvector", config })),
|
||||
}));
|
||||
jest.mock("../src/vector_stores/neptune_analytics", () => ({
|
||||
NeptuneAnalyticsVectorStore: jest.fn().mockImplementation((config) => ({
|
||||
type: "neptune-analytics",
|
||||
config,
|
||||
})),
|
||||
}));
|
||||
jest.mock("../src/vector_stores/upstash_vector", () => ({
|
||||
UpstashVector: jest
|
||||
.fn()
|
||||
@@ -340,6 +346,8 @@ describe("VectorStoreFactory", () => {
|
||||
["vectorize"],
|
||||
["azure-ai-search"],
|
||||
["pgvector"],
|
||||
["neptune"],
|
||||
["neptune-analytics"],
|
||||
["upstash_vector"],
|
||||
["azure_mysql"],
|
||||
["cassandra"],
|
||||
@@ -351,6 +359,30 @@ describe("VectorStoreFactory", () => {
|
||||
expect(result.config).toBe(dummyVSConfig);
|
||||
});
|
||||
|
||||
test("passes Neptune endpoint URI config through the factory", () => {
|
||||
const config = {
|
||||
collectionName: "test",
|
||||
dimension: 4,
|
||||
endpoint: "neptune-graph://g-1234567890",
|
||||
region: "us-east-1",
|
||||
};
|
||||
const store = VectorStoreFactory.create("neptune", config) as any;
|
||||
|
||||
expect(store.config).toEqual(config);
|
||||
});
|
||||
|
||||
test("keeps neptune-analytics as a compatibility alias", () => {
|
||||
const config = {
|
||||
collectionName: "test",
|
||||
dimension: 4,
|
||||
endpoint: "neptune-graph://g-1234567890",
|
||||
region: "us-east-1",
|
||||
};
|
||||
const store = VectorStoreFactory.create("neptune-analytics", config) as any;
|
||||
|
||||
expect(store.config).toEqual(config);
|
||||
});
|
||||
|
||||
test("throws for unsupported provider", () => {
|
||||
expect(() =>
|
||||
VectorStoreFactory.create("nonexistent", dummyVSConfig),
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
import { readdirSync, readFileSync, statSync } from "fs";
|
||||
import { join, relative, resolve } from "path";
|
||||
|
||||
// Optional peers are not installed by npm/pnpm. A static value import of one therefore throws
|
||||
// MODULE_NOT_FOUND the moment anything pulls in `mem0ai/oss`, because src/index.ts re-exports every
|
||||
// vector store. Load them with `await import(...)` inside the code path that needs them instead.
|
||||
|
||||
const packageRoot = resolve(__dirname, "../../..");
|
||||
|
||||
function optionalPeers(): string[] {
|
||||
const pkg = JSON.parse(
|
||||
readFileSync(join(packageRoot, "package.json"), "utf8"),
|
||||
);
|
||||
return Object.entries(
|
||||
(pkg.peerDependenciesMeta ?? {}) as Record<string, { optional?: boolean }>,
|
||||
)
|
||||
.filter(([, meta]) => meta.optional)
|
||||
.map(([name]) => name);
|
||||
}
|
||||
|
||||
function sourceFiles(dir: string, acc: string[] = []): string[] {
|
||||
for (const entry of readdirSync(dir)) {
|
||||
const full = join(dir, entry);
|
||||
if (statSync(full).isDirectory()) {
|
||||
if (entry !== "tests" && entry !== "__tests__") sourceFiles(full, acc);
|
||||
} else if (entry.endsWith(".ts") && !entry.endsWith(".test.ts")) {
|
||||
acc.push(full);
|
||||
}
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
|
||||
// Matches `import ... from "pkg"` and `import "pkg"`, but not `import type ... from "pkg"`,
|
||||
// `typeof import("pkg")`, or `await import("pkg")` — those are erased or already lazy.
|
||||
function hasStaticValueImport(pkg: string, source: string): boolean {
|
||||
const escaped = pkg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
||||
const specifier = `["']${escaped}(?:\\/[^"']*)?["']`;
|
||||
return (
|
||||
new RegExp(
|
||||
`(?:^|\\n)\\s*import\\s+(?!type\\b)[^;]*?from\\s+${specifier}`,
|
||||
).test(source) ||
|
||||
new RegExp(`(?:^|\\n)\\s*import\\s+${specifier}`).test(source)
|
||||
);
|
||||
}
|
||||
|
||||
describe("optional peer dependencies", () => {
|
||||
const peers = optionalPeers();
|
||||
|
||||
it("are discoverable from package.json", () => {
|
||||
expect(peers.length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("are never statically imported by src", () => {
|
||||
const files = sourceFiles(join(packageRoot, "src"));
|
||||
const sources = new Map(
|
||||
files.map((file) => [file, readFileSync(file, "utf8")]),
|
||||
);
|
||||
|
||||
const offenders: string[] = [];
|
||||
for (const peer of peers) {
|
||||
for (const [file, source] of sources) {
|
||||
if (hasStaticValueImport(peer, source)) {
|
||||
offenders.push(`${relative(packageRoot, file)} imports ${peer}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
expect(offenders).toEqual([]);
|
||||
});
|
||||
});
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ import pkg from "./package.json";
|
||||
const external = [
|
||||
"openai",
|
||||
"@anthropic-ai/sdk",
|
||||
"@aws-sdk/client-neptune-graph",
|
||||
"@aws-sdk/client-s3vectors",
|
||||
"@mochow/mochow-sdk-node",
|
||||
"groq-sdk",
|
||||
|
||||
Reference in New Issue
Block a user