@hashtree/worker 0.2.1 → 0.2.2

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 (209) hide show
  1. package/dist/app-runtime.d.ts +60 -0
  2. package/dist/app-runtime.d.ts.map +1 -0
  3. package/dist/app-runtime.js +271 -0
  4. package/dist/app-runtime.js.map +1 -0
  5. package/dist/capabilities/blossomBandwidthTracker.d.ts +26 -0
  6. package/dist/capabilities/blossomBandwidthTracker.d.ts.map +1 -0
  7. package/dist/capabilities/blossomBandwidthTracker.js +53 -0
  8. package/dist/capabilities/blossomBandwidthTracker.js.map +1 -0
  9. package/dist/capabilities/blossomTransport.d.ts +22 -0
  10. package/dist/capabilities/blossomTransport.d.ts.map +1 -0
  11. package/dist/capabilities/blossomTransport.js +139 -0
  12. package/dist/capabilities/blossomTransport.js.map +1 -0
  13. package/dist/capabilities/connectivity.d.ts +3 -0
  14. package/dist/capabilities/connectivity.d.ts.map +1 -0
  15. package/dist/capabilities/connectivity.js +49 -0
  16. package/dist/capabilities/connectivity.js.map +1 -0
  17. package/dist/capabilities/idbStorage.d.ts +25 -0
  18. package/dist/capabilities/idbStorage.d.ts.map +1 -0
  19. package/dist/capabilities/idbStorage.js +73 -0
  20. package/dist/capabilities/idbStorage.js.map +1 -0
  21. package/dist/capabilities/meshRouterStore.d.ts +71 -0
  22. package/dist/capabilities/meshRouterStore.d.ts.map +1 -0
  23. package/dist/capabilities/meshRouterStore.js +316 -0
  24. package/dist/capabilities/meshRouterStore.js.map +1 -0
  25. package/dist/capabilities/rootResolver.d.ts +10 -0
  26. package/dist/capabilities/rootResolver.d.ts.map +1 -0
  27. package/dist/capabilities/rootResolver.js +392 -0
  28. package/dist/capabilities/rootResolver.js.map +1 -0
  29. package/dist/client-id.d.ts +18 -0
  30. package/dist/client-id.d.ts.map +1 -0
  31. package/dist/client-id.js +98 -0
  32. package/dist/client-id.js.map +1 -0
  33. package/dist/client.d.ts +61 -0
  34. package/dist/client.d.ts.map +1 -0
  35. package/dist/client.js +417 -0
  36. package/dist/client.js.map +1 -0
  37. package/dist/entry.d.ts +2 -0
  38. package/dist/entry.d.ts.map +1 -0
  39. package/dist/entry.js +3 -0
  40. package/dist/entry.js.map +1 -0
  41. package/dist/htree-path.d.ts +13 -0
  42. package/dist/htree-path.d.ts.map +1 -0
  43. package/dist/htree-path.js +38 -0
  44. package/dist/htree-path.js.map +1 -0
  45. package/dist/htree-url.d.ts +22 -0
  46. package/dist/htree-url.d.ts.map +1 -0
  47. package/dist/htree-url.js +118 -0
  48. package/dist/htree-url.js.map +1 -0
  49. package/dist/index.d.ts +17 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +8 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/mediaStreaming.d.ts +7 -0
  54. package/dist/mediaStreaming.d.ts.map +1 -0
  55. package/dist/mediaStreaming.js +48 -0
  56. package/dist/mediaStreaming.js.map +1 -0
  57. package/dist/p2p/boundedQueue.d.ts +79 -0
  58. package/dist/p2p/boundedQueue.d.ts.map +1 -0
  59. package/dist/p2p/boundedQueue.js +134 -0
  60. package/dist/p2p/boundedQueue.js.map +1 -0
  61. package/dist/p2p/errorMessage.d.ts +5 -0
  62. package/dist/p2p/errorMessage.d.ts.map +1 -0
  63. package/dist/p2p/errorMessage.js +7 -0
  64. package/dist/p2p/errorMessage.js.map +1 -0
  65. package/dist/p2p/index.d.ts +8 -0
  66. package/dist/p2p/index.d.ts.map +1 -0
  67. package/dist/p2p/index.js +6 -0
  68. package/dist/p2p/index.js.map +1 -0
  69. package/dist/p2p/lruCache.d.ts +26 -0
  70. package/dist/p2p/lruCache.d.ts.map +1 -0
  71. package/dist/p2p/lruCache.js +65 -0
  72. package/dist/p2p/lruCache.js.map +1 -0
  73. package/dist/p2p/meshQueryRouter.d.ts +57 -0
  74. package/dist/p2p/meshQueryRouter.d.ts.map +1 -0
  75. package/dist/p2p/meshQueryRouter.js +264 -0
  76. package/dist/p2p/meshQueryRouter.js.map +1 -0
  77. package/dist/p2p/protocol.d.ts +10 -0
  78. package/dist/p2p/protocol.d.ts.map +1 -0
  79. package/dist/p2p/protocol.js +2 -0
  80. package/dist/p2p/protocol.js.map +1 -0
  81. package/dist/p2p/queryForwardingMachine.d.ts +46 -0
  82. package/dist/p2p/queryForwardingMachine.d.ts.map +1 -0
  83. package/dist/p2p/queryForwardingMachine.js +144 -0
  84. package/dist/p2p/queryForwardingMachine.js.map +1 -0
  85. package/dist/p2p/signaling.d.ts +63 -0
  86. package/dist/p2p/signaling.d.ts.map +1 -0
  87. package/dist/p2p/signaling.js +185 -0
  88. package/dist/p2p/signaling.js.map +1 -0
  89. package/dist/p2p/uploadRateLimiter.d.ts +21 -0
  90. package/dist/p2p/uploadRateLimiter.d.ts.map +1 -0
  91. package/dist/p2p/uploadRateLimiter.js +62 -0
  92. package/dist/p2p/uploadRateLimiter.js.map +1 -0
  93. package/dist/p2p/webrtcController.d.ts +176 -0
  94. package/dist/p2p/webrtcController.d.ts.map +1 -0
  95. package/dist/p2p/webrtcController.js +938 -0
  96. package/dist/p2p/webrtcController.js.map +1 -0
  97. package/dist/p2p/webrtcProxy.d.ts +62 -0
  98. package/dist/p2p/webrtcProxy.d.ts.map +1 -0
  99. package/dist/p2p/webrtcProxy.js +447 -0
  100. package/dist/p2p/webrtcProxy.js.map +1 -0
  101. package/dist/privacyGuards.d.ts +14 -0
  102. package/dist/privacyGuards.d.ts.map +1 -0
  103. package/dist/privacyGuards.js +27 -0
  104. package/dist/privacyGuards.js.map +1 -0
  105. package/dist/protocol.d.ts +225 -0
  106. package/dist/protocol.d.ts.map +1 -0
  107. package/dist/protocol.js +2 -0
  108. package/dist/protocol.js.map +1 -0
  109. package/dist/relay/identity.d.ts +36 -0
  110. package/dist/relay/identity.d.ts.map +1 -0
  111. package/dist/relay/identity.js +78 -0
  112. package/dist/relay/identity.js.map +1 -0
  113. package/dist/relay/mediaHandler.d.ts +64 -0
  114. package/dist/relay/mediaHandler.d.ts.map +1 -0
  115. package/dist/relay/mediaHandler.js +1285 -0
  116. package/dist/relay/mediaHandler.js.map +1 -0
  117. package/dist/relay/ndk.d.ts +96 -0
  118. package/dist/relay/ndk.d.ts.map +1 -0
  119. package/dist/relay/ndk.js +502 -0
  120. package/dist/relay/ndk.js.map +1 -0
  121. package/dist/relay/nostr-wasm.d.ts +14 -0
  122. package/dist/relay/nostr-wasm.d.ts.map +1 -0
  123. package/dist/relay/nostr-wasm.js +246 -0
  124. package/dist/relay/nostr-wasm.js.map +1 -0
  125. package/dist/relay/nostr.d.ts +60 -0
  126. package/dist/relay/nostr.d.ts.map +1 -0
  127. package/dist/relay/nostr.js +207 -0
  128. package/dist/relay/nostr.js.map +1 -0
  129. package/dist/relay/protocol.d.ts +592 -0
  130. package/dist/relay/protocol.d.ts.map +1 -0
  131. package/dist/relay/protocol.js +16 -0
  132. package/dist/relay/protocol.js.map +1 -0
  133. package/dist/relay/publicAssetUrl.d.ts +6 -0
  134. package/dist/relay/publicAssetUrl.d.ts.map +1 -0
  135. package/dist/relay/publicAssetUrl.js +14 -0
  136. package/dist/relay/publicAssetUrl.js.map +1 -0
  137. package/dist/relay/rootPathResolver.d.ts +9 -0
  138. package/dist/relay/rootPathResolver.d.ts.map +1 -0
  139. package/dist/relay/rootPathResolver.js +32 -0
  140. package/dist/relay/rootPathResolver.js.map +1 -0
  141. package/dist/relay/signing.d.ts +50 -0
  142. package/dist/relay/signing.d.ts.map +1 -0
  143. package/dist/relay/signing.js +299 -0
  144. package/dist/relay/signing.js.map +1 -0
  145. package/dist/relay/treeRootCache.d.ts +86 -0
  146. package/dist/relay/treeRootCache.d.ts.map +1 -0
  147. package/dist/relay/treeRootCache.js +269 -0
  148. package/dist/relay/treeRootCache.js.map +1 -0
  149. package/dist/relay/treeRootSubscription.d.ts +55 -0
  150. package/dist/relay/treeRootSubscription.d.ts.map +1 -0
  151. package/dist/relay/treeRootSubscription.js +478 -0
  152. package/dist/relay/treeRootSubscription.js.map +1 -0
  153. package/dist/relay/utils/constants.d.ts +76 -0
  154. package/dist/relay/utils/constants.d.ts.map +1 -0
  155. package/dist/relay/utils/constants.js +113 -0
  156. package/dist/relay/utils/constants.js.map +1 -0
  157. package/dist/relay/utils/errorMessage.d.ts +5 -0
  158. package/dist/relay/utils/errorMessage.d.ts.map +1 -0
  159. package/dist/relay/utils/errorMessage.js +8 -0
  160. package/dist/relay/utils/errorMessage.js.map +1 -0
  161. package/dist/relay/utils/lruCache.d.ts +26 -0
  162. package/dist/relay/utils/lruCache.d.ts.map +1 -0
  163. package/dist/relay/utils/lruCache.js +66 -0
  164. package/dist/relay/utils/lruCache.js.map +1 -0
  165. package/dist/relay/webrtc.d.ts +2 -0
  166. package/dist/relay/webrtc.d.ts.map +1 -0
  167. package/dist/relay/webrtc.js +3 -0
  168. package/dist/relay/webrtc.js.map +1 -0
  169. package/dist/relay/webrtcSignaling.d.ts +37 -0
  170. package/dist/relay/webrtcSignaling.d.ts.map +1 -0
  171. package/dist/relay/webrtcSignaling.js +86 -0
  172. package/dist/relay/webrtcSignaling.js.map +1 -0
  173. package/dist/relay/worker.d.ts +12 -0
  174. package/dist/relay/worker.d.ts.map +1 -0
  175. package/dist/relay/worker.js +1540 -0
  176. package/dist/relay/worker.js.map +1 -0
  177. package/dist/relay-client.d.ts +31 -0
  178. package/dist/relay-client.d.ts.map +1 -0
  179. package/dist/relay-client.js +197 -0
  180. package/dist/relay-client.js.map +1 -0
  181. package/dist/relay-entry.d.ts +2 -0
  182. package/dist/relay-entry.d.ts.map +1 -0
  183. package/dist/relay-entry.js +2 -0
  184. package/dist/relay-entry.js.map +1 -0
  185. package/dist/runtime-network.d.ts +23 -0
  186. package/dist/runtime-network.d.ts.map +1 -0
  187. package/dist/runtime-network.js +105 -0
  188. package/dist/runtime-network.js.map +1 -0
  189. package/dist/runtime.d.ts +24 -0
  190. package/dist/runtime.d.ts.map +1 -0
  191. package/dist/runtime.js +126 -0
  192. package/dist/runtime.js.map +1 -0
  193. package/dist/transferableBytes.d.ts +2 -0
  194. package/dist/transferableBytes.d.ts.map +1 -0
  195. package/dist/transferableBytes.js +6 -0
  196. package/dist/transferableBytes.js.map +1 -0
  197. package/dist/tree-root.d.ts +201 -0
  198. package/dist/tree-root.d.ts.map +1 -0
  199. package/dist/tree-root.js +632 -0
  200. package/dist/tree-root.js.map +1 -0
  201. package/dist/types.d.ts +2 -0
  202. package/dist/types.d.ts.map +1 -0
  203. package/dist/types.js +2 -0
  204. package/dist/types.js.map +1 -0
  205. package/dist/worker.d.ts +9 -0
  206. package/dist/worker.d.ts.map +1 -0
  207. package/dist/worker.js +792 -0
  208. package/dist/worker.js.map +1 -0
  209. package/package.json +1 -1
