deeplake 0.3.16 → 0.3.21
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/dist/browser/{browser/client.d.ts → client.d.ts} +2 -2
- package/dist/browser/{browser/client.js → client.js} +8 -8
- package/dist/browser/{browser/index.d.ts → index.d.ts} +12 -12
- package/dist/browser/{browser/index.js → index.js} +8 -8
- package/dist/browser/shared/credentials.d.ts.map +1 -1
- package/dist/browser/shared/credentials.js +4 -6
- package/dist/browser/shared/credentials.js.map +1 -1
- package/dist/browser/shared/database.d.ts +3 -1
- package/dist/browser/shared/database.d.ts.map +1 -1
- package/dist/browser/shared/dlref.d.ts +3 -0
- package/dist/browser/shared/dlref.d.ts.map +1 -1
- package/dist/browser/shared/dlref.js +3 -0
- package/dist/browser/shared/dlref.js.map +1 -1
- package/dist/browser/shared/schema.d.ts.map +1 -1
- package/dist/browser/shared/schema.js +31 -20
- package/dist/browser/shared/schema.js.map +1 -1
- package/dist/browser/shared/token.d.ts.map +1 -1
- package/dist/browser/shared/token.js +1 -17
- package/dist/browser/shared/token.js.map +1 -1
- package/dist/browser/{browser/storage.d.ts.map → storage.d.ts.map} +1 -1
- package/dist/browser/{browser/storage.js → storage.js} +20 -33
- package/dist/browser/storage.js.map +1 -0
- package/dist/browser/{browser/wasm.js → wasm.js} +1 -1
- package/dist/node/client.d.ts +107 -0
- package/dist/node/client.d.ts.map +1 -0
- package/dist/node/{node/client.js → client.js} +138 -112
- package/dist/node/client.js.map +1 -0
- package/dist/node/formats/coco.d.ts +62 -0
- package/dist/node/formats/coco.d.ts.map +1 -0
- package/dist/node/{node/formats → formats}/coco.js +94 -8
- package/dist/node/formats/coco.js.map +1 -0
- package/dist/node/{node/formats → formats}/coco_panoptic.d.ts +1 -1
- package/dist/node/{node/formats → formats}/coco_panoptic.d.ts.map +1 -1
- package/dist/node/{node/formats → formats}/coco_panoptic.js +1 -0
- package/dist/node/formats/coco_panoptic.js.map +1 -0
- package/dist/node/formats/lerobot.d.ts +84 -0
- package/dist/node/formats/lerobot.d.ts.map +1 -0
- package/dist/node/{node/formats → formats}/lerobot.js +61 -1
- package/dist/node/formats/lerobot.js.map +1 -0
- package/dist/node/{node/index.d.ts → index.d.ts} +12 -12
- package/dist/node/{node/index.js → index.js} +8 -8
- package/dist/node/normalizers/binary.d.ts +3 -0
- package/dist/node/{node/normalizers → normalizers}/binary.js +1 -1
- package/dist/node/{node/normalizers → normalizers}/binary.js.map +1 -1
- package/dist/node/{node/normalizers → normalizers}/dict.d.ts +1 -1
- package/dist/node/{node/normalizers → normalizers}/files.d.ts +1 -1
- package/dist/node/{node/normalizers → normalizers}/files.js +1 -1
- package/dist/node/normalizers/huggingface.d.ts +23 -0
- package/dist/node/normalizers/huggingface.d.ts.map +1 -0
- package/dist/node/{node/normalizers → normalizers}/huggingface.js +29 -0
- package/dist/node/normalizers/huggingface.js.map +1 -0
- package/dist/node/normalizers/image.d.ts +3 -0
- package/dist/node/{node/normalizers → normalizers}/image.js +1 -1
- package/dist/node/{node/normalizers → normalizers}/image.js.map +1 -1
- package/dist/node/normalizers/pdf.d.ts +3 -0
- package/dist/node/{node/normalizers → normalizers}/pdf.js +2 -2
- package/dist/node/{node/normalizers → normalizers}/pdf.js.map +1 -1
- package/dist/node/{node/normalizers → normalizers}/text.d.ts +1 -1
- package/dist/node/{node/normalizers → normalizers}/text.js +1 -1
- package/dist/node/{node/normalizers → normalizers}/text.js.map +1 -1
- package/dist/node/{node/normalizers → normalizers}/video.d.ts +1 -1
- package/dist/node/{node/normalizers → normalizers}/video.js +2 -2
- package/dist/node/{node/normalizers → normalizers}/video.js.map +1 -1
- package/dist/node/shared/credentials.d.ts.map +1 -1
- package/dist/node/shared/credentials.js +4 -6
- package/dist/node/shared/credentials.js.map +1 -1
- package/dist/node/shared/database.d.ts +3 -1
- package/dist/node/shared/database.d.ts.map +1 -1
- package/dist/node/shared/dlref.d.ts +3 -0
- package/dist/node/shared/dlref.d.ts.map +1 -1
- package/dist/node/shared/dlref.js +3 -0
- package/dist/node/shared/dlref.js.map +1 -1
- package/dist/node/shared/schema.d.ts.map +1 -1
- package/dist/node/shared/schema.js +31 -20
- package/dist/node/shared/schema.js.map +1 -1
- package/dist/node/shared/token.d.ts.map +1 -1
- package/dist/node/shared/token.js +1 -17
- package/dist/node/shared/token.js.map +1 -1
- package/dist/node/{node/storage.d.ts → storage.d.ts} +5 -0
- package/dist/node/storage.d.ts.map +1 -0
- package/dist/node/{node/storage.js → storage.js} +137 -16
- package/dist/node/storage.js.map +1 -0
- package/dist/node/{node/wasm.js → wasm.js} +1 -1
- package/package.json +17 -13
- package/wasm/browser/deeplake_browser.js +1 -1
- package/wasm/browser/deeplake_browser.wasm +0 -0
- package/wasm/node/deeplake_node.js +1 -1
- package/wasm/node/deeplake_node.wasm +0 -0
- package/dist/browser/browser/storage.js.map +0 -1
- package/dist/node/node/client.d.ts +0 -49
- package/dist/node/node/client.d.ts.map +0 -1
- package/dist/node/node/client.js.map +0 -1
- package/dist/node/node/formats/coco.d.ts +0 -24
- package/dist/node/node/formats/coco.d.ts.map +0 -1
- package/dist/node/node/formats/coco.js.map +0 -1
- package/dist/node/node/formats/coco_panoptic.js.map +0 -1
- package/dist/node/node/formats/lerobot.d.ts +0 -42
- package/dist/node/node/formats/lerobot.d.ts.map +0 -1
- package/dist/node/node/formats/lerobot.js.map +0 -1
- package/dist/node/node/normalizers/binary.d.ts +0 -3
- package/dist/node/node/normalizers/huggingface.d.ts +0 -3
- package/dist/node/node/normalizers/huggingface.d.ts.map +0 -1
- package/dist/node/node/normalizers/huggingface.js.map +0 -1
- package/dist/node/node/normalizers/image.d.ts +0 -3
- package/dist/node/node/normalizers/pdf.d.ts +0 -3
- package/dist/node/node/storage.d.ts.map +0 -1
- package/dist/node/node/storage.js.map +0 -1
- package/dist/wasm/node/deeplake_node.js +0 -3
- package/dist/wasm/node/deeplake_node.wasm +0 -0
- package/dist/wasm/node/deeplake_node.worker.js +0 -5
- package/wasm/browser/deeplake_browser.worker.js +0 -5
- package/wasm/node/deeplake_node.worker.js +0 -5
- /package/dist/browser/{browser/client.d.ts.map → client.d.ts.map} +0 -0
- /package/dist/browser/{browser/client.js.map → client.js.map} +0 -0
- /package/dist/browser/{browser/index.d.ts.map → index.d.ts.map} +0 -0
- /package/dist/browser/{browser/index.js.map → index.js.map} +0 -0
- /package/dist/browser/{browser/storage.d.ts → storage.d.ts} +0 -0
- /package/dist/browser/{browser/wasm.d.ts → wasm.d.ts} +0 -0
- /package/dist/browser/{browser/wasm.d.ts.map → wasm.d.ts.map} +0 -0
- /package/dist/browser/{browser/wasm.js.map → wasm.js.map} +0 -0
- /package/dist/node/{node/formats → formats}/index.d.ts +0 -0
- /package/dist/node/{node/formats → formats}/index.d.ts.map +0 -0
- /package/dist/node/{node/formats → formats}/index.js +0 -0
- /package/dist/node/{node/formats → formats}/index.js.map +0 -0
- /package/dist/node/{node/index.d.ts.map → index.d.ts.map} +0 -0
- /package/dist/node/{node/index.js.map → index.js.map} +0 -0
- /package/dist/node/{node/mime.d.ts → mime.d.ts} +0 -0
- /package/dist/node/{node/mime.d.ts.map → mime.d.ts.map} +0 -0
- /package/dist/node/{node/mime.js → mime.js} +0 -0
- /package/dist/node/{node/mime.js.map → mime.js.map} +0 -0
- /package/dist/node/{node/normalizers → normalizers}/binary.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/dict.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/dict.js +0 -0
- /package/dist/node/{node/normalizers → normalizers}/dict.js.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/files.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/files.js.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/image.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/index.d.ts +0 -0
- /package/dist/node/{node/normalizers → normalizers}/index.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/index.js +0 -0
- /package/dist/node/{node/normalizers → normalizers}/index.js.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/pdf.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/text.d.ts.map +0 -0
- /package/dist/node/{node/normalizers → normalizers}/video.d.ts.map +0 -0
- /package/dist/node/{node/wasm.d.ts → wasm.d.ts} +0 -0
- /package/dist/node/{node/wasm.d.ts.map → wasm.d.ts.map} +0 -0
- /package/dist/node/{node/wasm.js.map → wasm.js.map} +0 -0
|
@@ -11,5 +11,10 @@
|
|
|
11
11
|
* The C++ side passes refresh metadata (orgId, dsName, token) through the
|
|
12
12
|
* config object so the JS side can call the backend API for fresh creds.
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* Register a callback that fires when all in-flight storage operations
|
|
16
|
+
* have completed. If none are in flight, the callback fires immediately.
|
|
17
|
+
*/
|
|
18
|
+
export declare function onDrained(cb: () => void): void;
|
|
14
19
|
export declare function createStorageFactory(wasmModule: any): (type: string, config: any, mode?: string) => any;
|
|
15
20
|
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/node/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6OH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAM9C;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,GAAG,IAEhD,MAAM,MAAM,EACZ,QAAQ,GAAG,EACX,OAAO,MAAM,KACZ,GAAG,CAwHP"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* config object so the JS side can call the backend API for fresh creds.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.onDrained = onDrained;
|
|
16
17
|
exports.createStorageFactory = createStorageFactory;
|
|
17
18
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
18
19
|
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
@@ -22,6 +23,10 @@ const REFRESH_BUFFER_MS = 5 * 60 * 1000;
|
|
|
22
23
|
const DEFAULT_CRED_LIFETIME_MS = 60 * 60 * 1000;
|
|
23
24
|
// Cooldown after a failed refresh attempt (matches native 60s)
|
|
24
25
|
const REFRESH_FAILURE_COOLDOWN_MS = 60 * 1000;
|
|
26
|
+
/**
|
|
27
|
+
* Manages an S3Client whose credentials can be rotated by calling the
|
|
28
|
+
* backend API for fresh STS tokens.
|
|
29
|
+
*/
|
|
25
30
|
class RotatingS3Client {
|
|
26
31
|
client;
|
|
27
32
|
region;
|
|
@@ -39,6 +44,7 @@ class RotatingS3Client {
|
|
|
39
44
|
this.createdAt = Date.now();
|
|
40
45
|
this.debug = debug;
|
|
41
46
|
}
|
|
47
|
+
/** Get the current S3 client, refreshing credentials if needed. */
|
|
42
48
|
async getClient() {
|
|
43
49
|
if (!this.refreshMeta)
|
|
44
50
|
return this.client;
|
|
@@ -47,12 +53,14 @@ class RotatingS3Client {
|
|
|
47
53
|
const needsRefresh = age > DEFAULT_CRED_LIFETIME_MS - REFRESH_BUFFER_MS;
|
|
48
54
|
if (!needsRefresh)
|
|
49
55
|
return this.client;
|
|
56
|
+
// Cooldown after failure
|
|
50
57
|
if (this.lastFailureAt && now - this.lastFailureAt < REFRESH_FAILURE_COOLDOWN_MS) {
|
|
51
58
|
if (this.debug) {
|
|
52
59
|
console.log('[storage] skipping credential refresh — in cooldown after previous failure');
|
|
53
60
|
}
|
|
54
61
|
return this.client;
|
|
55
62
|
}
|
|
63
|
+
// Serialize concurrent refresh attempts
|
|
56
64
|
if (this.refreshInProgress) {
|
|
57
65
|
await this.refreshInProgress;
|
|
58
66
|
return this.client;
|
|
@@ -73,6 +81,11 @@ class RotatingS3Client {
|
|
|
73
81
|
}
|
|
74
82
|
try {
|
|
75
83
|
const resp = await fetchCredentials(meta);
|
|
84
|
+
// Build new S3 credentials from backend response.
|
|
85
|
+
// Field mapping mirrors C++ update_params.cpp (lines 57-66):
|
|
86
|
+
// token → session_token, region → region_name
|
|
87
|
+
// The backend API may return fields under different names depending
|
|
88
|
+
// on the provider and version.
|
|
76
89
|
const creds = resp.creds;
|
|
77
90
|
const s3Config = {
|
|
78
91
|
region: creds.region || creds.region_name || this.region,
|
|
@@ -81,9 +94,16 @@ class RotatingS3Client {
|
|
|
81
94
|
secretAccessKey: creds.aws_secret_access_key ?? creds.secret_key,
|
|
82
95
|
sessionToken: creds.aws_session_token ?? creds.token ?? creds.session_token,
|
|
83
96
|
},
|
|
97
|
+
requestHandler: new (require('@smithy/node-http-handler').NodeHttpHandler)({
|
|
98
|
+
requestTimeout: 8_000,
|
|
99
|
+
connectionTimeout: 8_000,
|
|
100
|
+
}),
|
|
101
|
+
maxAttempts: 30,
|
|
102
|
+
followRegionRedirects: true,
|
|
84
103
|
};
|
|
85
104
|
if (this.endpoint) {
|
|
86
105
|
s3Config.endpoint = this.endpoint;
|
|
106
|
+
s3Config.forcePathStyle = true;
|
|
87
107
|
}
|
|
88
108
|
this.client = new client_s3_1.S3Client(s3Config);
|
|
89
109
|
this.createdAt = Date.now();
|
|
@@ -95,9 +115,16 @@ class RotatingS3Client {
|
|
|
95
115
|
catch (e) {
|
|
96
116
|
this.lastFailureAt = Date.now();
|
|
97
117
|
console.warn(`[storage] credential refresh failed: ${e.message ?? e}`);
|
|
118
|
+
// Keep using the old client — it may still work if expiry hasn't hit yet
|
|
98
119
|
}
|
|
99
120
|
}
|
|
100
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Fetch fresh credentials from the backend API.
|
|
124
|
+
* Mirrors the C++ update_params() flow in client/update_params.cpp.
|
|
125
|
+
*
|
|
126
|
+
* Returns the raw response so the caller can interpret fields per provider.
|
|
127
|
+
*/
|
|
101
128
|
async function fetchCredentials(meta) {
|
|
102
129
|
let url;
|
|
103
130
|
if (meta.dsName) {
|
|
@@ -125,6 +152,11 @@ async function fetchCredentials(meta) {
|
|
|
125
152
|
const repoType = (json.repo_type ?? 's3');
|
|
126
153
|
return { repoType, creds };
|
|
127
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Resolve the backend API endpoint from the WASM module.
|
|
157
|
+
* The C++ backend::backend singleton stores the endpoint set via
|
|
158
|
+
* deeplake_set_endpoint().
|
|
159
|
+
*/
|
|
128
160
|
function resolveApiEndpoint(wasmModule) {
|
|
129
161
|
try {
|
|
130
162
|
const backend = wasmModule.deeplake_backend_client_instance();
|
|
@@ -137,13 +169,62 @@ function resolveApiEndpoint(wasmModule) {
|
|
|
137
169
|
}
|
|
138
170
|
return 'https://app.activeloop.ai';
|
|
139
171
|
}
|
|
140
|
-
const inflight_tracker_1 = require("../shared/inflight-tracker");
|
|
141
172
|
// Registry to prevent V8 GC from collecting JS objects that are only
|
|
142
173
|
// referenced by emscripten::val handles in C++ WASM code.
|
|
143
174
|
const _liveObjects = new Set();
|
|
175
|
+
// ---------------------------------------------------------------------------
|
|
176
|
+
// In-flight operation tracker
|
|
177
|
+
//
|
|
178
|
+
// Every storage callback (download, list, exists, …) clones a WASM
|
|
179
|
+
// completion object and invokes it asynchronously. Between clone() and
|
|
180
|
+
// delete() the C++ side holds pointers into the WASM function table.
|
|
181
|
+
// deeplakeRelease() must wait for all in-flight callbacks to finish
|
|
182
|
+
// before calling obj.delete() on the dataset handle, otherwise the
|
|
183
|
+
// destructor frees the C++ objects while callbacks are still registered
|
|
184
|
+
// ("null function or function signature mismatch").
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
let _inFlightCount = 0;
|
|
187
|
+
let _drainCallbacks = [];
|
|
188
|
+
/**
|
|
189
|
+
* Wrap completion.clone() with in-flight tracking.
|
|
190
|
+
* The returned object's .delete() method decrements the counter and
|
|
191
|
+
* fires any registered drain callbacks when the count reaches zero.
|
|
192
|
+
*/
|
|
193
|
+
function trackClone(completion) {
|
|
194
|
+
const c1 = completion.clone();
|
|
195
|
+
_inFlightCount++;
|
|
196
|
+
const origDelete = c1.delete.bind(c1);
|
|
197
|
+
c1.delete = () => {
|
|
198
|
+
origDelete();
|
|
199
|
+
_inFlightCount--;
|
|
200
|
+
if (_inFlightCount === 0 && _drainCallbacks.length > 0) {
|
|
201
|
+
const cbs = _drainCallbacks;
|
|
202
|
+
_drainCallbacks = [];
|
|
203
|
+
for (const cb of cbs)
|
|
204
|
+
cb();
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
return c1;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Register a callback that fires when all in-flight storage operations
|
|
211
|
+
* have completed. If none are in flight, the callback fires immediately.
|
|
212
|
+
*/
|
|
213
|
+
function onDrained(cb) {
|
|
214
|
+
if (_inFlightCount === 0) {
|
|
215
|
+
cb();
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
_drainCallbacks.push(cb);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
144
221
|
function createStorageFactory(wasmModule) {
|
|
145
222
|
return function clientFactory(type, config, mode) {
|
|
146
223
|
if (type !== 'aws') {
|
|
224
|
+
// GCS and Azure storage types are supported in the browser visualizer
|
|
225
|
+
// (via GCSGetter/AzureGetter) but not yet in the Node.js SDK.
|
|
226
|
+
// The C++ side may request these types when datasets are backed by
|
|
227
|
+
// non-S3 storage. For now, throw a clear error.
|
|
147
228
|
throw new Error(`Unsupported storage type: ${type}. The Node.js SDK currently supports "aws" only. ` +
|
|
148
229
|
`GCS and Azure require additional dependencies (@azure/storage-blob, etc.).`);
|
|
149
230
|
}
|
|
@@ -153,6 +234,9 @@ function createStorageFactory(wasmModule) {
|
|
|
153
234
|
process.env.AWS_DEFAULT_REGION ||
|
|
154
235
|
'us-east-1';
|
|
155
236
|
const endpoint = config?.endpoint ?? undefined;
|
|
237
|
+
// Resolve credentials: prefer config from C++, fall back to process.env.
|
|
238
|
+
// In WASM, std::getenv() doesn't read Node.js process.env, so the C++
|
|
239
|
+
// credential chain can't pick up env vars — we must do it here.
|
|
156
240
|
let resolvedCreds;
|
|
157
241
|
if (credentials?.accessKeyId && credentials?.secretAccessKey) {
|
|
158
242
|
resolvedCreds = {
|
|
@@ -169,6 +253,7 @@ function createStorageFactory(wasmModule) {
|
|
|
169
253
|
sessionToken: process.env.AWS_SESSION_TOKEN,
|
|
170
254
|
};
|
|
171
255
|
}
|
|
256
|
+
// Build refresh metadata from C++ params (org_id, ds_name, token)
|
|
172
257
|
const refresh = config?.refresh;
|
|
173
258
|
let refreshMeta = null;
|
|
174
259
|
if (refresh?.orgId && refresh?.token && (refresh?.dsName || refresh?.credsKey)) {
|
|
@@ -183,9 +268,24 @@ function createStorageFactory(wasmModule) {
|
|
|
183
268
|
const s3Config = {
|
|
184
269
|
region,
|
|
185
270
|
credentials: resolvedCreds,
|
|
271
|
+
// Match C++ native client: 8s request/connect timeouts (s3_utils.hpp:313-314)
|
|
272
|
+
requestHandler: new (require('@smithy/node-http-handler').NodeHttpHandler)({
|
|
273
|
+
requestTimeout: 8_000,
|
|
274
|
+
connectionTimeout: 8_000,
|
|
275
|
+
}),
|
|
276
|
+
// Match C++ native client: custom retry (s3_retry_strategy.hpp)
|
|
277
|
+
// 200ms interval, ~6s max → roughly 30 attempts
|
|
278
|
+
maxAttempts: 30,
|
|
279
|
+
// Disable IMDS lookups to avoid 5-10s hangs when no instance role
|
|
280
|
+
// is available (matches C++ shouldDisableIMDS=true)
|
|
281
|
+
disableHostPrefix: false,
|
|
282
|
+
followRegionRedirects: true,
|
|
186
283
|
};
|
|
187
284
|
if (endpoint) {
|
|
188
285
|
s3Config.endpoint = endpoint;
|
|
286
|
+
// Match C++ native client: use path-style addressing for custom
|
|
287
|
+
// endpoints (s3_utils.hpp:329 — use_virtual_addressing=false)
|
|
288
|
+
s3Config.forcePathStyle = true;
|
|
189
289
|
}
|
|
190
290
|
const dbg = !!process.env.DEEPLAKE_STORAGE_DEBUG;
|
|
191
291
|
if (dbg) {
|
|
@@ -200,6 +300,7 @@ function createStorageFactory(wasmModule) {
|
|
|
200
300
|
result = createGetter(rotatingClient, wasmModule);
|
|
201
301
|
}
|
|
202
302
|
if (dbg) {
|
|
303
|
+
// Wrap in Proxy to trace ALL method accesses and calls
|
|
203
304
|
const label = mode === 'w' ? 'writer' : 'reader';
|
|
204
305
|
result = new Proxy(result, {
|
|
205
306
|
get(target, prop) {
|
|
@@ -221,6 +322,8 @@ function createStorageFactory(wasmModule) {
|
|
|
221
322
|
},
|
|
222
323
|
});
|
|
223
324
|
}
|
|
325
|
+
// Keep a strong JS reference so V8's GC doesn't collect this object
|
|
326
|
+
// while C++ still holds an emscripten::val handle to it.
|
|
224
327
|
_liveObjects.add(result);
|
|
225
328
|
return result;
|
|
226
329
|
};
|
|
@@ -245,7 +348,7 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
245
348
|
const getter = {
|
|
246
349
|
generateGetPresignedUrl(key, completion) {
|
|
247
350
|
key = removeScheme(key);
|
|
248
|
-
const c1 =
|
|
351
|
+
const c1 = trackClone(completion);
|
|
249
352
|
const [bucket, objKey] = splitBucketKey(key);
|
|
250
353
|
rotatingClient.getClient().then((client) => (0, s3_request_presigner_1.getSignedUrl)(client, new client_s3_1.GetObjectCommand({ Bucket: bucket, Key: objKey }), {
|
|
251
354
|
expiresIn: 3600,
|
|
@@ -261,7 +364,7 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
261
364
|
},
|
|
262
365
|
exists(key, completion) {
|
|
263
366
|
key = removeScheme(key);
|
|
264
|
-
const c1 =
|
|
367
|
+
const c1 = trackClone(completion);
|
|
265
368
|
const [bucket, objKey] = splitBucketKey(key);
|
|
266
369
|
if (debug) {
|
|
267
370
|
console.log(`[storage:exists] bucket=${bucket} key=${objKey}`);
|
|
@@ -279,7 +382,7 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
279
382
|
},
|
|
280
383
|
download(key, range, index, completion) {
|
|
281
384
|
key = removeScheme(key);
|
|
282
|
-
const c1 =
|
|
385
|
+
const c1 = trackClone(completion);
|
|
283
386
|
const [bucket, objKey] = splitBucketKey(key);
|
|
284
387
|
if (debug) {
|
|
285
388
|
console.log(`[storage:read] bucket=${bucket} key=${objKey} range=${range || 'none'}`);
|
|
@@ -324,7 +427,10 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
324
427
|
c1.call({ responseCode: 404, message: 'resource_not_found' });
|
|
325
428
|
}
|
|
326
429
|
else {
|
|
327
|
-
|
|
430
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
431
|
+
const name = err.name ?? err.Code ?? '';
|
|
432
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
433
|
+
c1.call({ responseCode: code, message: msg });
|
|
328
434
|
}
|
|
329
435
|
c1.delete();
|
|
330
436
|
}));
|
|
@@ -332,7 +438,7 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
332
438
|
wasmModule.storeJsObject(index, { abort() { } });
|
|
333
439
|
},
|
|
334
440
|
list(root, key, startAfter, completion) {
|
|
335
|
-
const c1 =
|
|
441
|
+
const c1 = trackClone(completion);
|
|
336
442
|
const [bucket, prefix] = splitBucketPrefix(root);
|
|
337
443
|
if (debug) {
|
|
338
444
|
console.log(`[storage:list] bucket=${bucket} prefix=${prefix} key=${key}`);
|
|
@@ -364,7 +470,10 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
364
470
|
impl(data.NextMarker);
|
|
365
471
|
})
|
|
366
472
|
.catch((err) => {
|
|
367
|
-
|
|
473
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
474
|
+
const name = err.name ?? err.Code ?? '';
|
|
475
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
476
|
+
c1.call({ responseCode: code, message: msg });
|
|
368
477
|
c1.delete();
|
|
369
478
|
});
|
|
370
479
|
};
|
|
@@ -372,7 +481,7 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
372
481
|
});
|
|
373
482
|
},
|
|
374
483
|
listDirs(root, prefix, completion) {
|
|
375
|
-
const c1 =
|
|
484
|
+
const c1 = trackClone(completion);
|
|
376
485
|
const [bucket, rootPrefix] = splitBucketPrefix(root);
|
|
377
486
|
const finalPrefix = (rootPrefix.endsWith('/') ? rootPrefix : `${rootPrefix}/`) + prefix;
|
|
378
487
|
rotatingClient.getClient().then((client) => client
|
|
@@ -387,12 +496,15 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
387
496
|
c1.delete();
|
|
388
497
|
})
|
|
389
498
|
.catch((err) => {
|
|
390
|
-
|
|
499
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
500
|
+
const name = err.name ?? err.Code ?? '';
|
|
501
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
502
|
+
c1.call({ responseCode: code, message: msg });
|
|
391
503
|
c1.delete();
|
|
392
504
|
}));
|
|
393
505
|
},
|
|
394
506
|
metadata(root, key, completion) {
|
|
395
|
-
const c1 =
|
|
507
|
+
const c1 = trackClone(completion);
|
|
396
508
|
const [bucket, prefix] = splitBucketPrefix(root);
|
|
397
509
|
const finalPrefix = (prefix.endsWith('/') ? prefix : `${prefix}/`) + key;
|
|
398
510
|
rotatingClient.getClient().then((client) => client
|
|
@@ -419,7 +531,10 @@ function createGetter(rotatingClient, wasmModule) {
|
|
|
419
531
|
c1.delete();
|
|
420
532
|
})
|
|
421
533
|
.catch((err) => {
|
|
422
|
-
|
|
534
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
535
|
+
const name = err.name ?? err.Code ?? '';
|
|
536
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
537
|
+
c1.call({ responseCode: code, message: msg });
|
|
423
538
|
c1.delete();
|
|
424
539
|
}));
|
|
425
540
|
},
|
|
@@ -434,7 +549,7 @@ function createWriter(rotatingClient, wasmModule) {
|
|
|
434
549
|
const writer = {
|
|
435
550
|
saveWithCompletion(key, content, completion) {
|
|
436
551
|
key = removeScheme(key);
|
|
437
|
-
const c1 =
|
|
552
|
+
const c1 = trackClone(completion);
|
|
438
553
|
const [bucket, objKey] = splitBucketKey(key);
|
|
439
554
|
if (debug) {
|
|
440
555
|
const size = typeof content === 'string' ? content.length : content.byteLength;
|
|
@@ -453,16 +568,19 @@ function createWriter(rotatingClient, wasmModule) {
|
|
|
453
568
|
c1.delete();
|
|
454
569
|
})
|
|
455
570
|
.catch((err) => {
|
|
571
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
572
|
+
const name = err.name ?? err.Code ?? '';
|
|
573
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
456
574
|
if (debug) {
|
|
457
|
-
console.log(`[storage:write:error] key=${objKey} err=${
|
|
575
|
+
console.log(`[storage:write:error] key=${objKey} err=${msg}`);
|
|
458
576
|
}
|
|
459
|
-
c1.call({ responseCode:
|
|
577
|
+
c1.call({ responseCode: code, message: msg });
|
|
460
578
|
c1.delete();
|
|
461
579
|
}));
|
|
462
580
|
},
|
|
463
581
|
remove(key, completion) {
|
|
464
582
|
key = removeScheme(key);
|
|
465
|
-
const c1 =
|
|
583
|
+
const c1 = trackClone(completion);
|
|
466
584
|
const [bucket, objKey] = splitBucketKey(key);
|
|
467
585
|
rotatingClient.getClient().then((client) => client
|
|
468
586
|
.send(new client_s3_1.DeleteObjectCommand({ Bucket: bucket, Key: objKey }))
|
|
@@ -473,7 +591,10 @@ function createWriter(rotatingClient, wasmModule) {
|
|
|
473
591
|
c1.delete();
|
|
474
592
|
})
|
|
475
593
|
.catch((err) => {
|
|
476
|
-
|
|
594
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
595
|
+
const name = err.name ?? err.Code ?? '';
|
|
596
|
+
const msg = name ? `${name}: ${err.message ?? 'unknown_error'}` : (err.message ?? 'unknown_error');
|
|
597
|
+
c1.call({ responseCode: code, message: msg });
|
|
477
598
|
c1.delete();
|
|
478
599
|
}));
|
|
479
600
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/node/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ exports.initializeWasm = initializeWasm;
|
|
|
38
38
|
exports.deinitializeWasm = deinitializeWasm;
|
|
39
39
|
const nodePath = __importStar(require("path"));
|
|
40
40
|
const storage_1 = require("./storage");
|
|
41
|
-
const wasm_common_1 = require("
|
|
41
|
+
const wasm_common_1 = require("./shared/wasm-common");
|
|
42
42
|
let wasmInitPromise = null;
|
|
43
43
|
let wasmModule = null;
|
|
44
44
|
/**
|
package/package.json
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deeplake",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"description": "DeepLake database SDK for Node.js and browsers",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"node": {
|
|
8
|
-
"types": "./dist/node/
|
|
9
|
-
"require": "./dist/node/
|
|
10
|
-
"import": "./dist/node/
|
|
8
|
+
"types": "./dist/node/index.d.ts",
|
|
9
|
+
"require": "./dist/node/index.js",
|
|
10
|
+
"import": "./dist/node/index.js"
|
|
11
11
|
},
|
|
12
12
|
"browser": {
|
|
13
|
-
"types": "./dist/browser/
|
|
14
|
-
"import": "./dist/browser/
|
|
13
|
+
"types": "./dist/browser/index.d.ts",
|
|
14
|
+
"import": "./dist/browser/index.js"
|
|
15
15
|
},
|
|
16
16
|
"default": {
|
|
17
|
-
"types": "./dist/browser/
|
|
18
|
-
"import": "./dist/browser/
|
|
17
|
+
"types": "./dist/browser/index.d.ts",
|
|
18
|
+
"import": "./dist/browser/index.js"
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
|
-
"main": "./dist/node/
|
|
23
|
-
"types": "./dist/node/
|
|
24
|
-
"browser": "./dist/browser/
|
|
22
|
+
"main": "./dist/node/index.js",
|
|
23
|
+
"types": "./dist/node/index.d.ts",
|
|
24
|
+
"browser": "./dist/browser/index.js",
|
|
25
25
|
"files": [
|
|
26
26
|
"dist",
|
|
27
27
|
"wasm"
|
|
28
28
|
],
|
|
29
29
|
"scripts": {
|
|
30
|
-
"copy-wasm:browser": "mkdir -p wasm/browser && cp ../browser/dist-wasm/deeplake_browser.js ../browser/dist-wasm/deeplake_browser.wasm ../browser/dist-wasm/deeplake_browser.worker.js wasm/browser/",
|
|
30
|
+
"copy-wasm:browser": "mkdir -p wasm/browser && (test -f wasm/browser/deeplake_browser.wasm || cp ../browser/dist-wasm/deeplake_browser.js ../browser/dist-wasm/deeplake_browser.wasm ../browser/dist-wasm/deeplake_browser.worker.js wasm/browser/)",
|
|
31
31
|
"build": "tsc -p tsconfig.node.json && tsc -p tsconfig.browser.json && npm run copy-wasm:browser",
|
|
32
32
|
"build:node": "tsc -p tsconfig.node.json",
|
|
33
33
|
"build:browser": "tsc -p tsconfig.browser.json",
|
|
@@ -37,8 +37,12 @@
|
|
|
37
37
|
"engines": {
|
|
38
38
|
"node": ">=18.0.0"
|
|
39
39
|
},
|
|
40
|
-
"
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@aws-sdk/client-s3": "^3.1000.0",
|
|
41
42
|
"@aws-sdk/s3-request-presigner": "^3.1000.0",
|
|
43
|
+
"@smithy/node-http-handler": "^4.0.0"
|
|
44
|
+
},
|
|
45
|
+
"optionalDependencies": {
|
|
42
46
|
"pg": "^8.11.0",
|
|
43
47
|
"sharp": "^0.34.5"
|
|
44
48
|
},
|