@hashtree/worker 0.1.26 → 0.2.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 (258) hide show
  1. package/README.md +16 -16
  2. package/package.json +23 -19
  3. package/src/app-runtime.ts +393 -0
  4. package/src/capabilities/blossomBandwidthTracker.ts +74 -0
  5. package/src/capabilities/blossomTransport.ts +179 -0
  6. package/src/capabilities/connectivity.ts +54 -0
  7. package/src/capabilities/idbStorage.ts +94 -0
  8. package/src/capabilities/meshRouterStore.ts +426 -0
  9. package/src/capabilities/rootResolver.ts +497 -0
  10. package/src/client-id.ts +137 -0
  11. package/src/client.ts +501 -0
  12. package/{dist/entry.js → src/entry.ts} +1 -1
  13. package/src/htree-path.ts +53 -0
  14. package/src/htree-url.ts +156 -0
  15. package/src/index.ts +76 -0
  16. package/src/mediaStreaming.ts +64 -0
  17. package/src/p2p/boundedQueue.ts +168 -0
  18. package/src/p2p/errorMessage.ts +6 -0
  19. package/src/p2p/index.ts +48 -0
  20. package/src/p2p/lruCache.ts +78 -0
  21. package/src/p2p/meshQueryRouter.ts +361 -0
  22. package/src/p2p/protocol.ts +11 -0
  23. package/src/p2p/queryForwardingMachine.ts +197 -0
  24. package/src/p2p/signaling.ts +284 -0
  25. package/src/p2p/uploadRateLimiter.ts +85 -0
  26. package/src/p2p/webrtcController.ts +1168 -0
  27. package/src/p2p/webrtcProxy.ts +519 -0
  28. package/src/privacyGuards.ts +31 -0
  29. package/src/protocol.ts +124 -0
  30. package/src/relay/identity.ts +86 -0
  31. package/src/relay/mediaHandler.ts +1633 -0
  32. package/src/relay/ndk.ts +590 -0
  33. package/{dist/iris/nostr-wasm.js → src/relay/nostr-wasm.ts} +4 -1
  34. package/src/relay/nostr.ts +249 -0
  35. package/src/relay/protocol.ts +361 -0
  36. package/src/relay/publicAssetUrl.ts +25 -0
  37. package/src/relay/rootPathResolver.ts +50 -0
  38. package/src/relay/shims.d.ts +17 -0
  39. package/src/relay/signing.ts +332 -0
  40. package/src/relay/treeRootCache.ts +354 -0
  41. package/src/relay/treeRootSubscription.ts +577 -0
  42. package/src/relay/utils/constants.ts +139 -0
  43. package/src/relay/utils/errorMessage.ts +7 -0
  44. package/src/relay/utils/lruCache.ts +79 -0
  45. package/src/relay/webrtc.ts +5 -0
  46. package/src/relay/webrtcSignaling.ts +108 -0
  47. package/src/relay/worker.ts +1787 -0
  48. package/src/relay-client.ts +265 -0
  49. package/src/relay-entry.ts +1 -0
  50. package/src/runtime-network.ts +134 -0
  51. package/src/runtime.ts +153 -0
  52. package/src/transferableBytes.ts +5 -0
  53. package/src/tree-root.ts +851 -0
  54. package/src/types.ts +8 -0
  55. package/src/worker.ts +975 -0
  56. package/LICENSE +0 -21
  57. package/dist/app-runtime.d.ts +0 -60
  58. package/dist/app-runtime.d.ts.map +0 -1
  59. package/dist/app-runtime.js +0 -271
  60. package/dist/app-runtime.js.map +0 -1
  61. package/dist/capabilities/blossomBandwidthTracker.d.ts +0 -26
  62. package/dist/capabilities/blossomBandwidthTracker.d.ts.map +0 -1
  63. package/dist/capabilities/blossomBandwidthTracker.js +0 -53
  64. package/dist/capabilities/blossomBandwidthTracker.js.map +0 -1
  65. package/dist/capabilities/blossomTransport.d.ts +0 -22
  66. package/dist/capabilities/blossomTransport.d.ts.map +0 -1
  67. package/dist/capabilities/blossomTransport.js +0 -144
  68. package/dist/capabilities/blossomTransport.js.map +0 -1
  69. package/dist/capabilities/connectivity.d.ts +0 -3
  70. package/dist/capabilities/connectivity.d.ts.map +0 -1
  71. package/dist/capabilities/connectivity.js +0 -49
  72. package/dist/capabilities/connectivity.js.map +0 -1
  73. package/dist/capabilities/idbStorage.d.ts +0 -25
  74. package/dist/capabilities/idbStorage.d.ts.map +0 -1
  75. package/dist/capabilities/idbStorage.js +0 -73
  76. package/dist/capabilities/idbStorage.js.map +0 -1
  77. package/dist/capabilities/meshRouterStore.d.ts +0 -71
  78. package/dist/capabilities/meshRouterStore.d.ts.map +0 -1
  79. package/dist/capabilities/meshRouterStore.js +0 -316
  80. package/dist/capabilities/meshRouterStore.js.map +0 -1
  81. package/dist/capabilities/rootResolver.d.ts +0 -10
  82. package/dist/capabilities/rootResolver.d.ts.map +0 -1
  83. package/dist/capabilities/rootResolver.js +0 -393
  84. package/dist/capabilities/rootResolver.js.map +0 -1
  85. package/dist/client-id.d.ts +0 -18
  86. package/dist/client-id.d.ts.map +0 -1
  87. package/dist/client-id.js +0 -98
  88. package/dist/client-id.js.map +0 -1
  89. package/dist/client.d.ts +0 -61
  90. package/dist/client.d.ts.map +0 -1
  91. package/dist/client.js +0 -417
  92. package/dist/client.js.map +0 -1
  93. package/dist/entry.d.ts +0 -2
  94. package/dist/entry.d.ts.map +0 -1
  95. package/dist/entry.js.map +0 -1
  96. package/dist/htree-path.d.ts +0 -13
  97. package/dist/htree-path.d.ts.map +0 -1
  98. package/dist/htree-path.js +0 -38
  99. package/dist/htree-path.js.map +0 -1
  100. package/dist/htree-url.d.ts +0 -22
  101. package/dist/htree-url.d.ts.map +0 -1
  102. package/dist/htree-url.js +0 -118
  103. package/dist/htree-url.js.map +0 -1
  104. package/dist/index.d.ts +0 -17
  105. package/dist/index.d.ts.map +0 -1
  106. package/dist/index.js +0 -8
  107. package/dist/index.js.map +0 -1
  108. package/dist/iris/identity.d.ts +0 -36
  109. package/dist/iris/identity.d.ts.map +0 -1
  110. package/dist/iris/identity.js +0 -78
  111. package/dist/iris/identity.js.map +0 -1
  112. package/dist/iris/mediaHandler.d.ts +0 -64
  113. package/dist/iris/mediaHandler.d.ts.map +0 -1
  114. package/dist/iris/mediaHandler.js +0 -1285
  115. package/dist/iris/mediaHandler.js.map +0 -1
  116. package/dist/iris/ndk.d.ts +0 -96
  117. package/dist/iris/ndk.d.ts.map +0 -1
  118. package/dist/iris/ndk.js +0 -502
  119. package/dist/iris/ndk.js.map +0 -1
  120. package/dist/iris/nostr-wasm.d.ts +0 -14
  121. package/dist/iris/nostr-wasm.d.ts.map +0 -1
  122. package/dist/iris/nostr-wasm.js.map +0 -1
  123. package/dist/iris/nostr.d.ts +0 -60
  124. package/dist/iris/nostr.d.ts.map +0 -1
  125. package/dist/iris/nostr.js +0 -207
  126. package/dist/iris/nostr.js.map +0 -1
  127. package/dist/iris/protocol.d.ts +0 -583
  128. package/dist/iris/protocol.d.ts.map +0 -1
  129. package/dist/iris/protocol.js +0 -16
  130. package/dist/iris/protocol.js.map +0 -1
  131. package/dist/iris/publicAssetUrl.d.ts +0 -6
  132. package/dist/iris/publicAssetUrl.d.ts.map +0 -1
  133. package/dist/iris/publicAssetUrl.js +0 -14
  134. package/dist/iris/publicAssetUrl.js.map +0 -1
  135. package/dist/iris/rootPathResolver.d.ts +0 -9
  136. package/dist/iris/rootPathResolver.d.ts.map +0 -1
  137. package/dist/iris/rootPathResolver.js +0 -32
  138. package/dist/iris/rootPathResolver.js.map +0 -1
  139. package/dist/iris/signing.d.ts +0 -50
  140. package/dist/iris/signing.d.ts.map +0 -1
  141. package/dist/iris/signing.js +0 -299
  142. package/dist/iris/signing.js.map +0 -1
  143. package/dist/iris/treeRootCache.d.ts +0 -86
  144. package/dist/iris/treeRootCache.d.ts.map +0 -1
  145. package/dist/iris/treeRootCache.js +0 -269
  146. package/dist/iris/treeRootCache.js.map +0 -1
  147. package/dist/iris/treeRootSubscription.d.ts +0 -55
  148. package/dist/iris/treeRootSubscription.d.ts.map +0 -1
  149. package/dist/iris/treeRootSubscription.js +0 -479
  150. package/dist/iris/treeRootSubscription.js.map +0 -1
  151. package/dist/iris/utils/constants.d.ts +0 -76
  152. package/dist/iris/utils/constants.d.ts.map +0 -1
  153. package/dist/iris/utils/constants.js +0 -113
  154. package/dist/iris/utils/constants.js.map +0 -1
  155. package/dist/iris/utils/errorMessage.d.ts +0 -5
  156. package/dist/iris/utils/errorMessage.d.ts.map +0 -1
  157. package/dist/iris/utils/errorMessage.js +0 -8
  158. package/dist/iris/utils/errorMessage.js.map +0 -1
  159. package/dist/iris/utils/lruCache.d.ts +0 -26
  160. package/dist/iris/utils/lruCache.d.ts.map +0 -1
  161. package/dist/iris/utils/lruCache.js +0 -66
  162. package/dist/iris/utils/lruCache.js.map +0 -1
  163. package/dist/iris/webrtc.d.ts +0 -2
  164. package/dist/iris/webrtc.d.ts.map +0 -1
  165. package/dist/iris/webrtc.js +0 -3
  166. package/dist/iris/webrtc.js.map +0 -1
  167. package/dist/iris/webrtcSignaling.d.ts +0 -37
  168. package/dist/iris/webrtcSignaling.d.ts.map +0 -1
  169. package/dist/iris/webrtcSignaling.js +0 -86
  170. package/dist/iris/webrtcSignaling.js.map +0 -1
  171. package/dist/iris/worker.d.ts +0 -12
  172. package/dist/iris/worker.d.ts.map +0 -1
  173. package/dist/iris/worker.js +0 -1529
  174. package/dist/iris/worker.js.map +0 -1
  175. package/dist/iris-client.d.ts +0 -31
  176. package/dist/iris-client.d.ts.map +0 -1
  177. package/dist/iris-client.js +0 -197
  178. package/dist/iris-client.js.map +0 -1
  179. package/dist/iris-entry.d.ts +0 -2
  180. package/dist/iris-entry.d.ts.map +0 -1
  181. package/dist/iris-entry.js +0 -2
  182. package/dist/iris-entry.js.map +0 -1
  183. package/dist/mediaStreaming.d.ts +0 -7
  184. package/dist/mediaStreaming.d.ts.map +0 -1
  185. package/dist/mediaStreaming.js +0 -48
  186. package/dist/mediaStreaming.js.map +0 -1
  187. package/dist/p2p/boundedQueue.d.ts +0 -79
  188. package/dist/p2p/boundedQueue.d.ts.map +0 -1
  189. package/dist/p2p/boundedQueue.js +0 -134
  190. package/dist/p2p/boundedQueue.js.map +0 -1
  191. package/dist/p2p/errorMessage.d.ts +0 -5
  192. package/dist/p2p/errorMessage.d.ts.map +0 -1
  193. package/dist/p2p/errorMessage.js +0 -7
  194. package/dist/p2p/errorMessage.js.map +0 -1
  195. package/dist/p2p/index.d.ts +0 -8
  196. package/dist/p2p/index.d.ts.map +0 -1
  197. package/dist/p2p/index.js +0 -6
  198. package/dist/p2p/index.js.map +0 -1
  199. package/dist/p2p/lruCache.d.ts +0 -26
  200. package/dist/p2p/lruCache.d.ts.map +0 -1
  201. package/dist/p2p/lruCache.js +0 -65
  202. package/dist/p2p/lruCache.js.map +0 -1
  203. package/dist/p2p/meshQueryRouter.d.ts +0 -44
  204. package/dist/p2p/meshQueryRouter.d.ts.map +0 -1
  205. package/dist/p2p/meshQueryRouter.js +0 -228
  206. package/dist/p2p/meshQueryRouter.js.map +0 -1
  207. package/dist/p2p/protocol.d.ts +0 -10
  208. package/dist/p2p/protocol.d.ts.map +0 -1
  209. package/dist/p2p/protocol.js +0 -2
  210. package/dist/p2p/protocol.js.map +0 -1
  211. package/dist/p2p/queryForwardingMachine.d.ts +0 -46
  212. package/dist/p2p/queryForwardingMachine.d.ts.map +0 -1
  213. package/dist/p2p/queryForwardingMachine.js +0 -144
  214. package/dist/p2p/queryForwardingMachine.js.map +0 -1
  215. package/dist/p2p/signaling.d.ts +0 -63
  216. package/dist/p2p/signaling.d.ts.map +0 -1
  217. package/dist/p2p/signaling.js +0 -185
  218. package/dist/p2p/signaling.js.map +0 -1
  219. package/dist/p2p/uploadRateLimiter.d.ts +0 -21
  220. package/dist/p2p/uploadRateLimiter.d.ts.map +0 -1
  221. package/dist/p2p/uploadRateLimiter.js +0 -62
  222. package/dist/p2p/uploadRateLimiter.js.map +0 -1
  223. package/dist/p2p/webrtcController.d.ts +0 -168
  224. package/dist/p2p/webrtcController.d.ts.map +0 -1
  225. package/dist/p2p/webrtcController.js +0 -902
  226. package/dist/p2p/webrtcController.js.map +0 -1
  227. package/dist/p2p/webrtcProxy.d.ts +0 -62
  228. package/dist/p2p/webrtcProxy.d.ts.map +0 -1
  229. package/dist/p2p/webrtcProxy.js +0 -447
  230. package/dist/p2p/webrtcProxy.js.map +0 -1
  231. package/dist/privacyGuards.d.ts +0 -14
  232. package/dist/privacyGuards.d.ts.map +0 -1
  233. package/dist/privacyGuards.js +0 -27
  234. package/dist/privacyGuards.js.map +0 -1
  235. package/dist/protocol.d.ts +0 -225
  236. package/dist/protocol.d.ts.map +0 -1
  237. package/dist/protocol.js +0 -2
  238. package/dist/protocol.js.map +0 -1
  239. package/dist/runtime-network.d.ts +0 -23
  240. package/dist/runtime-network.d.ts.map +0 -1
  241. package/dist/runtime-network.js +0 -105
  242. package/dist/runtime-network.js.map +0 -1
  243. package/dist/runtime.d.ts +0 -23
  244. package/dist/runtime.d.ts.map +0 -1
  245. package/dist/runtime.js +0 -122
  246. package/dist/runtime.js.map +0 -1
  247. package/dist/tree-root.d.ts +0 -201
  248. package/dist/tree-root.d.ts.map +0 -1
  249. package/dist/tree-root.js +0 -632
  250. package/dist/tree-root.js.map +0 -1
  251. package/dist/types.d.ts +0 -2
  252. package/dist/types.d.ts.map +0 -1
  253. package/dist/types.js +0 -2
  254. package/dist/types.js.map +0 -1
  255. package/dist/worker.d.ts +0 -9
  256. package/dist/worker.d.ts.map +0 -1
  257. package/dist/worker.js +0 -797
  258. package/dist/worker.js.map +0 -1