@@ -0,0 +1,592 @@
1
+ /**
2
+ * Worker Protocol Types
3
+ *
4
+ * Message types for communication between main thread and hashtree worker.
5
+ * Worker owns: HashTree, WebRTC, Nostr (via nostr-tools)
6
+ * Main thread owns: UI, NIP-07 extension access (signing/encryption)
7
+ */
8
+ import type { CID } from '@hashtree/core';
9
+ import type { BlossomBandwidthStats } from '@hashtree/core/worker';
10
+ export type { NostrFilter, UnsignedEvent, SignedEvent, SocialGraphEvent, BlossomBandwidthStats, BlossomBandwidthServerStats, } from '@hashtree/core/worker';
11
+ export type TreeVisibility = 'public' | 'link-visible' | 'private';
12
+ export interface TreeRootInfo {
13
+ hash: Uint8Array;
14
+ key?: Uint8Array;
15
+ visibility: TreeVisibility;
16
+ labels?: string[];
17
+ updatedAt: number;
18
+ snapshotNhash?: string;
19
+ encryptedKey?: string;
20
+ keyId?: string;
21
+ selfEncryptedKey?: string;
22
+ selfEncryptedLinkKey?: string;
23
+ }
24
+ export interface PeerStats {
25
+ peerId: string;
26
+ pubkey: string;
27
+ connected: boolean;
28
+ pool: 'follows' | 'other';
29
+ requestsSent: number;
30
+ requestsReceived: number;
31
+ responsesSent: number;
32
+ responsesReceived: number;
33
+ bytesSent: number;
34
+ bytesReceived: number;
35
+ forwardedRequests: number;
36
+ forwardedResolved: number;
37
+ forwardedSuppressed: number;
38
+ }
39
+ export type WorkerRequest = {
40
+ type: 'init';
41
+ id: string;
42
+ config: WorkerConfig;
43
+ } | {
44
+ type: 'close';
45
+ id: string;
46
+ } | {
47
+ type: 'setIdentity';
48
+ id: string;
49
+ pubkey: string;
50
+ nsec?: string;
51
+ } | {
52
+ type: 'get';
53
+ id: string;
54
+ hash: Uint8Array;
55
+ } | {
56
+ type: 'put';
57
+ id: string;
58
+ hash: Uint8Array;
59
+ data: Uint8Array;
60
+ } | {
61
+ type: 'has';
62
+ id: string;
63
+ hash: Uint8Array;
64
+ } | {
65
+ type: 'delete';
66
+ id: string;
67
+ hash: Uint8Array;
68
+ } | {
69
+ type: 'readFile';
70
+ id: string;
71
+ cid: CID;
72
+ } | {
73
+ type: 'readFileRange';
74
+ id: string;
75
+ cid: CID;
76
+ start: number;
77
+ end?: number;
78
+ } | {
79
+ type: 'readFileStream';
80
+ id: string;
81
+ cid: CID;
82
+ } | {
83
+ type: 'writeFile';
84
+ id: string;
85
+ parentCid: CID | null;
86
+ path: string;
87
+ data: Uint8Array;
88
+ } | {
89
+ type: 'deleteFile';
90
+ id: string;
91
+ parentCid: CID;
92
+ path: string;
93
+ } | {
94
+ type: 'listDir';
95
+ id: string;
96
+ cid: CID;
97
+ } | {
98
+ type: 'resolveRoot';
99
+ id: string;
100
+ npub: string;
101
+ path?: string;
102
+ } | {
103
+ type: 'setTreeRootCache';
104
+ id: string;
105
+ npub: string;
106
+ treeName: string;
107
+ hash: Uint8Array;
108
+ key?: Uint8Array;
109
+ visibility: TreeVisibility;
110
+ labels?: string[];
111
+ encryptedKey?: string;
112
+ keyId?: string;
113
+ selfEncryptedKey?: string;
114
+ selfEncryptedLinkKey?: string;
115
+ } | {
116
+ type: 'getTreeRootInfo';
117
+ id: string;
118
+ npub: string;
119
+ treeName: string;
120
+ } | {
121
+ type: 'mergeTreeRootKey';
122
+ id: string;
123
+ npub: string;
124
+ treeName: string;
125
+ hash: Uint8Array;
126
+ key: Uint8Array;
127
+ } | {
128
+ type: 'subscribeTreeRoots';
129
+ id: string;
130
+ pubkey: string;
131
+ } | {
132
+ type: 'unsubscribeTreeRoots';
133
+ id: string;
134
+ pubkey: string;
135
+ } | {
136
+ type: 'subscribe';
137
+ id: string;
138
+ filters: NostrFilter[];
139
+ } | {
140
+ type: 'unsubscribe';
141
+ id: string;
142
+ subId: string;
143
+ } | {
144
+ type: 'publish';
145
+ id: string;
146
+ event: SignedEvent;
147
+ } | {
148
+ type: 'registerMediaPort';
149
+ port: MessagePort;
150
+ debug?: boolean;
151
+ } | {
152
+ type: 'getPeerStats';
153
+ id: string;
154
+ } | {
155
+ type: 'getRelayStats';
156
+ id: string;
157
+ } | {
158
+ type: 'getStorageStats';
159
+ id: string;
160
+ } | {
161
+ type: 'setWebRTCPools';
162
+ id: string;
163
+ pools: {
164
+ follows: {
165
+ max: number;
166
+ satisfied: number;
167
+ };
168
+ other: {
169
+ max: number;
170
+ satisfied: number;
171
+ };
172
+ };
173
+ } | {
174
+ type: 'setWebRTCForwardRateLimit';
175
+ id: string;
176
+ forwardRateLimit?: ForwardRateLimitConfig;
177
+ } | {
178
+ type: 'sendWebRTCHello';
179
+ id: string;
180
+ } | {
181
+ type: 'setFollows';
182
+ id: string;
183
+ follows: string[];
184
+ } | {
185
+ type: 'setBlossomServers';
186
+ id: string;
187
+ servers: BlossomServerConfig[];
188
+ } | {
189
+ type: 'setStorageMaxBytes';
190
+ id: string;
191
+ maxBytes: number;
192
+ } | {
193
+ type: 'pushToBlossom';
194
+ id: string;
195
+ cidHash: Uint8Array;
196
+ cidKey?: Uint8Array;
197
+ treeName?: string;
198
+ } | {
199
+ type: 'startBlossomSession';
200
+ id: string;
201
+ sessionId: string;
202
+ totalChunks: number;
203
+ } | {
204
+ type: 'endBlossomSession';
205
+ id: string;
206
+ } | {
207
+ type: 'republishTrees';
208
+ id: string;
209
+ } | {
210
+ type: 'republishTree';
211
+ id: string;
212
+ pubkey: string;
213
+ treeName: string;
214
+ } | {
215
+ type: 'ping';
216
+ id: string;
217
+ } | {
218
+ type: 'initSocialGraph';
219
+ id: string;
220
+ rootPubkey?: string;
221
+ } | {
222
+ type: 'setSocialGraphRoot';
223
+ id: string;
224
+ pubkey: string;
225
+ } | {
226
+ type: 'handleSocialGraphEvents';
227
+ id: string;
228
+ events: SocialGraphEvent[];
229
+ } | {
230
+ type: 'getFollowDistance';
231
+ id: string;
232
+ pubkey: string;
233
+ } | {
234
+ type: 'isFollowing';
235
+ id: string;
236
+ follower: string;
237
+ followed: string;
238
+ } | {
239
+ type: 'getFollows';
240
+ id: string;
241
+ pubkey: string;
242
+ } | {
243
+ type: 'getFollowers';
244
+ id: string;
245
+ pubkey: string;
246
+ } | {
247
+ type: 'getFollowedByFriends';
248
+ id: string;
249
+ pubkey: string;
250
+ } | {
251
+ type: 'getSocialGraphSize';
252
+ id: string;
253
+ } | {
254
+ type: 'signed';
255
+ id: string;
256
+ event?: SignedEvent;
257
+ error?: string;
258
+ } | {
259
+ type: 'encrypted';
260
+ id: string;
261
+ ciphertext?: string;
262
+ error?: string;
263
+ } | {
264
+ type: 'decrypted';
265
+ id: string;
266
+ plaintext?: string;
267
+ error?: string;
268
+ } | WebRTCEvent;
269
+ /** Blossom server configuration */
270
+ export interface BlossomServerConfig {
271
+ url: string;
272
+ read?: boolean;
273
+ write?: boolean;
274
+ }
275
+ export interface ForwardRateLimitConfig {
276
+ maxForwardsPerPeerWindow?: number;
277
+ windowMs?: number;
278
+ }
279
+ export interface WorkerConfig {
280
+ relays: string[];
281
+ blossomServers?: BlossomServerConfig[];
282
+ pubkey: string;
283
+ nsec?: string;
284
+ storeName?: string;
285
+ forwardRateLimit?: ForwardRateLimitConfig;
286
+ }
287
+ export type WorkerResponse = {
288
+ type: 'ready';
289
+ } | {
290
+ type: 'pong';
291
+ id: string;
292
+ } | {
293
+ type: 'error';
294
+ id?: string;
295
+ error: string;
296
+ } | {
297
+ type: 'result';
298
+ id: string;
299
+ data?: Uint8Array;
300
+ error?: string;
301
+ } | {
302
+ type: 'bool';
303
+ id: string;
304
+ value: boolean;
305
+ error?: string;
306
+ } | {
307
+ type: 'cid';
308
+ id: string;
309
+ cid?: CID;
310
+ error?: string;
311
+ } | {
312
+ type: 'void';
313
+ id: string;
314
+ error?: string;
315
+ } | {
316
+ type: 'dirListing';
317
+ id: string;
318
+ entries?: DirEntry[];
319
+ error?: string;
320
+ } | {
321
+ type: 'streamChunk';
322
+ id: string;
323
+ chunk: Uint8Array;
324
+ done: boolean;
325
+ } | {
326
+ type: 'event';
327
+ subId: string;
328
+ event: SignedEvent;
329
+ } | {
330
+ type: 'eose';
331
+ subId: string;
332
+ } | {
333
+ type: 'peerStats';
334
+ id: string;
335
+ stats: PeerStats[];
336
+ } | {
337
+ type: 'relayStats';
338
+ id: string;
339
+ stats: RelayStats[];
340
+ } | {
341
+ type: 'storageStats';
342
+ id: string;
343
+ items: number;
344
+ bytes: number;
345
+ } | {
346
+ type: 'blossomBandwidth';
347
+ stats: BlossomBandwidthStats;
348
+ } | {
349
+ type: 'blossomUploadError';
350
+ hash: string;
351
+ error: string;
352
+ } | {
353
+ type: 'blossomUploadProgress';
354
+ progress: BlossomUploadProgress;
355
+ } | {
356
+ type: 'blossomPushResult';
357
+ id: string;
358
+ pushed: number;
359
+ skipped: number;
360
+ failed: number;
361
+ error?: string;
362
+ errors?: string[];
363
+ } | {
364
+ type: 'republishResult';
365
+ id: string;
366
+ count: number;
367
+ error?: string;
368
+ encryptionErrors?: string[];
369
+ } | {
370
+ type: 'blossomPushStarted';
371
+ treeName: string;
372
+ totalChunks: number;
373
+ } | {
374
+ type: 'blossomPushProgress';
375
+ treeName: string;
376
+ current: number;
377
+ total: number;
378
+ } | {
379
+ type: 'blossomPushComplete';
380
+ treeName: string;
381
+ pushed: number;
382
+ skipped: number;
383
+ failed: number;
384
+ } | {
385
+ type: 'treeRootUpdate';
386
+ npub: string;
387
+ treeName: string;
388
+ hash: Uint8Array;
389
+ key?: Uint8Array;
390
+ visibility: TreeVisibility;
391
+ labels?: string[];
392
+ updatedAt: number;
393
+ snapshotNhash?: string;
394
+ encryptedKey?: string;
395
+ keyId?: string;
396
+ selfEncryptedKey?: string;
397
+ selfEncryptedLinkKey?: string;
398
+ } | {
399
+ type: 'treeRootInfo';
400
+ id: string;
401
+ record?: TreeRootInfo;
402
+ error?: string;
403
+ } | {
404
+ type: 'socialGraphInit';
405
+ id: string;
406
+ version: number;
407
+ size: number;
408
+ error?: string;
409
+ } | {
410
+ type: 'socialGraphVersion';
411
+ version: number;
412
+ } | {
413
+ type: 'followDistance';
414
+ id: string;
415
+ distance: number;
416
+ error?: string;
417
+ } | {
418
+ type: 'isFollowingResult';
419
+ id: string;
420
+ result: boolean;
421
+ error?: string;
422
+ } | {
423
+ type: 'pubkeyList';
424
+ id: string;
425
+ pubkeys: string[];
426
+ error?: string;
427
+ } | {
428
+ type: 'socialGraphSize';
429
+ id: string;
430
+ size: number;
431
+ error?: string;
432
+ } | {
433
+ type: 'signEvent';
434
+ id: string;
435
+ event: UnsignedEvent;
436
+ } | {
437
+ type: 'nip44Encrypt';
438
+ id: string;
439
+ pubkey: string;
440
+ plaintext: string;
441
+ } | {
442
+ type: 'nip44Decrypt';
443
+ id: string;
444
+ pubkey: string;
445
+ ciphertext: string;
446
+ } | WebRTCCommand;
447
+ export interface DirEntry {
448
+ name: string;
449
+ isDir: boolean;
450
+ size?: number;
451
+ cid?: CID;
452
+ }
453
+ export interface RelayStats {
454
+ url: string;
455
+ connected: boolean;
456
+ eventsReceived: number;
457
+ eventsSent: number;
458
+ }
459
+ /** Per-server upload status */
460
+ export interface BlossomServerStatus {
461
+ url: string;
462
+ uploaded: number;
463
+ failed: number;
464
+ skipped: number;
465
+ }
466
+ /** Overall blossom upload progress */
467
+ export interface BlossomUploadProgress {
468
+ sessionId: string;
469
+ totalChunks: number;
470
+ processedChunks: number;
471
+ servers: BlossomServerStatus[];
472
+ }
473
+ export interface MediaRequestByCid {
474
+ type: 'media';
475
+ requestId: string;
476
+ cid: string;
477
+ start: number;
478
+ end?: number;
479
+ mimeType?: string;
480
+ }
481
+ export interface MediaRequestByPath {
482
+ type: 'mediaByPath';
483
+ requestId: string;
484
+ npub: string;
485
+ path: string;
486
+ start: number;
487
+ end?: number;
488
+ mimeType?: string;
489
+ }
490
+ export type MediaRequest = MediaRequestByCid | MediaRequestByPath;
491
+ export type MediaResponse = {
492
+ type: 'headers';
493
+ requestId: string;
494
+ totalSize: number;
495
+ mimeType: string;
496
+ isLive?: boolean;
497
+ } | {
498
+ type: 'chunk';
499
+ requestId: string;
500
+ data: Uint8Array;
501
+ } | {
502
+ type: 'done';
503
+ requestId: string;
504
+ } | {
505
+ type: 'error';
506
+ requestId: string;
507
+ message: string;
508
+ };
509
+ /** Worker → Main: Commands to control WebRTC connections */
510
+ export type WebRTCCommand = {
511
+ type: 'rtc:createPeer';
512
+ peerId: string;
513
+ pubkey: string;
514
+ } | {
515
+ type: 'rtc:closePeer';
516
+ peerId: string;
517
+ } | {
518
+ type: 'rtc:createOffer';
519
+ peerId: string;
520
+ } | {
521
+ type: 'rtc:createAnswer';
522
+ peerId: string;
523
+ } | {
524
+ type: 'rtc:setLocalDescription';
525
+ peerId: string;
526
+ sdp: RTCSessionDescriptionInit;
527
+ } | {
528
+ type: 'rtc:setRemoteDescription';
529
+ peerId: string;
530
+ sdp: RTCSessionDescriptionInit;
531
+ } | {
532
+ type: 'rtc:addIceCandidate';
533
+ peerId: string;
534
+ candidate: RTCIceCandidateInit;
535
+ } | {
536
+ type: 'rtc:sendData';
537
+ peerId: string;
538
+ data: Uint8Array;
539
+ };
540
+ /** Main → Worker: Events from WebRTC connections */
541
+ export type WebRTCEvent = {
542
+ type: 'rtc:peerCreated';
543
+ peerId: string;
544
+ } | {
545
+ type: 'rtc:peerStateChange';
546
+ peerId: string;
547
+ state: RTCPeerConnectionState;
548
+ } | {
549
+ type: 'rtc:peerClosed';
550
+ peerId: string;
551
+ } | {
552
+ type: 'rtc:offerCreated';
553
+ peerId: string;
554
+ sdp: RTCSessionDescriptionInit;
555
+ } | {
556
+ type: 'rtc:answerCreated';
557
+ peerId: string;
558
+ sdp: RTCSessionDescriptionInit;
559
+ } | {
560
+ type: 'rtc:descriptionSet';
561
+ peerId: string;
562
+ error?: string;
563
+ } | {
564
+ type: 'rtc:iceCandidate';
565
+ peerId: string;
566
+ candidate: RTCIceCandidateInit | null;
567
+ } | {
568
+ type: 'rtc:iceGatheringComplete';
569
+ peerId: string;
570
+ } | {
571
+ type: 'rtc:dataChannelOpen';
572
+ peerId: string;
573
+ } | {
574
+ type: 'rtc:dataChannelMessage';
575
+ peerId: string;
576
+ data: Uint8Array;
577
+ } | {
578
+ type: 'rtc:dataChannelClose';
579
+ peerId: string;
580
+ } | {
581
+ type: 'rtc:dataChannelError';
582
+ peerId: string;
583
+ error: string;
584
+ } | {
585
+ type: 'rtc:bufferHigh';
586
+ peerId: string;
587
+ } | {
588
+ type: 'rtc:bufferLow';
589
+ peerId: string;
590
+ };
591
+ export declare function generateRequestId(): string;
592
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/relay/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ // @ts-nocheck
2
+ /**
3
+ * Worker Protocol Types
4
+ *
5
+ * Message types for communication between main thread and hashtree worker.
6
+ * Worker owns: HashTree, WebRTC, Nostr (via nostr-tools)
7
+ * Main thread owns: UI, NIP-07 extension access (signing/encryption)
8
+ */
9
+ // ============================================================================
10
+ // Helper functions
11
+ // ============================================================================
12
+ let requestIdCounter = 0;
13
+ export function generateRequestId() {
14
+ return `req_${Date.now()}_${++requestIdCounter}`;
15
+ }
16
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/relay/protocol.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;GAMG;AAyVH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACnD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface ResolveWorkerPublicAssetUrlOptions {
2
+ importMetaUrl: string;
3
+ origin: string;
4
+ }
5
+ export declare function resolveWorkerPublicAssetUrl(baseUrl: string | undefined, assetPath: string, options: ResolveWorkerPublicAssetUrlOptions): string;
6
+ //# sourceMappingURL=publicAssetUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicAssetUrl.d.ts","sourceRoot":"","sources":["../../src/relay/publicAssetUrl.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kCAAkC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kCAAkC,GAC1C,MAAM,CAeR"}
@@ -0,0 +1,14 @@
1
+ export function resolveWorkerPublicAssetUrl(baseUrl, assetPath, options) {
2
+ const normalizedAssetPath = assetPath.replace(/^\/+/, '');
3
+ const normalizedBaseUrl = typeof baseUrl === 'string' && baseUrl.trim() ? baseUrl.trim() : '/';
4
+ if (/^https?:\/\//i.test(normalizedBaseUrl)) {
5
+ return new URL(normalizedAssetPath, normalizedBaseUrl).toString();
6
+ }
7
+ if (normalizedBaseUrl === '.' || normalizedBaseUrl === './') {
8
+ return new URL(`../${normalizedAssetPath}`, options.importMetaUrl).toString();
9
+ }
10
+ const rootedBaseUrl = normalizedBaseUrl.startsWith('/') ? normalizedBaseUrl : `/${normalizedBaseUrl}`;
11
+ const basePath = rootedBaseUrl.endsWith('/') ? rootedBaseUrl : `${rootedBaseUrl}/`;
12
+ return new URL(`${basePath}${normalizedAssetPath}`, options.origin).toString();
13
+ }
14
+ //# sourceMappingURL=publicAssetUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicAssetUrl.js","sourceRoot":"","sources":["../../src/relay/publicAssetUrl.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,2BAA2B,CACzC,OAA2B,EAC3B,SAAiB,EACjB,OAA2C;IAE3C,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAE/F,IAAI,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,iBAAiB,KAAK,GAAG,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,IAAI,GAAG,CAAC,MAAM,mBAAmB,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChF,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACtG,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC;IACnF,OAAO,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,mBAAmB,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CID, HashTree } from '@hashtree/core';
2
+ export declare const DEFAULT_ROOT_PATH_RESOLVE_TIMEOUT_MS = 15000;
3
+ export interface ParsedRootPath {
4
+ treeName: string;
5
+ subPath: string[];
6
+ }
7
+ export declare function parseRootPath(path?: string): ParsedRootPath;
8
+ export declare function resolveRootPath(tree: Pick<HashTree, 'resolvePath'> | null, npub: string, path?: string, timeoutMs?: number): Promise<CID | null>;
9
+ //# sourceMappingURL=rootPathResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rootPathResolver.d.ts","sourceRoot":"","sources":["../../src/relay/rootPathResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpD,eAAO,MAAM,oCAAoC,QAAS,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAM3D;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,IAAI,EAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,GAAE,MAA6C,GACvD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CA0BrB"}