@ownables/platform-browser 0.1.0 → 0.3.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.
Files changed (105) hide show
  1. package/dist/core/src/index.d.ts +19 -0
  2. package/dist/core/src/index.d.ts.map +1 -0
  3. package/dist/core/src/index.js +18 -0
  4. package/dist/core/src/index.js.map +1 -0
  5. package/dist/core/src/interfaces/core.d.ts +49 -0
  6. package/dist/core/src/interfaces/core.d.ts.map +1 -0
  7. package/dist/core/src/interfaces/core.js +2 -0
  8. package/dist/core/src/interfaces/core.js.map +1 -0
  9. package/dist/core/src/logger.d.ts +3 -0
  10. package/dist/core/src/logger.d.ts.map +1 -0
  11. package/dist/core/src/logger.js +2 -0
  12. package/dist/core/src/logger.js.map +1 -0
  13. package/dist/core/src/progress.d.ts +3 -0
  14. package/dist/core/src/progress.d.ts.map +1 -0
  15. package/dist/core/src/progress.js +8 -0
  16. package/dist/core/src/progress.js.map +1 -0
  17. package/dist/core/src/services/EventChain.service.d.ts +45 -0
  18. package/dist/core/src/services/EventChain.service.d.ts.map +1 -0
  19. package/dist/core/src/services/EventChain.service.js +112 -0
  20. package/dist/core/src/services/EventChain.service.js.map +1 -0
  21. package/dist/core/src/services/Ownable.service.d.ts +56 -0
  22. package/dist/core/src/services/Ownable.service.d.ts.map +1 -0
  23. package/dist/core/src/services/Ownable.service.js +411 -0
  24. package/dist/core/src/services/Ownable.service.js.map +1 -0
  25. package/dist/core/src/services/Polling.service.d.ts +31 -0
  26. package/dist/core/src/services/Polling.service.d.ts.map +1 -0
  27. package/dist/core/src/services/Polling.service.js +109 -0
  28. package/dist/core/src/services/Polling.service.js.map +1 -0
  29. package/dist/core/src/services/SIWE.service.d.ts +16 -0
  30. package/dist/core/src/services/SIWE.service.d.ts.map +1 -0
  31. package/dist/core/src/services/SIWE.service.js +123 -0
  32. package/dist/core/src/services/SIWE.service.js.map +1 -0
  33. package/dist/core/src/services/StateStoreRecordStore.service.d.ts +13 -0
  34. package/dist/core/src/services/StateStoreRecordStore.service.d.ts.map +1 -0
  35. package/dist/core/src/services/StateStoreRecordStore.service.js +76 -0
  36. package/dist/core/src/services/StateStoreRecordStore.service.js.map +1 -0
  37. package/dist/core/src/types/Authority.d.ts +40 -0
  38. package/dist/core/src/types/Authority.d.ts.map +1 -0
  39. package/dist/core/src/types/Authority.js +2 -0
  40. package/dist/core/src/types/Authority.js.map +1 -0
  41. package/dist/core/src/types/EventChainStore.d.ts +11 -0
  42. package/dist/core/src/types/EventChainStore.d.ts.map +1 -0
  43. package/dist/core/src/types/EventChainStore.js +2 -0
  44. package/dist/core/src/types/EventChainStore.js.map +1 -0
  45. package/dist/core/src/types/MessageInfo.d.ts +19 -0
  46. package/dist/core/src/types/MessageInfo.d.ts.map +1 -0
  47. package/dist/core/src/types/MessageInfo.js +2 -0
  48. package/dist/core/src/types/MessageInfo.js.map +1 -0
  49. package/dist/core/src/types/OwnableRuntime.d.ts +38 -0
  50. package/dist/core/src/types/OwnableRuntime.d.ts.map +1 -0
  51. package/dist/core/src/types/OwnableRuntime.js +2 -0
  52. package/dist/core/src/types/OwnableRuntime.js.map +1 -0
  53. package/dist/core/src/types/Polling.d.ts +14 -0
  54. package/dist/core/src/types/Polling.d.ts.map +1 -0
  55. package/dist/core/src/types/Polling.js +2 -0
  56. package/dist/core/src/types/Polling.js.map +1 -0
  57. package/dist/core/src/types/SIWE.d.ts +30 -0
  58. package/dist/core/src/types/SIWE.d.ts.map +1 -0
  59. package/dist/core/src/types/SIWE.js +2 -0
  60. package/dist/core/src/types/SIWE.js.map +1 -0
  61. package/dist/core/src/types/TypedCosmWasmMsg.d.ts +12 -0
  62. package/dist/core/src/types/TypedCosmWasmMsg.d.ts.map +1 -0
  63. package/dist/core/src/types/TypedCosmWasmMsg.js +2 -0
  64. package/dist/core/src/types/TypedCosmWasmMsg.js.map +1 -0
  65. package/dist/core/src/types/TypedDict.d.ts +4 -0
  66. package/dist/core/src/types/TypedDict.d.ts.map +1 -0
  67. package/dist/core/src/types/TypedDict.js +2 -0
  68. package/dist/core/src/types/TypedDict.js.map +1 -0
  69. package/dist/core/src/types/TypedOwnableInfo.d.ts +34 -0
  70. package/dist/core/src/types/TypedOwnableInfo.d.ts.map +1 -0
  71. package/dist/core/src/types/TypedOwnableInfo.js +2 -0
  72. package/dist/core/src/types/TypedOwnableInfo.js.map +1 -0
  73. package/dist/core/src/types/TypedPackage.d.ts +32 -0
  74. package/dist/core/src/types/TypedPackage.d.ts.map +1 -0
  75. package/dist/core/src/types/TypedPackage.js +2 -0
  76. package/dist/core/src/types/TypedPackage.js.map +1 -0
  77. package/dist/platform-browser/src/index.d.ts +7 -0
  78. package/dist/platform-browser/src/index.d.ts.map +1 -0
  79. package/dist/platform-browser/src/index.js +7 -0
  80. package/dist/platform-browser/src/index.js.map +1 -0
  81. package/dist/platform-browser/src/services/IDB.service.d.ts +29 -0
  82. package/dist/platform-browser/src/services/IDB.service.d.ts.map +1 -0
  83. package/dist/platform-browser/src/services/IDB.service.js +192 -0
  84. package/dist/platform-browser/src/services/IDB.service.js.map +1 -0
  85. package/dist/platform-browser/src/services/LocalStorage.service.d.ts +14 -0
  86. package/dist/platform-browser/src/services/LocalStorage.service.d.ts.map +1 -0
  87. package/dist/platform-browser/src/services/LocalStorage.service.js +57 -0
  88. package/dist/platform-browser/src/services/LocalStorage.service.js.map +1 -0
  89. package/dist/platform-browser/src/services/Package.service.d.ts +48 -0
  90. package/dist/platform-browser/src/services/Package.service.d.ts.map +1 -0
  91. package/dist/platform-browser/src/services/Package.service.js +443 -0
  92. package/dist/platform-browser/src/services/Package.service.js.map +1 -0
  93. package/dist/platform-browser/src/services/Relay.service.d.ts +59 -0
  94. package/dist/platform-browser/src/services/Relay.service.d.ts.map +1 -0
  95. package/dist/platform-browser/src/services/Relay.service.js +289 -0
  96. package/dist/platform-browser/src/services/Relay.service.js.map +1 -0
  97. package/dist/platform-browser/src/services/SessionStorage.service.d.ts +7 -0
  98. package/dist/platform-browser/src/services/SessionStorage.service.d.ts.map +1 -0
  99. package/dist/platform-browser/src/services/SessionStorage.service.js +16 -0
  100. package/dist/platform-browser/src/services/SessionStorage.service.js.map +1 -0
  101. package/dist/platform-browser/src/utils/calculateCid.d.ts +2 -0
  102. package/dist/platform-browser/src/utils/calculateCid.d.ts.map +1 -0
  103. package/dist/platform-browser/src/utils/calculateCid.js +18 -0
  104. package/dist/platform-browser/src/utils/calculateCid.js.map +1 -0
  105. package/package.json +7 -2
