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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +140 -0
  3. package/dist/debug.d.ts +29 -0
  4. package/dist/debug.d.ts.map +1 -0
  5. package/dist/debug.js +56 -0
  6. package/dist/debug.js.map +1 -0
  7. package/dist/index.d.ts +62 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +57 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/protocol/encoding.d.ts +80 -0
  12. package/dist/protocol/encoding.d.ts.map +1 -0
  13. package/dist/protocol/encoding.js +992 -0
  14. package/dist/protocol/encoding.js.map +1 -0
  15. package/dist/protocol/messages.d.ts +271 -0
  16. package/dist/protocol/messages.d.ts.map +1 -0
  17. package/dist/protocol/messages.js +114 -0
  18. package/dist/protocol/messages.js.map +1 -0
  19. package/dist/rollback/engine.d.ts +261 -0
  20. package/dist/rollback/engine.d.ts.map +1 -0
  21. package/dist/rollback/engine.js +543 -0
  22. package/dist/rollback/engine.js.map +1 -0
  23. package/dist/rollback/input-buffer.d.ts +225 -0
  24. package/dist/rollback/input-buffer.d.ts.map +1 -0
  25. package/dist/rollback/input-buffer.js +483 -0
  26. package/dist/rollback/input-buffer.js.map +1 -0
  27. package/dist/rollback/snapshot-buffer.d.ts +119 -0
  28. package/dist/rollback/snapshot-buffer.d.ts.map +1 -0
  29. package/dist/rollback/snapshot-buffer.js +256 -0
  30. package/dist/rollback/snapshot-buffer.js.map +1 -0
  31. package/dist/session/desync-manager.d.ts +106 -0
  32. package/dist/session/desync-manager.d.ts.map +1 -0
  33. package/dist/session/desync-manager.js +136 -0
  34. package/dist/session/desync-manager.js.map +1 -0
  35. package/dist/session/lag-monitor.d.ts +69 -0
  36. package/dist/session/lag-monitor.d.ts.map +1 -0
  37. package/dist/session/lag-monitor.js +74 -0
  38. package/dist/session/lag-monitor.js.map +1 -0
  39. package/dist/session/message-builders.d.ts +86 -0
  40. package/dist/session/message-builders.d.ts.map +1 -0
  41. package/dist/session/message-builders.js +199 -0
  42. package/dist/session/message-builders.js.map +1 -0
  43. package/dist/session/message-router.d.ts +61 -0
  44. package/dist/session/message-router.d.ts.map +1 -0
  45. package/dist/session/message-router.js +105 -0
  46. package/dist/session/message-router.js.map +1 -0
  47. package/dist/session/player-manager.d.ts +100 -0
  48. package/dist/session/player-manager.d.ts.map +1 -0
  49. package/dist/session/player-manager.js +160 -0
  50. package/dist/session/player-manager.js.map +1 -0
  51. package/dist/session/session.d.ts +379 -0
  52. package/dist/session/session.d.ts.map +1 -0
  53. package/dist/session/session.js +1294 -0
  54. package/dist/session/session.js.map +1 -0
  55. package/dist/session/topology.d.ts +66 -0
  56. package/dist/session/topology.d.ts.map +1 -0
  57. package/dist/session/topology.js +72 -0
  58. package/dist/session/topology.js.map +1 -0
  59. package/dist/transport/adapter.d.ts +99 -0
  60. package/dist/transport/adapter.d.ts.map +1 -0
  61. package/dist/transport/adapter.js +8 -0
  62. package/dist/transport/adapter.js.map +1 -0
  63. package/dist/transport/local.d.ts +192 -0
  64. package/dist/transport/local.d.ts.map +1 -0
  65. package/dist/transport/local.js +435 -0
  66. package/dist/transport/local.js.map +1 -0
  67. package/dist/transport/transforming.d.ts +177 -0
  68. package/dist/transport/transforming.d.ts.map +1 -0
  69. package/dist/transport/transforming.js +407 -0
  70. package/dist/transport/transforming.js.map +1 -0
  71. package/dist/transport/webrtc.d.ts +285 -0
  72. package/dist/transport/webrtc.d.ts.map +1 -0
  73. package/dist/transport/webrtc.js +734 -0
  74. package/dist/transport/webrtc.js.map +1 -0
  75. package/dist/types.d.ts +394 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +256 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/utils/rate-limiter.d.ts +59 -0
  80. package/dist/utils/rate-limiter.d.ts.map +1 -0
  81. package/dist/utils/rate-limiter.js +93 -0
  82. package/dist/utils/rate-limiter.js.map +1 -0
  83. 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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"}