deeplake 0.3.5 → 0.3.6
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/storage.d.ts +2 -5
- package/dist/browser/browser/storage.d.ts.map +1 -1
- package/dist/browser/browser/storage.js +54 -193
- package/dist/browser/browser/storage.js.map +1 -1
- package/package.json +4 -2
- package/wasm/browser/deeplake_browser.js +1 -1
- package/wasm/browser/deeplake_browser.wasm +0 -0
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Browser storage client factory for the WASM deeplake engine.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* that the C++ js_storage layer calls via EM_JS wrappers.
|
|
7
|
-
*
|
|
8
|
-
* Uses fetch() for all S3 operations — no AWS SDK dependency in the browser.
|
|
4
|
+
* Uses @aws-sdk/client-s3 for all S3 operations — handles SigV4 signing,
|
|
5
|
+
* retries, and edge cases automatically.
|
|
9
6
|
*/
|
|
10
7
|
export declare function createBrowserStorageFactory(wasmMod?: any): (type: string, config?: any, _mode?: string) => {
|
|
11
8
|
download(url: string, range: string, index: number, _callback: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/browser/storage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/browser/storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoKH,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,GAAG,IAC/B,MAAM,MAAM,EAAE,SAAS,GAAG,EAAE,QAAQ,MAAM;kBAtHlD,MAAM,SAAS,MAAM,SAAS,MAAM,aAAa,GAAG;gBAyBtD,MAAM,aAAa,GAAG;mBAQnB,MAAM,QAAQ,MAAM,aAAa,GAAG;eAoBxC,MAAM,UAAU,MAAM,cAAc,MAAM,aAAa,GAAG;mBAsBtD,MAAM,UAAU,MAAM,aAAa,GAAG;iCAKxB,MAAM,aAAa,GAAG;gBAKvC,MAAM,aAAa,GAAG;4BAQV,MAAM,QAAQ,UAAU,aAAa,GAAG;;;;cAuCnE"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Browser storage client factory for the WASM deeplake engine.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* that the C++ js_storage layer calls via EM_JS wrappers.
|
|
7
|
-
*
|
|
8
|
-
* Uses fetch() for all S3 operations — no AWS SDK dependency in the browser.
|
|
4
|
+
* Uses @aws-sdk/client-s3 for all S3 operations — handles SigV4 signing,
|
|
5
|
+
* retries, and edge cases automatically.
|
|
9
6
|
*/
|
|
7
|
+
import { S3Client, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, DeleteObjectCommand, PutObjectCommand, } from '@aws-sdk/client-s3';
|
|
10
8
|
function parseS3Url(url) {
|
|
11
|
-
// s3://bucket/key or just bucket/key
|
|
12
9
|
const clean = url.replace(/^s3:\/\//, '');
|
|
13
10
|
const idx = clean.indexOf('/');
|
|
14
11
|
if (idx === -1)
|
|
@@ -16,16 +13,13 @@ function parseS3Url(url) {
|
|
|
16
13
|
return { bucket: clean.substring(0, idx), key: clean.substring(idx + 1) };
|
|
17
14
|
}
|
|
18
15
|
// Embind wraps std::function as an object with an invoke-like interface.
|
|
19
|
-
// Normalize to a plain JS function.
|
|
20
16
|
function asCallable(cb) {
|
|
21
17
|
if (typeof cb === 'function')
|
|
22
18
|
return cb;
|
|
23
|
-
// embind std::function wrapper — call it directly
|
|
24
19
|
if (cb && typeof cb.opcall === 'function')
|
|
25
20
|
return (arg) => cb.opcall(arg);
|
|
26
21
|
if (cb && typeof cb.call === 'function')
|
|
27
22
|
return (arg) => cb.call(arg);
|
|
28
|
-
// If it's an emval-wrapped function, try calling it directly
|
|
29
23
|
return (arg) => { try {
|
|
30
24
|
cb(arg);
|
|
31
25
|
}
|
|
@@ -33,212 +27,83 @@ function asCallable(cb) {
|
|
|
33
27
|
}
|
|
34
28
|
function createBrowserStorageClient(config, wasmMod) {
|
|
35
29
|
const region = config.region || 'us-east-1';
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const url = `https://${host}/${encodedKey}`;
|
|
45
|
-
const enc = new TextEncoder();
|
|
46
|
-
async function hmac(k, msg) {
|
|
47
|
-
const key = await crypto.subtle.importKey('raw', k, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
|
|
48
|
-
return crypto.subtle.sign('HMAC', key, enc.encode(msg));
|
|
49
|
-
}
|
|
50
|
-
function hex(buf) {
|
|
51
|
-
return Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
52
|
-
}
|
|
53
|
-
async function sha256(data) {
|
|
54
|
-
const buf = typeof data === 'string' ? enc.encode(data) : data;
|
|
55
|
-
return hex(await crypto.subtle.digest('SHA-256', buf));
|
|
56
|
-
}
|
|
57
|
-
const now = new Date();
|
|
58
|
-
const dateStr = now.toISOString().replace(/[:-]|\.\d{3}/g, '').slice(0, 15) + 'Z';
|
|
59
|
-
const shortDate = dateStr.substring(0, 8);
|
|
60
|
-
const emptyHash = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
|
|
61
|
-
const payloadHash = opts.body ? await sha256(opts.body) : emptyHash;
|
|
62
|
-
const headers = {
|
|
63
|
-
'host': host,
|
|
64
|
-
'x-amz-content-sha256': payloadHash,
|
|
65
|
-
'x-amz-date': dateStr,
|
|
66
|
-
};
|
|
67
|
-
if (sessionToken) {
|
|
68
|
-
headers['x-amz-security-token'] = sessionToken;
|
|
69
|
-
}
|
|
70
|
-
if (opts.range) {
|
|
71
|
-
headers['range'] = opts.range;
|
|
72
|
-
}
|
|
73
|
-
const signedHeaderNames = Object.keys(headers).sort().join(';');
|
|
74
|
-
const canonicalHeaders = Object.keys(headers).sort()
|
|
75
|
-
.map(k => `${k}:${headers[k]}\n`).join('');
|
|
76
|
-
const canonicalRequest = [
|
|
77
|
-
method,
|
|
78
|
-
'/' + encodedKey,
|
|
79
|
-
'', // no query string
|
|
80
|
-
canonicalHeaders,
|
|
81
|
-
signedHeaderNames,
|
|
82
|
-
payloadHash,
|
|
83
|
-
].join('\n');
|
|
84
|
-
const scope = `${shortDate}/${region}/s3/aws4_request`;
|
|
85
|
-
const stringToSign = [
|
|
86
|
-
'AWS4-HMAC-SHA256',
|
|
87
|
-
dateStr,
|
|
88
|
-
scope,
|
|
89
|
-
await sha256(canonicalRequest),
|
|
90
|
-
].join('\n');
|
|
91
|
-
const seedKey = enc.encode('AWS4' + secretAccessKey);
|
|
92
|
-
let signingKey = await hmac(seedKey.buffer.slice(seedKey.byteOffset, seedKey.byteOffset + seedKey.byteLength), shortDate);
|
|
93
|
-
signingKey = await hmac(signingKey, region);
|
|
94
|
-
signingKey = await hmac(signingKey, 's3');
|
|
95
|
-
signingKey = await hmac(signingKey, 'aws4_request');
|
|
96
|
-
const signature = hex(await crypto.subtle.sign('HMAC', await crypto.subtle.importKey('raw', signingKey, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']), enc.encode(stringToSign)));
|
|
97
|
-
const authHeader = `AWS4-HMAC-SHA256 Credential=${accessKeyId}/${scope}, SignedHeaders=${signedHeaderNames}, Signature=${signature}`;
|
|
98
|
-
const fetchHeaders = {
|
|
99
|
-
...headers,
|
|
100
|
-
'Authorization': authHeader,
|
|
101
|
-
};
|
|
102
|
-
delete fetchHeaders['host']; // browser sets Host automatically
|
|
103
|
-
const fetchOpts = { method, headers: fetchHeaders };
|
|
104
|
-
if (opts.body) {
|
|
105
|
-
fetchOpts.body = opts.body;
|
|
106
|
-
}
|
|
107
|
-
return fetch(url, fetchOpts);
|
|
108
|
-
}
|
|
30
|
+
const s3 = new S3Client({
|
|
31
|
+
region,
|
|
32
|
+
credentials: {
|
|
33
|
+
accessKeyId: config.aws_access_key_id.trim(),
|
|
34
|
+
secretAccessKey: config.aws_secret_access_key.trim(),
|
|
35
|
+
...(config.aws_session_token ? { sessionToken: config.aws_session_token.trim() } : {}),
|
|
36
|
+
},
|
|
37
|
+
});
|
|
109
38
|
const client = {
|
|
110
39
|
download(url, range, index, _callback) {
|
|
111
40
|
const callback = asCallable(_callback);
|
|
112
41
|
const { bucket, key } = parseS3Url(url);
|
|
113
|
-
// C++ passes range as "bytes=0-32767" (already includes "bytes=" prefix)
|
|
114
42
|
const rangeHeader = range && range.length > 0 ? range : undefined;
|
|
115
|
-
|
|
43
|
+
s3.send(new GetObjectCommand({
|
|
44
|
+
Bucket: bucket,
|
|
45
|
+
Key: key,
|
|
46
|
+
...(rangeHeader ? { Range: rangeHeader } : {}),
|
|
47
|
+
}))
|
|
116
48
|
.then(async (resp) => {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const data = await resp.arrayBuffer();
|
|
122
|
-
if (wasmMod?.provideResponseBuffer) {
|
|
123
|
-
const buf = wasmMod.provideResponseBuffer(index, data.byteLength);
|
|
124
|
-
buf.set(new Uint8Array(data));
|
|
49
|
+
const bytes = await resp.Body?.transformToByteArray();
|
|
50
|
+
if (bytes && wasmMod?.provideResponseBuffer) {
|
|
51
|
+
const buf = wasmMod.provideResponseBuffer(index, bytes.byteLength);
|
|
52
|
+
buf.set(bytes);
|
|
125
53
|
}
|
|
126
|
-
callback({ responseCode: resp.
|
|
54
|
+
callback({ responseCode: resp.$metadata.httpStatusCode ?? 200 });
|
|
127
55
|
})
|
|
128
|
-
.catch(() =>
|
|
56
|
+
.catch((err) => {
|
|
57
|
+
const code = err.$metadata?.httpStatusCode ?? 1000;
|
|
58
|
+
console.error(`[deeplake-storage] download ${bucket}/${key} failed:`, err.message ?? err);
|
|
59
|
+
callback({ responseCode: code });
|
|
60
|
+
});
|
|
129
61
|
},
|
|
130
62
|
exists(url, _callback) {
|
|
131
63
|
const callback = asCallable(_callback);
|
|
132
64
|
const { bucket, key } = parseS3Url(url);
|
|
133
|
-
|
|
134
|
-
.then((resp) =>
|
|
135
|
-
if (!resp.ok) {
|
|
136
|
-
callback(-1);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
const len = parseInt(resp.headers.get('content-length') || '0', 10);
|
|
140
|
-
callback(len);
|
|
141
|
-
})
|
|
65
|
+
s3.send(new HeadObjectCommand({ Bucket: bucket, Key: key }))
|
|
66
|
+
.then((resp) => callback(resp.ContentLength ?? 0))
|
|
142
67
|
.catch(() => callback(-1));
|
|
143
68
|
},
|
|
144
69
|
metadata(root, path, _callback) {
|
|
145
70
|
const callback = asCallable(_callback);
|
|
146
71
|
const { bucket, key } = parseS3Url(root + path);
|
|
147
|
-
|
|
72
|
+
s3.send(new HeadObjectCommand({ Bucket: bucket, Key: key }))
|
|
148
73
|
.then((resp) => {
|
|
149
|
-
if (!resp.ok) {
|
|
150
|
-
callback({ responseCode: resp.status });
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
const lastModified = new Date(resp.headers.get('last-modified') || '');
|
|
154
|
-
const size = parseInt(resp.headers.get('content-length') || '0', 10);
|
|
155
|
-
const etag = resp.headers.get('etag') || '';
|
|
156
74
|
callback({
|
|
157
75
|
responseCode: 200,
|
|
158
76
|
data: {
|
|
159
77
|
path: root + path,
|
|
160
|
-
size,
|
|
161
|
-
lastModified,
|
|
162
|
-
etag,
|
|
78
|
+
size: resp.ContentLength ?? 0,
|
|
79
|
+
lastModified: resp.LastModified ?? new Date(),
|
|
80
|
+
etag: (resp.ETag ?? '').replace(/"/g, ''),
|
|
163
81
|
},
|
|
164
82
|
});
|
|
165
83
|
})
|
|
166
|
-
.catch(() =>
|
|
84
|
+
.catch((err) => {
|
|
85
|
+
callback({ responseCode: err.$metadata?.httpStatusCode ?? 1000 });
|
|
86
|
+
});
|
|
167
87
|
},
|
|
168
88
|
list(root, prefix, _delimiter, _callback) {
|
|
169
89
|
const callback = asCallable(_callback);
|
|
170
90
|
const { bucket } = parseS3Url(root);
|
|
171
|
-
|
|
172
|
-
const rootKey = root.replace(/^[^/]+\//, ''); // strip bucket name
|
|
91
|
+
const rootKey = root.replace(/^[^/]+\//, '');
|
|
173
92
|
const fullPrefix = rootKey + prefix;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
'x-amz-date': dateStr,
|
|
189
|
-
};
|
|
190
|
-
if (sessionToken)
|
|
191
|
-
headers['x-amz-security-token'] = sessionToken;
|
|
192
|
-
const signedHeaderNames = Object.keys(headers).sort().join(';');
|
|
193
|
-
const canonicalHeaders = Object.keys(headers).sort().map(k => `${k}:${headers[k]}\n`).join('');
|
|
194
|
-
const queryString = `list-type=2&prefix=${encodeURIComponent(fullPrefix)}`;
|
|
195
|
-
async function hmacSign(k, msg) {
|
|
196
|
-
const key = await crypto.subtle.importKey('raw', k, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
|
|
197
|
-
return crypto.subtle.sign('HMAC', key, enc.encode(msg));
|
|
198
|
-
}
|
|
199
|
-
function hex(buf) {
|
|
200
|
-
return Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
201
|
-
}
|
|
202
|
-
async function sha256str(s) {
|
|
203
|
-
return hex(await crypto.subtle.digest('SHA-256', enc.encode(s)));
|
|
204
|
-
}
|
|
205
|
-
const canonicalRequest = ['GET', '/', queryString, canonicalHeaders, signedHeaderNames, emptyHash].join('\n');
|
|
206
|
-
const scope = `${shortDate}/${region}/s3/aws4_request`;
|
|
207
|
-
const stringToSign = ['AWS4-HMAC-SHA256', dateStr, scope, await sha256str(canonicalRequest)].join('\n');
|
|
208
|
-
const seedKey = enc.encode('AWS4' + secretAccessKey);
|
|
209
|
-
let sigKey = await hmacSign(seedKey.buffer.slice(seedKey.byteOffset, seedKey.byteOffset + seedKey.byteLength), shortDate);
|
|
210
|
-
sigKey = await hmacSign(sigKey, region);
|
|
211
|
-
sigKey = await hmacSign(sigKey, 's3');
|
|
212
|
-
sigKey = await hmacSign(sigKey, 'aws4_request');
|
|
213
|
-
const signature = hex(await crypto.subtle.sign('HMAC', await crypto.subtle.importKey('raw', sigKey, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']), enc.encode(stringToSign)));
|
|
214
|
-
const authHeader = `AWS4-HMAC-SHA256 Credential=${accessKeyId}/${scope}, SignedHeaders=${signedHeaderNames}, Signature=${signature}`;
|
|
215
|
-
const fetchHeaders = { ...headers, 'Authorization': authHeader };
|
|
216
|
-
delete fetchHeaders['host'];
|
|
217
|
-
const resp = await fetch(listUrl, { headers: fetchHeaders });
|
|
218
|
-
if (!resp.ok) {
|
|
219
|
-
callback({ responseCode: resp.status, data: [] });
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const xml = await resp.text();
|
|
223
|
-
// Parse XML response for <Key>, <Size>, <LastModified>, <ETag>
|
|
224
|
-
const entries = [];
|
|
225
|
-
const regex = /<Contents>[\s\S]*?<Key>(.*?)<\/Key>[\s\S]*?<LastModified>(.*?)<\/LastModified>[\s\S]*?<ETag>(.*?)<\/ETag>[\s\S]*?<Size>(.*?)<\/Size>[\s\S]*?<\/Contents>/g;
|
|
226
|
-
let match;
|
|
227
|
-
while ((match = regex.exec(xml)) !== null) {
|
|
228
|
-
const key = match[1].replace(rootKey, ''); // make relative to root
|
|
229
|
-
entries.push({
|
|
230
|
-
path: key,
|
|
231
|
-
size: parseInt(match[4], 10),
|
|
232
|
-
lastModified: new Date(match[2]),
|
|
233
|
-
etag: match[3].replace(/"/g, ''),
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
callback({ responseCode: 200, data: entries });
|
|
237
|
-
}
|
|
238
|
-
catch {
|
|
239
|
-
callback({ responseCode: 1000, data: [] });
|
|
240
|
-
}
|
|
241
|
-
})();
|
|
93
|
+
s3.send(new ListObjectsV2Command({ Bucket: bucket, Prefix: fullPrefix }))
|
|
94
|
+
.then((resp) => {
|
|
95
|
+
const entries = (resp.Contents ?? []).map((item) => ({
|
|
96
|
+
path: (item.Key ?? '').replace(rootKey, ''),
|
|
97
|
+
size: item.Size ?? 0,
|
|
98
|
+
lastModified: item.LastModified ?? new Date(),
|
|
99
|
+
etag: (item.ETag ?? '').replace(/"/g, ''),
|
|
100
|
+
}));
|
|
101
|
+
callback({ responseCode: 200, data: entries });
|
|
102
|
+
})
|
|
103
|
+
.catch((err) => {
|
|
104
|
+
console.error(`[deeplake-storage] list ${bucket}/${fullPrefix} failed:`, err.message ?? err);
|
|
105
|
+
callback({ responseCode: err.$metadata?.httpStatusCode ?? 1000, data: [] });
|
|
106
|
+
});
|
|
242
107
|
},
|
|
243
108
|
listDirs(root, prefix, _callback) {
|
|
244
109
|
const callback = asCallable(_callback);
|
|
@@ -246,21 +111,20 @@ function createBrowserStorageClient(config, wasmMod) {
|
|
|
246
111
|
},
|
|
247
112
|
generateGetPresignedUrl(url, _callback) {
|
|
248
113
|
const callback = asCallable(_callback);
|
|
249
|
-
// Return the URL as-is for now
|
|
250
114
|
callback(url);
|
|
251
115
|
},
|
|
252
116
|
remove(url, _callback) {
|
|
253
117
|
const callback = asCallable(_callback);
|
|
254
118
|
const { bucket, key } = parseS3Url(url);
|
|
255
|
-
|
|
256
|
-
.then((resp) => callback({ responseCode: resp.
|
|
119
|
+
s3.send(new DeleteObjectCommand({ Bucket: bucket, Key: key }))
|
|
120
|
+
.then((resp) => callback({ responseCode: resp.$metadata.httpStatusCode ?? 200 }))
|
|
257
121
|
.catch(() => callback({ responseCode: 1000 }));
|
|
258
122
|
},
|
|
259
123
|
saveWithCompletion(url, data, _callback) {
|
|
260
124
|
const callback = asCallable(_callback);
|
|
261
125
|
const { bucket, key } = parseS3Url(url);
|
|
262
|
-
|
|
263
|
-
.then((resp) => callback({ responseCode: resp.
|
|
126
|
+
s3.send(new PutObjectCommand({ Bucket: bucket, Key: key, Body: data }))
|
|
127
|
+
.then((resp) => callback({ responseCode: resp.$metadata.httpStatusCode ?? 200 }))
|
|
264
128
|
.catch(() => callback({ responseCode: 1000 }));
|
|
265
129
|
},
|
|
266
130
|
copyGetter() {
|
|
@@ -279,9 +143,6 @@ export function createBrowserStorageFactory(wasmMod) {
|
|
|
279
143
|
return function factory(type, config, _mode) {
|
|
280
144
|
if (!config)
|
|
281
145
|
return undefined;
|
|
282
|
-
// Config can come in two shapes:
|
|
283
|
-
// 1. { credentials: { accessKeyId, secretAccessKey, sessionToken }, region, ... }
|
|
284
|
-
// 2. { aws_access_key_id, aws_secret_access_key, aws_session_token, region, ... }
|
|
285
146
|
const creds = config.credentials || config;
|
|
286
147
|
const storageConfig = {
|
|
287
148
|
aws_access_key_id: creds.accessKeyId || creds.aws_access_key_id || config.aws_access_key_id || '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/browser/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/browser/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deeplake",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "DeepLake database SDK for Node.js and browsers",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -37,8 +37,10 @@
|
|
|
37
37
|
"engines": {
|
|
38
38
|
"node": ">=18.0.0"
|
|
39
39
|
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@aws-sdk/client-s3": "^3.1000.0"
|
|
42
|
+
},
|
|
40
43
|
"optionalDependencies": {
|
|
41
|
-
"@aws-sdk/client-s3": "^3.1000.0",
|
|
42
44
|
"@aws-sdk/s3-request-presigner": "^3.1000.0",
|
|
43
45
|
"pg": "^8.11.0",
|
|
44
46
|
"sharp": "^0.34.5"
|