@freqhole/reliquary 0.0.0
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/dist/automerge/acl-filtering.d.ts +87 -0
- package/dist/automerge/acl-filtering.d.ts.map +1 -0
- package/dist/automerge/acl-filtering.js +138 -0
- package/dist/automerge/acl-filtering.test.d.ts +2 -0
- package/dist/automerge/acl-filtering.test.d.ts.map +1 -0
- package/dist/automerge/acl-filtering.test.js +302 -0
- package/dist/automerge/index.d.ts +5 -0
- package/dist/automerge/index.d.ts.map +1 -0
- package/dist/automerge/index.js +7 -0
- package/dist/automerge/iroh-network-adapter.d.ts +178 -0
- package/dist/automerge/iroh-network-adapter.d.ts.map +1 -0
- package/dist/automerge/iroh-network-adapter.js +691 -0
- package/dist/automerge/iroh-network-adapter.test.d.ts +2 -0
- package/dist/automerge/iroh-network-adapter.test.d.ts.map +1 -0
- package/dist/automerge/iroh-network-adapter.test.js +818 -0
- package/dist/automerge/types.d.ts +66 -0
- package/dist/automerge/types.d.ts.map +1 -0
- package/dist/automerge/types.js +10 -0
- package/dist/blobs/bytes-backend.d.ts +41 -0
- package/dist/blobs/bytes-backend.d.ts.map +1 -0
- package/dist/blobs/bytes-backend.js +252 -0
- package/dist/blobs/bytes-backend.test.d.ts +2 -0
- package/dist/blobs/bytes-backend.test.d.ts.map +1 -0
- package/dist/blobs/bytes-backend.test.js +241 -0
- package/dist/blobs/db.d.ts +8 -0
- package/dist/blobs/db.d.ts.map +1 -0
- package/dist/blobs/db.js +141 -0
- package/dist/blobs/db.test.d.ts +2 -0
- package/dist/blobs/db.test.d.ts.map +1 -0
- package/dist/blobs/db.test.js +120 -0
- package/dist/blobs/index.d.ts +5 -0
- package/dist/blobs/index.d.ts.map +1 -0
- package/dist/blobs/index.js +2 -0
- package/dist/blobs/store.d.ts +47 -0
- package/dist/blobs/store.d.ts.map +1 -0
- package/dist/blobs/store.js +263 -0
- package/dist/blobs/store.test.d.ts +2 -0
- package/dist/blobs/store.test.d.ts.map +1 -0
- package/dist/blobs/store.test.js +377 -0
- package/dist/blobs/types.d.ts +55 -0
- package/dist/blobs/types.d.ts.map +1 -0
- package/dist/blobs/types.js +8 -0
- package/dist/ensure/client.d.ts +19 -0
- package/dist/ensure/client.d.ts.map +1 -0
- package/dist/ensure/client.js +74 -0
- package/dist/ensure/client.test.d.ts +2 -0
- package/dist/ensure/client.test.d.ts.map +1 -0
- package/dist/ensure/client.test.js +133 -0
- package/dist/ensure/index.d.ts +4 -0
- package/dist/ensure/index.d.ts.map +1 -0
- package/dist/ensure/index.js +4 -0
- package/dist/ensure/responder.d.ts +20 -0
- package/dist/ensure/responder.d.ts.map +1 -0
- package/dist/ensure/responder.js +100 -0
- package/dist/ensure/responder.test.d.ts +2 -0
- package/dist/ensure/responder.test.d.ts.map +1 -0
- package/dist/ensure/responder.test.js +191 -0
- package/dist/ensure/types.d.ts +19 -0
- package/dist/ensure/types.d.ts.map +1 -0
- package/dist/ensure/types.js +4 -0
- package/dist/ensure/types.test.d.ts +2 -0
- package/dist/ensure/types.test.d.ts.map +1 -0
- package/dist/ensure/types.test.js +81 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +7 -0
- package/dist/solid/blob-url.d.ts +10 -0
- package/dist/solid/blob-url.d.ts.map +1 -0
- package/dist/solid/blob-url.js +34 -0
- package/dist/solid/blob-url.test.d.ts +2 -0
- package/dist/solid/blob-url.test.d.ts.map +1 -0
- package/dist/solid/blob-url.test.js +62 -0
- package/dist/solid/connection-summary.d.ts +25 -0
- package/dist/solid/connection-summary.d.ts.map +1 -0
- package/dist/solid/connection-summary.js +29 -0
- package/dist/solid/connection-summary.test.d.ts +2 -0
- package/dist/solid/connection-summary.test.d.ts.map +1 -0
- package/dist/solid/connection-summary.test.js +57 -0
- package/dist/solid/doc-store.d.ts +29 -0
- package/dist/solid/doc-store.d.ts.map +1 -0
- package/dist/solid/doc-store.js +79 -0
- package/dist/solid/doc-store.test.d.ts +2 -0
- package/dist/solid/doc-store.test.d.ts.map +1 -0
- package/dist/solid/doc-store.test.js +234 -0
- package/dist/solid/index.d.ts +4 -0
- package/dist/solid/index.d.ts.map +1 -0
- package/dist/solid/index.js +9 -0
- package/dist/solid/transfer-progress.d.ts +21 -0
- package/dist/solid/transfer-progress.d.ts.map +1 -0
- package/dist/solid/transfer-progress.js +32 -0
- package/dist/solid/transfer-progress.test.d.ts +2 -0
- package/dist/solid/transfer-progress.test.d.ts.map +1 -0
- package/dist/solid/transfer-progress.test.js +76 -0
- package/dist/testing/blob-fixtures.d.ts +19 -0
- package/dist/testing/blob-fixtures.d.ts.map +1 -0
- package/dist/testing/blob-fixtures.js +46 -0
- package/dist/testing/blob-fixtures.test.d.ts +2 -0
- package/dist/testing/blob-fixtures.test.d.ts.map +1 -0
- package/dist/testing/blob-fixtures.test.js +46 -0
- package/dist/testing/idb-harness.d.ts +10 -0
- package/dist/testing/idb-harness.d.ts.map +1 -0
- package/dist/testing/idb-harness.js +17 -0
- package/dist/testing/idb-harness.test.d.ts +2 -0
- package/dist/testing/idb-harness.test.d.ts.map +1 -0
- package/dist/testing/idb-harness.test.js +48 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +11 -0
- package/dist/testing/media.d.ts +15 -0
- package/dist/testing/media.d.ts.map +1 -0
- package/dist/testing/media.js +37 -0
- package/dist/testing/media.test.d.ts +2 -0
- package/dist/testing/media.test.d.ts.map +1 -0
- package/dist/testing/media.test.js +47 -0
- package/dist/testing/mock-blob-fetch.d.ts +33 -0
- package/dist/testing/mock-blob-fetch.d.ts.map +1 -0
- package/dist/testing/mock-blob-fetch.js +39 -0
- package/dist/testing/mock-blob-fetch.test.d.ts +2 -0
- package/dist/testing/mock-blob-fetch.test.d.ts.map +1 -0
- package/dist/testing/mock-blob-fetch.test.js +65 -0
- package/dist/testing/mock-node.d.ts +36 -0
- package/dist/testing/mock-node.d.ts.map +1 -0
- package/dist/testing/mock-node.js +97 -0
- package/dist/testing/mock-node.test.d.ts +2 -0
- package/dist/testing/mock-node.test.d.ts.map +1 -0
- package/dist/testing/mock-node.test.js +66 -0
- package/dist/testing/streams.d.ts +68 -0
- package/dist/testing/streams.d.ts.map +1 -0
- package/dist/testing/streams.js +99 -0
- package/dist/testing/streams.test.d.ts +2 -0
- package/dist/testing/streams.test.d.ts.map +1 -0
- package/dist/testing/streams.test.js +82 -0
- package/dist/transfer/cancellation.d.ts +8 -0
- package/dist/transfer/cancellation.d.ts.map +1 -0
- package/dist/transfer/cancellation.js +19 -0
- package/dist/transfer/index.d.ts +8 -0
- package/dist/transfer/index.d.ts.map +1 -0
- package/dist/transfer/index.js +4 -0
- package/dist/transfer/prefetch.d.ts +38 -0
- package/dist/transfer/prefetch.d.ts.map +1 -0
- package/dist/transfer/prefetch.js +61 -0
- package/dist/transfer/prefetch.test.d.ts +2 -0
- package/dist/transfer/prefetch.test.d.ts.map +1 -0
- package/dist/transfer/prefetch.test.js +136 -0
- package/dist/transfer/serve.d.ts +66 -0
- package/dist/transfer/serve.d.ts.map +1 -0
- package/dist/transfer/serve.js +126 -0
- package/dist/transfer/serve.test.d.ts +2 -0
- package/dist/transfer/serve.test.d.ts.map +1 -0
- package/dist/transfer/serve.test.js +101 -0
- package/dist/transfer/snatch.d.ts +39 -0
- package/dist/transfer/snatch.d.ts.map +1 -0
- package/dist/transfer/snatch.js +289 -0
- package/dist/transfer/snatch.test.d.ts +2 -0
- package/dist/transfer/snatch.test.d.ts.map +1 -0
- package/dist/transfer/snatch.test.js +337 -0
- package/dist/transfer/types.d.ts +85 -0
- package/dist/transfer/types.d.ts.map +1 -0
- package/dist/transfer/types.js +15 -0
- package/dist/utils/hash.d.ts +13 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +31 -0
- package/dist/utils/hash.test.d.ts +2 -0
- package/dist/utils/hash.test.d.ts.map +1 -0
- package/dist/utils/hash.test.js +56 -0
- package/dist/utils/image-utils.d.ts +28 -0
- package/dist/utils/image-utils.d.ts.map +1 -0
- package/dist/utils/image-utils.js +113 -0
- package/dist/utils/image-utils.test.d.ts +2 -0
- package/dist/utils/image-utils.test.d.ts.map +1 -0
- package/dist/utils/image-utils.test.js +181 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/log.d.ts +22 -0
- package/dist/utils/log.d.ts.map +1 -0
- package/dist/utils/log.js +100 -0
- package/dist/utils/log.test.d.ts +2 -0
- package/dist/utils/log.test.d.ts.map +1 -0
- package/dist/utils/log.test.js +113 -0
- package/dist/worker/blob-worker-client.d.ts +118 -0
- package/dist/worker/blob-worker-client.d.ts.map +1 -0
- package/dist/worker/blob-worker-client.js +361 -0
- package/dist/worker/blob-worker-client.test.d.ts +2 -0
- package/dist/worker/blob-worker-client.test.d.ts.map +1 -0
- package/dist/worker/blob-worker-client.test.js +137 -0
- package/dist/worker/blob-worker-logic.d.ts +120 -0
- package/dist/worker/blob-worker-logic.d.ts.map +1 -0
- package/dist/worker/blob-worker-logic.js +368 -0
- package/dist/worker/blob-worker-logic.test.d.ts +2 -0
- package/dist/worker/blob-worker-logic.test.d.ts.map +1 -0
- package/dist/worker/blob-worker-logic.test.js +191 -0
- package/dist/worker/blob-worker.d.ts +21 -0
- package/dist/worker/blob-worker.d.ts.map +1 -0
- package/dist/worker/blob-worker.js +44 -0
- package/dist/worker/index.d.ts +12 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +6 -0
- package/dist/worker/midden-blake3.d.ts +23 -0
- package/dist/worker/midden-blake3.d.ts.map +1 -0
- package/dist/worker/midden-blake3.js +47 -0
- package/dist/worker/midden-blake3.test.d.ts +2 -0
- package/dist/worker/midden-blake3.test.d.ts.map +1 -0
- package/dist/worker/midden-blake3.test.js +25 -0
- package/dist/worker/midden-not-bundled.stub.d.ts +1 -0
- package/dist/worker/midden-not-bundled.stub.d.ts.map +1 -0
- package/dist/worker/midden-not-bundled.stub.js +10 -0
- package/dist/worker/midden-stub.d.ts +10 -0
- package/dist/worker/midden-stub.d.ts.map +1 -0
- package/dist/worker/midden-stub.js +31 -0
- package/dist/worker/midden-stub.test.d.ts +2 -0
- package/dist/worker/midden-stub.test.d.ts.map +1 -0
- package/dist/worker/midden-stub.test.js +25 -0
- package/dist/worker/midden-worker-client.d.ts +103 -0
- package/dist/worker/midden-worker-client.d.ts.map +1 -0
- package/dist/worker/midden-worker-client.js +246 -0
- package/dist/worker/midden-worker-client.test.d.ts +2 -0
- package/dist/worker/midden-worker-client.test.d.ts.map +1 -0
- package/dist/worker/midden-worker-client.test.js +151 -0
- package/dist/worker/midden-worker-contract.d.ts +87 -0
- package/dist/worker/midden-worker-contract.d.ts.map +1 -0
- package/dist/worker/midden-worker-contract.js +30 -0
- package/package.json +90 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { NetworkAdapter, type Message, type PeerId, type PeerMetadata } from "@automerge/automerge-repo";
|
|
2
|
+
import type { BiStreamLike, ConnectionSummary, EndpointState, IrohNetworkAdapterOptions, MiddenStreamNode } from "./types.js";
|
|
3
|
+
export type { BiStreamLike, ConnectionSummary, EndpointState, IrohNetworkAdapterOptions, MiddenStreamNode };
|
|
4
|
+
/** ALPN protocol identifier for automerge-repo sync over iroh. */
|
|
5
|
+
export declare const SYNC_ALPN = "iroh/automerge-repo/1";
|
|
6
|
+
/**
|
|
7
|
+
* automerge-repo NetworkAdapter that uses iroh QUIC streams for transport.
|
|
8
|
+
*
|
|
9
|
+
* usage:
|
|
10
|
+
* const adapter = new IrohNetworkAdapter({
|
|
11
|
+
* getNode: () => getMiddenNode(),
|
|
12
|
+
* getIdentity: () => getStoredIdentity(),
|
|
13
|
+
* onIdentityChange: (cb) => subscribeToIdentityChanges(cb),
|
|
14
|
+
* });
|
|
15
|
+
* const repo = new Repo({ network: [broadcastAdapter, adapter] });
|
|
16
|
+
* // later, to connect to a peer:
|
|
17
|
+
* await adapter.addPeer("abc123...def");
|
|
18
|
+
*/
|
|
19
|
+
export declare class IrohNetworkAdapter extends NetworkAdapter {
|
|
20
|
+
private readonly opts;
|
|
21
|
+
private readonly syncAlpn;
|
|
22
|
+
private midden;
|
|
23
|
+
private streams;
|
|
24
|
+
private readLoops;
|
|
25
|
+
private _ready;
|
|
26
|
+
private _readyPromise;
|
|
27
|
+
private _resolveReady;
|
|
28
|
+
private _disconnected;
|
|
29
|
+
private _acceptLoopRunning;
|
|
30
|
+
private identityUnsub;
|
|
31
|
+
/** peers explicitly added via addPeer() that we should stay connected to. */
|
|
32
|
+
private intendedPeers;
|
|
33
|
+
/** per-peer reconnection state tracking attempt count and pending timer. */
|
|
34
|
+
private reconnectState;
|
|
35
|
+
/** listeners for connection state changes. */
|
|
36
|
+
private connectionStateListeners;
|
|
37
|
+
/** peers that exceeded max reconnection attempts. */
|
|
38
|
+
private failedPeers;
|
|
39
|
+
/** external handlers registered for non-sync ALPNs via registerAlpnHandler(). */
|
|
40
|
+
private alpnHandlers;
|
|
41
|
+
/** listeners notified when a peer stream is established. */
|
|
42
|
+
private peerConnectListeners;
|
|
43
|
+
/** listeners notified when a peer stream is removed. */
|
|
44
|
+
private peerDisconnectListeners;
|
|
45
|
+
private _stopped;
|
|
46
|
+
private _endpointState;
|
|
47
|
+
private endpointStateListeners;
|
|
48
|
+
constructor(opts: IrohNetworkAdapterOptions);
|
|
49
|
+
isReady(): boolean;
|
|
50
|
+
whenReady(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* called by the Repo to start the adapter.
|
|
53
|
+
*
|
|
54
|
+
* marks the adapter ready (so automerge-repo can use it immediately)
|
|
55
|
+
* and begins transport setup if an identity already exists.
|
|
56
|
+
*/
|
|
57
|
+
connect(peerId: PeerId, peerMetadata?: PeerMetadata): void;
|
|
58
|
+
/**
|
|
59
|
+
* send a message to a peer.
|
|
60
|
+
*
|
|
61
|
+
* CBOR-encodes the message and writes it as a length-delimited frame
|
|
62
|
+
* to the peer's QUIC stream.
|
|
63
|
+
*/
|
|
64
|
+
send(message: Message): void;
|
|
65
|
+
/**
|
|
66
|
+
* disconnect from all peers and stop accepting connections.
|
|
67
|
+
*/
|
|
68
|
+
disconnect(): void;
|
|
69
|
+
/**
|
|
70
|
+
* connect to a peer by node ID.
|
|
71
|
+
*
|
|
72
|
+
* opens a bidirectional QUIC stream to the peer on the automerge sync
|
|
73
|
+
* ALPN, starts a read loop, and emits a peer-candidate event so
|
|
74
|
+
* automerge-repo begins syncing with this peer.
|
|
75
|
+
*/
|
|
76
|
+
addPeer(nodeId: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* dial a peer with a short retry loop for the initial connection attempt.
|
|
79
|
+
*
|
|
80
|
+
* discovery (relay-assisted address exchange) can lag a peer's node-id
|
|
81
|
+
* registration by a second or so right after both endpoints come
|
|
82
|
+
* online - dialing during that window fails with "no addressing
|
|
83
|
+
* information available" even though the peer is reachable moments
|
|
84
|
+
* later. retry a handful of times with a short fixed delay before
|
|
85
|
+
* giving up; this is a much tighter loop than the general reconnect
|
|
86
|
+
* backoff below, which is for peers that were connected and then
|
|
87
|
+
* dropped.
|
|
88
|
+
*/
|
|
89
|
+
private openBiWithRetry;
|
|
90
|
+
/**
|
|
91
|
+
* stop maintaining a connection to a peer.
|
|
92
|
+
*
|
|
93
|
+
* removes the peer from intendedPeers, cancels any pending reconnection,
|
|
94
|
+
* and closes any existing stream. use this when you intentionally want
|
|
95
|
+
* to stop connecting to a peer (as opposed to a transient failure).
|
|
96
|
+
*/
|
|
97
|
+
forgetPeer(nodeId: string): void;
|
|
98
|
+
/** check whether we have an active stream to a peer (transport-level connectivity check). */
|
|
99
|
+
isConnected(nodeId: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* get a summary of the current connection state.
|
|
102
|
+
* used by the UI to show stoplight-style indicators.
|
|
103
|
+
*/
|
|
104
|
+
getConnectionSummary(): ConnectionSummary;
|
|
105
|
+
/**
|
|
106
|
+
* subscribe to connection state changes.
|
|
107
|
+
* fires whenever a peer connects, disconnects, starts reconnecting,
|
|
108
|
+
* or gives up. returns an unsubscribe function.
|
|
109
|
+
*/
|
|
110
|
+
onConnectionStateChange(handler: () => void): () => void;
|
|
111
|
+
/**
|
|
112
|
+
* subscribe to peer connect events. fires when a stream is
|
|
113
|
+
* successfully established with a peer. returns an unsubscribe function.
|
|
114
|
+
*/
|
|
115
|
+
onPeerConnect(handler: (peerId: string) => void): () => void;
|
|
116
|
+
/**
|
|
117
|
+
* subscribe to peer disconnect events. fires when a peer's stream
|
|
118
|
+
* is removed (closed or errored). returns an unsubscribe function.
|
|
119
|
+
*/
|
|
120
|
+
onPeerDisconnect(handler: (peerId: string) => void): () => void;
|
|
121
|
+
/**
|
|
122
|
+
* retry connection to all failed peers.
|
|
123
|
+
* re-adds them to intendedPeers and starts fresh reconnection attempts.
|
|
124
|
+
*/
|
|
125
|
+
retryFailedPeers(): void;
|
|
126
|
+
/** get the current iroh endpoint state for UI display. */
|
|
127
|
+
getEndpointState(): EndpointState;
|
|
128
|
+
/** subscribe to endpoint state changes; returns an unsubscribe function. */
|
|
129
|
+
onEndpointStateChange(handler: (state: EndpointState) => void): () => void;
|
|
130
|
+
/**
|
|
131
|
+
* stop all P2P transport gracefully.
|
|
132
|
+
* closes all peer streams and cancels reconnections, but preserves
|
|
133
|
+
* intendedPeers so restart() can reconnect them. the node reference is
|
|
134
|
+
* dropped so restart() creates a fresh one via getNode().
|
|
135
|
+
*/
|
|
136
|
+
stop(): void;
|
|
137
|
+
/**
|
|
138
|
+
* restart the P2P transport after stop().
|
|
139
|
+
* re-initializes the node and reconnects all remembered peers.
|
|
140
|
+
*/
|
|
141
|
+
restart(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* register a handler for incoming streams with a specific ALPN.
|
|
144
|
+
* the accept loop will dispatch matching streams to this handler
|
|
145
|
+
* instead of closing them. used to support additional protocols
|
|
146
|
+
* alongside automerge sync without forking this adapter.
|
|
147
|
+
*/
|
|
148
|
+
registerAlpnHandler(alpn: string, handler: (stream: BiStreamLike) => void): void;
|
|
149
|
+
/**
|
|
150
|
+
* get the midden stream node, initializing it lazily if needed.
|
|
151
|
+
* exposed for use by protocol handlers that need to open outbound
|
|
152
|
+
* streams on a different ALPN.
|
|
153
|
+
*/
|
|
154
|
+
getNode(): Promise<MiddenStreamNode>;
|
|
155
|
+
private checkIdentityAndStart;
|
|
156
|
+
private initialize;
|
|
157
|
+
private ensureMidden;
|
|
158
|
+
private startAcceptLoop;
|
|
159
|
+
private registerStream;
|
|
160
|
+
private startReadLoop;
|
|
161
|
+
private removePeer;
|
|
162
|
+
/**
|
|
163
|
+
* schedule a reconnection attempt for a peer using exponential backoff
|
|
164
|
+
* with random jitter.
|
|
165
|
+
*/
|
|
166
|
+
private scheduleReconnect;
|
|
167
|
+
/**
|
|
168
|
+
* attempt to reconnect to a peer. called by the scheduled timer from
|
|
169
|
+
* scheduleReconnect(). on failure, schedules the next attempt.
|
|
170
|
+
*/
|
|
171
|
+
private attemptReconnect;
|
|
172
|
+
/** notify all connection state listeners. */
|
|
173
|
+
private emitConnectionStateChange;
|
|
174
|
+
private setEndpointState;
|
|
175
|
+
/** cancel and remove any pending reconnect timer for a peer. */
|
|
176
|
+
private clearReconnectState;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=iroh-network-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iroh-network-adapter.d.ts","sourceRoot":"","sources":["../../src/automerge/iroh-network-adapter.ts"],"names":[],"mappings":"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"}
|