@@ -0,0 +1,443 @@
1
+ import JSZip from "jszip";
2
+ import mime from "mime/lite";
3
+ import calculateCid from "../utils/calculateCid";
4
+ import { Buffer } from "buffer";
5
+ import { EventChain } from "eqty-core";
6
+ const getMimeType = (filename) => mime?.getType?.(filename);
7
+ const capabilitiesStaticOwnable = {
8
+ isDynamic: false,
9
+ hasMetadata: false,
10
+ hasWidgetState: false,
11
+ isConsumable: false,
12
+ isConsumer: false,
13
+ isTransferable: false,
14
+ };
15
+ export default class PackageService {
16
+ idb;
17
+ relay;
18
+ localStorage;
19
+ exampleUrl;
20
+ examples;
21
+ calculateCidFn;
22
+ fetchFn;
23
+ fileReaderFactory;
24
+ logger;
25
+ constructor(idb, relay, localStorage, options = {}) {
26
+ this.idb = idb;
27
+ this.relay = relay;
28
+ this.localStorage = localStorage;
29
+ this.exampleUrl = options.exampleUrl;
30
+ this.examples = options.examples ?? [];
31
+ this.calculateCidFn = options.calculateCidFn ?? calculateCid;
32
+ this.fetchFn = options.fetchFn ?? ((input, init) => fetch(input, init));
33
+ this.fileReaderFactory = options.fileReaderFactory ?? (() => new FileReader());
34
+ this.logger = options.logger ?? console;
35
+ }
36
+ list() {
37
+ const local = (this.localStorage.get("packages") || []);
38
+ for (const pkg of local) {
39
+ pkg.versions = pkg.versions.map(({ date, cid }) => ({
40
+ date: new Date(date),
41
+ cid,
42
+ }));
43
+ }
44
+ const set = new Map([...this.examples, ...local].map((pkg) => [pkg.name, pkg])).values();
45
+ return Array.from(set).sort((a, b) => (a.title >= b.title ? 1 : -1));
46
+ }
47
+ info(nameOrCid, uniqueMessageHash) {
48
+ const packages = (this.localStorage.get("packages") ||
49
+ []);
50
+ const found = packages.find((pkg) => (pkg.name === nameOrCid ||
51
+ pkg.versions.some((v) => v.cid === nameOrCid)) &&
52
+ (!uniqueMessageHash ||
53
+ pkg.versions.some((v) => v.uniqueMessageHash === uniqueMessageHash)));
54
+ if (!found)
55
+ throw new Error(`Package not found: ${nameOrCid}`);
56
+ return found;
57
+ }
58
+ storePackageInfo(title, name, description, cid, keywords, capabilities, isNotLocal, uniqueMessageHash) {
59
+ const packages = (this.localStorage.get("packages") ||
60
+ []);
61
+ // Locate the package with matching cid and uniqueMessageHash
62
+ let pkg = packages.find((pkg) => pkg.name === name &&
63
+ pkg.cid === cid &&
64
+ pkg.uniqueMessageHash === uniqueMessageHash);
65
+ if (!pkg) {
66
+ const version = uniqueMessageHash
67
+ ? { date: new Date(), cid, uniqueMessageHash }
68
+ : { date: new Date(), cid };
69
+ // Create new package entry if not found
70
+ const createdPkg = {
71
+ title,
72
+ name,
73
+ cid,
74
+ keywords,
75
+ ...capabilities,
76
+ ...(description ? { description } : {}),
77
+ ...(isNotLocal ? { isNotLocal } : {}),
78
+ ...(uniqueMessageHash ? { uniqueMessageHash } : {}),
79
+ versions: [version],
80
+ };
81
+ pkg = createdPkg;
82
+ packages.push(createdPkg);
83
+ }
84
+ else {
85
+ // Update package and add new version info if it's an update
86
+ Object.assign(pkg, {
87
+ keywords,
88
+ ...(description ? { description } : {}),
89
+ ...(uniqueMessageHash ? { uniqueMessageHash } : {}),
90
+ ...capabilities,
91
+ });
92
+ const version = uniqueMessageHash
93
+ ? { date: new Date(), cid, uniqueMessageHash }
94
+ : { date: new Date(), cid };
95
+ pkg.versions.push(version);
96
+ }
97
+ // Save all packages back to LocalStorage under the single "packages" key
98
+ this.localStorage.set("packages", packages);
99
+ if (!pkg)
100
+ throw new Error("Failed to create package entry");
101
+ return pkg;
102
+ }
103
+ async extractAssets(zipFile, chain) {
104
+ const zip = await JSZip.loadAsync(zipFile);
105
+ if (chain) {
106
+ return await Promise.all(Array.from(Object.entries(zip.files))
107
+ .filter(([filename]) => !filename.startsWith("."))
108
+ .map(async ([filename, file]) => {
109
+ const blob = await file.async("blob");
110
+ const type = getMimeType(filename) || "application/octet-stream";
111
+ return new File([blob], filename, { type });
112
+ }));
113
+ }
114
+ return await Promise.all(Array.from(Object.entries(zip.files))
115
+ .filter(([filename]) => !filename.startsWith(".") && filename !== "chain.json")
116
+ .map(async ([filename, file]) => {
117
+ const blob = await file.async("blob");
118
+ const type = getMimeType(filename) || "application/octet-stream";
119
+ return new File([blob], filename, { type });
120
+ }));
121
+ }
122
+ async storeAssets(cid, files) {
123
+ const storeName = `package:${cid}`;
124
+ try {
125
+ if (!(await this.idb.hasStore(storeName))) {
126
+ await this.idb.createStore(storeName);
127
+ }
128
+ await this.idb.setAll(storeName, Object.fromEntries(files.map((file) => [file.name, file])));
129
+ // Verify store exists and has data
130
+ await this.verifyStoreExists(storeName, files.length);
131
+ }
132
+ catch (error) {
133
+ // Check for quota errors
134
+ if (error instanceof Error) {
135
+ if (error.name === 'QuotaExceededError' ||
136
+ error.message?.includes('quota') ||
137
+ error.message?.includes('QuotaExceeded')) {
138
+ throw new Error(`Device storage quota exceeded. Please free up space on your device and try again.`);
139
+ }
140
+ }
141
+ throw error;
142
+ }
143
+ }
144
+ async verifyStoreExists(storeName, expectedFileCount) {
145
+ const hasStore = await this.idb.hasStore(storeName);
146
+ if (!hasStore) {
147
+ throw new Error(`Store ${storeName} was not created successfully`);
148
+ }
149
+ // Verify data was written
150
+ try {
151
+ const keys = await this.idb.keys(storeName);
152
+ if (keys.length < expectedFileCount) {
153
+ throw new Error(`Store verification failed: expected ${expectedFileCount} files, found ${keys.length}`);
154
+ }
155
+ }
156
+ catch (error) {
157
+ // Check if it's a quota error
158
+ if (error instanceof Error && error.name === 'QuotaExceededError') {
159
+ throw new Error(`Device storage quota exceeded. Please free up space and try again.`);
160
+ }
161
+ throw error;
162
+ }
163
+ }
164
+ async retryStoreVerification(storeName, expectedFileCount, maxRetries = 3, delay = 1000) {
165
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
166
+ try {
167
+ await this.verifyStoreExists(storeName, expectedFileCount);
168
+ return; // Success
169
+ }
170
+ catch (error) {
171
+ this.logger.warn(`Store verification attempt ${attempt}/${maxRetries} failed:`, error);
172
+ if (attempt < maxRetries) {
173
+ // Wait before retry (exponential backoff)
174
+ await new Promise((resolve) => setTimeout(resolve, delay * attempt));
175
+ }
176
+ else {
177
+ // Last attempt failed
178
+ throw error;
179
+ }
180
+ }
181
+ }
182
+ }
183
+ base64ToBuffer(base64) {
184
+ return Buffer.from(base64, "base64");
185
+ }
186
+ bufferToString(buffer) {
187
+ return buffer.toString("utf8");
188
+ }
189
+ async getChainJson(filename, files) {
190
+ const extractedFile = await this.extractAssets(files, true);
191
+ const file = extractedFile.find((file) => file.name === filename);
192
+ if (!file)
193
+ throw new Error(`Invalid package: missing ${filename}`);
194
+ const fileContent = await file.text();
195
+ const json = JSON.parse(fileContent);
196
+ json.events = json.events.map((event) => {
197
+ if (event.data.startsWith("base64:")) {
198
+ const base64Data = event.data.slice(7);
199
+ const bufferData = this.base64ToBuffer(base64Data);
200
+ event.parsedData = JSON.parse(this.bufferToString(bufferData));
201
+ }
202
+ return event;
203
+ });
204
+ return json;
205
+ }
206
+ async getPackageJson(filename, files) {
207
+ const file = files.find((file) => file.name === filename);
208
+ if (!file)
209
+ throw new Error(`Invalid package: missing ${filename}`);
210
+ return JSON.parse(await file.text());
211
+ }
212
+ async getCapabilities(files) {
213
+ if (files.findIndex((file) => file.name === "package.json") < 0)
214
+ throw new Error("Invalid package: missing package.json");
215
+ if (files.findIndex((file) => file.name === "ownable_bg.wasm") < 0)
216
+ return capabilitiesStaticOwnable;
217
+ const query = await this.getPackageJson("query_msg.json", files);
218
+ const execute = await this.getPackageJson("execute_msg.json", files);
219
+ const hasMethod = (schema, find) => schema.oneOf.findIndex((method) => method.required.includes(find)) >= 0;
220
+ if (!hasMethod(query, "get_info"))
221
+ throw new Error("Invalid package: missing `get_info` query method");
222
+ return {
223
+ isDynamic: true,
224
+ hasMetadata: hasMethod(query, "get_metadata"),
225
+ hasWidgetState: hasMethod(query, "get_widget_state"),
226
+ isConsumable: hasMethod(execute, "consume"),
227
+ isConsumer: hasMethod(query, "is_consumer_of"),
228
+ isTransferable: hasMethod(execute, "transfer"),
229
+ };
230
+ }
231
+ async processPackage(message, uniqueMessageHash, isNotLocal = false) {
232
+ let chainJson;
233
+ let files;
234
+ let packageJson;
235
+ //Extract files
236
+ if (isNotLocal) {
237
+ files = await this.extractAssets(message.data.buffer, false);
238
+ packageJson = await this.getPackageJson("package.json", files);
239
+ chainJson = await this.getChainJson("chain.json", message.data.buffer);
240
+ }
241
+ else {
242
+ files = message; // Local files
243
+ packageJson = await this.getPackageJson("package.json", files);
244
+ }
245
+ //Check for required JSON files
246
+ if (!packageJson) {
247
+ throw new Error("Missing package.json in extracted assets");
248
+ }
249
+ if (isNotLocal && !chainJson) {
250
+ throw new Error("Missing chain.json for relay package");
251
+ }
252
+ //Calculate CID
253
+ const cid = await this.calculateCidFn(files);
254
+ //Check for duplicates
255
+ if (await this.idb.hasStore(`package:${cid}`)) {
256
+ if (isNotLocal && chainJson && !(await this.isCurrentEvent(chainJson))) {
257
+ this.logger.warn(`Package with CID ${cid} is already current or newer.`);
258
+ return null;
259
+ }
260
+ }
261
+ //Prepare metadata
262
+ const name = packageJson.name || "Unnamed Package";
263
+ const title = name
264
+ .replace(/^ownable-|-ownable$/, "")
265
+ .replace(/[-_]+/, " ")
266
+ .replace(/\b\w/, (c) => c.toUpperCase());
267
+ const description = packageJson.description;
268
+ const keywords = packageJson.keywords || [];
269
+ const capabilities = await this.getCapabilities(files);
270
+ //Store assets
271
+ await this.storeAssets(cid, files);
272
+ //Store package info
273
+ const pkg = this.storePackageInfo(title, name, description, cid, keywords, capabilities, isNotLocal, uniqueMessageHash);
274
+ //Attach chain if needed
275
+ if (isNotLocal && chainJson) {
276
+ pkg.chain = EventChain.from(chainJson);
277
+ }
278
+ if (uniqueMessageHash) {
279
+ pkg.uniqueMessageHash = uniqueMessageHash;
280
+ }
281
+ return pkg;
282
+ }
283
+ async import(zipFile) {
284
+ const files = await this.extractAssets(zipFile);
285
+ const pkg = await this.processPackage(files);
286
+ if (!pkg) {
287
+ throw new Error("Failed to process package: duplicate or invalid package.");
288
+ }
289
+ // Verify store exists after import
290
+ const storeName = `package:${pkg.cid}`;
291
+ const hasStore = await this.idb.hasStore(storeName);
292
+ if (!hasStore) {
293
+ // Retry verification in background (non-blocking)
294
+ this.retryStoreVerification(storeName, files.length, 3, 1000)
295
+ .catch((error) => {
296
+ this.logger.error(`Background store verification failed after retries:`, error);
297
+ // Optionally notify user or log to error tracking service
298
+ });
299
+ // Still return the package even if verification is pending
300
+ // The background retry will handle it
301
+ }
302
+ else {
303
+ // Store exists, verify data integrity
304
+ try {
305
+ await this.verifyStoreExists(storeName, files.length);
306
+ }
307
+ catch (error) {
308
+ // If verification fails, start background retry
309
+ this.logger.warn(`Initial store verification failed, retrying in background:`, error);
310
+ this.retryStoreVerification(storeName, files.length, 3, 1000)
311
+ .catch((retryError) => {
312
+ this.logger.error(`Background store verification failed after retries:`, retryError);
313
+ });
314
+ }
315
+ }
316
+ return pkg;
317
+ }
318
+ async importFromRelay() {
319
+ try {
320
+ const relayData = await this.relay.readAll();
321
+ if (!relayData || !Array.isArray(relayData) || relayData.length === 0) {
322
+ return null;
323
+ }
324
+ // Filter out null values and transform to MessageExt format
325
+ const validMessages = relayData
326
+ .filter((data) => data !== null && data.message && data.hash)
327
+ .map((data) => ({
328
+ hash: data.hash,
329
+ recipient: data.message.recipient || "",
330
+ sender: data.message.sender || {},
331
+ size: data.message.data?.length || 0,
332
+ timestamp: new Date(data.message.timestamp || Date.now()),
333
+ type: data.message.meta?.type || "basic",
334
+ data: data.message.data,
335
+ signature: data.message.signature,
336
+ _hash: data.message.hash,
337
+ parsedData: data.message.parsedData || "",
338
+ messageHash: data.hash,
339
+ message: data.message,
340
+ }));
341
+ if (validMessages.length === 0) {
342
+ return null;
343
+ }
344
+ const filteredMessages = await this.relay.checkDuplicateMessage(validMessages);
345
+ let triggerRefresh = false;
346
+ const results = await Promise.all(filteredMessages.map(async (data) => {
347
+ try {
348
+ const { message, messageHash } = data;
349
+ const files = await this.extractAssets(message.data.buffer);
350
+ if (files.length === 0)
351
+ return null;
352
+ // Pass the hash to the processing function
353
+ const pkg = await this.processPackage(files, messageHash, true);
354
+ if (!pkg)
355
+ return;
356
+ if (await this.idb.hasStore(`package:${pkg.cid}`)) {
357
+ triggerRefresh = true;
358
+ }
359
+ return pkg;
360
+ }
361
+ catch (err) {
362
+ this.logger.error("Error processing data:", err);
363
+ return null;
364
+ }
365
+ }));
366
+ const packages = results.filter((pkg) => pkg !== null && pkg !== undefined);
367
+ return [packages, triggerRefresh];
368
+ }
369
+ catch (error) {
370
+ this.logger.error("Error:", error);
371
+ return null;
372
+ }
373
+ }
374
+ async isCurrentEvent(chainJson) {
375
+ let existingChain;
376
+ if (await this.idb.hasStore(`ownable:${chainJson.id}`)) {
377
+ existingChain = await this.idb.get(`ownable:${chainJson.id}`, "chain");
378
+ }
379
+ if (existingChain === undefined || existingChain.events === undefined) {
380
+ return true;
381
+ }
382
+ if (existingChain.events?.length) {
383
+ if (chainJson.events.length > existingChain.events.length) {
384
+ return true;
385
+ }
386
+ }
387
+ else {
388
+ return false;
389
+ }
390
+ }
391
+ async downloadExample(key) {
392
+ if (!this.exampleUrl)
393
+ throw new Error("Unable to download example ownable: URL not configured");
394
+ const filename = key.replace(/^ownable-/, "") + ".zip";
395
+ const response = await this.fetchFn(`${this.exampleUrl}/${filename}`);
396
+ if (!response.ok)
397
+ throw new Error(`Failed to download example ownable: ${response.statusText}`);
398
+ const contentType = response.headers.get("Content-Type")?.trim();
399
+ if (contentType !== "application/zip" &&
400
+ contentType !== "application/x-zip-compressed")
401
+ throw new Error("Failed to download example ownable: invalid content type");
402
+ const zipFile = new File([await response.blob()], `${key}.zip`, {
403
+ type: "application/zip",
404
+ });
405
+ return this.import(zipFile);
406
+ }
407
+ async getAsset(cid, name, read) {
408
+ return new Promise((resolve, reject) => {
409
+ const fileReader = this.fileReaderFactory();
410
+ this.idb.get(`package:${cid}`, name).then((mediaFile) => {
411
+ if (!mediaFile) {
412
+ reject(`Asset "${name}" is not in package ${cid}`);
413
+ }
414
+ fileReader.onload = (event) => {
415
+ const result = event.target?.result;
416
+ if (result === null || result === undefined) {
417
+ reject(new Error(`Failed to read asset "${name}" from package ${cid}`));
418
+ return;
419
+ }
420
+ resolve(result);
421
+ };
422
+ read(fileReader, mediaFile);
423
+ }, (error) => reject(error));
424
+ });
425
+ }
426
+ getAssetAsText(cid, name) {
427
+ const read = (fr, mediaFile) => fr.readAsText(mediaFile);
428
+ return this.getAsset(cid, name, read);
429
+ }
430
+ getAssetAsDataUri(cid, name) {
431
+ const read = (fr, mediaFile) => fr.readAsDataURL(mediaFile);
432
+ return this.getAsset(cid, name, read);
433
+ }
434
+ async zip(cid) {
435
+ const zip = new JSZip();
436
+ const files = await this.idb.getAll(`package:${cid}`);
437
+ for (const file of files) {
438
+ zip.file(file.name, file);
439
+ }
440
+ return zip;
441
+ }
442
+ }
443
+ //# sourceMappingURL=Package.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Package.service.js","sourceRoot":"","sources":["../../../../src/services/Package.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { Message, Relay, IMessageMeta } from "eqty-core";
2
+ import JSZip from "jszip";
3
+ import { SIWEClient, type MessageExt, type AnchorProvider, type LogProgress, type SIWEAuthResult } from "@ownables/core";
4
+ /**
5
+ * @deprecated Relay transport is legacy and will be removed in a future major version.
6
+ * Prefer hub upload/download with WalletConnect Notify packages.
7
+ */
8
+ export declare class RelayService {
9
+ private readonly eqty;
10
+ static readonly URL: string | undefined;
11
+ private static readonly STORAGE_PREFIX;
12
+ readonly relay: Relay;
13
+ private readonly siweClient;
14
+ private readonly storage;
15
+ private readonly now;
16
+ private readonly relayUrl;
17
+ private readonly logger;
18
+ private authToken;
19
+ private authExpiry;
20
+ private readonly storageKey;
21
+ constructor(eqty: AnchorProvider, options?: {
22
+ relayUrl?: string;
23
+ relayClient?: Relay;
24
+ siweClient?: SIWEClient;
25
+ storage?: Pick<Storage, "getItem" | "setItem" | "removeItem">;
26
+ now?: () => number;
27
+ logger?: Pick<Console, "debug" | "info" | "warn" | "error">;
28
+ });
29
+ private loadTokenFromStorage;
30
+ private saveTokenToStorage;
31
+ static clearWalletAuth(address: string, chainId: number, storage?: Pick<Storage, "removeItem">): void;
32
+ authenticate(): Promise<SIWEAuthResult>;
33
+ private isAuthenticated;
34
+ getAuthHeaders(): Record<string, string>;
35
+ ensureAuthenticated(): Promise<boolean>;
36
+ sendOwnable(recipient: string, content: Uint8Array, meta: Partial<IMessageMeta>, anchorBeforeSend?: boolean, onProgress?: LogProgress): Promise<string>;
37
+ readMessage(hash: string): Promise<{
38
+ message?: any;
39
+ hash?: string;
40
+ }>;
41
+ readAll(): Promise<{
42
+ message?: any;
43
+ hash?: string;
44
+ }[]>;
45
+ removeOwnable(hash: string): Promise<void>;
46
+ isAvailable(): Promise<boolean>;
47
+ list(offset?: number, limit?: number): Promise<{
48
+ messages: any[];
49
+ total: number;
50
+ hasMore: boolean;
51
+ } | null>;
52
+ extractAssets(zipFile: File | JSZip): Promise<File[]>;
53
+ private getChainJson;
54
+ checkDuplicateMessage(messages: MessageExt[]): Promise<{
55
+ message: Message;
56
+ messageHash: string;
57
+ }[]>;
58
+ }
59
+ //# sourceMappingURL=Relay.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Relay.service.d.ts","sourceRoot":"","sources":["../../../../src/services/Relay.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAE,KAAK,EAAU,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,UAAU,EAEV,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAKxB;;;GAGG;AACH,qBAAa,YAAY;IAgBrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAfvB,gBAAuB,GAAG,qBACmC;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAC9E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqD;IAC5E,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGjB,IAAI,EAAE,cAAc,EACrC,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;QAC9D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACxD;IAgBR,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,kBAAkB;IAO1B,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAgB,GAClD,IAAI;IAKD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IA2C7C,OAAO,CAAC,eAAe;IAoBvB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUlC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IASvC,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,EAC3B,gBAAgB,GAAE,OAAe,EACjC,UAAU,CAAC,EAAE,WAAW;IA6CpB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA+BpE,OAAO;kBA/BwC,GAAG;eAAS,MAAM;;IA6CjE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAW/B,IAAI,CACR,MAAM,GAAE,MAAU,EAClB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC;QAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAoCjE,aAAa,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAe7C,YAAY;IASpB,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE;;;;CAoCnD"}