@hashtree/worker 0.2.1 → 0.2.3

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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app-runtime.d.ts +60 -0
  3. package/dist/app-runtime.d.ts.map +1 -0
  4. package/dist/app-runtime.js +271 -0
  5. package/dist/app-runtime.js.map +1 -0
  6. package/dist/capabilities/blossomBandwidthTracker.d.ts +26 -0
  7. package/dist/capabilities/blossomBandwidthTracker.d.ts.map +1 -0
  8. package/dist/capabilities/blossomBandwidthTracker.js +53 -0
  9. package/dist/capabilities/blossomBandwidthTracker.js.map +1 -0
  10. package/dist/capabilities/blossomTransport.d.ts +22 -0
  11. package/dist/capabilities/blossomTransport.d.ts.map +1 -0
  12. package/dist/capabilities/blossomTransport.js +139 -0
  13. package/dist/capabilities/blossomTransport.js.map +1 -0
  14. package/dist/capabilities/connectivity.d.ts +3 -0
  15. package/dist/capabilities/connectivity.d.ts.map +1 -0
  16. package/dist/capabilities/connectivity.js +49 -0
  17. package/dist/capabilities/connectivity.js.map +1 -0
  18. package/dist/capabilities/idbStorage.d.ts +25 -0
  19. package/dist/capabilities/idbStorage.d.ts.map +1 -0
  20. package/dist/capabilities/idbStorage.js +73 -0
  21. package/dist/capabilities/idbStorage.js.map +1 -0
  22. package/dist/capabilities/meshRouterStore.d.ts +71 -0
  23. package/dist/capabilities/meshRouterStore.d.ts.map +1 -0
  24. package/dist/capabilities/meshRouterStore.js +316 -0
  25. package/dist/capabilities/meshRouterStore.js.map +1 -0
  26. package/dist/capabilities/rootResolver.d.ts +10 -0
  27. package/dist/capabilities/rootResolver.d.ts.map +1 -0
  28. package/dist/capabilities/rootResolver.js +392 -0
  29. package/dist/capabilities/rootResolver.js.map +1 -0
  30. package/dist/client-id.d.ts +18 -0
  31. package/dist/client-id.d.ts.map +1 -0
  32. package/dist/client-id.js +98 -0
  33. package/dist/client-id.js.map +1 -0
  34. package/dist/client.d.ts +61 -0
  35. package/dist/client.d.ts.map +1 -0
  36. package/dist/client.js +417 -0
  37. package/dist/client.js.map +1 -0
  38. package/dist/entry.d.ts +2 -0
  39. package/dist/entry.d.ts.map +1 -0
  40. package/dist/entry.js +3 -0
  41. package/dist/entry.js.map +1 -0
  42. package/dist/htree-path.d.ts +13 -0
  43. package/dist/htree-path.d.ts.map +1 -0
  44. package/dist/htree-path.js +38 -0
  45. package/dist/htree-path.js.map +1 -0
  46. package/dist/htree-url.d.ts +22 -0
  47. package/dist/htree-url.d.ts.map +1 -0
  48. package/dist/htree-url.js +118 -0
  49. package/dist/htree-url.js.map +1 -0
  50. package/dist/index.d.ts +17 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +8 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/mediaStreaming.d.ts +7 -0
  55. package/dist/mediaStreaming.d.ts.map +1 -0
  56. package/dist/mediaStreaming.js +48 -0
  57. package/dist/mediaStreaming.js.map +1 -0
  58. package/dist/p2p/boundedQueue.d.ts +79 -0
  59. package/dist/p2p/boundedQueue.d.ts.map +1 -0
  60. package/dist/p2p/boundedQueue.js +134 -0
  61. package/dist/p2p/boundedQueue.js.map +1 -0
  62. package/dist/p2p/errorMessage.d.ts +5 -0
  63. package/dist/p2p/errorMessage.d.ts.map +1 -0
  64. package/dist/p2p/errorMessage.js +7 -0
  65. package/dist/p2p/errorMessage.js.map +1 -0
  66. package/dist/p2p/index.d.ts +8 -0
  67. package/dist/p2p/index.d.ts.map +1 -0
  68. package/dist/p2p/index.js +6 -0
  69. package/dist/p2p/index.js.map +1 -0
  70. package/dist/p2p/lruCache.d.ts +26 -0
  71. package/dist/p2p/lruCache.d.ts.map +1 -0
  72. package/dist/p2p/lruCache.js +65 -0
  73. package/dist/p2p/lruCache.js.map +1 -0
  74. package/dist/p2p/meshQueryRouter.d.ts +57 -0
  75. package/dist/p2p/meshQueryRouter.d.ts.map +1 -0
  76. package/dist/p2p/meshQueryRouter.js +264 -0
  77. package/dist/p2p/meshQueryRouter.js.map +1 -0
  78. package/dist/p2p/protocol.d.ts +10 -0
  79. package/dist/p2p/protocol.d.ts.map +1 -0
  80. package/dist/p2p/protocol.js +2 -0
  81. package/dist/p2p/protocol.js.map +1 -0
  82. package/dist/p2p/queryForwardingMachine.d.ts +46 -0
  83. package/dist/p2p/queryForwardingMachine.d.ts.map +1 -0
  84. package/dist/p2p/queryForwardingMachine.js +144 -0
  85. package/dist/p2p/queryForwardingMachine.js.map +1 -0
  86. package/dist/p2p/signaling.d.ts +63 -0
  87. package/dist/p2p/signaling.d.ts.map +1 -0
  88. package/dist/p2p/signaling.js +185 -0
  89. package/dist/p2p/signaling.js.map +1 -0
  90. package/dist/p2p/uploadRateLimiter.d.ts +21 -0
  91. package/dist/p2p/uploadRateLimiter.d.ts.map +1 -0
  92. package/dist/p2p/uploadRateLimiter.js +62 -0
  93. package/dist/p2p/uploadRateLimiter.js.map +1 -0
  94. package/dist/p2p/webrtcController.d.ts +176 -0
  95. package/dist/p2p/webrtcController.d.ts.map +1 -0
  96. package/dist/p2p/webrtcController.js +938 -0
  97. package/dist/p2p/webrtcController.js.map +1 -0
  98. package/dist/p2p/webrtcProxy.d.ts +62 -0
  99. package/dist/p2p/webrtcProxy.d.ts.map +1 -0
  100. package/dist/p2p/webrtcProxy.js +447 -0
  101. package/dist/p2p/webrtcProxy.js.map +1 -0
  102. package/dist/privacyGuards.d.ts +14 -0
  103. package/dist/privacyGuards.d.ts.map +1 -0
  104. package/dist/privacyGuards.js +27 -0
  105. package/dist/privacyGuards.js.map +1 -0
  106. package/dist/protocol.d.ts +225 -0
  107. package/dist/protocol.d.ts.map +1 -0
  108. package/dist/protocol.js +2 -0
  109. package/dist/protocol.js.map +1 -0
  110. package/dist/relay/identity.d.ts +36 -0
  111. package/dist/relay/identity.d.ts.map +1 -0
  112. package/dist/relay/identity.js +78 -0
  113. package/dist/relay/identity.js.map +1 -0
  114. package/dist/relay/mediaHandler.d.ts +64 -0
  115. package/dist/relay/mediaHandler.d.ts.map +1 -0
  116. package/dist/relay/mediaHandler.js +1285 -0
  117. package/dist/relay/mediaHandler.js.map +1 -0
  118. package/dist/relay/ndk.d.ts +96 -0
  119. package/dist/relay/ndk.d.ts.map +1 -0
  120. package/dist/relay/ndk.js +502 -0
  121. package/dist/relay/ndk.js.map +1 -0
  122. package/dist/relay/nostr-wasm.d.ts +14 -0
  123. package/dist/relay/nostr-wasm.d.ts.map +1 -0
  124. package/dist/relay/nostr-wasm.js +246 -0
  125. package/dist/relay/nostr-wasm.js.map +1 -0
  126. package/dist/relay/nostr.d.ts +60 -0
  127. package/dist/relay/nostr.d.ts.map +1 -0
  128. package/dist/relay/nostr.js +207 -0
  129. package/dist/relay/nostr.js.map +1 -0
  130. package/dist/relay/protocol.d.ts +592 -0
  131. package/dist/relay/protocol.d.ts.map +1 -0
  132. package/dist/relay/protocol.js +16 -0
  133. package/dist/relay/protocol.js.map +1 -0
  134. package/dist/relay/publicAssetUrl.d.ts +6 -0
  135. package/dist/relay/publicAssetUrl.d.ts.map +1 -0
  136. package/dist/relay/publicAssetUrl.js +14 -0
  137. package/dist/relay/publicAssetUrl.js.map +1 -0
  138. package/dist/relay/rootPathResolver.d.ts +9 -0
  139. package/dist/relay/rootPathResolver.d.ts.map +1 -0
  140. package/dist/relay/rootPathResolver.js +32 -0
  141. package/dist/relay/rootPathResolver.js.map +1 -0
  142. package/dist/relay/signing.d.ts +50 -0
  143. package/dist/relay/signing.d.ts.map +1 -0
  144. package/dist/relay/signing.js +299 -0
  145. package/dist/relay/signing.js.map +1 -0
  146. package/dist/relay/treeRootCache.d.ts +86 -0
  147. package/dist/relay/treeRootCache.d.ts.map +1 -0
  148. package/dist/relay/treeRootCache.js +269 -0
  149. package/dist/relay/treeRootCache.js.map +1 -0
  150. package/dist/relay/treeRootSubscription.d.ts +55 -0
  151. package/dist/relay/treeRootSubscription.d.ts.map +1 -0
  152. package/dist/relay/treeRootSubscription.js +478 -0
  153. package/dist/relay/treeRootSubscription.js.map +1 -0
  154. package/dist/relay/utils/constants.d.ts +76 -0
  155. package/dist/relay/utils/constants.d.ts.map +1 -0
  156. package/dist/relay/utils/constants.js +113 -0
  157. package/dist/relay/utils/constants.js.map +1 -0
  158. package/dist/relay/utils/errorMessage.d.ts +5 -0
  159. package/dist/relay/utils/errorMessage.d.ts.map +1 -0
  160. package/dist/relay/utils/errorMessage.js +8 -0
  161. package/dist/relay/utils/errorMessage.js.map +1 -0
  162. package/dist/relay/utils/lruCache.d.ts +26 -0
  163. package/dist/relay/utils/lruCache.d.ts.map +1 -0
  164. package/dist/relay/utils/lruCache.js +66 -0
  165. package/dist/relay/utils/lruCache.js.map +1 -0
  166. package/dist/relay/webrtc.d.ts +2 -0
  167. package/dist/relay/webrtc.d.ts.map +1 -0
  168. package/dist/relay/webrtc.js +3 -0
  169. package/dist/relay/webrtc.js.map +1 -0
  170. package/dist/relay/webrtcSignaling.d.ts +37 -0
  171. package/dist/relay/webrtcSignaling.d.ts.map +1 -0
  172. package/dist/relay/webrtcSignaling.js +86 -0
  173. package/dist/relay/webrtcSignaling.js.map +1 -0
  174. package/dist/relay/worker.d.ts +12 -0
  175. package/dist/relay/worker.d.ts.map +1 -0
  176. package/dist/relay/worker.js +1540 -0
  177. package/dist/relay/worker.js.map +1 -0
  178. package/dist/relay-client.d.ts +31 -0
  179. package/dist/relay-client.d.ts.map +1 -0
  180. package/dist/relay-client.js +197 -0
  181. package/dist/relay-client.js.map +1 -0
  182. package/dist/relay-entry.d.ts +2 -0
  183. package/dist/relay-entry.d.ts.map +1 -0
  184. package/dist/relay-entry.js +2 -0
  185. package/dist/relay-entry.js.map +1 -0
  186. package/dist/runtime-network.d.ts +23 -0
  187. package/dist/runtime-network.d.ts.map +1 -0
  188. package/dist/runtime-network.js +105 -0
  189. package/dist/runtime-network.js.map +1 -0
  190. package/dist/runtime.d.ts +24 -0
  191. package/dist/runtime.d.ts.map +1 -0
  192. package/dist/runtime.js +126 -0
  193. package/dist/runtime.js.map +1 -0
  194. package/dist/transferableBytes.d.ts +2 -0
  195. package/dist/transferableBytes.d.ts.map +1 -0
  196. package/dist/transferableBytes.js +6 -0
  197. package/dist/transferableBytes.js.map +1 -0
  198. package/dist/tree-root.d.ts +201 -0
  199. package/dist/tree-root.d.ts.map +1 -0
  200. package/dist/tree-root.js +632 -0
  201. package/dist/tree-root.js.map +1 -0
  202. package/dist/types.d.ts +2 -0
  203. package/dist/types.d.ts.map +1 -0
  204. package/dist/types.js +2 -0
  205. package/dist/types.js.map +1 -0
  206. package/dist/worker.d.ts +9 -0
  207. package/dist/worker.d.ts.map +1 -0
  208. package/dist/worker.js +793 -0
  209. package/dist/worker.js.map +1 -0
  210. package/package.json +14 -14
  211. package/src/capabilities/blossomTransport.ts +1 -1
  212. package/src/worker.ts +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"htree-url.js","sourceRoot":"","sources":["../src/htree-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export { HashtreeWorkerClient } from './client.js';
2
+ export type { WorkerFactory, P2PFetchHandler } from './client.js';
3
+ export { RelayWorkerClient } from './relay-client.js';
4
+ export type { TreeRootInfo as RelayTreeRootInfo, TreeRootUpdate as RelayTreeRootUpdate, RelayWorkerConfig, RelayWorkerRequest, RelayWorkerResponse, } from './relay-client.js';
5
+ export { canUseInjectedHtreeServerUrl, canUseSameOriginHtreeProtocolStreaming, getInjectedHtreeServerUrl, resolveRuntimeHtreeBaseUrl, shouldEagerLoadMediaInNativeChildRuntime, shouldPreferSameOriginHtreeRoutes, } from './runtime.js';
6
+ export type { HtreeRuntimeLocationLike, HtreeRuntimeWindowLike, ResolveRuntimeHtreeBaseUrlOptions, } from './runtime.js';
7
+ export { resolveRuntimeEndpoints, } from './runtime-network.js';
8
+ export type { ResolveRuntimeEndpointsOptions, RuntimeEndpoints, } from './runtime-network.js';
9
+ export { createHtreeRuntime } from './app-runtime.js';
10
+ export type { HtreeRuntime, HtreeRuntimeEndpointOverrides, HtreeRuntimeMediaPortOptions, HtreeRuntimeMediaUrlOptions, HtreeRuntimeOptions, HtreeRuntimeRequestUrlOptions, HtreeRuntimeWorkerConfigOptions, RuntimeValueSource, } from './app-runtime.js';
11
+ export { buildHtreeRequestPath, parseHtreeUrl, resolveHtreeRequestUrl, } from './htree-url.js';
12
+ export type { MutableHtreeRequestStyle, ParsedHtreeUrl, ResolveHtreeRequestUrlOptions, } from './htree-url.js';
13
+ export type { HtreeClientIdStorageLike } from './client-id.js';
14
+ export type { BlossomServerConfig, WorkerConfig, WorkerRequest, WorkerResponse, RootResolveOptions, ConnectivityState, UploadProgressState, WorkerDiagnosticEvent, WorkerDiagnosticLevel, BlossomBandwidthState, BlossomBandwidthServerStats, BlobSource, } from './protocol.js';
15
+ export { WebRTCController, WebRTCProxy, initWebRTCProxy, getWebRTCProxy, closeWebRTCProxy, } from './p2p/index.js';
16
+ export type { WebRTCControllerConfig } from './p2p/index.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EACV,YAAY,IAAI,iBAAiB,EACjC,cAAc,IAAI,mBAAmB,EACrC,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,4BAA4B,EAC5B,sCAAsC,EACtC,yBAAyB,EACzB,0BAA0B,EAC1B,wCAAwC,EACxC,iCAAiC,GAClC,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,mBAAmB,EACnB,6BAA6B,EAC7B,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,GACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { HashtreeWorkerClient } from './client.js';
2
+ export { RelayWorkerClient } from './relay-client.js';
3
+ export { canUseInjectedHtreeServerUrl, canUseSameOriginHtreeProtocolStreaming, getInjectedHtreeServerUrl, resolveRuntimeHtreeBaseUrl, shouldEagerLoadMediaInNativeChildRuntime, shouldPreferSameOriginHtreeRoutes, } from './runtime.js';
4
+ export { resolveRuntimeEndpoints, } from './runtime-network.js';
5
+ export { createHtreeRuntime } from './app-runtime.js';
6
+ export { buildHtreeRequestPath, parseHtreeUrl, resolveHtreeRequestUrl, } from './htree-url.js';
7
+ export { WebRTCController, WebRTCProxy, initWebRTCProxy, getWebRTCProxy, closeWebRTCProxy, } from './p2p/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQtD,OAAO,EACL,4BAA4B,EAC5B,sCAAsC,EACtC,yBAAyB,EACzB,0BAA0B,EAC1B,wCAAwC,EACxC,iCAAiC,GAClC,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWtD,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAsBxB,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CID, HashTree } from '@hashtree/core';
2
+ /**
3
+ * Stream a bounded byte range from a CID without materializing the whole range in memory.
4
+ * Output chunks are capped at `chunkSize` bytes.
5
+ */
6
+ export declare function streamFileRangeChunks(tree: Pick<HashTree, 'readFileStream'>, cid: CID, start: number, endInclusive: number, chunkSize: number, prefetch?: number): AsyncGenerator<Uint8Array>;
7
+ //# sourceMappingURL=mediaStreaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaStreaming.d.ts","sourceRoot":"","sources":["../src/mediaStreaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIpD;;;GAGG;AACH,wBAAuB,qBAAqB,CAC1C,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EACtC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAyB,GAClC,cAAc,CAAC,UAAU,CAAC,CA+C5B"}
@@ -0,0 +1,48 @@
1
+ const DEFAULT_PREFETCH = 2;
2
+ /**
3
+ * Stream a bounded byte range from a CID without materializing the whole range in memory.
4
+ * Output chunks are capped at `chunkSize` bytes.
5
+ */
6
+ export async function* streamFileRangeChunks(tree, cid, start, endInclusive, chunkSize, prefetch = DEFAULT_PREFETCH) {
7
+ if (chunkSize <= 0) {
8
+ throw new Error('chunkSize must be > 0');
9
+ }
10
+ if (endInclusive < start) {
11
+ return;
12
+ }
13
+ let remaining = endInclusive - start + 1;
14
+ let pending = new Uint8Array(chunkSize);
15
+ let pendingLength = 0;
16
+ for await (const sourceChunk of tree.readFileStream(cid, { offset: start, prefetch })) {
17
+ if (remaining <= 0)
18
+ break;
19
+ if (sourceChunk.byteLength === 0)
20
+ continue;
21
+ const consumed = Math.min(sourceChunk.byteLength, remaining);
22
+ const source = consumed === sourceChunk.byteLength ? sourceChunk : sourceChunk.subarray(0, consumed);
23
+ remaining -= consumed;
24
+ let cursor = 0;
25
+ while (cursor < source.byteLength) {
26
+ const available = source.byteLength - cursor;
27
+ if (pendingLength === 0 && available >= chunkSize) {
28
+ // Emit direct full-size chunks with independent buffers for transfer.
29
+ yield source.slice(cursor, cursor + chunkSize);
30
+ cursor += chunkSize;
31
+ continue;
32
+ }
33
+ const toCopy = Math.min(chunkSize - pendingLength, available);
34
+ pending.set(source.subarray(cursor, cursor + toCopy), pendingLength);
35
+ pendingLength += toCopy;
36
+ cursor += toCopy;
37
+ if (pendingLength === chunkSize) {
38
+ yield pending;
39
+ pending = new Uint8Array(chunkSize);
40
+ pendingLength = 0;
41
+ }
42
+ }
43
+ }
44
+ if (pendingLength > 0) {
45
+ yield pending.slice(0, pendingLength);
46
+ }
47
+ }
48
+ //# sourceMappingURL=mediaStreaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaStreaming.js","sourceRoot":"","sources":["../src/mediaStreaming.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,qBAAqB,CAC1C,IAAsC,EACtC,GAAQ,EACR,KAAa,EACb,YAAoB,EACpB,SAAiB,EACjB,WAAmB,gBAAgB;IAEnC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,SAAS,GAAG,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,IAAI,KAAK,EAAE,MAAM,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACtF,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM;QAC1B,IAAI,WAAW,CAAC,UAAU,KAAK,CAAC;YAAE,SAAS;QAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,QAAQ,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrG,SAAS,IAAI,QAAQ,CAAC;QAEtB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;YAE7C,IAAI,aAAa,KAAK,CAAC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAClD,sEAAsE;gBACtE,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;gBAC/C,MAAM,IAAI,SAAS,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,aAAa,EAAE,SAAS,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;YACrE,aAAa,IAAI,MAAM,CAAC;YACxB,MAAM,IAAI,MAAM,CAAC;YAEjB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,OAAO,CAAC;gBACd,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;gBACpC,aAAa,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * BoundedQueue - Memory-safe queue with size limits
3
+ *
4
+ * Prevents memory blowup by enforcing both item count and byte limits.
5
+ * When limits are exceeded, oldest items are dropped (FIFO eviction).
6
+ *
7
+ * Use this instead of plain arrays for queues that could grow unbounded,
8
+ * especially for network buffers, send queues, and work queues.
9
+ */
10
+ export interface BoundedQueueOptions<T> {
11
+ /** Maximum number of items in queue */
12
+ maxItems: number;
13
+ /** Maximum total bytes in queue */
14
+ maxBytes: number;
15
+ /** Function to get byte size of an item */
16
+ getBytes: (item: T) => number;
17
+ /** Optional callback when items are dropped due to overflow */
18
+ onDrop?: (item: T, reason: 'items' | 'bytes') => void;
19
+ }
20
+ export declare class BoundedQueue<T> {
21
+ private items;
22
+ private bytesUsed;
23
+ private readonly maxItems;
24
+ private readonly maxBytes;
25
+ private readonly getBytes;
26
+ private readonly onDrop?;
27
+ constructor(options: BoundedQueueOptions<T>);
28
+ /**
29
+ * Add item to queue, dropping oldest items if limits exceeded
30
+ * @returns Number of items dropped to make room
31
+ */
32
+ push(item: T): number;
33
+ /**
34
+ * Add item to the front of the queue, dropping items from the back if limits are exceeded.
35
+ * Useful for urgent control messages that should overtake bulk background traffic.
36
+ */
37
+ unshift(item: T): number;
38
+ /**
39
+ * Remove and return oldest item, or undefined if empty
40
+ */
41
+ shift(): T | undefined;
42
+ /**
43
+ * Peek at oldest item without removing
44
+ */
45
+ peek(): T | undefined;
46
+ /**
47
+ * Clear all items
48
+ */
49
+ clear(): void;
50
+ /**
51
+ * Get current item count
52
+ */
53
+ get length(): number;
54
+ /**
55
+ * Get current byte usage
56
+ */
57
+ get bytes(): number;
58
+ /**
59
+ * Check if queue is empty
60
+ */
61
+ get isEmpty(): boolean;
62
+ /**
63
+ * Check if queue is at item capacity
64
+ */
65
+ get isFullItems(): boolean;
66
+ /**
67
+ * Check if queue is at byte capacity
68
+ */
69
+ get isFullBytes(): boolean;
70
+ /**
71
+ * Iterate over items (does not remove them)
72
+ */
73
+ [Symbol.iterator](): Iterator<T>;
74
+ /**
75
+ * Get all items as array (for iteration/reduce operations)
76
+ */
77
+ toArray(): T[];
78
+ }
79
+ //# sourceMappingURL=boundedQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundedQueue.d.ts","sourceRoot":"","sources":["../../src/p2p/boundedQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA+C;gBAE3D,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAO3C;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAyBrB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM;IAwBxB;;OAEG;IACH,KAAK,IAAI,CAAC,GAAG,SAAS;IAQtB;;OAEG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS;IAIrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAIjC;;OAEG;IACH,OAAO,IAAI,CAAC,EAAE;CAGf"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * BoundedQueue - Memory-safe queue with size limits
3
+ *
4
+ * Prevents memory blowup by enforcing both item count and byte limits.
5
+ * When limits are exceeded, oldest items are dropped (FIFO eviction).
6
+ *
7
+ * Use this instead of plain arrays for queues that could grow unbounded,
8
+ * especially for network buffers, send queues, and work queues.
9
+ */
10
+ export class BoundedQueue {
11
+ items = [];
12
+ bytesUsed = 0;
13
+ maxItems;
14
+ maxBytes;
15
+ getBytes;
16
+ onDrop;
17
+ constructor(options) {
18
+ this.maxItems = options.maxItems;
19
+ this.maxBytes = options.maxBytes;
20
+ this.getBytes = options.getBytes;
21
+ this.onDrop = options.onDrop;
22
+ }
23
+ /**
24
+ * Add item to queue, dropping oldest items if limits exceeded
25
+ * @returns Number of items dropped to make room
26
+ */
27
+ push(item) {
28
+ const itemBytes = this.getBytes(item);
29
+ let dropped = 0;
30
+ // Drop oldest items until we have room
31
+ while (this.items.length > 0 &&
32
+ (this.items.length >= this.maxItems || this.bytesUsed + itemBytes > this.maxBytes)) {
33
+ const droppedItem = this.items.shift();
34
+ const droppedBytes = this.getBytes(droppedItem);
35
+ this.bytesUsed -= droppedBytes;
36
+ dropped++;
37
+ if (this.onDrop) {
38
+ const reason = this.items.length >= this.maxItems ? 'items' : 'bytes';
39
+ this.onDrop(droppedItem, reason);
40
+ }
41
+ }
42
+ this.items.push(item);
43
+ this.bytesUsed += itemBytes;
44
+ return dropped;
45
+ }
46
+ /**
47
+ * Add item to the front of the queue, dropping items from the back if limits are exceeded.
48
+ * Useful for urgent control messages that should overtake bulk background traffic.
49
+ */
50
+ unshift(item) {
51
+ const itemBytes = this.getBytes(item);
52
+ let dropped = 0;
53
+ while (this.items.length > 0 &&
54
+ (this.items.length >= this.maxItems || this.bytesUsed + itemBytes > this.maxBytes)) {
55
+ const droppedItem = this.items.pop();
56
+ const droppedBytes = this.getBytes(droppedItem);
57
+ this.bytesUsed -= droppedBytes;
58
+ dropped++;
59
+ if (this.onDrop) {
60
+ const reason = this.items.length >= this.maxItems ? 'items' : 'bytes';
61
+ this.onDrop(droppedItem, reason);
62
+ }
63
+ }
64
+ this.items.unshift(item);
65
+ this.bytesUsed += itemBytes;
66
+ return dropped;
67
+ }
68
+ /**
69
+ * Remove and return oldest item, or undefined if empty
70
+ */
71
+ shift() {
72
+ const item = this.items.shift();
73
+ if (item !== undefined) {
74
+ this.bytesUsed -= this.getBytes(item);
75
+ }
76
+ return item;
77
+ }
78
+ /**
79
+ * Peek at oldest item without removing
80
+ */
81
+ peek() {
82
+ return this.items[0];
83
+ }
84
+ /**
85
+ * Clear all items
86
+ */
87
+ clear() {
88
+ this.items = [];
89
+ this.bytesUsed = 0;
90
+ }
91
+ /**
92
+ * Get current item count
93
+ */
94
+ get length() {
95
+ return this.items.length;
96
+ }
97
+ /**
98
+ * Get current byte usage
99
+ */
100
+ get bytes() {
101
+ return this.bytesUsed;
102
+ }
103
+ /**
104
+ * Check if queue is empty
105
+ */
106
+ get isEmpty() {
107
+ return this.items.length === 0;
108
+ }
109
+ /**
110
+ * Check if queue is at item capacity
111
+ */
112
+ get isFullItems() {
113
+ return this.items.length >= this.maxItems;
114
+ }
115
+ /**
116
+ * Check if queue is at byte capacity
117
+ */
118
+ get isFullBytes() {
119
+ return this.bytesUsed >= this.maxBytes;
120
+ }
121
+ /**
122
+ * Iterate over items (does not remove them)
123
+ */
124
+ *[Symbol.iterator]() {
125
+ yield* this.items;
126
+ }
127
+ /**
128
+ * Get all items as array (for iteration/reduce operations)
129
+ */
130
+ toArray() {
131
+ return [...this.items];
132
+ }
133
+ }
134
+ //# sourceMappingURL=boundedQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundedQueue.js","sourceRoot":"","sources":["../../src/p2p/boundedQueue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Extract error message from unknown error type
3
+ */
4
+ export declare function getErrorMessage(err: unknown): string;
5
+ //# sourceMappingURL=errorMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMessage.d.ts","sourceRoot":"","sources":["../../src/p2p/errorMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Extract error message from unknown error type
3
+ */
4
+ export function getErrorMessage(err) {
5
+ return err instanceof Error ? err.message : String(err);
6
+ }
7
+ //# sourceMappingURL=errorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorMessage.js","sourceRoot":"","sources":["../../src/p2p/errorMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { WebRTCController, type WebRTCControllerConfig, } from './webrtcController.js';
2
+ export { MeshQueryRouter, encodeForwardRequest, type MeshQueryRouterConfig, type MeshQueryRouterPeer, } from './meshQueryRouter.js';
3
+ export { QueryForwardingMachine, type QueryForwardingMachineConfig, type ForwardDecision, type ForwardTimeoutEvent, } from './queryForwardingMachine.js';
4
+ export { WebRTCProxy, initWebRTCProxy, getWebRTCProxy, closeWebRTCProxy, } from './webrtcProxy.js';
5
+ export type { WebRTCCommand, WebRTCEvent, } from './protocol.js';
6
+ export { SIGNALING_KIND, HELLO_TAG, MAX_EVENT_AGE_SEC, createSignalingFilters, sendSignalingMessage, decodeSignalingEvent, } from './signaling.js';
7
+ export type { SignalingEventLike, GiftSeal, SignalingTemplate, SignalingInnerEvent, SignalingFilters, DecodedSignalingEvent, } from './signaling.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { WebRTCController, } from './webrtcController.js';
2
+ export { MeshQueryRouter, encodeForwardRequest, } from './meshQueryRouter.js';
3
+ export { QueryForwardingMachine, } from './queryForwardingMachine.js';
4
+ export { WebRTCProxy, initWebRTCProxy, getWebRTCProxy, closeWebRTCProxy, } from './webrtcProxy.js';
5
+ export { SIGNALING_KIND, HELLO_TAG, MAX_EVENT_AGE_SEC, createSignalingFilters, sendSignalingMessage, decodeSignalingEvent, } from './signaling.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,sBAAsB,GAIvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACL,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Simple LRU Cache implementation
3
+ */
4
+ export declare class LRUCache<K, V> {
5
+ private cache;
6
+ private maxSize;
7
+ constructor(maxSize?: number);
8
+ get(key: K): V | undefined;
9
+ set(key: K, value: V): void;
10
+ has(key: K): boolean;
11
+ delete(key: K): boolean;
12
+ clear(): void;
13
+ get size(): number;
14
+ keys(): IterableIterator<K>;
15
+ values(): IterableIterator<V>;
16
+ /**
17
+ * Iterate over all entries (note: does not update LRU order)
18
+ */
19
+ entries(): IterableIterator<[K, V]>;
20
+ forEach(callback: (value: V, key: K) => void): void;
21
+ /**
22
+ * Make the cache iterable
23
+ */
24
+ [Symbol.iterator](): IterableIterator<[K, V]>;
25
+ }
26
+ //# sourceMappingURL=lruCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lruCache.d.ts","sourceRoot":"","sources":["../../src/p2p/lruCache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAY;IAIjC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAU1B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAe3B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIpB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAIvB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAI3B,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAI7B;;OAEG;IACF,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAIpC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAG9C"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Simple LRU Cache implementation
3
+ */
4
+ export class LRUCache {
5
+ cache = new Map();
6
+ maxSize;
7
+ constructor(maxSize = 100) {
8
+ this.maxSize = maxSize;
9
+ }
10
+ get(key) {
11
+ const value = this.cache.get(key);
12
+ if (value !== undefined) {
13
+ // Move to end (most recently used)
14
+ this.cache.delete(key);
15
+ this.cache.set(key, value);
16
+ }
17
+ return value;
18
+ }
19
+ set(key, value) {
20
+ // Delete first to reset position if exists
21
+ this.cache.delete(key);
22
+ // Evict oldest if at capacity
23
+ if (this.cache.size >= this.maxSize) {
24
+ const oldest = this.cache.keys().next().value;
25
+ if (oldest !== undefined) {
26
+ this.cache.delete(oldest);
27
+ }
28
+ }
29
+ this.cache.set(key, value);
30
+ }
31
+ has(key) {
32
+ return this.cache.has(key);
33
+ }
34
+ delete(key) {
35
+ return this.cache.delete(key);
36
+ }
37
+ clear() {
38
+ this.cache.clear();
39
+ }
40
+ get size() {
41
+ return this.cache.size;
42
+ }
43
+ keys() {
44
+ return this.cache.keys();
45
+ }
46
+ values() {
47
+ return this.cache.values();
48
+ }
49
+ /**
50
+ * Iterate over all entries (note: does not update LRU order)
51
+ */
52
+ *entries() {
53
+ yield* this.cache.entries();
54
+ }
55
+ forEach(callback) {
56
+ this.cache.forEach(callback);
57
+ }
58
+ /**
59
+ * Make the cache iterable
60
+ */
61
+ [Symbol.iterator]() {
62
+ return this.entries();
63
+ }
64
+ }
65
+ //# sourceMappingURL=lruCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lruCache.js","sourceRoot":"","sources":["../../src/p2p/lruCache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,KAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;IACxB,OAAO,CAAS;IAExB,YAAY,UAAkB,GAAG;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAM;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,2CAA2C;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,CAAC,OAAO;QACN,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,QAAoC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,57 @@
1
+ import type { Store } from '@hashtree/core';
2
+ import { type DataRequest, type PeerHTLConfig } from '@hashtree/nostr';
3
+ export interface MeshQueryRouterPeer {
4
+ peerId: string;
5
+ canSend: () => boolean;
6
+ getHtlConfig: () => PeerHTLConfig;
7
+ sendRequest: (hash: Uint8Array, htl: number) => boolean;
8
+ sendResponse: (hash: Uint8Array, data: Uint8Array) => Promise<void>;
9
+ onForwardedRequest?: () => void;
10
+ onForwardedResolved?: () => void;
11
+ onForwardedSuppressed?: () => void;
12
+ }
13
+ export interface MeshPeerQueryOptions {
14
+ excludePeerId?: string;
15
+ htl: number;
16
+ }
17
+ export interface MeshQueryRouterConfig {
18
+ localStore: Store;
19
+ requestTimeoutMs: number;
20
+ upstreamFetch?: (hash: Uint8Array) => Promise<Uint8Array | null>;
21
+ queryPeers?: (hash: Uint8Array, options: MeshPeerQueryOptions) => Promise<Uint8Array | null>;
22
+ maxForwardsPerPeerWindow?: number;
23
+ forwardRateLimitWindowMs?: number;
24
+ }
25
+ export interface MeshForwardRateLimitConfig {
26
+ maxForwardsPerPeerWindow?: number;
27
+ windowMs?: number;
28
+ }
29
+ export declare class MeshQueryRouter {
30
+ private readonly localStore;
31
+ private readonly requestTimeoutMs;
32
+ private rateLimiter;
33
+ private readonly peers;
34
+ private readonly hashesByRequester;
35
+ private readonly inFlightByHash;
36
+ private readonly pendingUpstreamFetches;
37
+ private upstreamFetch?;
38
+ private queryPeers?;
39
+ constructor(config: MeshQueryRouterConfig);
40
+ registerPeer(peer: MeshQueryRouterPeer): void;
41
+ removePeer(peerId: string): void;
42
+ setUpstreamFetch(upstreamFetch?: (hash: Uint8Array) => Promise<Uint8Array | null>): void;
43
+ setForwardRateLimit(config?: MeshForwardRateLimitConfig): void;
44
+ hasInFlight(hashKey: string): boolean;
45
+ stop(): void;
46
+ private createRateLimiter;
47
+ handleRequest(requesterId: string, req: DataRequest): Promise<void>;
48
+ resolve(hash: Uint8Array, data: Uint8Array): Promise<void>;
49
+ private beginQuery;
50
+ private clearQuery;
51
+ private trackRequester;
52
+ private forwardRequest;
53
+ private startPeerQuery;
54
+ private startUpstreamFetch;
55
+ }
56
+ export declare function encodeForwardRequest(hash: Uint8Array, htl: number): Uint8Array;
57
+ //# sourceMappingURL=meshQueryRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meshQueryRouter.d.ts","sourceRoot":"","sources":["../../src/p2p/meshQueryRouter.ts"],"names":[],"mappings":"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"}