endee 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -10
- package/dist/crypto.d.ts +19 -2
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +95 -7
- package/dist/crypto.js.map +1 -1
- package/dist/endee.d.ts +2 -1
- package/dist/endee.d.ts.map +1 -1
- package/dist/endee.js +19 -4
- package/dist/endee.js.map +1 -1
- package/dist/indexClient.d.ts +2 -1
- package/dist/indexClient.d.ts.map +1 -1
- package/dist/indexClient.js +8 -6
- package/dist/indexClient.js.map +1 -1
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ Endee is a TypeScript client for a vector database designed for maximum speed an
|
|
|
8
8
|
- **Fast ANN Searches**: Efficient similarity searches on vector data
|
|
9
9
|
- **Multiple Distance Metrics**: Support for cosine, L2, and inner product distance metrics
|
|
10
10
|
- **Metadata Support**: Attach and search with metadata and filters
|
|
11
|
+
- **Client-Side Encryption**: Optional AES-256 encryption for your metadata
|
|
11
12
|
- **High Performance**: Optimized for speed and efficiency
|
|
12
13
|
- **Modern ES Modules**: Native ES module support with proper tree-shaking
|
|
13
14
|
|
|
@@ -17,13 +18,21 @@ Endee is a TypeScript client for a vector database designed for maximum speed an
|
|
|
17
18
|
npm install endee
|
|
18
19
|
```
|
|
19
20
|
|
|
21
|
+
## Getting Your Auth Token
|
|
22
|
+
|
|
23
|
+
1. Go to the [Endee Dashboard](https://daap.endee.io)
|
|
24
|
+
2. Sign up or log in to your account
|
|
25
|
+
3. Navigate to **API Keys** section
|
|
26
|
+
4. Click **Generate New Token**
|
|
27
|
+
5. Copy the generated auth token and store it securely
|
|
28
|
+
|
|
20
29
|
## Quick Start
|
|
21
30
|
|
|
22
31
|
```typescript
|
|
23
32
|
import { Endee } from "endee";
|
|
24
33
|
|
|
25
|
-
// Initialize client with your
|
|
26
|
-
const endee = new Endee("
|
|
34
|
+
// Initialize client with your Auth token
|
|
35
|
+
const endee = new Endee("<auth-token>");
|
|
27
36
|
|
|
28
37
|
// Create a new index
|
|
29
38
|
await endee.createIndex({
|
|
@@ -47,8 +56,7 @@ await index.upsert([
|
|
|
47
56
|
// Query similar vectors
|
|
48
57
|
const results = await index.query({
|
|
49
58
|
vector: [0.2, 0.3, 0.4 /* ... */], // Query vector
|
|
50
|
-
topK: 10
|
|
51
|
-
filter: { category: { eq: "reference" } }, // Optional filter
|
|
59
|
+
topK: 10
|
|
52
60
|
});
|
|
53
61
|
|
|
54
62
|
// Process results
|
|
@@ -66,7 +74,7 @@ for (const item of results) {
|
|
|
66
74
|
import { Endee } from "endee";
|
|
67
75
|
|
|
68
76
|
// Production with specific region
|
|
69
|
-
const endee = new Endee("
|
|
77
|
+
const endee = new Endee("<auth-token>");
|
|
70
78
|
|
|
71
79
|
// Local development (defaults to http://127.0.0.1:8080/api/v1)
|
|
72
80
|
const endee = new Endee();
|
|
@@ -82,10 +90,10 @@ const indexes = await endee.listIndexes();
|
|
|
82
90
|
await endee.createIndex({
|
|
83
91
|
name: "my_custom_index",
|
|
84
92
|
dimension: 384,
|
|
85
|
-
spaceType: "l2", // space type
|
|
93
|
+
spaceType: "l2", // space type (cosine, l2, ip)
|
|
86
94
|
M: 32, // M: Graph connectivity parameter
|
|
87
|
-
efCon:
|
|
88
|
-
|
|
95
|
+
efCon: 256, // efCon: Construction-time parameter
|
|
96
|
+
precision: "medium" // precision: "medium" | "high" | "ultra-high" | "fp16"
|
|
89
97
|
});
|
|
90
98
|
|
|
91
99
|
// Delete an index
|
|
@@ -117,14 +125,14 @@ await index.upsert([
|
|
|
117
125
|
const results = await index.query({
|
|
118
126
|
vector: [/* ... */], // Query vector
|
|
119
127
|
topK: 5, // Number of results to return
|
|
120
|
-
filter: { tags: "important" }, // Filter
|
|
128
|
+
filter: [{ tags: { "$eq": "important" } }], // Filter array with operators
|
|
121
129
|
ef: 128, // Runtime parameter for search quality
|
|
122
130
|
includeVectors: true, // Include vector data in results
|
|
123
131
|
});
|
|
124
132
|
|
|
125
133
|
// Delete vectors
|
|
126
134
|
await index.deleteVector("vec1");
|
|
127
|
-
await index.deleteWithFilter({ visibility: "public" });
|
|
135
|
+
await index.deleteWithFilter({ visibility: { "$eq": "public" } });
|
|
128
136
|
|
|
129
137
|
// Get a specific vector
|
|
130
138
|
const vector = await index.getVector("vec1");
|
|
@@ -134,6 +142,78 @@ const description = await index.describe();
|
|
|
134
142
|
console.log(description);
|
|
135
143
|
```
|
|
136
144
|
|
|
145
|
+
## Filtering
|
|
146
|
+
|
|
147
|
+
Endee supports structured filtering using operators like `$eq`, `$in`, and `$range`. For detailed documentation on filtering, see the [official documentation](https://docs.endee.io/sdks/typescript/usage#filtered-querying).
|
|
148
|
+
|
|
149
|
+
## Encryption
|
|
150
|
+
|
|
151
|
+
Endee supports optional client-side encryption for your metadata using AES-256-CBC. When encryption is enabled, your metadata is encrypted before being sent to the server and decrypted when retrieved. The encryption key never leaves your environment.
|
|
152
|
+
|
|
153
|
+
### Generating an Encryption Key
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
import { Endee } from "endee";
|
|
157
|
+
|
|
158
|
+
const endee = new Endee("<your-auth-token>");
|
|
159
|
+
|
|
160
|
+
// Generate a secure 256-bit encryption key
|
|
161
|
+
const key = endee.generateKey();
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
> **Important**: Store your encryption key securely. If you lose the key, you will not be able to decrypt your data. The key is a 64-character hexadecimal string (256 bits).
|
|
166
|
+
|
|
167
|
+
### Creating an Encrypted Index
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
// Create an index with encryption enabled
|
|
171
|
+
await endee.createIndex({
|
|
172
|
+
name: "encrypted_index",
|
|
173
|
+
dimension: 128,
|
|
174
|
+
spaceType: "cosine",
|
|
175
|
+
key: key // Pass your encryption key
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Working with Encrypted Data
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Get index reference with encryption key
|
|
183
|
+
const index = await endee.getIndex("encrypted_index", key);
|
|
184
|
+
|
|
185
|
+
// Insert vectors - metadata will be automatically encrypted
|
|
186
|
+
await index.upsert([
|
|
187
|
+
{
|
|
188
|
+
id: "secret_doc",
|
|
189
|
+
vector: [0.1, 0.2, 0.3 /* ... */], // Your vector data,
|
|
190
|
+
meta: {
|
|
191
|
+
content: "This is sensitive information",
|
|
192
|
+
userId: "user123"
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
]);
|
|
196
|
+
|
|
197
|
+
// Query vectors - metadata will be automatically decrypted
|
|
198
|
+
const results = await index.query({
|
|
199
|
+
vector: [0.2, 0.4, 0.3 /* ... */], // Your query data,
|
|
200
|
+
topK: 10,
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
// Results contain decrypted metadata
|
|
204
|
+
for (const item of results) {
|
|
205
|
+
console.log(item.meta); // { content: "This is sensitive information", userId: "user123" }
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Key Points
|
|
210
|
+
|
|
211
|
+
- **Encryption is optional**: Only enable it if you need to protect sensitive metadata
|
|
212
|
+
- **Key management is your responsibility**: Store keys securely (e.g., environment variables, secret managers)
|
|
213
|
+
- **Vectors are not encrypted**: Only metadata is encrypted; vector data remains searchable
|
|
214
|
+
- **Key verification**: The system verifies the key checksum when accessing an encrypted index
|
|
215
|
+
- **No key recovery**: Lost keys cannot be recovered; encrypted data becomes inaccessible
|
|
216
|
+
|
|
137
217
|
## TypeScript Types
|
|
138
218
|
|
|
139
219
|
The package includes comprehensive TypeScript types:
|
package/dist/crypto.d.ts
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cryptographic utilities for Endee-DB
|
|
3
3
|
*/
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
4
|
+
export declare function getChecksum(key: string | null): number;
|
|
5
|
+
export declare function jsonZip(obj: Record<string, unknown> | null | undefined, key?: string | null): Buffer;
|
|
6
|
+
export declare function jsonUnzip(compressed: Buffer | Uint8Array | string | Record<string, unknown> | null | undefined, key?: string | null): Record<string, unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Encrypt data using AES-256 in CBC mode.
|
|
9
|
+
*
|
|
10
|
+
* @param data - The data to encrypt
|
|
11
|
+
* @param keyHex - A 256-bit hex key (64 hex characters)
|
|
12
|
+
* @returns IV + ciphertext (IV is prepended to the ciphertext)
|
|
13
|
+
*/
|
|
14
|
+
export declare function aesEncrypt(data: Buffer, keyHex: string): Buffer;
|
|
15
|
+
/**
|
|
16
|
+
* Decrypt data using AES-256 in CBC mode.
|
|
17
|
+
*
|
|
18
|
+
* @param data - The encrypted data (IV + ciphertext)
|
|
19
|
+
* @param keyHex - A 256-bit hex key (64 hex characters)
|
|
20
|
+
* @returns The decrypted data
|
|
21
|
+
*/
|
|
22
|
+
export declare function aesDecrypt(data: Buffer, keyHex: string): Buffer;
|
|
6
23
|
//# sourceMappingURL=crypto.d.ts.map
|
package/dist/crypto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAItD;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,GAAG,GAAE,MAAM,GAAG,IAAW,GACxB,MAAM,CAWR;AAED,wBAAgB,SAAS,CACvB,UAAU,EACN,MAAM,GACN,UAAU,GACV,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,IAAI,GACJ,SAAS,EACb,GAAG,GAAE,MAAM,GAAG,IAAW,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuCzB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAuB/D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyB/D"}
|
package/dist/crypto.js
CHANGED
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cryptographic utilities for Endee-DB
|
|
3
3
|
*/
|
|
4
|
-
import * as zlib from
|
|
5
|
-
|
|
4
|
+
import * as zlib from "zlib";
|
|
5
|
+
import crypto from "crypto";
|
|
6
|
+
export function getChecksum(key) {
|
|
7
|
+
// Convert last two characters of key to integer (hex)
|
|
8
|
+
if (key === null)
|
|
9
|
+
return -1;
|
|
10
|
+
return parseInt(key.slice(-2), 16);
|
|
11
|
+
}
|
|
12
|
+
export function jsonZip(obj, key = null) {
|
|
6
13
|
if (!obj || Object.keys(obj).length === 0)
|
|
7
14
|
return Buffer.alloc(0);
|
|
8
15
|
const jsonStr = JSON.stringify(obj);
|
|
9
|
-
|
|
16
|
+
const compressed = zlib.deflateSync(Buffer.from(jsonStr, "utf-8"));
|
|
17
|
+
// If key is provided, encrypt the compressed data
|
|
18
|
+
if (key) {
|
|
19
|
+
return aesEncrypt(compressed, key);
|
|
20
|
+
}
|
|
21
|
+
return compressed;
|
|
10
22
|
}
|
|
11
|
-
export function jsonUnzip(compressed) {
|
|
23
|
+
export function jsonUnzip(compressed, key = null) {
|
|
12
24
|
if (!compressed || (compressed instanceof Buffer && compressed.length === 0))
|
|
13
25
|
return {};
|
|
14
|
-
if (typeof compressed === "object" &&
|
|
26
|
+
if (typeof compressed === "object" &&
|
|
27
|
+
!Buffer.isBuffer(compressed) &&
|
|
28
|
+
!(compressed instanceof Uint8Array)) {
|
|
15
29
|
return compressed;
|
|
16
30
|
}
|
|
17
31
|
if (typeof compressed === "string") {
|
|
@@ -23,13 +37,87 @@ export function jsonUnzip(compressed) {
|
|
|
23
37
|
}
|
|
24
38
|
}
|
|
25
39
|
try {
|
|
26
|
-
|
|
40
|
+
let buffer = Buffer.isBuffer(compressed)
|
|
41
|
+
? compressed
|
|
42
|
+
: Buffer.from(compressed);
|
|
43
|
+
// If key is provided, decrypt the compressed data first
|
|
44
|
+
if (key) {
|
|
45
|
+
buffer = aesDecrypt(buffer, key);
|
|
46
|
+
}
|
|
27
47
|
const decompressed = zlib.inflateSync(buffer);
|
|
28
|
-
return JSON.parse(decompressed.toString(
|
|
48
|
+
return JSON.parse(decompressed.toString("utf-8"));
|
|
29
49
|
}
|
|
30
50
|
catch (err) {
|
|
31
51
|
const error = err;
|
|
32
52
|
throw new Error(`Failed to decompress data: ${error.message}`);
|
|
33
53
|
}
|
|
34
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Encrypt data using AES-256 in CBC mode.
|
|
57
|
+
*
|
|
58
|
+
* @param data - The data to encrypt
|
|
59
|
+
* @param keyHex - A 256-bit hex key (64 hex characters)
|
|
60
|
+
* @returns IV + ciphertext (IV is prepended to the ciphertext)
|
|
61
|
+
*/
|
|
62
|
+
export function aesEncrypt(data, keyHex) {
|
|
63
|
+
// Convert hex key to bytes
|
|
64
|
+
const key = Buffer.from(keyHex, "hex");
|
|
65
|
+
if (key.length !== 32) {
|
|
66
|
+
// 256 bits = 32 bytes
|
|
67
|
+
throw new Error("Key must be 256 bits (64 hex characters)");
|
|
68
|
+
}
|
|
69
|
+
// Generate a random 16-byte IV
|
|
70
|
+
const iv = crypto.randomBytes(16);
|
|
71
|
+
// Create cipher
|
|
72
|
+
const cipher = crypto.createCipheriv("aes-256-cbc", key, iv);
|
|
73
|
+
// Pad data to 16-byte boundary (PKCS7 padding)
|
|
74
|
+
const paddedData = pkcs7Pad(data);
|
|
75
|
+
// Encrypt
|
|
76
|
+
const ciphertext = Buffer.concat([cipher.update(paddedData), cipher.final()]);
|
|
77
|
+
// Return IV + ciphertext
|
|
78
|
+
return Buffer.concat([iv, ciphertext]);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Decrypt data using AES-256 in CBC mode.
|
|
82
|
+
*
|
|
83
|
+
* @param data - The encrypted data (IV + ciphertext)
|
|
84
|
+
* @param keyHex - A 256-bit hex key (64 hex characters)
|
|
85
|
+
* @returns The decrypted data
|
|
86
|
+
*/
|
|
87
|
+
export function aesDecrypt(data, keyHex) {
|
|
88
|
+
// Convert hex key to bytes
|
|
89
|
+
const key = Buffer.from(keyHex, "hex");
|
|
90
|
+
if (key.length !== 32) {
|
|
91
|
+
// 256 bits = 32 bytes
|
|
92
|
+
throw new Error("Key must be 256 bits (64 hex characters)");
|
|
93
|
+
}
|
|
94
|
+
// Extract IV and ciphertext
|
|
95
|
+
const iv = data.subarray(0, 16);
|
|
96
|
+
const ciphertext = data.subarray(16);
|
|
97
|
+
// Create decipher
|
|
98
|
+
const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv);
|
|
99
|
+
decipher.setAutoPadding(false); // We handle padding manually
|
|
100
|
+
// Decrypt
|
|
101
|
+
const paddedData = Buffer.concat([
|
|
102
|
+
decipher.update(ciphertext),
|
|
103
|
+
decipher.final(),
|
|
104
|
+
]);
|
|
105
|
+
// Remove PKCS7 padding
|
|
106
|
+
return pkcs7Unpad(paddedData);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Add PKCS7 padding to data.
|
|
110
|
+
*/
|
|
111
|
+
function pkcs7Pad(data, blockSize = 16) {
|
|
112
|
+
const paddingLength = blockSize - (data.length % blockSize);
|
|
113
|
+
const padding = Buffer.alloc(paddingLength, paddingLength);
|
|
114
|
+
return Buffer.concat([data, padding]);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove PKCS7 padding from data.
|
|
118
|
+
*/
|
|
119
|
+
function pkcs7Unpad(data) {
|
|
120
|
+
const paddingLength = data[data.length - 1];
|
|
121
|
+
return data.subarray(0, data.length - paddingLength);
|
|
122
|
+
}
|
|
35
123
|
//# sourceMappingURL=crypto.js.map
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/endee.d.ts
CHANGED
|
@@ -8,9 +8,10 @@ export declare class Endee {
|
|
|
8
8
|
private baseUrl;
|
|
9
9
|
private version;
|
|
10
10
|
constructor(token?: string | null);
|
|
11
|
+
generateKey(): string;
|
|
11
12
|
createIndex(options: CreateIndexOptions): Promise<string>;
|
|
12
13
|
listIndexes(): Promise<unknown>;
|
|
13
14
|
deleteIndex(name: string): Promise<string>;
|
|
14
|
-
getIndex(name: string): Promise<Index>;
|
|
15
|
+
getIndex(name: string, key?: string | null): Promise<Index>;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=endee.d.ts.map
|
package/dist/endee.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endee.d.ts","sourceRoot":"","sources":["../src/endee.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"endee.d.ts","sourceRoot":"","sources":["../src/endee.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAG1B,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,GAAE,MAAM,GAAG,IAAW;IAavC,WAAW,IAAI,MAAM;IAUf,WAAW,CACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC;IA4DZ,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB/B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,KAAK,CAAC;CAkCxE"}
|
package/dist/endee.js
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Main Endee client for Endee-DB
|
|
3
3
|
*/
|
|
4
4
|
import axios from 'axios';
|
|
5
|
+
import crypto from 'crypto';
|
|
5
6
|
import { raiseException } from './exceptions.js';
|
|
6
7
|
import { Index } from './indexClient.js';
|
|
7
8
|
import { isValidIndexName, } from './utils.js';
|
|
9
|
+
import { getChecksum } from './crypto.js';
|
|
8
10
|
export class Endee {
|
|
9
11
|
token;
|
|
10
12
|
baseUrl;
|
|
@@ -21,8 +23,14 @@ export class Endee {
|
|
|
21
23
|
}
|
|
22
24
|
this.version = 1;
|
|
23
25
|
}
|
|
26
|
+
generateKey() {
|
|
27
|
+
// Generate a random hex key of 32 bytes (256 bit)
|
|
28
|
+
const key = crypto.randomBytes(32).toString('hex');
|
|
29
|
+
console.log("Store this encryption key in a secure location. Loss of the key will result in the irreversible loss of associated vector data.\nKey: ", key);
|
|
30
|
+
return key;
|
|
31
|
+
}
|
|
24
32
|
async createIndex(options) {
|
|
25
|
-
const { name, dimension, spaceType = 'cosine', M = 16, efCon = 128,
|
|
33
|
+
const { name, dimension, spaceType = 'cosine', M = 16, efCon = 128, key = null, precision = "medium", version = null, } = options;
|
|
26
34
|
if (!isValidIndexName(name)) {
|
|
27
35
|
throw new Error("Invalid index name. Index name must be alphanumeric and can contain underscores and less than 48 characters");
|
|
28
36
|
}
|
|
@@ -43,7 +51,9 @@ export class Endee {
|
|
|
43
51
|
space_type: normalizedSpaceType,
|
|
44
52
|
M: M,
|
|
45
53
|
ef_con: efCon,
|
|
46
|
-
|
|
54
|
+
checksum: getChecksum(key),
|
|
55
|
+
precision: precision,
|
|
56
|
+
version: version,
|
|
47
57
|
};
|
|
48
58
|
if (version !== undefined) {
|
|
49
59
|
data.version = version;
|
|
@@ -106,7 +116,7 @@ export class Endee {
|
|
|
106
116
|
}
|
|
107
117
|
return `Index ${name} deleted successfully`;
|
|
108
118
|
}
|
|
109
|
-
async getIndex(name) {
|
|
119
|
+
async getIndex(name, key = null) {
|
|
110
120
|
const headers = {
|
|
111
121
|
Authorization: `${this.token}`,
|
|
112
122
|
"Content-Type": "application/json",
|
|
@@ -124,7 +134,12 @@ export class Endee {
|
|
|
124
134
|
throw err;
|
|
125
135
|
}
|
|
126
136
|
const data = response.data;
|
|
127
|
-
|
|
137
|
+
// Raise error if checksum does not match
|
|
138
|
+
const checksum = getChecksum(key);
|
|
139
|
+
if (checksum !== data.checksum) {
|
|
140
|
+
raiseException(403, "Checksum does not match. Please check the key.");
|
|
141
|
+
}
|
|
142
|
+
const idx = new Index(name, key, this.token, this.baseUrl, this.version, data);
|
|
128
143
|
return idx;
|
|
129
144
|
}
|
|
130
145
|
}
|
package/dist/endee.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endee.js","sourceRoot":"","sources":["../src/endee.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EACL,gBAAgB,GACjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"endee.js","sourceRoot":"","sources":["../src/endee.ts"],"names":[],"mappings":"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"}
|
package/dist/indexClient.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type { VectorItem, QueryOptions, QueryResult, IndexInfo, IndexDescription } from './types/index.js';
|
|
5
5
|
export declare class Index {
|
|
6
6
|
private name;
|
|
7
|
+
private key;
|
|
7
8
|
private token;
|
|
8
9
|
private url;
|
|
9
10
|
private count;
|
|
@@ -11,7 +12,7 @@ export declare class Index {
|
|
|
11
12
|
private dimension;
|
|
12
13
|
private precision;
|
|
13
14
|
private M;
|
|
14
|
-
constructor(name: string, token: string, url: string, _version?: number, params?: Partial<IndexInfo>);
|
|
15
|
+
constructor(name: string, key: string | null, token: string, url: string, _version?: number, params?: Partial<IndexInfo>);
|
|
15
16
|
toString(): string;
|
|
16
17
|
private _normalizeVector;
|
|
17
18
|
upsert(inputArray: VectorItem[]): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexClient.d.ts","sourceRoot":"","sources":["../src/indexClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,gBAAgB,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,KAAK;IAChB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,CAAC,CAAS;gBAGhB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,SAAI,EACZ,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM;
|
|
1
|
+
{"version":3,"file":"indexClient.d.ts","sourceRoot":"","sources":["../src/indexClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,gBAAgB,EAEjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,KAAK;IAChB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,CAAC,CAAS;gBAGhB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,SAAI,EACZ,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM;IAajC,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,gBAAgB;IAalB,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA2CjD,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA4FpD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBnE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QACnC,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAgCF,QAAQ,IAAI,gBAAgB;CAU7B"}
|
package/dist/indexClient.js
CHANGED
|
@@ -8,6 +8,7 @@ import { raiseException } from './exceptions.js';
|
|
|
8
8
|
import pako from 'pako';
|
|
9
9
|
export class Index {
|
|
10
10
|
name;
|
|
11
|
+
key;
|
|
11
12
|
token;
|
|
12
13
|
url;
|
|
13
14
|
count;
|
|
@@ -15,14 +16,15 @@ export class Index {
|
|
|
15
16
|
dimension;
|
|
16
17
|
precision;
|
|
17
18
|
M;
|
|
18
|
-
constructor(name, token, url, _version = 1, params = {}) {
|
|
19
|
+
constructor(name, key, token, url, _version = 1, params = {}) {
|
|
19
20
|
this.name = name;
|
|
21
|
+
this.key = key;
|
|
20
22
|
this.token = token;
|
|
21
23
|
this.url = url;
|
|
22
24
|
this.count = params.total_elements || 0;
|
|
23
25
|
this.space_type = params.space_type || 'cosine';
|
|
24
26
|
this.dimension = params.dimension || 0;
|
|
25
|
-
this.precision = params.
|
|
27
|
+
this.precision = params.precision || 'medium';
|
|
26
28
|
this.M = params.M || 16;
|
|
27
29
|
}
|
|
28
30
|
toString() {
|
|
@@ -48,7 +50,7 @@ export class Index {
|
|
|
48
50
|
const vectorBatch = [];
|
|
49
51
|
for (const item of inputArray) {
|
|
50
52
|
const [vector, norm] = this._normalizeVector(item.vector);
|
|
51
|
-
const metaData = jsonZip(item.meta || {});
|
|
53
|
+
const metaData = jsonZip(item.meta || {}, this.key);
|
|
52
54
|
const vectorObj = [
|
|
53
55
|
String(item.id || ''),
|
|
54
56
|
metaData,
|
|
@@ -118,11 +120,11 @@ export class Index {
|
|
|
118
120
|
const vectorData = result.length > 5 ? result[5] : undefined;
|
|
119
121
|
let meta = {};
|
|
120
122
|
try {
|
|
121
|
-
const inflated = pako.inflate(jsonUnzip(metaData));
|
|
123
|
+
const inflated = pako.inflate(jsonUnzip(metaData, this.key));
|
|
122
124
|
meta = JSON.parse(new TextDecoder().decode(inflated));
|
|
123
125
|
}
|
|
124
126
|
catch {
|
|
125
|
-
meta = jsonUnzip(metaData);
|
|
127
|
+
meta = jsonUnzip(metaData, this.key);
|
|
126
128
|
}
|
|
127
129
|
const processedResult = {
|
|
128
130
|
id: vectorId,
|
|
@@ -197,7 +199,7 @@ export class Index {
|
|
|
197
199
|
throw err;
|
|
198
200
|
}
|
|
199
201
|
const vectorObj = decode(new Uint8Array(response.data));
|
|
200
|
-
const meta = jsonUnzip(vectorObj[1]);
|
|
202
|
+
const meta = jsonUnzip(vectorObj[1], this.key);
|
|
201
203
|
const vector = Array.from(vectorObj[4]);
|
|
202
204
|
return {
|
|
203
205
|
id: vectorObj[0],
|
package/dist/indexClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexClient.js","sourceRoot":"","sources":["../src/indexClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,IAAI,MAAM,MAAM,CAAC;AAUxB,MAAM,OAAO,KAAK;IACR,IAAI,CAAS;IACb,KAAK,CAAS;IACd,GAAG,CAAS;IACZ,KAAK,CAAS;IACd,UAAU,CAAY;IACtB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,CAAC,CAAS;IAElB,YACE,IAAY,EACZ,KAAa,EACb,GAAW,EACX,QAAQ,GAAG,CAAC,EACZ,SAA6B,EAAE;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAI,MAAM,CAAC,cAAyB,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAI,MAAM,CAAC,UAAwB,IAAI,QAAQ,CAAC;QAC/D,IAAI,CAAC,SAAS,GAAI,MAAM,CAAC,SAAoB,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"indexClient.js","sourceRoot":"","sources":["../src/indexClient.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -7,8 +7,9 @@ export interface CreateIndexOptions {
|
|
|
7
7
|
dimension: number;
|
|
8
8
|
spaceType?: SpaceType;
|
|
9
9
|
M?: number;
|
|
10
|
+
key?: string;
|
|
11
|
+
precision?: "medium" | "high" | "ultra-high" | "fp16";
|
|
10
12
|
efCon?: number;
|
|
11
|
-
useFp16?: boolean;
|
|
12
13
|
version?: number;
|
|
13
14
|
}
|
|
14
15
|
export interface VectorItem {
|
|
@@ -20,7 +21,7 @@ export interface VectorItem {
|
|
|
20
21
|
export interface QueryOptions {
|
|
21
22
|
vector: number[];
|
|
22
23
|
topK?: number;
|
|
23
|
-
filter?: Record<string, unknown
|
|
24
|
+
filter?: Array<Record<string, unknown>> | null;
|
|
24
25
|
ef?: number;
|
|
25
26
|
includeVectors?: boolean;
|
|
26
27
|
log?: boolean;
|
|
@@ -39,9 +40,9 @@ export interface IndexInfo {
|
|
|
39
40
|
space_type: SpaceType;
|
|
40
41
|
dimension: number;
|
|
41
42
|
total_elements?: number;
|
|
42
|
-
|
|
43
|
+
precision?: string;
|
|
43
44
|
M?: number;
|
|
44
|
-
checksum?:
|
|
45
|
+
checksum?: Number;
|
|
45
46
|
lib_token?: string;
|
|
46
47
|
}
|
|
47
48
|
export interface IndexDescription {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAC,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;CACX"}
|