@bsv/sdk 1.6.25 → 1.7.0
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/cjs/package.json +1 -1
- package/dist/cjs/src/identity/ContactsManager.js +50 -14
- package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
- package/dist/cjs/src/storage/StorageDownloader.js +24 -10
- package/dist/cjs/src/storage/StorageDownloader.js.map +1 -1
- package/dist/cjs/src/storage/StorageUploader.js +5 -4
- package/dist/cjs/src/storage/StorageUploader.js.map +1 -1
- package/dist/cjs/src/storage/StorageUtils.js +11 -3
- package/dist/cjs/src/storage/StorageUtils.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/identity/ContactsManager.js +48 -14
- package/dist/esm/src/identity/ContactsManager.js.map +1 -1
- package/dist/esm/src/storage/StorageDownloader.js +24 -10
- package/dist/esm/src/storage/StorageDownloader.js.map +1 -1
- package/dist/esm/src/storage/StorageUploader.js +5 -4
- package/dist/esm/src/storage/StorageUploader.js.map +1 -1
- package/dist/esm/src/storage/StorageUtils.js +11 -3
- package/dist/esm/src/storage/StorageUtils.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/identity/ContactsManager.d.ts +2 -0
- package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
- package/dist/types/src/storage/StorageDownloader.d.ts +1 -1
- package/dist/types/src/storage/StorageDownloader.d.ts.map +1 -1
- package/dist/types/src/storage/StorageUploader.d.ts +1 -1
- package/dist/types/src/storage/StorageUploader.d.ts.map +1 -1
- package/dist/types/src/storage/StorageUtils.d.ts +3 -2
- package/dist/types/src/storage/StorageUtils.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +3 -3
- package/dist/umd/bundle.js.map +1 -1
- package/docs/reference/storage.md +12 -5
- package/docs/tutorials/uhrp-storage.md +6 -6
- package/package.json +1 -1
- package/src/identity/ContactsManager.ts +54 -14
- package/src/identity/__tests/IdentityClient.test.ts +119 -85
- package/src/storage/StorageDownloader.ts +28 -12
- package/src/storage/StorageUploader.ts +6 -5
- package/src/storage/StorageUtils.ts +12 -4
- package/src/storage/__tests/StorageDownloader.test.ts +34 -2
- package/src/storage/__tests/StorageUploader.test.ts +20 -0
package/dist/cjs/package.json
CHANGED
|
@@ -6,10 +6,28 @@ const index_js_2 = require("../primitives/index.js");
|
|
|
6
6
|
const index_js_3 = require("../script/index.js");
|
|
7
7
|
const index_js_4 = require("../transaction/index.js");
|
|
8
8
|
const CONTACT_PROTOCOL_ID = [2, 'contact'];
|
|
9
|
-
//
|
|
10
|
-
|
|
9
|
+
// In-memory cache for cross-platform compatibility
|
|
10
|
+
class MemoryCache {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.cache = new Map();
|
|
13
|
+
}
|
|
14
|
+
getItem(key) {
|
|
15
|
+
return this.cache.get(key) ?? null;
|
|
16
|
+
}
|
|
17
|
+
setItem(key, value) {
|
|
18
|
+
this.cache.set(key, value);
|
|
19
|
+
}
|
|
20
|
+
removeItem(key) {
|
|
21
|
+
this.cache.delete(key);
|
|
22
|
+
}
|
|
23
|
+
clear() {
|
|
24
|
+
this.cache.clear();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
11
27
|
class ContactsManager {
|
|
12
28
|
constructor(wallet) {
|
|
29
|
+
this.cache = new MemoryCache();
|
|
30
|
+
this.CONTACTS_CACHE_KEY = 'metanet-contacts';
|
|
13
31
|
this.wallet = wallet ?? new index_js_1.WalletClient();
|
|
14
32
|
}
|
|
15
33
|
/**
|
|
@@ -19,9 +37,9 @@ class ContactsManager {
|
|
|
19
37
|
* @returns A promise that resolves with an array of contacts
|
|
20
38
|
*/
|
|
21
39
|
async getContacts(identityKey, forceRefresh = false) {
|
|
22
|
-
// Check
|
|
40
|
+
// Check in-memory cache first unless forcing refresh
|
|
23
41
|
if (!forceRefresh) {
|
|
24
|
-
const cached =
|
|
42
|
+
const cached = this.cache.getItem(this.CONTACTS_CACHE_KEY);
|
|
25
43
|
if (cached != null && cached !== '') {
|
|
26
44
|
try {
|
|
27
45
|
const cachedContacts = JSON.parse(cached);
|
|
@@ -49,10 +67,11 @@ class ContactsManager {
|
|
|
49
67
|
const outputs = await this.wallet.listOutputs({
|
|
50
68
|
basket: 'contacts',
|
|
51
69
|
include: 'entire transactions',
|
|
70
|
+
includeCustomInstructions: true,
|
|
52
71
|
tags
|
|
53
72
|
});
|
|
54
73
|
if (outputs.outputs == null || outputs.outputs.length === 0) {
|
|
55
|
-
|
|
74
|
+
this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify([]));
|
|
56
75
|
return [];
|
|
57
76
|
}
|
|
58
77
|
const contacts = [];
|
|
@@ -84,7 +103,7 @@ class ContactsManager {
|
|
|
84
103
|
}
|
|
85
104
|
}
|
|
86
105
|
// Cache the loaded contacts
|
|
87
|
-
|
|
106
|
+
this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(contacts));
|
|
88
107
|
const filteredContacts = identityKey != null
|
|
89
108
|
? contacts.filter(c => c.identityKey === identityKey)
|
|
90
109
|
: contacts;
|
|
@@ -96,9 +115,16 @@ class ContactsManager {
|
|
|
96
115
|
* @param metadata Optional metadata to store with the contact (ex. notes, aliases, etc)
|
|
97
116
|
*/
|
|
98
117
|
async saveContact(contact, metadata) {
|
|
99
|
-
//
|
|
100
|
-
const cached =
|
|
101
|
-
|
|
118
|
+
// Get current contacts from cache or blockchain
|
|
119
|
+
const cached = this.cache.getItem(this.CONTACTS_CACHE_KEY);
|
|
120
|
+
let contacts;
|
|
121
|
+
if (cached != null && cached !== '') {
|
|
122
|
+
contacts = JSON.parse(cached);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// If cache is empty, get current data from blockchain
|
|
126
|
+
contacts = await this.getContacts();
|
|
127
|
+
}
|
|
102
128
|
const existingIndex = contacts.findIndex(c => c.identityKey === contact.identityKey);
|
|
103
129
|
const contactToStore = {
|
|
104
130
|
...contact,
|
|
@@ -110,7 +136,6 @@ class ContactsManager {
|
|
|
110
136
|
else {
|
|
111
137
|
contacts.push(contactToStore);
|
|
112
138
|
}
|
|
113
|
-
localStorage.setItem(CONTACTS_CACHE_KEY, JSON.stringify(contacts));
|
|
114
139
|
const { hmac: hashedIdentityKey } = await this.wallet.createHmac({
|
|
115
140
|
protocolID: CONTACT_PROTOCOL_ID,
|
|
116
141
|
keyID: contact.identityKey,
|
|
@@ -218,29 +243,40 @@ class ContactsManager {
|
|
|
218
243
|
if (tx == null)
|
|
219
244
|
throw new Error('Failed to create contact output');
|
|
220
245
|
}
|
|
246
|
+
this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(contacts));
|
|
221
247
|
}
|
|
222
248
|
/**
|
|
223
249
|
* Remove a contact from the contacts basket
|
|
224
250
|
* @param identityKey The identity key of the contact to remove
|
|
225
251
|
*/
|
|
226
252
|
async removeContact(identityKey) {
|
|
227
|
-
// Update
|
|
228
|
-
const cached =
|
|
253
|
+
// Update in-memory cache
|
|
254
|
+
const cached = this.cache.getItem(this.CONTACTS_CACHE_KEY);
|
|
229
255
|
if (cached != null && cached !== '') {
|
|
230
256
|
try {
|
|
231
257
|
const contacts = JSON.parse(cached);
|
|
232
258
|
const filteredContacts = contacts.filter(c => c.identityKey !== identityKey);
|
|
233
|
-
|
|
259
|
+
this.cache.setItem(this.CONTACTS_CACHE_KEY, JSON.stringify(filteredContacts));
|
|
234
260
|
}
|
|
235
261
|
catch (e) {
|
|
236
262
|
console.warn('Failed to update cache after contact removal:', e);
|
|
237
263
|
}
|
|
238
264
|
}
|
|
265
|
+
// Hash the identity key to use as a tag for quick lookup
|
|
266
|
+
const tags = [];
|
|
267
|
+
const { hmac: hashedIdentityKey } = await this.wallet.createHmac({
|
|
268
|
+
protocolID: CONTACT_PROTOCOL_ID,
|
|
269
|
+
keyID: identityKey,
|
|
270
|
+
counterparty: 'self',
|
|
271
|
+
data: index_js_2.Utils.toArray(identityKey, 'utf8')
|
|
272
|
+
});
|
|
273
|
+
tags.push(`identityKey ${index_js_2.Utils.toHex(hashedIdentityKey)}`);
|
|
239
274
|
// Find and spend the contact's output
|
|
240
275
|
const outputs = await this.wallet.listOutputs({
|
|
241
276
|
basket: 'contacts',
|
|
242
277
|
include: 'entire transactions',
|
|
243
|
-
includeCustomInstructions: true
|
|
278
|
+
includeCustomInstructions: true,
|
|
279
|
+
tags
|
|
244
280
|
});
|
|
245
281
|
if (outputs.outputs == null)
|
|
246
282
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContactsManager.js","sourceRoot":"","sources":["../../../../src/identity/ContactsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContactsManager.js","sourceRoot":"","sources":["../../../../src/identity/ContactsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ class StorageDownloader {
|
|
|
49
49
|
throw new Error('Invalid parameter UHRP url');
|
|
50
50
|
}
|
|
51
51
|
const hash = index_js_2.StorageUtils.getHashFromURL(uhrpUrl);
|
|
52
|
+
const expected = index_js_3.Utils.toHex(hash);
|
|
52
53
|
const downloadURLs = await this.resolve(uhrpUrl);
|
|
53
54
|
if (!Array.isArray(downloadURLs) || downloadURLs.length === 0) {
|
|
54
55
|
throw new Error('No one currently hosts this file!');
|
|
@@ -58,20 +59,33 @@ class StorageDownloader {
|
|
|
58
59
|
// The url is fetched
|
|
59
60
|
const result = await fetch(downloadURLs[i], { method: 'GET' });
|
|
60
61
|
// If the request fails, continue to the next url
|
|
61
|
-
if (!result.ok || result.status >= 400) {
|
|
62
|
+
if (!result.ok || result.status >= 400 || result.body == null) {
|
|
62
63
|
continue;
|
|
63
64
|
}
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
const reader = result.body.getReader();
|
|
66
|
+
const hashStream = new index_js_3.Hash.SHA256();
|
|
67
|
+
const chunks = [];
|
|
68
|
+
let totalLength = 0;
|
|
69
|
+
while (true) {
|
|
70
|
+
const { done, value } = await reader.read();
|
|
71
|
+
if (done)
|
|
72
|
+
break;
|
|
73
|
+
hashStream.update(Array.from(value));
|
|
74
|
+
chunks.push(value);
|
|
75
|
+
totalLength += value.length;
|
|
76
|
+
}
|
|
77
|
+
const digest = index_js_3.Utils.toHex(hashStream.digest());
|
|
78
|
+
if (digest !== expected) {
|
|
79
|
+
throw new Error('Data integrity error: value of content does not match hash of the url given');
|
|
80
|
+
}
|
|
81
|
+
const data = new Uint8Array(totalLength);
|
|
82
|
+
let offset = 0;
|
|
83
|
+
for (const chunk of chunks) {
|
|
84
|
+
data.set(chunk, offset);
|
|
85
|
+
offset += chunk.length;
|
|
72
86
|
}
|
|
73
87
|
return {
|
|
74
|
-
data
|
|
88
|
+
data,
|
|
75
89
|
mimeType: result.headers.get('Content-Type')
|
|
76
90
|
};
|
|
77
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageDownloader.js","sourceRoot":"","sources":["../../../../src/storage/StorageDownloader.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0D;AAC1D,yCAAyC;AACzC,kFAAsD;AACtD,mFAAuD;AACvD,qDAAoD;AAWpD,MAAa,iBAAiB;IAG5B,YAAa,MAAyB;QAFrB,kBAAa,GAAqC,SAAS,CAAA;QAG1E,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE,aAAa,CAAA;IAC5C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAE,OAAe;QACnC,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,yBAAc,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QACvF,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QACD,MAAM,cAAc,GAAa,EAAE,CAAA;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,EAAE,GAAG,wBAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAA;YAE7F,MAAM,UAAU,GAAG,IAAI,gBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;YAC9D,IAAI,UAAU,GAAG,WAAW,EAAE;gBAC5B,SAAQ;aACT;YAED,cAAc,CAAC,IAAI,CAAC,gBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7C;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAE,OAAe;QACpC,IAAI,CAAC,uBAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;QACD,MAAM,IAAI,GAAG,uBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEhD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACrD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI;gBACF,qBAAqB;gBACrB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;gBAE9D,iDAAiD;gBACjD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"StorageDownloader.js","sourceRoot":"","sources":["../../../../src/storage/StorageDownloader.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0D;AAC1D,yCAAyC;AACzC,kFAAsD;AACtD,mFAAuD;AACvD,qDAAoD;AAWpD,MAAa,iBAAiB;IAG5B,YAAa,MAAyB;QAFrB,kBAAa,GAAqC,SAAS,CAAA;QAG1E,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE,aAAa,CAAA;IAC5C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAE,OAAe;QACnC,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,yBAAc,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QACvF,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;SACxD;QACD,MAAM,cAAc,GAAa,EAAE,CAAA;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,EAAE,GAAG,wBAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,CAAA;YAE7F,MAAM,UAAU,GAAG,IAAI,gBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;YAC9D,IAAI,UAAU,GAAG,WAAW,EAAE;gBAC5B,SAAQ;aACT;YAED,cAAc,CAAC,IAAI,CAAC,gBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7C;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAE,OAAe;QACpC,IAAI,CAAC,uBAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;SAC9C;QACD,MAAM,IAAI,GAAG,uBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,gBAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEhD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACrD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI;gBACF,qBAAqB;gBACrB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;gBAE9D,iDAAiD;gBACjD,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;oBAC7D,SAAQ;iBACT;gBAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;gBACtC,MAAM,UAAU,GAAG,IAAI,eAAI,CAAC,MAAM,EAAE,CAAA;gBACpC,MAAM,MAAM,GAAiB,EAAE,CAAA;gBAC/B,IAAI,WAAW,GAAG,CAAC,CAAA;gBAEnB,OAAO,IAAI,EAAE;oBACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC3C,IAAI,IAAI;wBAAE,MAAK;oBACf,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;oBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAClB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;iBAC5B;gBAED,MAAM,MAAM,GAAG,gBAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC/C,IAAI,MAAM,KAAK,QAAQ,EAAE;oBACvB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;iBAC/F;gBAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAA;gBACxC,IAAI,MAAM,GAAG,CAAC,CAAA;gBACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;oBACvB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;iBACvB;gBAED,OAAO;oBACL,IAAI;oBACJ,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;iBAC7C,CAAA;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,SAAQ;aACT;SACF;QACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;CACF;AAjGD,8CAiGC"}
|
|
@@ -81,7 +81,7 @@ class StorageUploader {
|
|
|
81
81
|
* @throws {Error} If the server returns a non-OK response
|
|
82
82
|
*/
|
|
83
83
|
async uploadFile(uploadURL, file, requiredHeaders) {
|
|
84
|
-
const body = Uint8Array.from(file.data);
|
|
84
|
+
const body = file.data instanceof Uint8Array ? file.data : Uint8Array.from(file.data);
|
|
85
85
|
const response = await fetch(uploadURL, {
|
|
86
86
|
method: 'PUT',
|
|
87
87
|
body,
|
|
@@ -93,7 +93,7 @@ class StorageUploader {
|
|
|
93
93
|
if (!response.ok) {
|
|
94
94
|
throw new Error(`File upload failed: HTTP ${response.status}`);
|
|
95
95
|
}
|
|
96
|
-
const uhrpURL =
|
|
96
|
+
const uhrpURL = StorageUtils.getURLForFile(body);
|
|
97
97
|
return {
|
|
98
98
|
published: true,
|
|
99
99
|
uhrpURL
|
|
@@ -115,9 +115,10 @@ class StorageUploader {
|
|
|
115
115
|
*/
|
|
116
116
|
async publishFile(params) {
|
|
117
117
|
const { file, retentionPeriod } = params;
|
|
118
|
-
const
|
|
118
|
+
const data = file.data instanceof Uint8Array ? file.data : Uint8Array.from(file.data);
|
|
119
|
+
const fileSize = data.byteLength;
|
|
119
120
|
const { uploadURL, requiredHeaders } = await this.getUploadInfo(fileSize, retentionPeriod);
|
|
120
|
-
return await this.uploadFile(uploadURL, file, requiredHeaders);
|
|
121
|
+
return await this.uploadFile(uploadURL, { data, type: file.type }, requiredHeaders);
|
|
121
122
|
}
|
|
122
123
|
/**
|
|
123
124
|
* Retrieves metadata for a file matching the given UHRP URL from the `/find` route.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageUploader.js","sourceRoot":"","sources":["../../../../src/storage/StorageUploader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAwD;AAExD,gEAAiD;AA+BjD;;;;;;GAMG;AACH,MAAa,eAAe;IAI1B;;;OAGG;IACH,YAAa,MAAsB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,aAAa,CACzB,QAAgB,EAChB,eAAuB;QAMvB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,SAAS,CAAA;QACpC,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;SACvE;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAK/B,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,UAAU,CACtB,SAAiB,EACjB,IAAoB,EACpB,eAAuC;QAEvC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"StorageUploader.js","sourceRoot":"","sources":["../../../../src/storage/StorageUploader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidURL = exports.getHashFromURL = exports.getURLForFile = exports.getURLForHash = exports.normalizeURL = void 0;
|
|
4
|
-
const Hash_js_1 = require("../primitives/Hash.js");
|
|
5
4
|
const utils_js_1 = require("../primitives/utils.js");
|
|
5
|
+
const index_js_1 = require("../primitives/index.js");
|
|
6
6
|
/**
|
|
7
7
|
* Takes a UHRP URL and removes any prefixes.
|
|
8
8
|
* @param {string} URL - The UHRP URL.
|
|
@@ -30,11 +30,19 @@ const getURLForHash = (hash) => {
|
|
|
30
30
|
exports.getURLForHash = getURLForHash;
|
|
31
31
|
/**
|
|
32
32
|
* Generates a UHRP URL for a given file.
|
|
33
|
-
*
|
|
33
|
+
* Uses a streaming hash to avoid excessive memory usage with large files.
|
|
34
|
+
* @param {Uint8Array | number[]} file - File content as a typed array or number array.
|
|
34
35
|
* @returns {string} - Base58Check encoded URL.
|
|
35
36
|
*/
|
|
36
37
|
const getURLForFile = (file) => {
|
|
37
|
-
const
|
|
38
|
+
const data = file instanceof Uint8Array ? file : Uint8Array.from(file);
|
|
39
|
+
const hasher = new index_js_1.Hash.SHA256();
|
|
40
|
+
const chunkSize = 1024 * 1024;
|
|
41
|
+
for (let i = 0; i < data.length; i += chunkSize) {
|
|
42
|
+
const chunk = data.subarray(i, i + chunkSize);
|
|
43
|
+
hasher.update(Array.from(chunk));
|
|
44
|
+
}
|
|
45
|
+
const hash = hasher.digest();
|
|
38
46
|
return (0, exports.getURLForHash)(hash);
|
|
39
47
|
};
|
|
40
48
|
exports.getURLForFile = getURLForFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageUtils.js","sourceRoot":"","sources":["../../../../src/storage/StorageUtils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"StorageUtils.js","sourceRoot":"","sources":["../../../../src/storage/StorageUtils.ts"],"names":[],"mappings":";;;AAAA,qDAAuF;AACvF,qDAA6C;AAE7C;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IAClD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5C,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB;AAED;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,IAAc,EAAU,EAAE;IACtD,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;KACzD;IACD,OAAO,IAAA,wBAAa,EAAC,IAAI,EAAE,IAAA,kBAAO,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAED;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAAC,IAA2B,EAAU,EAAE;IACnE,MAAM,IAAI,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,IAAI,eAAI,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;KACjC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAC5B,OAAO,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAA;AAVY,QAAA,aAAa,iBAUzB;AAED;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,GAAW,EAAY,EAAE;IACtD,GAAG,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAA;IACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;KACnC;IACD,IAAI,IAAA,gBAAK,EAAC,MAAkB,CAAC,KAAK,MAAM,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;KAC9B;IACD,OAAO,IAAgB,CAAA;AACzB,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAED;;;;GAIG;AACI,MAAM,UAAU,GAAG,CAAC,GAAW,EAAW,EAAE;IACjD,IAAI;QACF,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB"}
|