@hashtree/worker 0.1.1

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 (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/dist/capabilities/blossomBandwidthTracker.d.ts +26 -0
  4. package/dist/capabilities/blossomBandwidthTracker.d.ts.map +1 -0
  5. package/dist/capabilities/blossomBandwidthTracker.js +53 -0
  6. package/dist/capabilities/blossomBandwidthTracker.js.map +1 -0
  7. package/dist/capabilities/blossomTransport.d.ts +22 -0
  8. package/dist/capabilities/blossomTransport.d.ts.map +1 -0
  9. package/dist/capabilities/blossomTransport.js +124 -0
  10. package/dist/capabilities/blossomTransport.js.map +1 -0
  11. package/dist/capabilities/connectivity.d.ts +3 -0
  12. package/dist/capabilities/connectivity.d.ts.map +1 -0
  13. package/dist/capabilities/connectivity.js +49 -0
  14. package/dist/capabilities/connectivity.js.map +1 -0
  15. package/dist/capabilities/idbStorage.d.ts +25 -0
  16. package/dist/capabilities/idbStorage.d.ts.map +1 -0
  17. package/dist/capabilities/idbStorage.js +73 -0
  18. package/dist/capabilities/idbStorage.js.map +1 -0
  19. package/dist/client.d.ts +54 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +336 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/entry.d.ts +2 -0
  24. package/dist/entry.d.ts.map +1 -0
  25. package/dist/entry.js +2 -0
  26. package/dist/entry.js.map +1 -0
  27. package/dist/index.d.ts +6 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +3 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/iris/identity.d.ts +36 -0
  32. package/dist/iris/identity.d.ts.map +1 -0
  33. package/dist/iris/identity.js +78 -0
  34. package/dist/iris/identity.js.map +1 -0
  35. package/dist/iris/mediaHandler.d.ts +16 -0
  36. package/dist/iris/mediaHandler.d.ts.map +1 -0
  37. package/dist/iris/mediaHandler.js +529 -0
  38. package/dist/iris/mediaHandler.js.map +1 -0
  39. package/dist/iris/ndk.d.ts +95 -0
  40. package/dist/iris/ndk.d.ts.map +1 -0
  41. package/dist/iris/ndk.js +496 -0
  42. package/dist/iris/ndk.js.map +1 -0
  43. package/dist/iris/nostr-wasm.d.ts +14 -0
  44. package/dist/iris/nostr-wasm.d.ts.map +1 -0
  45. package/dist/iris/nostr-wasm.js +246 -0
  46. package/dist/iris/nostr-wasm.js.map +1 -0
  47. package/dist/iris/nostr.d.ts +60 -0
  48. package/dist/iris/nostr.d.ts.map +1 -0
  49. package/dist/iris/nostr.js +207 -0
  50. package/dist/iris/nostr.js.map +1 -0
  51. package/dist/iris/protocol.d.ts +574 -0
  52. package/dist/iris/protocol.d.ts.map +1 -0
  53. package/dist/iris/protocol.js +16 -0
  54. package/dist/iris/protocol.js.map +1 -0
  55. package/dist/iris/signing.d.ts +50 -0
  56. package/dist/iris/signing.d.ts.map +1 -0
  57. package/dist/iris/signing.js +299 -0
  58. package/dist/iris/signing.js.map +1 -0
  59. package/dist/iris/treeRootCache.d.ts +73 -0
  60. package/dist/iris/treeRootCache.d.ts.map +1 -0
  61. package/dist/iris/treeRootCache.js +191 -0
  62. package/dist/iris/treeRootCache.js.map +1 -0
  63. package/dist/iris/treeRootSubscription.d.ts +49 -0
  64. package/dist/iris/treeRootSubscription.d.ts.map +1 -0
  65. package/dist/iris/treeRootSubscription.js +185 -0
  66. package/dist/iris/treeRootSubscription.js.map +1 -0
  67. package/dist/iris/utils/constants.d.ts +76 -0
  68. package/dist/iris/utils/constants.d.ts.map +1 -0
  69. package/dist/iris/utils/constants.js +113 -0
  70. package/dist/iris/utils/constants.js.map +1 -0
  71. package/dist/iris/utils/errorMessage.d.ts +5 -0
  72. package/dist/iris/utils/errorMessage.d.ts.map +1 -0
  73. package/dist/iris/utils/errorMessage.js +8 -0
  74. package/dist/iris/utils/errorMessage.js.map +1 -0
  75. package/dist/iris/utils/lruCache.d.ts +26 -0
  76. package/dist/iris/utils/lruCache.d.ts.map +1 -0
  77. package/dist/iris/utils/lruCache.js +66 -0
  78. package/dist/iris/utils/lruCache.js.map +1 -0
  79. package/dist/iris/webrtc.d.ts +2 -0
  80. package/dist/iris/webrtc.d.ts.map +1 -0
  81. package/dist/iris/webrtc.js +3 -0
  82. package/dist/iris/webrtc.js.map +1 -0
  83. package/dist/iris/webrtcSignaling.d.ts +37 -0
  84. package/dist/iris/webrtcSignaling.d.ts.map +1 -0
  85. package/dist/iris/webrtcSignaling.js +86 -0
  86. package/dist/iris/webrtcSignaling.js.map +1 -0
  87. package/dist/iris/worker.d.ts +12 -0
  88. package/dist/iris/worker.d.ts.map +1 -0
  89. package/dist/iris/worker.js +1582 -0
  90. package/dist/iris/worker.js.map +1 -0
  91. package/dist/iris-entry.d.ts +2 -0
  92. package/dist/iris-entry.d.ts.map +1 -0
  93. package/dist/iris-entry.js +2 -0
  94. package/dist/iris-entry.js.map +1 -0
  95. package/dist/mediaStreaming.d.ts +7 -0
  96. package/dist/mediaStreaming.d.ts.map +1 -0
  97. package/dist/mediaStreaming.js +48 -0
  98. package/dist/mediaStreaming.js.map +1 -0
  99. package/dist/p2p/boundedQueue.d.ts +74 -0
  100. package/dist/p2p/boundedQueue.d.ts.map +1 -0
  101. package/dist/p2p/boundedQueue.js +112 -0
  102. package/dist/p2p/boundedQueue.js.map +1 -0
  103. package/dist/p2p/errorMessage.d.ts +5 -0
  104. package/dist/p2p/errorMessage.d.ts.map +1 -0
  105. package/dist/p2p/errorMessage.js +7 -0
  106. package/dist/p2p/errorMessage.js.map +1 -0
  107. package/dist/p2p/index.d.ts +7 -0
  108. package/dist/p2p/index.d.ts.map +1 -0
  109. package/dist/p2p/index.js +5 -0
  110. package/dist/p2p/index.js.map +1 -0
  111. package/dist/p2p/lruCache.d.ts +26 -0
  112. package/dist/p2p/lruCache.d.ts.map +1 -0
  113. package/dist/p2p/lruCache.js +65 -0
  114. package/dist/p2p/lruCache.js.map +1 -0
  115. package/dist/p2p/protocol.d.ts +10 -0
  116. package/dist/p2p/protocol.d.ts.map +1 -0
  117. package/dist/p2p/protocol.js +2 -0
  118. package/dist/p2p/protocol.js.map +1 -0
  119. package/dist/p2p/queryForwardingMachine.d.ts +46 -0
  120. package/dist/p2p/queryForwardingMachine.d.ts.map +1 -0
  121. package/dist/p2p/queryForwardingMachine.js +144 -0
  122. package/dist/p2p/queryForwardingMachine.js.map +1 -0
  123. package/dist/p2p/signaling.d.ts +63 -0
  124. package/dist/p2p/signaling.d.ts.map +1 -0
  125. package/dist/p2p/signaling.js +165 -0
  126. package/dist/p2p/signaling.js.map +1 -0
  127. package/dist/p2p/webrtcController.d.ts +152 -0
  128. package/dist/p2p/webrtcController.d.ts.map +1 -0
  129. package/dist/p2p/webrtcController.js +813 -0
  130. package/dist/p2p/webrtcController.js.map +1 -0
  131. package/dist/p2p/webrtcProxy.d.ts +55 -0
  132. package/dist/p2p/webrtcProxy.d.ts.map +1 -0
  133. package/dist/p2p/webrtcProxy.js +386 -0
  134. package/dist/p2p/webrtcProxy.js.map +1 -0
  135. package/dist/privacyGuards.d.ts +14 -0
  136. package/dist/privacyGuards.d.ts.map +1 -0
  137. package/dist/privacyGuards.js +27 -0
  138. package/dist/privacyGuards.js.map +1 -0
  139. package/dist/protocol.d.ts +171 -0
  140. package/dist/protocol.d.ts.map +1 -0
  141. package/dist/protocol.js +2 -0
  142. package/dist/protocol.js.map +1 -0
  143. package/dist/types.d.ts +2 -0
  144. package/dist/types.d.ts.map +1 -0
  145. package/dist/types.js +2 -0
  146. package/dist/types.js.map +1 -0
  147. package/dist/worker.d.ts +2 -0
  148. package/dist/worker.d.ts.map +1 -0
  149. package/dist/worker.js +616 -0
  150. package/dist/worker.js.map +1 -0
  151. package/package.json +64 -0
@@ -0,0 +1,574 @@
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
+ updatedAt: number;
17
+ encryptedKey?: string;
18
+ keyId?: string;
19
+ selfEncryptedKey?: string;
20
+ selfEncryptedLinkKey?: string;
21
+ }
22
+ export interface PeerStats {
23
+ peerId: string;
24
+ pubkey: string;
25
+ connected: boolean;
26
+ pool: 'follows' | 'other';
27
+ requestsSent: number;
28
+ requestsReceived: number;
29
+ responsesSent: number;
30
+ responsesReceived: number;
31
+ bytesSent: number;
32
+ bytesReceived: number;
33
+ forwardedRequests: number;
34
+ forwardedResolved: number;
35
+ forwardedSuppressed: number;
36
+ }
37
+ export type WorkerRequest = {
38
+ type: 'init';
39
+ id: string;
40
+ config: WorkerConfig;
41
+ } | {
42
+ type: 'close';
43
+ id: string;
44
+ } | {
45
+ type: 'setIdentity';
46
+ id: string;
47
+ pubkey: string;
48
+ nsec?: string;
49
+ } | {
50
+ type: 'get';
51
+ id: string;
52
+ hash: Uint8Array;
53
+ } | {
54
+ type: 'put';
55
+ id: string;
56
+ hash: Uint8Array;
57
+ data: Uint8Array;
58
+ } | {
59
+ type: 'has';
60
+ id: string;
61
+ hash: Uint8Array;
62
+ } | {
63
+ type: 'delete';
64
+ id: string;
65
+ hash: Uint8Array;
66
+ } | {
67
+ type: 'readFile';
68
+ id: string;
69
+ cid: CID;
70
+ } | {
71
+ type: 'readFileRange';
72
+ id: string;
73
+ cid: CID;
74
+ start: number;
75
+ end?: number;
76
+ } | {
77
+ type: 'readFileStream';
78
+ id: string;
79
+ cid: CID;
80
+ } | {
81
+ type: 'writeFile';
82
+ id: string;
83
+ parentCid: CID | null;
84
+ path: string;
85
+ data: Uint8Array;
86
+ } | {
87
+ type: 'deleteFile';
88
+ id: string;
89
+ parentCid: CID;
90
+ path: string;
91
+ } | {
92
+ type: 'listDir';
93
+ id: string;
94
+ cid: CID;
95
+ } | {
96
+ type: 'resolveRoot';
97
+ id: string;
98
+ npub: string;
99
+ path?: string;
100
+ } | {
101
+ type: 'setTreeRootCache';
102
+ id: string;
103
+ npub: string;
104
+ treeName: string;
105
+ hash: Uint8Array;
106
+ key?: Uint8Array;
107
+ visibility: TreeVisibility;
108
+ } | {
109
+ type: 'getTreeRootInfo';
110
+ id: string;
111
+ npub: string;
112
+ treeName: string;
113
+ } | {
114
+ type: 'mergeTreeRootKey';
115
+ id: string;
116
+ npub: string;
117
+ treeName: string;
118
+ hash: Uint8Array;
119
+ key: Uint8Array;
120
+ } | {
121
+ type: 'subscribeTreeRoots';
122
+ id: string;
123
+ pubkey: string;
124
+ } | {
125
+ type: 'unsubscribeTreeRoots';
126
+ id: string;
127
+ pubkey: string;
128
+ } | {
129
+ type: 'subscribe';
130
+ id: string;
131
+ filters: NostrFilter[];
132
+ } | {
133
+ type: 'unsubscribe';
134
+ id: string;
135
+ subId: string;
136
+ } | {
137
+ type: 'publish';
138
+ id: string;
139
+ event: SignedEvent;
140
+ } | {
141
+ type: 'registerMediaPort';
142
+ port: MessagePort;
143
+ debug?: boolean;
144
+ } | {
145
+ type: 'getPeerStats';
146
+ id: string;
147
+ } | {
148
+ type: 'getRelayStats';
149
+ id: string;
150
+ } | {
151
+ type: 'getStorageStats';
152
+ id: string;
153
+ } | {
154
+ type: 'setWebRTCPools';
155
+ id: string;
156
+ pools: {
157
+ follows: {
158
+ max: number;
159
+ satisfied: number;
160
+ };
161
+ other: {
162
+ max: number;
163
+ satisfied: number;
164
+ };
165
+ };
166
+ } | {
167
+ type: 'sendWebRTCHello';
168
+ id: string;
169
+ } | {
170
+ type: 'setFollows';
171
+ id: string;
172
+ follows: string[];
173
+ } | {
174
+ type: 'setBlossomServers';
175
+ id: string;
176
+ servers: BlossomServerConfig[];
177
+ } | {
178
+ type: 'setStorageMaxBytes';
179
+ id: string;
180
+ maxBytes: number;
181
+ } | {
182
+ type: 'pushToBlossom';
183
+ id: string;
184
+ cidHash: Uint8Array;
185
+ cidKey?: Uint8Array;
186
+ treeName?: string;
187
+ } | {
188
+ type: 'startBlossomSession';
189
+ id: string;
190
+ sessionId: string;
191
+ totalChunks: number;
192
+ } | {
193
+ type: 'endBlossomSession';
194
+ id: string;
195
+ } | {
196
+ type: 'republishTrees';
197
+ id: string;
198
+ } | {
199
+ type: 'republishTree';
200
+ id: string;
201
+ pubkey: string;
202
+ treeName: string;
203
+ } | {
204
+ type: 'ping';
205
+ id: string;
206
+ } | {
207
+ type: 'initSocialGraph';
208
+ id: string;
209
+ rootPubkey?: string;
210
+ } | {
211
+ type: 'setSocialGraphRoot';
212
+ id: string;
213
+ pubkey: string;
214
+ } | {
215
+ type: 'handleSocialGraphEvents';
216
+ id: string;
217
+ events: SocialGraphEvent[];
218
+ } | {
219
+ type: 'getFollowDistance';
220
+ id: string;
221
+ pubkey: string;
222
+ } | {
223
+ type: 'isFollowing';
224
+ id: string;
225
+ follower: string;
226
+ followed: string;
227
+ } | {
228
+ type: 'getFollows';
229
+ id: string;
230
+ pubkey: string;
231
+ } | {
232
+ type: 'getFollowers';
233
+ id: string;
234
+ pubkey: string;
235
+ } | {
236
+ type: 'getFollowedByFriends';
237
+ id: string;
238
+ pubkey: string;
239
+ } | {
240
+ type: 'getSocialGraphSize';
241
+ id: string;
242
+ } | {
243
+ type: 'signed';
244
+ id: string;
245
+ event?: SignedEvent;
246
+ error?: string;
247
+ } | {
248
+ type: 'encrypted';
249
+ id: string;
250
+ ciphertext?: string;
251
+ error?: string;
252
+ } | {
253
+ type: 'decrypted';
254
+ id: string;
255
+ plaintext?: string;
256
+ error?: string;
257
+ } | WebRTCEvent;
258
+ /** Blossom server configuration */
259
+ export interface BlossomServerConfig {
260
+ url: string;
261
+ read?: boolean;
262
+ write?: boolean;
263
+ }
264
+ export interface WorkerConfig {
265
+ relays: string[];
266
+ blossomServers?: BlossomServerConfig[];
267
+ pubkey: string;
268
+ nsec?: string;
269
+ storeName?: string;
270
+ }
271
+ export type WorkerResponse = {
272
+ type: 'ready';
273
+ } | {
274
+ type: 'pong';
275
+ id: string;
276
+ } | {
277
+ type: 'error';
278
+ id?: string;
279
+ error: string;
280
+ } | {
281
+ type: 'result';
282
+ id: string;
283
+ data?: Uint8Array;
284
+ error?: string;
285
+ } | {
286
+ type: 'bool';
287
+ id: string;
288
+ value: boolean;
289
+ error?: string;
290
+ } | {
291
+ type: 'cid';
292
+ id: string;
293
+ cid?: CID;
294
+ error?: string;
295
+ } | {
296
+ type: 'void';
297
+ id: string;
298
+ error?: string;
299
+ } | {
300
+ type: 'dirListing';
301
+ id: string;
302
+ entries?: DirEntry[];
303
+ error?: string;
304
+ } | {
305
+ type: 'streamChunk';
306
+ id: string;
307
+ chunk: Uint8Array;
308
+ done: boolean;
309
+ } | {
310
+ type: 'event';
311
+ subId: string;
312
+ event: SignedEvent;
313
+ } | {
314
+ type: 'eose';
315
+ subId: string;
316
+ } | {
317
+ type: 'peerStats';
318
+ id: string;
319
+ stats: PeerStats[];
320
+ } | {
321
+ type: 'relayStats';
322
+ id: string;
323
+ stats: RelayStats[];
324
+ } | {
325
+ type: 'storageStats';
326
+ id: string;
327
+ items: number;
328
+ bytes: number;
329
+ } | {
330
+ type: 'blossomBandwidth';
331
+ stats: BlossomBandwidthStats;
332
+ } | {
333
+ type: 'blossomUploadError';
334
+ hash: string;
335
+ error: string;
336
+ } | {
337
+ type: 'blossomUploadProgress';
338
+ progress: BlossomUploadProgress;
339
+ } | {
340
+ type: 'blossomPushResult';
341
+ id: string;
342
+ pushed: number;
343
+ skipped: number;
344
+ failed: number;
345
+ error?: string;
346
+ errors?: string[];
347
+ } | {
348
+ type: 'republishResult';
349
+ id: string;
350
+ count: number;
351
+ error?: string;
352
+ encryptionErrors?: string[];
353
+ } | {
354
+ type: 'blossomPushStarted';
355
+ treeName: string;
356
+ totalChunks: number;
357
+ } | {
358
+ type: 'blossomPushProgress';
359
+ treeName: string;
360
+ current: number;
361
+ total: number;
362
+ } | {
363
+ type: 'blossomPushComplete';
364
+ treeName: string;
365
+ pushed: number;
366
+ skipped: number;
367
+ failed: number;
368
+ } | {
369
+ type: 'treeRootUpdate';
370
+ npub: string;
371
+ treeName: string;
372
+ hash: Uint8Array;
373
+ key?: Uint8Array;
374
+ visibility: TreeVisibility;
375
+ updatedAt: number;
376
+ encryptedKey?: string;
377
+ keyId?: string;
378
+ selfEncryptedKey?: string;
379
+ selfEncryptedLinkKey?: string;
380
+ } | {
381
+ type: 'treeRootInfo';
382
+ id: string;
383
+ record?: TreeRootInfo;
384
+ error?: string;
385
+ } | {
386
+ type: 'socialGraphInit';
387
+ id: string;
388
+ version: number;
389
+ size: number;
390
+ error?: string;
391
+ } | {
392
+ type: 'socialGraphVersion';
393
+ version: number;
394
+ } | {
395
+ type: 'followDistance';
396
+ id: string;
397
+ distance: number;
398
+ error?: string;
399
+ } | {
400
+ type: 'isFollowingResult';
401
+ id: string;
402
+ result: boolean;
403
+ error?: string;
404
+ } | {
405
+ type: 'pubkeyList';
406
+ id: string;
407
+ pubkeys: string[];
408
+ error?: string;
409
+ } | {
410
+ type: 'socialGraphSize';
411
+ id: string;
412
+ size: number;
413
+ error?: string;
414
+ } | {
415
+ type: 'signEvent';
416
+ id: string;
417
+ event: UnsignedEvent;
418
+ } | {
419
+ type: 'nip44Encrypt';
420
+ id: string;
421
+ pubkey: string;
422
+ plaintext: string;
423
+ } | {
424
+ type: 'nip44Decrypt';
425
+ id: string;
426
+ pubkey: string;
427
+ ciphertext: string;
428
+ } | WebRTCCommand;
429
+ export interface DirEntry {
430
+ name: string;
431
+ isDir: boolean;
432
+ size?: number;
433
+ cid?: CID;
434
+ }
435
+ export interface RelayStats {
436
+ url: string;
437
+ connected: boolean;
438
+ eventsReceived: number;
439
+ eventsSent: number;
440
+ }
441
+ /** Per-server upload status */
442
+ export interface BlossomServerStatus {
443
+ url: string;
444
+ uploaded: number;
445
+ failed: number;
446
+ skipped: number;
447
+ }
448
+ /** Overall blossom upload progress */
449
+ export interface BlossomUploadProgress {
450
+ sessionId: string;
451
+ totalChunks: number;
452
+ processedChunks: number;
453
+ servers: BlossomServerStatus[];
454
+ }
455
+ export interface MediaRequestByCid {
456
+ type: 'media';
457
+ requestId: string;
458
+ cid: string;
459
+ start: number;
460
+ end?: number;
461
+ mimeType?: string;
462
+ }
463
+ export interface MediaRequestByPath {
464
+ type: 'mediaByPath';
465
+ requestId: string;
466
+ npub: string;
467
+ path: string;
468
+ start: number;
469
+ end?: number;
470
+ mimeType?: string;
471
+ }
472
+ export type MediaRequest = MediaRequestByCid | MediaRequestByPath;
473
+ export type MediaResponse = {
474
+ type: 'headers';
475
+ requestId: string;
476
+ totalSize: number;
477
+ mimeType: string;
478
+ isLive?: boolean;
479
+ } | {
480
+ type: 'chunk';
481
+ requestId: string;
482
+ data: Uint8Array;
483
+ } | {
484
+ type: 'done';
485
+ requestId: string;
486
+ } | {
487
+ type: 'error';
488
+ requestId: string;
489
+ message: string;
490
+ };
491
+ /** Worker → Main: Commands to control WebRTC connections */
492
+ export type WebRTCCommand = {
493
+ type: 'rtc:createPeer';
494
+ peerId: string;
495
+ pubkey: string;
496
+ } | {
497
+ type: 'rtc:closePeer';
498
+ peerId: string;
499
+ } | {
500
+ type: 'rtc:createOffer';
501
+ peerId: string;
502
+ } | {
503
+ type: 'rtc:createAnswer';
504
+ peerId: string;
505
+ } | {
506
+ type: 'rtc:setLocalDescription';
507
+ peerId: string;
508
+ sdp: RTCSessionDescriptionInit;
509
+ } | {
510
+ type: 'rtc:setRemoteDescription';
511
+ peerId: string;
512
+ sdp: RTCSessionDescriptionInit;
513
+ } | {
514
+ type: 'rtc:addIceCandidate';
515
+ peerId: string;
516
+ candidate: RTCIceCandidateInit;
517
+ } | {
518
+ type: 'rtc:sendData';
519
+ peerId: string;
520
+ data: Uint8Array;
521
+ };
522
+ /** Main → Worker: Events from WebRTC connections */
523
+ export type WebRTCEvent = {
524
+ type: 'rtc:peerCreated';
525
+ peerId: string;
526
+ } | {
527
+ type: 'rtc:peerStateChange';
528
+ peerId: string;
529
+ state: RTCPeerConnectionState;
530
+ } | {
531
+ type: 'rtc:peerClosed';
532
+ peerId: string;
533
+ } | {
534
+ type: 'rtc:offerCreated';
535
+ peerId: string;
536
+ sdp: RTCSessionDescriptionInit;
537
+ } | {
538
+ type: 'rtc:answerCreated';
539
+ peerId: string;
540
+ sdp: RTCSessionDescriptionInit;
541
+ } | {
542
+ type: 'rtc:descriptionSet';
543
+ peerId: string;
544
+ error?: string;
545
+ } | {
546
+ type: 'rtc:iceCandidate';
547
+ peerId: string;
548
+ candidate: RTCIceCandidateInit | null;
549
+ } | {
550
+ type: 'rtc:iceGatheringComplete';
551
+ peerId: string;
552
+ } | {
553
+ type: 'rtc:dataChannelOpen';
554
+ peerId: string;
555
+ } | {
556
+ type: 'rtc:dataChannelMessage';
557
+ peerId: string;
558
+ data: Uint8Array;
559
+ } | {
560
+ type: 'rtc:dataChannelClose';
561
+ peerId: string;
562
+ } | {
563
+ type: 'rtc:dataChannelError';
564
+ peerId: string;
565
+ error: string;
566
+ } | {
567
+ type: 'rtc:bufferHigh';
568
+ peerId: string;
569
+ } | {
570
+ type: 'rtc:bufferLow';
571
+ peerId: string;
572
+ };
573
+ export declare function generateRequestId(): string;
574
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/iris/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/iris/protocol.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;GAMG;AAsUH,+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,50 @@
1
+ /**
2
+ * Worker Signing & Encryption
3
+ *
4
+ * Provides signing, encryption, and gift wrap functions.
5
+ * Uses nsec directly when available, delegates to main thread otherwise.
6
+ */
7
+ import type { EventTemplate } from 'nostr-tools';
8
+ import type { SignedEvent } from './protocol';
9
+ export declare function setResponseSender(fn: (msg: unknown) => void): void;
10
+ /**
11
+ * Sign an event with user's real identity.
12
+ * - For nsec login: signs directly with secret key
13
+ * - For extension login: delegates to main thread via NIP-07
14
+ */
15
+ export declare function signEvent(template: EventTemplate): Promise<SignedEvent>;
16
+ /**
17
+ * Synchronous sign (only works with nsec, falls back to ephemeral)
18
+ */
19
+ export declare function signEventSync(template: EventTemplate): SignedEvent;
20
+ /**
21
+ * Encrypt plaintext for a recipient using NIP-44
22
+ */
23
+ export declare function encrypt(recipientPubkey: string, plaintext: string): Promise<string>;
24
+ /**
25
+ * Decrypt ciphertext from a sender using NIP-44
26
+ */
27
+ export declare function decrypt(senderPubkey: string, ciphertext: string): Promise<string>;
28
+ interface Seal {
29
+ pubkey: string;
30
+ kind: number;
31
+ content: string;
32
+ tags: string[][];
33
+ }
34
+ /**
35
+ * Gift wrap an event for private delivery.
36
+ */
37
+ export declare function giftWrap(innerEvent: {
38
+ kind: number;
39
+ content: string;
40
+ tags: string[][];
41
+ }, recipientPubkey: string): Promise<SignedEvent>;
42
+ /**
43
+ * Unwrap a gift wrapped event.
44
+ */
45
+ export declare function giftUnwrap(event: SignedEvent): Promise<Seal | null>;
46
+ export declare function handleSignedResponse(id: string, event?: SignedEvent, error?: string): void;
47
+ export declare function handleEncryptedResponse(id: string, ciphertext?: string, error?: string): void;
48
+ export declare function handleDecryptedResponse(id: string, plaintext?: string, error?: string): void;
49
+ export {};
50
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/iris/signing.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAU7D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,QAE3D;AAgED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAsB7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CAgBlE;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzF;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvF;AAMD,UAAU,IAAI;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,EAC/D,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAOzE;AAyED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,QAMnF;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAMtF;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAMrF"}