@hashtree/core 0.1.1 → 0.1.4
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.
- package/README.md +45 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -1
- package/dist/builder.js.map +1 -1
- package/dist/compare.d.ts +2 -0
- package/dist/compare.d.ts.map +1 -0
- package/dist/compare.js +8 -0
- package/dist/compare.js.map +1 -0
- package/dist/encrypted.d.ts +5 -1
- package/dist/encrypted.d.ts.map +1 -1
- package/dist/encrypted.js +59 -32
- package/dist/encrypted.js.map +1 -1
- package/dist/hashtree.d.ts +9 -1
- package/dist/hashtree.d.ts.map +1 -1
- package/dist/hashtree.js +13 -7
- package/dist/hashtree.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/nhash.d.ts.map +1 -1
- package/dist/nhash.js +20 -39
- package/dist/nhash.js.map +1 -1
- package/dist/store/blossom.d.ts.map +1 -1
- package/dist/store/blossom.js +52 -22
- package/dist/store/blossom.js.map +1 -1
- package/dist/store/fallback.d.ts +3 -1
- package/dist/store/fallback.d.ts.map +1 -1
- package/dist/store/fallback.js +60 -15
- package/dist/store/fallback.js.map +1 -1
- package/dist/tree/create.d.ts.map +1 -1
- package/dist/tree/create.js +2 -1
- package/dist/tree/create.js.map +1 -1
- package/dist/tree/read.d.ts +5 -1
- package/dist/tree/read.d.ts.map +1 -1
- package/dist/tree/read.js +29 -11
- package/dist/tree/read.js.map +1 -1
- package/dist/types.d.ts +14 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/upload.d.ts +27 -0
- package/dist/upload.d.ts.map +1 -0
- package/dist/upload.js +107 -0
- package/dist/upload.js.map +1 -0
- package/dist/worker/protocol.d.ts +18 -1
- package/dist/worker/protocol.d.ts.map +1 -1
- package/dist/worker/protocol.js +1 -1
- package/dist/worker/protocol.js.map +1 -1
- package/package.json +6 -3
- package/dist/resolver/index.d.ts +0 -5
- package/dist/resolver/index.d.ts.map +0 -1
- package/dist/resolver/index.js +0 -5
- package/dist/resolver/index.js.map +0 -1
- package/dist/resolver/nostr.d.ts +0 -82
- package/dist/resolver/nostr.d.ts.map +0 -1
- package/dist/resolver/nostr.js +0 -868
- package/dist/resolver/nostr.js.map +0 -1
- package/dist/store/dexie.d.ts +0 -44
- package/dist/store/dexie.d.ts.map +0 -1
- package/dist/store/dexie.js +0 -196
- package/dist/store/dexie.js.map +0 -1
- package/dist/store/opfs.d.ts +0 -56
- package/dist/store/opfs.d.ts.map +0 -1
- package/dist/store/opfs.js +0 -200
- package/dist/store/opfs.js.map +0 -1
- package/dist/webrtc/index.d.ts +0 -4
- package/dist/webrtc/index.d.ts.map +0 -1
- package/dist/webrtc/index.js +0 -4
- package/dist/webrtc/index.js.map +0 -1
- package/dist/webrtc/lruCache.d.ts +0 -20
- package/dist/webrtc/lruCache.d.ts.map +0 -1
- package/dist/webrtc/lruCache.js +0 -59
- package/dist/webrtc/lruCache.js.map +0 -1
- package/dist/webrtc/peer.d.ts +0 -122
- package/dist/webrtc/peer.d.ts.map +0 -1
- package/dist/webrtc/peer.js +0 -583
- package/dist/webrtc/peer.js.map +0 -1
- package/dist/webrtc/protocol.d.ts +0 -76
- package/dist/webrtc/protocol.d.ts.map +0 -1
- package/dist/webrtc/protocol.js +0 -167
- package/dist/webrtc/protocol.js.map +0 -1
- package/dist/webrtc/store.d.ts +0 -190
- package/dist/webrtc/store.d.ts.map +0 -1
- package/dist/webrtc/store.js +0 -1043
- package/dist/webrtc/store.js.map +0 -1
- package/dist/webrtc/types.d.ts +0 -196
- package/dist/webrtc/types.d.ts.map +0 -1
- package/dist/webrtc/types.js +0 -46
- package/dist/webrtc/types.js.map +0 -1
package/dist/webrtc/lruCache.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
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
|
-
*entries() {
|
|
50
|
-
yield* this.cache.entries();
|
|
51
|
-
}
|
|
52
|
-
forEach(callback) {
|
|
53
|
-
this.cache.forEach(callback);
|
|
54
|
-
}
|
|
55
|
-
[Symbol.iterator]() {
|
|
56
|
-
return this.entries();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=lruCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lruCache.js","sourceRoot":"","sources":["../../src/webrtc/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,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,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF"}
|
package/dist/webrtc/peer.d.ts
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebRTC peer connection for hashtree data exchange
|
|
3
|
-
*/
|
|
4
|
-
import type { Store, Hash } from '../types.js';
|
|
5
|
-
import type { SignalingMessage, PeerId } from './types.js';
|
|
6
|
-
export declare class Peer {
|
|
7
|
-
readonly peerId: string;
|
|
8
|
-
readonly pubkey: string;
|
|
9
|
-
readonly direction: 'inbound' | 'outbound';
|
|
10
|
-
private pc;
|
|
11
|
-
private dataChannel;
|
|
12
|
-
private localStore;
|
|
13
|
-
private sendSignaling;
|
|
14
|
-
private onClose;
|
|
15
|
-
private onConnected?;
|
|
16
|
-
private onConnectedFired;
|
|
17
|
-
private debug;
|
|
18
|
-
private makingOffer;
|
|
19
|
-
private ignoreOffer;
|
|
20
|
-
private isPolite;
|
|
21
|
-
private myPeerId;
|
|
22
|
-
private ourRequests;
|
|
23
|
-
private theirRequests;
|
|
24
|
-
private requestTimeout;
|
|
25
|
-
private pendingCandidates;
|
|
26
|
-
private candidateBatchTimeout;
|
|
27
|
-
private queuedRemoteCandidates;
|
|
28
|
-
private onForwardRequest?;
|
|
29
|
-
private stats;
|
|
30
|
-
private pendingReassemblies;
|
|
31
|
-
private reassemblyCleanupInterval?;
|
|
32
|
-
private htlConfig;
|
|
33
|
-
readonly createdAt: number;
|
|
34
|
-
connectedAt?: number;
|
|
35
|
-
constructor(options: {
|
|
36
|
-
peerId: PeerId;
|
|
37
|
-
myPeerId: string;
|
|
38
|
-
direction: 'inbound' | 'outbound';
|
|
39
|
-
localStore: Store | null;
|
|
40
|
-
sendSignaling: (msg: SignalingMessage) => Promise<void>;
|
|
41
|
-
onClose: () => void;
|
|
42
|
-
onConnected?: () => void;
|
|
43
|
-
onForwardRequest?: (hash: Uint8Array, excludePeerId: string, htl: number) => Promise<Uint8Array | null>;
|
|
44
|
-
requestTimeout?: number;
|
|
45
|
-
debug?: boolean;
|
|
46
|
-
});
|
|
47
|
-
private log;
|
|
48
|
-
get state(): RTCPeerConnectionState;
|
|
49
|
-
get isConnected(): boolean;
|
|
50
|
-
get pendingTheirRequestsCount(): number;
|
|
51
|
-
private scheduleCandidateBatch;
|
|
52
|
-
private setupPeerConnection;
|
|
53
|
-
private setupDataChannel;
|
|
54
|
-
private handleMessage;
|
|
55
|
-
private handleRequest;
|
|
56
|
-
private sendResponse;
|
|
57
|
-
/**
|
|
58
|
-
* Handle a fragmented response - buffer and reassemble
|
|
59
|
-
* Returns assembled data when complete, null when waiting for more fragments
|
|
60
|
-
*/
|
|
61
|
-
private handleFragmentResponse;
|
|
62
|
-
/**
|
|
63
|
-
* Assemble fragments in order into a single buffer
|
|
64
|
-
*/
|
|
65
|
-
private assembleFragments;
|
|
66
|
-
/**
|
|
67
|
-
* Clean up stale reassemblies (stalled or timed out)
|
|
68
|
-
*/
|
|
69
|
-
private cleanupStaleReassemblies;
|
|
70
|
-
/**
|
|
71
|
-
* Request data by hash from this peer
|
|
72
|
-
* @param htl Hops To Live - decremented before sending
|
|
73
|
-
*/
|
|
74
|
-
request(hash: Hash, htl?: number): Promise<Uint8Array | null>;
|
|
75
|
-
/**
|
|
76
|
-
* Get per-peer statistics
|
|
77
|
-
*/
|
|
78
|
-
getStats(): {
|
|
79
|
-
requestsSent: number;
|
|
80
|
-
requestsReceived: number;
|
|
81
|
-
responsesSent: number;
|
|
82
|
-
responsesReceived: number;
|
|
83
|
-
receiveErrors: number;
|
|
84
|
-
fragmentsSent: number;
|
|
85
|
-
fragmentsReceived: number;
|
|
86
|
-
fragmentTimeouts: number;
|
|
87
|
-
reassembliesCompleted: number;
|
|
88
|
-
bytesSent: number;
|
|
89
|
-
bytesReceived: number;
|
|
90
|
-
bytesForwarded: number;
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Send data to this peer for a hash they previously requested
|
|
94
|
-
* Returns true if this peer had requested this hash
|
|
95
|
-
*/
|
|
96
|
-
sendData(hash: Uint8Array, data: Uint8Array): boolean;
|
|
97
|
-
/**
|
|
98
|
-
* Check if this peer has requested a hash
|
|
99
|
-
*/
|
|
100
|
-
hasRequested(hash: Uint8Array): boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Get count of pending requests from this peer
|
|
103
|
-
*/
|
|
104
|
-
getTheirRequestCount(): number;
|
|
105
|
-
/**
|
|
106
|
-
* Initiate connection (create offer)
|
|
107
|
-
* Uses perfect negotiation pattern - both peers can call this
|
|
108
|
-
*/
|
|
109
|
-
connect(): Promise<void>;
|
|
110
|
-
/**
|
|
111
|
-
* Handle incoming signaling message
|
|
112
|
-
* Implements perfect negotiation pattern for collision handling
|
|
113
|
-
*/
|
|
114
|
-
handleSignaling(msg: SignalingMessage): Promise<void>;
|
|
115
|
-
private addRemoteCandidate;
|
|
116
|
-
private processQueuedCandidates;
|
|
117
|
-
/**
|
|
118
|
-
* Close the peer connection
|
|
119
|
-
*/
|
|
120
|
-
close(): void;
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=peer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../src/webrtc/peer.ts"],"names":[],"mappings":"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"}
|