rollback-netcode 0.0.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/LICENSE +21 -0
- package/README.md +140 -0
- package/dist/debug.d.ts +29 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +56 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/protocol/encoding.d.ts +80 -0
- package/dist/protocol/encoding.d.ts.map +1 -0
- package/dist/protocol/encoding.js +992 -0
- package/dist/protocol/encoding.js.map +1 -0
- package/dist/protocol/messages.d.ts +271 -0
- package/dist/protocol/messages.d.ts.map +1 -0
- package/dist/protocol/messages.js +114 -0
- package/dist/protocol/messages.js.map +1 -0
- package/dist/rollback/engine.d.ts +261 -0
- package/dist/rollback/engine.d.ts.map +1 -0
- package/dist/rollback/engine.js +543 -0
- package/dist/rollback/engine.js.map +1 -0
- package/dist/rollback/input-buffer.d.ts +225 -0
- package/dist/rollback/input-buffer.d.ts.map +1 -0
- package/dist/rollback/input-buffer.js +483 -0
- package/dist/rollback/input-buffer.js.map +1 -0
- package/dist/rollback/snapshot-buffer.d.ts +119 -0
- package/dist/rollback/snapshot-buffer.d.ts.map +1 -0
- package/dist/rollback/snapshot-buffer.js +256 -0
- package/dist/rollback/snapshot-buffer.js.map +1 -0
- package/dist/session/desync-manager.d.ts +106 -0
- package/dist/session/desync-manager.d.ts.map +1 -0
- package/dist/session/desync-manager.js +136 -0
- package/dist/session/desync-manager.js.map +1 -0
- package/dist/session/lag-monitor.d.ts +69 -0
- package/dist/session/lag-monitor.d.ts.map +1 -0
- package/dist/session/lag-monitor.js +74 -0
- package/dist/session/lag-monitor.js.map +1 -0
- package/dist/session/message-builders.d.ts +86 -0
- package/dist/session/message-builders.d.ts.map +1 -0
- package/dist/session/message-builders.js +199 -0
- package/dist/session/message-builders.js.map +1 -0
- package/dist/session/message-router.d.ts +61 -0
- package/dist/session/message-router.d.ts.map +1 -0
- package/dist/session/message-router.js +105 -0
- package/dist/session/message-router.js.map +1 -0
- package/dist/session/player-manager.d.ts +100 -0
- package/dist/session/player-manager.d.ts.map +1 -0
- package/dist/session/player-manager.js +160 -0
- package/dist/session/player-manager.js.map +1 -0
- package/dist/session/session.d.ts +379 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +1294 -0
- package/dist/session/session.js.map +1 -0
- package/dist/session/topology.d.ts +66 -0
- package/dist/session/topology.d.ts.map +1 -0
- package/dist/session/topology.js +72 -0
- package/dist/session/topology.js.map +1 -0
- package/dist/transport/adapter.d.ts +99 -0
- package/dist/transport/adapter.d.ts.map +1 -0
- package/dist/transport/adapter.js +8 -0
- package/dist/transport/adapter.js.map +1 -0
- package/dist/transport/local.d.ts +192 -0
- package/dist/transport/local.d.ts.map +1 -0
- package/dist/transport/local.js +435 -0
- package/dist/transport/local.js.map +1 -0
- package/dist/transport/transforming.d.ts +177 -0
- package/dist/transport/transforming.d.ts.map +1 -0
- package/dist/transport/transforming.js +407 -0
- package/dist/transport/transforming.js.map +1 -0
- package/dist/transport/webrtc.d.ts +285 -0
- package/dist/transport/webrtc.d.ts.map +1 -0
- package/dist/transport/webrtc.js +734 -0
- package/dist/transport/webrtc.js.map +1 -0
- package/dist/types.d.ts +394 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +256 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +59 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +93 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network topology handling for multiplayer sessions.
|
|
3
|
+
*
|
|
4
|
+
* Topology determines how messages are routed between peers:
|
|
5
|
+
* - Star: All messages go through the host
|
|
6
|
+
* - Mesh: Peers send directly to each other
|
|
7
|
+
*/
|
|
8
|
+
import { Topology as TopologyType } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Interface for topology implementations.
|
|
11
|
+
* Handles message routing decisions based on network topology.
|
|
12
|
+
*/
|
|
13
|
+
export interface TopologyStrategy {
|
|
14
|
+
/** The topology type */
|
|
15
|
+
readonly type: TopologyType;
|
|
16
|
+
/**
|
|
17
|
+
* Determine if input should be relayed to other peers.
|
|
18
|
+
*
|
|
19
|
+
* @param fromPeerId - The peer that sent the input
|
|
20
|
+
* @param isHost - Whether the current session is the host
|
|
21
|
+
* @returns true if the input should be relayed
|
|
22
|
+
*/
|
|
23
|
+
shouldRelayInput(fromPeerId: string, isHost: boolean): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get the peers to relay a message to.
|
|
26
|
+
*
|
|
27
|
+
* @param fromPeerId - The peer that sent the original message
|
|
28
|
+
* @param allPeers - Set of all connected peer IDs
|
|
29
|
+
* @returns Array of peer IDs to relay to
|
|
30
|
+
*/
|
|
31
|
+
getRelayTargets(fromPeerId: string, allPeers: ReadonlySet<string>): string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Star topology: all messages go through the host.
|
|
35
|
+
*
|
|
36
|
+
* In star topology:
|
|
37
|
+
* - Clients send inputs to the host
|
|
38
|
+
* - Host relays inputs to all other clients
|
|
39
|
+
* - This reduces the number of connections but increases latency slightly
|
|
40
|
+
*/
|
|
41
|
+
export declare class StarTopology implements TopologyStrategy {
|
|
42
|
+
readonly type: TopologyType;
|
|
43
|
+
shouldRelayInput(fromPeerId: string, isHost: boolean): boolean;
|
|
44
|
+
getRelayTargets(fromPeerId: string, allPeers: ReadonlySet<string>): string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Mesh topology: peers send directly to each other.
|
|
48
|
+
*
|
|
49
|
+
* In mesh topology:
|
|
50
|
+
* - Every peer sends inputs to every other peer
|
|
51
|
+
* - No relaying is needed
|
|
52
|
+
* - Lower latency but more connections required
|
|
53
|
+
*/
|
|
54
|
+
export declare class MeshTopology implements TopologyStrategy {
|
|
55
|
+
readonly type: TopologyType;
|
|
56
|
+
shouldRelayInput(_fromPeerId: string, _isHost: boolean): boolean;
|
|
57
|
+
getRelayTargets(_fromPeerId: string, _allPeers: ReadonlySet<string>): string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a topology strategy based on the topology type.
|
|
61
|
+
*
|
|
62
|
+
* @param topology - The topology type
|
|
63
|
+
* @returns The corresponding topology strategy
|
|
64
|
+
*/
|
|
65
|
+
export declare function createTopologyStrategy(topology: TopologyType): TopologyStrategy;
|
|
66
|
+
//# sourceMappingURL=topology.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../src/session/topology.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;;;;;OAMG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAE/D;;;;;;OAMG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;CAC7E;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAqB;IAEhD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAK9D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;CAU5E;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,YAAW,gBAAgB;IACpD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAqB;IAEhD,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAKhE,eAAe,CACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,MAAM,EAAE;CAIX;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,YAAY,GACpB,gBAAgB,CAYlB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network topology handling for multiplayer sessions.
|
|
3
|
+
*
|
|
4
|
+
* Topology determines how messages are routed between peers:
|
|
5
|
+
* - Star: All messages go through the host
|
|
6
|
+
* - Mesh: Peers send directly to each other
|
|
7
|
+
*/
|
|
8
|
+
import { Topology as TopologyType } from "../types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Star topology: all messages go through the host.
|
|
11
|
+
*
|
|
12
|
+
* In star topology:
|
|
13
|
+
* - Clients send inputs to the host
|
|
14
|
+
* - Host relays inputs to all other clients
|
|
15
|
+
* - This reduces the number of connections but increases latency slightly
|
|
16
|
+
*/
|
|
17
|
+
export class StarTopology {
|
|
18
|
+
type = TopologyType.Star;
|
|
19
|
+
shouldRelayInput(fromPeerId, isHost) {
|
|
20
|
+
// Only the host relays inputs in star topology
|
|
21
|
+
return isHost;
|
|
22
|
+
}
|
|
23
|
+
getRelayTargets(fromPeerId, allPeers) {
|
|
24
|
+
// Relay to all peers except the original sender
|
|
25
|
+
const targets = [];
|
|
26
|
+
for (const peerId of allPeers) {
|
|
27
|
+
if (peerId !== fromPeerId) {
|
|
28
|
+
targets.push(peerId);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return targets;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Mesh topology: peers send directly to each other.
|
|
36
|
+
*
|
|
37
|
+
* In mesh topology:
|
|
38
|
+
* - Every peer sends inputs to every other peer
|
|
39
|
+
* - No relaying is needed
|
|
40
|
+
* - Lower latency but more connections required
|
|
41
|
+
*/
|
|
42
|
+
export class MeshTopology {
|
|
43
|
+
type = TopologyType.Mesh;
|
|
44
|
+
shouldRelayInput(_fromPeerId, _isHost) {
|
|
45
|
+
// No relaying in mesh topology - peers communicate directly
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
getRelayTargets(_fromPeerId, _allPeers) {
|
|
49
|
+
// No relay targets in mesh topology
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create a topology strategy based on the topology type.
|
|
55
|
+
*
|
|
56
|
+
* @param topology - The topology type
|
|
57
|
+
* @returns The corresponding topology strategy
|
|
58
|
+
*/
|
|
59
|
+
export function createTopologyStrategy(topology) {
|
|
60
|
+
switch (topology) {
|
|
61
|
+
case TopologyType.Star:
|
|
62
|
+
return new StarTopology();
|
|
63
|
+
case TopologyType.Mesh:
|
|
64
|
+
return new MeshTopology();
|
|
65
|
+
default: {
|
|
66
|
+
// TypeScript exhaustiveness check
|
|
67
|
+
const _exhaustiveCheck = topology;
|
|
68
|
+
throw new Error(`Unknown topology: ${_exhaustiveCheck}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=topology.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topology.js","sourceRoot":"","sources":["../../src/session/topology.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AA6BvD;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACf,IAAI,GAAiB,YAAY,CAAC,IAAI,CAAC;IAEhD,gBAAgB,CAAC,UAAkB,EAAE,MAAe;QACnD,+CAA+C;QAC/C,OAAO,MAAM,CAAC;IACf,CAAC;IAED,eAAe,CAAC,UAAkB,EAAE,QAA6B;QAChE,gDAAgD;QAChD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,YAAY;IACf,IAAI,GAAiB,YAAY,CAAC,IAAI,CAAC;IAEhD,gBAAgB,CAAC,WAAmB,EAAE,OAAgB;QACrD,4DAA4D;QAC5D,OAAO,KAAK,CAAC;IACd,CAAC;IAED,eAAe,CACd,WAAmB,EACnB,SAA8B;QAE9B,oCAAoC;QACpC,OAAO,EAAE,CAAC;IACX,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACrC,QAAsB;IAEtB,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC,IAAI;YACrB,OAAO,IAAI,YAAY,EAAE,CAAC;QAC3B,KAAK,YAAY,CAAC,IAAI;YACrB,OAAO,IAAI,YAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,CAAC;YACT,kCAAkC;YAClC,MAAM,gBAAgB,GAAU,QAAQ,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,qBAAqB,gBAAgB,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport adapter interface for network communication.
|
|
3
|
+
*
|
|
4
|
+
* This interface abstracts the underlying transport mechanism (WebRTC, WebSocket, etc.)
|
|
5
|
+
* allowing the rollback engine to work with any transport implementation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Connection quality metrics for a peer.
|
|
9
|
+
*/
|
|
10
|
+
export interface ConnectionMetrics {
|
|
11
|
+
/** Round-trip time in milliseconds */
|
|
12
|
+
rtt: number;
|
|
13
|
+
/** RTT variance (jitter) in milliseconds */
|
|
14
|
+
jitter: number;
|
|
15
|
+
/** Estimated packet loss rate (0-1) */
|
|
16
|
+
packetLoss: number;
|
|
17
|
+
/** Timestamp when metrics were last updated */
|
|
18
|
+
lastUpdated: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Interface that all transport implementations must follow.
|
|
22
|
+
*/
|
|
23
|
+
export interface TransportAdapter {
|
|
24
|
+
/**
|
|
25
|
+
* Connect to a peer.
|
|
26
|
+
*
|
|
27
|
+
* @param peerId - Unique identifier of the peer to connect to
|
|
28
|
+
* @returns Promise that resolves when connection is established
|
|
29
|
+
*/
|
|
30
|
+
connect(peerId: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Disconnect from a peer.
|
|
33
|
+
*
|
|
34
|
+
* @param peerId - Unique identifier of the peer to disconnect from
|
|
35
|
+
*/
|
|
36
|
+
disconnect(peerId: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Disconnect from all peers.
|
|
39
|
+
*/
|
|
40
|
+
disconnectAll(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Send a message to a specific peer.
|
|
43
|
+
*
|
|
44
|
+
* @param peerId - Unique identifier of the peer to send to
|
|
45
|
+
* @param message - The message data to send
|
|
46
|
+
* @param reliable - Whether to send reliably (ordered, guaranteed delivery)
|
|
47
|
+
*/
|
|
48
|
+
send(peerId: string, message: Uint8Array, reliable: boolean): void;
|
|
49
|
+
/**
|
|
50
|
+
* Broadcast a message to all connected peers.
|
|
51
|
+
*
|
|
52
|
+
* @param message - The message data to send
|
|
53
|
+
* @param reliable - Whether to send reliably
|
|
54
|
+
*/
|
|
55
|
+
broadcast(message: Uint8Array, reliable: boolean): void;
|
|
56
|
+
/**
|
|
57
|
+
* Callback invoked when a message is received from a peer.
|
|
58
|
+
*/
|
|
59
|
+
onMessage: ((peerId: string, message: Uint8Array) => void) | null;
|
|
60
|
+
/**
|
|
61
|
+
* Callback invoked when a peer connects.
|
|
62
|
+
*/
|
|
63
|
+
onConnect: ((peerId: string) => void) | null;
|
|
64
|
+
/**
|
|
65
|
+
* Callback invoked when a peer disconnects.
|
|
66
|
+
*/
|
|
67
|
+
onDisconnect: ((peerId: string) => void) | null;
|
|
68
|
+
/**
|
|
69
|
+
* Callback invoked when a transport error occurs.
|
|
70
|
+
* This allows the application layer to be notified of network issues
|
|
71
|
+
* that might not cause immediate disconnection.
|
|
72
|
+
*
|
|
73
|
+
* @param peerId - The peer involved (if applicable, null for general errors)
|
|
74
|
+
* @param error - The error that occurred
|
|
75
|
+
* @param context - Additional context about where the error occurred
|
|
76
|
+
*/
|
|
77
|
+
onError?: ((peerId: string | null, error: Error, context: string) => void) | null;
|
|
78
|
+
/**
|
|
79
|
+
* Set of currently connected peer IDs.
|
|
80
|
+
*/
|
|
81
|
+
readonly connectedPeers: ReadonlySet<string>;
|
|
82
|
+
/**
|
|
83
|
+
* The local peer's ID.
|
|
84
|
+
*/
|
|
85
|
+
readonly localPeerId: string;
|
|
86
|
+
/**
|
|
87
|
+
* Get connection quality metrics for a peer.
|
|
88
|
+
*
|
|
89
|
+
* @param peerId - The peer's ID
|
|
90
|
+
* @returns Connection metrics or null if not available
|
|
91
|
+
*/
|
|
92
|
+
getConnectionMetrics?(peerId: string): ConnectionMetrics | null;
|
|
93
|
+
/**
|
|
94
|
+
* Clean up resources when the transport is no longer needed.
|
|
95
|
+
* Optional - implement if your transport has resources that need cleanup.
|
|
96
|
+
*/
|
|
97
|
+
dispose?(): void;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/transport/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IAEZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnE;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAExD;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAElE;;OAEG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAE7C;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAEhD;;;;;;;;OAQG;IACH,OAAO,CAAC,EACL,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAChE,IAAI,CAAC;IAER;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAEhE;;;OAGG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport adapter interface for network communication.
|
|
3
|
+
*
|
|
4
|
+
* This interface abstracts the underlying transport mechanism (WebRTC, WebSocket, etc.)
|
|
5
|
+
* allowing the rollback engine to work with any transport implementation.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/transport/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local/in-memory transport for testing.
|
|
3
|
+
*
|
|
4
|
+
* Allows connecting multiple LocalTransport instances together
|
|
5
|
+
* with simulated network conditions (latency, jitter, packet loss).
|
|
6
|
+
*/
|
|
7
|
+
import type { TransportAdapter } from "./adapter.js";
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for network simulation.
|
|
10
|
+
*/
|
|
11
|
+
export interface LocalTransportConfig {
|
|
12
|
+
/**
|
|
13
|
+
* One-way latency in milliseconds.
|
|
14
|
+
* @default 0
|
|
15
|
+
*/
|
|
16
|
+
latency?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Random variation in latency (jitter) in milliseconds.
|
|
19
|
+
* @default 0
|
|
20
|
+
*/
|
|
21
|
+
jitter?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Probability of packet loss (0-1).
|
|
24
|
+
* @default 0
|
|
25
|
+
*/
|
|
26
|
+
packetLoss?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Whether to use deterministic mode (seeded random).
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
deterministic?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Seed for deterministic mode.
|
|
34
|
+
* @default 12345
|
|
35
|
+
*/
|
|
36
|
+
seed?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* In-memory transport for testing.
|
|
40
|
+
*
|
|
41
|
+
* Features:
|
|
42
|
+
* - Connect multiple LocalTransport instances together
|
|
43
|
+
* - Simulated network conditions (latency, jitter, packet loss)
|
|
44
|
+
* - Deterministic mode for reproducible tests
|
|
45
|
+
* - Manual time control via tick() method
|
|
46
|
+
*/
|
|
47
|
+
export declare class LocalTransport implements TransportAdapter {
|
|
48
|
+
readonly localPeerId: string;
|
|
49
|
+
onMessage: ((peerId: string, message: Uint8Array) => void) | null;
|
|
50
|
+
onConnect: ((peerId: string) => void) | null;
|
|
51
|
+
onDisconnect: ((peerId: string) => void) | null;
|
|
52
|
+
onError: ((peerId: string | null, error: Error, context: string) => void) | null;
|
|
53
|
+
/** Callback for keepalive ping - set by Session to send Ping messages */
|
|
54
|
+
onKeepalivePing: ((peerId: string) => void) | null;
|
|
55
|
+
private readonly _connectedPeers;
|
|
56
|
+
private readonly linkedTransports;
|
|
57
|
+
private readonly pendingMessages;
|
|
58
|
+
private readonly packetLoss;
|
|
59
|
+
private readonly random;
|
|
60
|
+
private currentTime;
|
|
61
|
+
/** Simulated one-way latency in milliseconds */
|
|
62
|
+
private _latency;
|
|
63
|
+
/** Simulated jitter (latency variation) in milliseconds */
|
|
64
|
+
private _jitter;
|
|
65
|
+
/**
|
|
66
|
+
* Create a new LocalTransport.
|
|
67
|
+
*
|
|
68
|
+
* @param localPeerId - Unique ID for this transport
|
|
69
|
+
* @param config - Network simulation configuration
|
|
70
|
+
*/
|
|
71
|
+
constructor(localPeerId: string, config?: LocalTransportConfig);
|
|
72
|
+
/**
|
|
73
|
+
* Get the set of connected peer IDs.
|
|
74
|
+
*/
|
|
75
|
+
get connectedPeers(): ReadonlySet<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Link two LocalTransport instances together.
|
|
78
|
+
* Creates a bidirectional connection.
|
|
79
|
+
*
|
|
80
|
+
* @param a - First transport
|
|
81
|
+
* @param b - Second transport
|
|
82
|
+
*/
|
|
83
|
+
static link(a: LocalTransport, b: LocalTransport): void;
|
|
84
|
+
/**
|
|
85
|
+
* Unlink two LocalTransport instances.
|
|
86
|
+
*
|
|
87
|
+
* @param a - First transport
|
|
88
|
+
* @param b - Second transport
|
|
89
|
+
*/
|
|
90
|
+
static unlink(a: LocalTransport, b: LocalTransport): void;
|
|
91
|
+
/**
|
|
92
|
+
* Connect to a peer.
|
|
93
|
+
* The peer must be linked via LocalTransport.link().
|
|
94
|
+
*/
|
|
95
|
+
connect(peerId: string): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Disconnect from a peer.
|
|
98
|
+
*/
|
|
99
|
+
disconnect(peerId: string): void;
|
|
100
|
+
/**
|
|
101
|
+
* Disconnect from all peers.
|
|
102
|
+
*/
|
|
103
|
+
disconnectAll(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Send a message to a specific peer.
|
|
106
|
+
* Uses a min-heap for O(log n) insertion instead of O(n log n) sort.
|
|
107
|
+
*/
|
|
108
|
+
send(peerId: string, message: Uint8Array, reliable: boolean): void;
|
|
109
|
+
/**
|
|
110
|
+
* Broadcast a message to all connected peers.
|
|
111
|
+
*/
|
|
112
|
+
broadcast(message: Uint8Array, reliable: boolean): void;
|
|
113
|
+
/**
|
|
114
|
+
* Process all pending messages immediately, ignoring simulated delay.
|
|
115
|
+
* Useful for synchronous tests.
|
|
116
|
+
*/
|
|
117
|
+
flush(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Advance simulated time and deliver any messages due.
|
|
120
|
+
*
|
|
121
|
+
* @param deltaMs - Time to advance in milliseconds
|
|
122
|
+
*/
|
|
123
|
+
tick(deltaMs: number): void;
|
|
124
|
+
/**
|
|
125
|
+
* Get the current simulated time.
|
|
126
|
+
*/
|
|
127
|
+
getCurrentTime(): number;
|
|
128
|
+
/**
|
|
129
|
+
* Set the current simulated time.
|
|
130
|
+
*/
|
|
131
|
+
setCurrentTime(time: number): void;
|
|
132
|
+
/**
|
|
133
|
+
* Get the number of pending messages.
|
|
134
|
+
*/
|
|
135
|
+
getPendingMessageCount(): number;
|
|
136
|
+
/**
|
|
137
|
+
* Deliver all messages that are due based on current time.
|
|
138
|
+
* Uses O(k log n) where k is the number of messages delivered.
|
|
139
|
+
*/
|
|
140
|
+
private deliverDueMessages;
|
|
141
|
+
/**
|
|
142
|
+
* Deliver a single message to its target peer.
|
|
143
|
+
* Messages are delivered regardless of current connection state, simulating
|
|
144
|
+
* real networks where messages in flight can arrive after disconnect.
|
|
145
|
+
*/
|
|
146
|
+
private deliverMessage;
|
|
147
|
+
/**
|
|
148
|
+
* Calculate delay for a message based on latency and jitter.
|
|
149
|
+
*/
|
|
150
|
+
private calculateDelay;
|
|
151
|
+
/**
|
|
152
|
+
* Determine if a packet should be dropped.
|
|
153
|
+
*/
|
|
154
|
+
private shouldDropPacket;
|
|
155
|
+
/**
|
|
156
|
+
* Get a random value between 0 and 1.
|
|
157
|
+
*/
|
|
158
|
+
private getRandomValue;
|
|
159
|
+
/**
|
|
160
|
+
* Get the current simulated latency in milliseconds.
|
|
161
|
+
*/
|
|
162
|
+
get latency(): number;
|
|
163
|
+
/**
|
|
164
|
+
* Set the simulated latency in milliseconds.
|
|
165
|
+
* Can be changed at any time; affects only new messages.
|
|
166
|
+
*/
|
|
167
|
+
set latency(value: number);
|
|
168
|
+
/**
|
|
169
|
+
* Get the current simulated jitter in milliseconds.
|
|
170
|
+
*/
|
|
171
|
+
get jitter(): number;
|
|
172
|
+
/**
|
|
173
|
+
* Set the simulated jitter in milliseconds.
|
|
174
|
+
* Can be changed at any time; affects only new messages.
|
|
175
|
+
*/
|
|
176
|
+
set jitter(value: number);
|
|
177
|
+
/**
|
|
178
|
+
* Trigger keepalive pings for all connected peers.
|
|
179
|
+
* Call this periodically to trigger RTT measurement.
|
|
180
|
+
* The Session will handle the actual Ping/Pong and RTT calculation.
|
|
181
|
+
*/
|
|
182
|
+
triggerKeepalive(): void;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Create a group of linked LocalTransport instances.
|
|
186
|
+
*
|
|
187
|
+
* @param peerIds - Array of peer IDs to create
|
|
188
|
+
* @param config - Optional shared configuration
|
|
189
|
+
* @returns Map of peer ID to LocalTransport
|
|
190
|
+
*/
|
|
191
|
+
export declare function createLocalTransportGroup(peerIds: string[], config?: LocalTransportConfig): Map<string, LocalTransport>;
|
|
192
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/transport/local.ts"],"names":[],"mappings":"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"}
|