@@ -1,225 +0,0 @@
1
- import type { CID } from '@hashtree/core';
2
- export interface BlossomServerConfig {
3
- url: string;
4
- read?: boolean;
5
- write?: boolean;
6
- }
7
- export interface WorkerConfig {
8
- storeName?: string;
9
- blossomServers?: BlossomServerConfig[];
10
- relays?: string[];
11
- storageMaxBytes?: number;
12
- connectivityProbeIntervalMs?: number;
13
- diagnosticsEnabled?: boolean;
14
- diagnosticsMirrorToConsole?: boolean;
15
- }
16
- export type WorkerDiagnosticLevel = 'debug' | 'info' | 'warn' | 'error';
17
- export type WorkerDiagnosticDataValue = string | number | boolean | null;
18
- export interface WorkerDiagnosticEvent {
19
- scope: string;
20
- code: string;
21
- level: WorkerDiagnosticLevel;
22
- message: string;
23
- timestamp: number;
24
- data?: Record<string, WorkerDiagnosticDataValue>;
25
- }
26
- export interface ConnectivityState {
27
- online: boolean;
28
- reachableReadServers: number;
29
- totalReadServers: number;
30
- reachableWriteServers: number;
31
- totalWriteServers: number;
32
- updatedAt: number;
33
- }
34
- export type BlobSource = 'idb' | 'blossom' | 'p2p';
35
- export interface UploadServerStatus {
36
- url: string;
37
- uploaded: number;
38
- skipped: number;
39
- failed: number;
40
- }
41
- export interface UploadProgressState {
42
- hashHex: string;
43
- nhash: string;
44
- totalServers: number;
45
- processedServers: number;
46
- uploadedServers: number;
47
- skippedServers: number;
48
- failedServers: number;
49
- totalChunks?: number;
50
- processedChunks?: number;
51
- /** 0..1 normalized progress for chunk upload traversal */
52
- progressRatio?: number;
53
- serverStatuses?: UploadServerStatus[];
54
- complete: boolean;
55
- error?: string;
56
- }
57
- export interface BlossomBandwidthServerStats {
58
- url: string;
59
- bytesSent: number;
60
- bytesReceived: number;
61
- }
62
- export interface BlossomBandwidthState {
63
- totalBytesSent: number;
64
- totalBytesReceived: number;
65
- updatedAt: number;
66
- servers: BlossomBandwidthServerStats[];
67
- }
68
- export interface BlobStreamStarted {
69
- id: string;
70
- streamId: string;
71
- }
72
- export interface RootResolveOptions {
73
- timeoutMs?: number;
74
- settleMs?: number;
75
- }
76
- export type WorkerRequest = {
77
- type: 'init';
78
- id: string;
79
- config: WorkerConfig;
80
- } | {
81
- type: 'close';
82
- id: string;
83
- } | {
84
- type: 'putBlob';
85
- id: string;
86
- data: Uint8Array;
87
- mimeType?: string;
88
- upload?: boolean;
89
- } | {
90
- type: 'beginPutBlobStream';
91
- id: string;
92
- mimeType?: string;
93
- upload?: boolean;
94
- } | {
95
- type: 'appendPutBlobStream';
96
- id: string;
97
- streamId: string;
98
- chunk: Uint8Array;
99
- } | {
100
- type: 'finishPutBlobStream';
101
- id: string;
102
- streamId: string;
103
- } | {
104
- type: 'cancelPutBlobStream';
105
- id: string;
106
- streamId: string;
107
- } | {
108
- type: 'p2pFetchResult';
109
- id: string;
110
- requestId: string;
111
- data?: Uint8Array;
112
- error?: string;
113
- } | {
114
- type: 'getBlob';
115
- id: string;
116
- hashHex: string;
117
- forPeer?: boolean;
118
- } | {
119
- type: 'registerMediaPort';
120
- id: string;
121
- port: MessagePort;
122
- } | {
123
- type: 'setBlossomServers';
124
- id: string;
125
- servers: BlossomServerConfig[];
126
- } | {
127
- type: 'setStorageMaxBytes';
128
- id: string;
129
- maxBytes: number;
130
- } | {
131
- type: 'getStorageStats';
132
- id: string;
133
- } | {
134
- type: 'probeConnectivity';
135
- id: string;
136
- } | {
137
- type: 'resolveRoot';
138
- id: string;
139
- npub: string;
140
- path?: string;
141
- timeoutMs?: number;
142
- settleMs?: number;
143
- } | {
144
- type: 'watchRoot';
145
- id: string;
146
- npub: string;
147
- path?: string;
148
- timeoutMs?: number;
149
- settleMs?: number;
150
- } | {
151
- type: 'unwatchRoot';
152
- id: string;
153
- watchId: string;
154
- };
155
- export type WorkerResponse = {
156
- type: 'ready';
157
- id: string;
158
- } | {
159
- type: 'error';
160
- id?: string;
161
- error: string;
162
- } | {
163
- type: 'diagnostic';
164
- event: WorkerDiagnosticEvent;
165
- } | {
166
- type: 'p2pFetch';
167
- requestId: string;
168
- hashHex: string;
169
- } | {
170
- type: 'blobStreamStarted';
171
- id: string;
172
- streamId: string;
173
- } | {
174
- type: 'blobStored';
175
- id: string;
176
- hashHex: string;
177
- nhash: string;
178
- } | {
179
- type: 'blob';
180
- id: string;
181
- data?: Uint8Array;
182
- source?: BlobSource;
183
- error?: string;
184
- } | {
185
- type: 'cid';
186
- id: string;
187
- cid?: CID;
188
- error?: string;
189
- } | {
190
- type: 'void';
191
- id: string;
192
- error?: string;
193
- } | {
194
- type: 'storageStats';
195
- id: string;
196
- items: number;
197
- bytes: number;
198
- maxBytes: number;
199
- error?: string;
200
- } | {
201
- type: 'connectivity';
202
- id: string;
203
- state?: ConnectivityState;
204
- error?: string;
205
- } | {
206
- type: 'rootWatchStarted';
207
- id: string;
208
- watchId: string;
209
- cid?: CID;
210
- error?: string;
211
- } | {
212
- type: 'rootUpdate';
213
- watchId: string;
214
- cid?: CID;
215
- } | {
216
- type: 'connectivityUpdate';
217
- state: ConnectivityState;
218
- } | {
219
- type: 'blossomBandwidth';
220
- stats: BlossomBandwidthState;
221
- } | {
222
- type: 'uploadProgress';
223
- progress: UploadProgressState;
224
- };
225
- //# sourceMappingURL=protocol.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=protocol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import type { BlossomServerConfig } from './protocol.js';
2
- import { type HtreeRuntimeWindowLike } from './runtime.js';
3
- export interface RuntimeNetworkOptions {
4
- windowLike?: HtreeRuntimeWindowLike;
5
- }
6
- export interface ResolveRuntimeEndpointsOptions extends RuntimeNetworkOptions {
7
- relays?: readonly string[];
8
- blossomServers?: readonly BlossomServerConfig[];
9
- }
10
- export interface RuntimeEndpoints {
11
- htreeServerUrl: string | null;
12
- nostrRelays: string[];
13
- blossomServers: BlossomServerConfig[];
14
- }
15
- export declare function normalizeRuntimeServerUrl(url: string): string;
16
- export declare function normalizeRuntimeRelayUrl(url: string): string;
17
- export declare function getRuntimeHtreeServerUrl(windowLike?: HtreeRuntimeWindowLike): string | null;
18
- export declare function getRuntimeNostrRelayUrl(windowLike?: HtreeRuntimeWindowLike): string | null;
19
- export declare function getRuntimeBlossomServer(windowLike?: HtreeRuntimeWindowLike): BlossomServerConfig | null;
20
- export declare function getRuntimeNostrRelays(relays: readonly string[], options?: RuntimeNetworkOptions): string[];
21
- export declare function getRuntimeBlossomServers(servers: readonly BlossomServerConfig[], options?: RuntimeNetworkOptions): BlossomServerConfig[];
22
- export declare function resolveRuntimeEndpoints(options?: ResolveRuntimeEndpointsOptions): RuntimeEndpoints;
23
- //# sourceMappingURL=runtime-network.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-network.d.ts","sourceRoot":"","sources":["../src/runtime-network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAA6B,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,WAAW,8BAA+B,SAAQ,qBAAqB;IAC3E,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE5D;AAwBD,wBAAgB,wBAAwB,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAI3F;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAoB1F;AAED,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,mBAAmB,GAAG,IAAI,CAQvG;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,GAAE,qBAA0B,GAClC,MAAM,EAAE,CAMV;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,OAAO,GAAE,qBAA0B,GAClC,mBAAmB,EAAE,CAuBvB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,gBAAgB,CAMlB"}
@@ -1,105 +0,0 @@
1
- import { getInjectedHtreeServerUrl } from './runtime.js';
2
- export function normalizeRuntimeServerUrl(url) {
3
- return url.trim().replace(/\/+$/, '');
4
- }
5
- export function normalizeRuntimeRelayUrl(url) {
6
- return url.trim().replace(/\/+$/, '');
7
- }
8
- function normalizeBlossomServer(server) {
9
- const url = normalizeRuntimeServerUrl(server.url);
10
- if (!url)
11
- return null;
12
- return {
13
- url,
14
- read: server.read ?? true,
15
- write: server.write ?? false,
16
- };
17
- }
18
- function uniqueRelayUrls(relays) {
19
- const seen = new Set();
20
- const normalized = [];
21
- for (const relay of relays) {
22
- const url = normalizeRuntimeRelayUrl(relay);
23
- if (!url || seen.has(url))
24
- continue;
25
- seen.add(url);
26
- normalized.push(url);
27
- }
28
- return normalized;
29
- }
30
- export function getRuntimeHtreeServerUrl(windowLike) {
31
- const serverUrl = getInjectedHtreeServerUrl(windowLike);
32
- if (!serverUrl)
33
- return null;
34
- return normalizeRuntimeServerUrl(serverUrl);
35
- }
36
- export function getRuntimeNostrRelayUrl(windowLike) {
37
- const serverUrl = getRuntimeHtreeServerUrl(windowLike);
38
- if (!serverUrl)
39
- return null;
40
- try {
41
- const url = new URL(serverUrl);
42
- if (url.protocol === 'http:') {
43
- url.protocol = 'ws:';
44
- }
45
- else if (url.protocol === 'https:') {
46
- url.protocol = 'wss:';
47
- }
48
- else {
49
- return null;
50
- }
51
- url.pathname = '/ws';
52
- url.search = '';
53
- url.hash = '';
54
- return normalizeRuntimeRelayUrl(url.toString());
55
- }
56
- catch {
57
- return null;
58
- }
59
- }
60
- export function getRuntimeBlossomServer(windowLike) {
61
- const serverUrl = getRuntimeHtreeServerUrl(windowLike);
62
- if (!serverUrl)
63
- return null;
64
- return {
65
- url: serverUrl,
66
- read: true,
67
- write: true,
68
- };
69
- }
70
- export function getRuntimeNostrRelays(relays, options = {}) {
71
- const runtimeRelayUrl = getRuntimeNostrRelayUrl(options.windowLike);
72
- if (runtimeRelayUrl) {
73
- return [runtimeRelayUrl];
74
- }
75
- return uniqueRelayUrls(relays);
76
- }
77
- export function getRuntimeBlossomServers(servers, options = {}) {
78
- const merged = new Map();
79
- const runtimeServer = getRuntimeBlossomServer(options.windowLike);
80
- const candidates = runtimeServer ? [runtimeServer, ...servers] : [...servers];
81
- for (const candidate of candidates) {
82
- const normalized = normalizeBlossomServer(candidate);
83
- if (!normalized)
84
- continue;
85
- const existing = merged.get(normalized.url);
86
- if (existing) {
87
- merged.set(normalized.url, {
88
- url: normalized.url,
89
- read: existing.read || normalized.read,
90
- write: existing.write || normalized.write,
91
- });
92
- continue;
93
- }
94
- merged.set(normalized.url, normalized);
95
- }
96
- return Array.from(merged.values());
97
- }
98
- export function resolveRuntimeEndpoints(options = {}) {
99
- return {
100
- htreeServerUrl: getRuntimeHtreeServerUrl(options.windowLike),
101
- nostrRelays: getRuntimeNostrRelays(options.relays ?? [], options),
102
- blossomServers: getRuntimeBlossomServers(options.blossomServers ?? [], options),
103
- };
104
- }
105
- //# sourceMappingURL=runtime-network.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-network.js","sourceRoot":"","sources":["../src/runtime-network.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts DELETED
@@ -1,23 +0,0 @@
1
- export interface HtreeRuntimeLocationLike {
2
- protocol?: string;
3
- hostname?: string;
4
- search?: string;
5
- }
6
- export interface HtreeRuntimeWindowLike {
7
- location?: HtreeRuntimeLocationLike;
8
- __HTREE_SERVER_URL__?: string;
9
- htree?: {
10
- htreeBaseUrl?: string;
11
- };
12
- }
13
- export interface ResolveRuntimeHtreeBaseUrlOptions {
14
- windowLike?: HtreeRuntimeWindowLike;
15
- fallbackBaseUrl?: string | null;
16
- }
17
- export declare function getInjectedHtreeServerUrl(windowLike?: HtreeRuntimeWindowLike): string | null;
18
- export declare function shouldEagerLoadMediaInNativeChildRuntime(windowLike?: HtreeRuntimeWindowLike): boolean;
19
- export declare function shouldPreferSameOriginHtreeRoutes(windowLike?: HtreeRuntimeWindowLike): boolean;
20
- export declare function canUseInjectedHtreeServerUrl(windowLike?: HtreeRuntimeWindowLike): boolean;
21
- export declare function canUseSameOriginHtreeProtocolStreaming(windowLike?: HtreeRuntimeWindowLike): boolean;
22
- export declare function resolveRuntimeHtreeBaseUrl(options?: ResolveRuntimeHtreeBaseUrlOptions): string;
23
- //# sourceMappingURL=runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAyED,wBAAgB,yBAAyB,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAQ5F;AAED,wBAAgB,wCAAwC,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAErG;AAED,wBAAgB,iCAAiC,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAc9F;AAED,wBAAgB,4BAA4B,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAGzF;AAED,wBAAgB,sCAAsC,CAAC,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAEnG;AAED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,MAAM,CAgBR"}
package/dist/runtime.js DELETED
@@ -1,122 +0,0 @@
1
- function getWindowLike(windowLike) {
2
- if (windowLike)
3
- return windowLike;
4
- if (typeof window === 'undefined')
5
- return null;
6
- return window;
7
- }
8
- function normalizeBaseUrl(url) {
9
- return (url ?? '').trim().replace(/\/$/, '');
10
- }
11
- function getQueryParam(name, windowLike) {
12
- const runtimeWindow = getWindowLike(windowLike);
13
- if (!runtimeWindow)
14
- return null;
15
- try {
16
- const value = new URLSearchParams(runtimeWindow.location?.search ?? '').get(name);
17
- return typeof value === 'string' ? value.trim() || null : null;
18
- }
19
- catch {
20
- return null;
21
- }
22
- }
23
- function getPageProtocol(windowLike) {
24
- const runtimeWindow = getWindowLike(windowLike);
25
- const protocol = runtimeWindow?.location?.protocol;
26
- return typeof protocol === 'string' ? protocol.toLowerCase() : null;
27
- }
28
- function getPageHostname(windowLike) {
29
- const runtimeWindow = getWindowLike(windowLike);
30
- const hostname = runtimeWindow?.location?.hostname;
31
- return typeof hostname === 'string' ? hostname.toLowerCase() : null;
32
- }
33
- function hasCanonicalHtreeIdentity(windowLike) {
34
- const canonical = getQueryParam('iris_htree_canonical', windowLike);
35
- return typeof canonical === 'string' && canonical.toLowerCase().startsWith('htree://');
36
- }
37
- function isLoopbackChildRuntime(windowLike) {
38
- if (getPageProtocol(windowLike) !== 'http:')
39
- return false;
40
- const hostname = getPageHostname(windowLike);
41
- if (!hostname)
42
- return false;
43
- return hostname === '127.0.0.1'
44
- || hostname === 'localhost'
45
- || hostname.endsWith('.htree.localhost');
46
- }
47
- function getServerProtocol(serverUrl) {
48
- try {
49
- return new URL(serverUrl).protocol.toLowerCase();
50
- }
51
- catch {
52
- return null;
53
- }
54
- }
55
- function isLocalHttpServerUrl(serverUrl) {
56
- try {
57
- const parsed = new URL(serverUrl);
58
- const hostname = parsed.hostname.toLowerCase();
59
- return (parsed.protocol === 'http:' || parsed.protocol === 'https:')
60
- && (hostname === '127.0.0.1' || hostname === 'localhost' || hostname.endsWith('.htree.localhost'));
61
- }
62
- catch {
63
- return false;
64
- }
65
- }
66
- function getWindowHtreeBaseUrl(windowLike) {
67
- const runtimeWindow = getWindowLike(windowLike);
68
- return normalizeBaseUrl(runtimeWindow?.htree?.htreeBaseUrl);
69
- }
70
- export function getInjectedHtreeServerUrl(windowLike) {
71
- const runtimeWindow = getWindowLike(windowLike);
72
- if (!runtimeWindow)
73
- return null;
74
- const override = runtimeWindow.__HTREE_SERVER_URL__;
75
- const fallback = getQueryParam('iris_htree_server', runtimeWindow);
76
- const candidate = typeof override === 'string' && override.trim() ? override : fallback;
77
- const normalized = normalizeBaseUrl(candidate);
78
- return normalized || null;
79
- }
80
- export function shouldEagerLoadMediaInNativeChildRuntime(windowLike) {
81
- return isLoopbackChildRuntime(windowLike) && hasCanonicalHtreeIdentity(windowLike);
82
- }
83
- export function shouldPreferSameOriginHtreeRoutes(windowLike) {
84
- const serverUrl = getInjectedHtreeServerUrl(windowLike);
85
- if (!serverUrl)
86
- return false;
87
- const serverProtocol = getServerProtocol(serverUrl);
88
- if (serverProtocol !== 'http:')
89
- return false;
90
- const pageProtocol = getPageProtocol(windowLike);
91
- if (pageProtocol === 'https:')
92
- return true;
93
- if (pageProtocol === 'htree:') {
94
- const hostname = getPageHostname(windowLike);
95
- return hostname?.startsWith('npub1') === true || hostname === 'self';
96
- }
97
- if (hasCanonicalHtreeIdentity(windowLike) && !isLoopbackChildRuntime(windowLike))
98
- return true;
99
- return false;
100
- }
101
- export function canUseInjectedHtreeServerUrl(windowLike) {
102
- const serverUrl = getInjectedHtreeServerUrl(windowLike);
103
- return !!serverUrl && !shouldPreferSameOriginHtreeRoutes(windowLike);
104
- }
105
- export function canUseSameOriginHtreeProtocolStreaming(windowLike) {
106
- return getPageProtocol(windowLike) === 'htree:';
107
- }
108
- export function resolveRuntimeHtreeBaseUrl(options = {}) {
109
- const { windowLike, fallbackBaseUrl } = options;
110
- const injectedServerUrl = getInjectedHtreeServerUrl(windowLike);
111
- if (injectedServerUrl && canUseInjectedHtreeServerUrl(windowLike)) {
112
- return injectedServerUrl;
113
- }
114
- const windowBaseUrl = getWindowHtreeBaseUrl(windowLike);
115
- if (windowBaseUrl) {
116
- if (!isLocalHttpServerUrl(windowBaseUrl) || canUseInjectedHtreeServerUrl(windowLike)) {
117
- return windowBaseUrl;
118
- }
119
- }
120
- return normalizeBaseUrl(fallbackBaseUrl);
121
- }
122
- //# sourceMappingURL=runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAmBA,SAAS,aAAa,CAAC,UAAmC;IACxD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,MAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,GAA8B;IACtD,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,UAAmC;IACtE,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAmC;IAC1D,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnD,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,eAAe,CAAC,UAAmC;IAC1D,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnD,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,yBAAyB,CAAC,UAAmC;IACpE,MAAM,SAAS,GAAG,aAAa,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IACpE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAmC;IACjE,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,QAAQ,KAAK,WAAW;WAC1B,QAAQ,KAAK,WAAW;WACxB,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;eAC/D,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAmC;IAChE,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAAmC;IAC3E,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxF,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,UAAmC;IAC1F,OAAO,sBAAsB,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,UAAmC;IACnF,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,cAAc,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAE7C,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,YAAY,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,CAAC;IACvE,CAAC;IACD,IAAI,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAmC;IAC9E,MAAM,SAAS,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,UAAmC;IACxF,OAAO,eAAe,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,UAA6C,EAAE;IAE/C,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAEhE,IAAI,iBAAiB,IAAI,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC;YACrF,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC3C,CAAC"}