@principal-ai/control-tower-core 0.1.25 → 0.2.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/abstractions/AuthAdapter.d.ts +1 -1
- package/dist/abstractions/AuthAdapter.d.ts.map +1 -1
- package/dist/abstractions/DefaultLockManager.d.ts +2 -2
- package/dist/abstractions/DefaultLockManager.d.ts.map +1 -1
- package/dist/abstractions/DefaultLockManager.js +7 -8
- package/dist/abstractions/DefaultPresenceManager.d.ts +4 -4
- package/dist/abstractions/DefaultPresenceManager.d.ts.map +1 -1
- package/dist/abstractions/DefaultPresenceManager.js +25 -25
- package/dist/abstractions/DefaultRoomManager.d.ts +3 -3
- package/dist/abstractions/DefaultRoomManager.d.ts.map +1 -1
- package/dist/abstractions/DefaultRoomManager.js +6 -4
- package/dist/abstractions/EventEmitter.d.ts.map +1 -1
- package/dist/abstractions/LockManager.d.ts +1 -1
- package/dist/abstractions/LockManager.d.ts.map +1 -1
- package/dist/abstractions/LockManager.js +1 -1
- package/dist/abstractions/PresenceExtension.d.ts +2 -2
- package/dist/abstractions/PresenceExtension.d.ts.map +1 -1
- package/dist/abstractions/PresenceManager.d.ts +1 -1
- package/dist/abstractions/PresenceManager.d.ts.map +1 -1
- package/dist/abstractions/PresenceManager.js +5 -5
- package/dist/abstractions/RoomManager.d.ts +2 -2
- package/dist/abstractions/RoomManager.d.ts.map +1 -1
- package/dist/abstractions/StorageAdapter.d.ts +4 -4
- package/dist/abstractions/StorageAdapter.d.ts.map +1 -1
- package/dist/abstractions/TransportAdapter.d.ts +4 -4
- package/dist/abstractions/TransportAdapter.d.ts.map +1 -1
- package/dist/abstractions/index.d.ts +11 -11
- package/dist/abstractions/index.d.ts.map +1 -1
- package/dist/abstractions/index.js +9 -9
- package/dist/adapters/mock/MockAuthAdapter.d.ts +2 -2
- package/dist/adapters/mock/MockAuthAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockAuthAdapter.js +13 -11
- package/dist/adapters/mock/MockRTCDataChannel.d.ts +83 -0
- package/dist/adapters/mock/MockRTCDataChannel.d.ts.map +1 -0
- package/dist/adapters/mock/MockRTCDataChannel.js +146 -0
- package/dist/adapters/mock/MockRTCPeerConnection.d.ts +168 -0
- package/dist/adapters/mock/MockRTCPeerConnection.d.ts.map +1 -0
- package/dist/adapters/mock/MockRTCPeerConnection.js +449 -0
- package/dist/adapters/mock/MockStorageAdapter.d.ts +1 -1
- package/dist/adapters/mock/MockStorageAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockStorageAdapter.js +18 -18
- package/dist/adapters/mock/MockTransportAdapter.d.ts +2 -2
- package/dist/adapters/mock/MockTransportAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockTransportAdapter.js +38 -38
- package/dist/adapters/mock/index.d.ts +5 -3
- package/dist/adapters/mock/index.d.ts.map +1 -1
- package/dist/adapters/mock/index.js +10 -5
- package/dist/adapters/webrtc/WebRTCSignalingAdapter.d.ts +135 -0
- package/dist/adapters/webrtc/WebRTCSignalingAdapter.d.ts.map +1 -0
- package/dist/adapters/webrtc/WebRTCSignalingAdapter.js +368 -0
- package/dist/adapters/webrtc/index.d.ts +2 -0
- package/dist/adapters/webrtc/index.d.ts.map +1 -0
- package/dist/adapters/webrtc/index.js +5 -0
- package/dist/adapters/websocket/BrowserWebSocketTransportAdapter.d.ts +75 -0
- package/dist/adapters/websocket/BrowserWebSocketTransportAdapter.d.ts.map +1 -0
- package/dist/adapters/websocket/BrowserWebSocketTransportAdapter.js +231 -0
- package/dist/adapters/websocket/WebSocketClientTransportAdapter.d.ts +3 -3
- package/dist/adapters/websocket/WebSocketClientTransportAdapter.d.ts.map +1 -1
- package/dist/adapters/websocket/WebSocketClientTransportAdapter.js +38 -38
- package/dist/adapters/websocket/WebSocketServerTransportAdapter.d.ts +7 -7
- package/dist/adapters/websocket/WebSocketServerTransportAdapter.d.ts.map +1 -1
- package/dist/adapters/websocket/WebSocketServerTransportAdapter.js +94 -91
- package/dist/adapters/websocket/browser.d.ts +2 -0
- package/dist/adapters/websocket/browser.d.ts.map +1 -0
- package/dist/adapters/websocket/browser.js +6 -0
- package/dist/adapters/websocket/index.d.ts +3 -2
- package/dist/adapters/websocket/index.d.ts.map +1 -1
- package/dist/adapters/websocket/index.js +7 -3
- package/dist/adapters/websocket/node.d.ts +3 -0
- package/dist/adapters/websocket/node.d.ts.map +1 -0
- package/dist/adapters/websocket/node.js +8 -0
- package/dist/client/BaseClient.d.ts +6 -6
- package/dist/client/BaseClient.d.ts.map +1 -1
- package/dist/client/BaseClient.js +86 -72
- package/dist/client/ClientBuilder.d.ts +5 -5
- package/dist/client/ClientBuilder.d.ts.map +1 -1
- package/dist/client/ClientBuilder.js +3 -3
- package/dist/client/PresenceClient.d.ts +4 -4
- package/dist/client/PresenceClient.d.ts.map +1 -1
- package/dist/client/PresenceClient.js +30 -30
- package/dist/client/index.d.ts +3 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -19
- package/dist/index.js.map +27 -23
- package/dist/index.mjs +1585 -558
- package/dist/index.mjs.map +27 -23
- package/dist/server/BaseServer.d.ts +13 -13
- package/dist/server/BaseServer.d.ts.map +1 -1
- package/dist/server/BaseServer.js +218 -143
- package/dist/server/ExperimentalAPI.d.ts +7 -7
- package/dist/server/ExperimentalAPI.d.ts.map +1 -1
- package/dist/server/ExperimentalAPI.js +22 -22
- package/dist/server/ServerBuilder.d.ts +11 -11
- package/dist/server/ServerBuilder.d.ts.map +1 -1
- package/dist/server/ServerBuilder.js +10 -10
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -3
- package/dist/types/auth.d.ts.map +1 -1
- package/dist/types/events.d.ts +10 -10
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/experimental.d.ts +2 -2
- package/dist/types/experimental.d.ts.map +1 -1
- package/dist/types/experimental.js +1 -1
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -2
- package/dist/types/lock.d.ts +2 -2
- package/dist/types/lock.d.ts.map +1 -1
- package/dist/types/presence.d.ts +3 -3
- package/dist/types/presence.d.ts.map +1 -1
- package/dist/types/room.d.ts +4 -4
- package/dist/types/room.d.ts.map +1 -1
- package/dist/types/room.js +2 -2
- package/package.json +15 -7
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MockTransportAdapter = void 0;
|
|
4
4
|
class MockTransportAdapter {
|
|
5
5
|
constructor(options) {
|
|
6
|
-
this.state =
|
|
6
|
+
this.state = "disconnected";
|
|
7
7
|
this.messageHandlers = new Set();
|
|
8
8
|
this.errorHandlers = new Set();
|
|
9
9
|
this.closeHandlers = new Set();
|
|
@@ -18,39 +18,39 @@ class MockTransportAdapter {
|
|
|
18
18
|
async connect(url, _options) {
|
|
19
19
|
this.connectionAttempts++;
|
|
20
20
|
if (this.shouldFailConnection) {
|
|
21
|
-
this.state =
|
|
22
|
-
const error = new Error(
|
|
23
|
-
this.errorHandlers.forEach(handler => handler(error));
|
|
21
|
+
this.state = "disconnected";
|
|
22
|
+
const error = new Error("Mock connection failed");
|
|
23
|
+
this.errorHandlers.forEach((handler) => handler(error));
|
|
24
24
|
throw error;
|
|
25
25
|
}
|
|
26
|
-
this.state =
|
|
26
|
+
this.state = "connecting";
|
|
27
27
|
this.connectedUrl = url;
|
|
28
28
|
// Simulate connection delay
|
|
29
29
|
if (this.simulateLatency > 0) {
|
|
30
|
-
await new Promise(resolve => setTimeout(resolve, this.simulateLatency));
|
|
30
|
+
await new Promise((resolve) => setTimeout(resolve, this.simulateLatency));
|
|
31
31
|
}
|
|
32
|
-
this.state =
|
|
32
|
+
this.state = "connected";
|
|
33
33
|
}
|
|
34
34
|
async disconnect() {
|
|
35
|
-
if (this.state ===
|
|
35
|
+
if (this.state === "disconnected")
|
|
36
36
|
return;
|
|
37
|
-
this.state =
|
|
37
|
+
this.state = "disconnecting";
|
|
38
38
|
// Simulate disconnect delay
|
|
39
39
|
if (this.simulateLatency > 0) {
|
|
40
|
-
await new Promise(resolve => setTimeout(resolve, this.simulateLatency / 2));
|
|
40
|
+
await new Promise((resolve) => setTimeout(resolve, this.simulateLatency / 2));
|
|
41
41
|
}
|
|
42
|
-
this.state =
|
|
42
|
+
this.state = "disconnected";
|
|
43
43
|
this.connectedUrl = null;
|
|
44
|
-
this.closeHandlers.forEach(handler => handler(1000,
|
|
44
|
+
this.closeHandlers.forEach((handler) => handler(1000, "Normal closure"));
|
|
45
45
|
this.messageQueue = [];
|
|
46
46
|
}
|
|
47
47
|
async send(message) {
|
|
48
|
-
if (this.state !==
|
|
49
|
-
throw new Error(
|
|
48
|
+
if (this.state !== "connected") {
|
|
49
|
+
throw new Error("Not connected");
|
|
50
50
|
}
|
|
51
51
|
// Simulate send latency
|
|
52
52
|
if (this.simulateLatency > 0) {
|
|
53
|
-
await new Promise(resolve => setTimeout(resolve, this.simulateLatency));
|
|
53
|
+
await new Promise((resolve) => setTimeout(resolve, this.simulateLatency));
|
|
54
54
|
}
|
|
55
55
|
this.messageQueue.push(message);
|
|
56
56
|
}
|
|
@@ -67,21 +67,21 @@ class MockTransportAdapter {
|
|
|
67
67
|
return this.state;
|
|
68
68
|
}
|
|
69
69
|
isConnected() {
|
|
70
|
-
return this.state ===
|
|
70
|
+
return this.state === "connected";
|
|
71
71
|
}
|
|
72
72
|
// Test helper methods
|
|
73
73
|
simulateMessage(message, bypassConnectionCheck = false) {
|
|
74
|
-
if (!bypassConnectionCheck && this.state !==
|
|
75
|
-
throw new Error(
|
|
74
|
+
if (!bypassConnectionCheck && this.state !== "connected") {
|
|
75
|
+
throw new Error("Cannot simulate message when not connected");
|
|
76
76
|
}
|
|
77
|
-
this.messageHandlers.forEach(handler => handler(message));
|
|
77
|
+
this.messageHandlers.forEach((handler) => handler(message));
|
|
78
78
|
}
|
|
79
79
|
simulateError(error) {
|
|
80
|
-
this.errorHandlers.forEach(handler => handler(error));
|
|
80
|
+
this.errorHandlers.forEach((handler) => handler(error));
|
|
81
81
|
}
|
|
82
82
|
simulateClose(code, reason) {
|
|
83
|
-
this.state =
|
|
84
|
-
this.closeHandlers.forEach(handler => handler(code, reason));
|
|
83
|
+
this.state = "disconnected";
|
|
84
|
+
this.closeHandlers.forEach((handler) => handler(code, reason));
|
|
85
85
|
}
|
|
86
86
|
getMessageQueue() {
|
|
87
87
|
return [...this.messageQueue];
|
|
@@ -105,19 +105,19 @@ class MockTransportAdapter {
|
|
|
105
105
|
*/
|
|
106
106
|
async simulateConnection(clientId, options = {}) {
|
|
107
107
|
// Set transport to connected state if not already
|
|
108
|
-
if (this.state !==
|
|
109
|
-
this.state =
|
|
108
|
+
if (this.state !== "connected") {
|
|
109
|
+
this.state = "connected";
|
|
110
110
|
}
|
|
111
111
|
const message = {
|
|
112
112
|
id: `conn-${clientId}`,
|
|
113
|
-
type:
|
|
113
|
+
type: "connection",
|
|
114
114
|
payload: {
|
|
115
115
|
clientId,
|
|
116
116
|
authenticated: options.authenticated ?? false,
|
|
117
117
|
userId: options.userId,
|
|
118
|
-
metadata: options.metadata
|
|
118
|
+
metadata: options.metadata,
|
|
119
119
|
},
|
|
120
|
-
timestamp: Date.now()
|
|
120
|
+
timestamp: Date.now(),
|
|
121
121
|
};
|
|
122
122
|
// Use simulateMessage with bypass flag
|
|
123
123
|
this.simulateMessage(message, true);
|
|
@@ -125,16 +125,16 @@ class MockTransportAdapter {
|
|
|
125
125
|
/**
|
|
126
126
|
* Simulate a client disconnection
|
|
127
127
|
*/
|
|
128
|
-
async simulateDisconnect(clientId, reason =
|
|
128
|
+
async simulateDisconnect(clientId, reason = "Normal closure") {
|
|
129
129
|
// Send a disconnect message to the server for this specific client
|
|
130
130
|
const message = {
|
|
131
131
|
id: `disconnect-${clientId}`,
|
|
132
|
-
type:
|
|
132
|
+
type: "disconnect",
|
|
133
133
|
payload: {
|
|
134
134
|
clientId,
|
|
135
|
-
reason
|
|
135
|
+
reason,
|
|
136
136
|
},
|
|
137
|
-
timestamp: Date.now()
|
|
137
|
+
timestamp: Date.now(),
|
|
138
138
|
};
|
|
139
139
|
this.simulateMessage(message, true);
|
|
140
140
|
}
|
|
@@ -149,13 +149,13 @@ class MockTransportAdapter {
|
|
|
149
149
|
async simulateClientMessage(clientId, messageType, messagePayload = {}) {
|
|
150
150
|
const message = {
|
|
151
151
|
id: `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
|
|
152
|
-
type:
|
|
152
|
+
type: "server_message",
|
|
153
153
|
payload: {
|
|
154
154
|
clientId,
|
|
155
155
|
type: messageType,
|
|
156
|
-
...messagePayload
|
|
156
|
+
...messagePayload,
|
|
157
157
|
},
|
|
158
|
-
timestamp: Date.now()
|
|
158
|
+
timestamp: Date.now(),
|
|
159
159
|
};
|
|
160
160
|
this.simulateMessage(message, true);
|
|
161
161
|
}
|
|
@@ -165,11 +165,11 @@ class MockTransportAdapter {
|
|
|
165
165
|
*/
|
|
166
166
|
getSentMessages(clientId) {
|
|
167
167
|
return this.messageQueue
|
|
168
|
-
.filter(msg => {
|
|
168
|
+
.filter((msg) => {
|
|
169
169
|
const payload = msg.payload;
|
|
170
170
|
return payload?.clientId === clientId;
|
|
171
171
|
})
|
|
172
|
-
.map(msg => {
|
|
172
|
+
.map((msg) => {
|
|
173
173
|
const { clientId: _, ...rest } = msg.payload;
|
|
174
174
|
return rest;
|
|
175
175
|
});
|
|
@@ -185,9 +185,9 @@ class MockTransportAdapter {
|
|
|
185
185
|
id: message.id || `msg-${Date.now()}`,
|
|
186
186
|
type: message.type,
|
|
187
187
|
payload: message.payload || {},
|
|
188
|
-
timestamp: message.timestamp || Date.now()
|
|
188
|
+
timestamp: message.timestamp || Date.now(),
|
|
189
189
|
};
|
|
190
|
-
this.messageHandlers.forEach(handler => handler(fullMessage));
|
|
190
|
+
this.messageHandlers.forEach((handler) => handler(fullMessage));
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
exports.MockTransportAdapter = MockTransportAdapter;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export { MockAuthAdapter } from "./MockAuthAdapter.js";
|
|
2
|
+
export { MockRTCDataChannel, type MockRTCDataChannelConfig, type RTCDataChannelState, } from "./MockRTCDataChannel.js";
|
|
3
|
+
export { type MockICECandidate, MockRTCPeerConnection, type MockRTCPeerConnectionConfig, type MockSessionDescription, type RTCIceConnectionState, type RTCIceGatheringState, type RTCPeerConnectionState, type RTCSignalingState, } from "./MockRTCPeerConnection.js";
|
|
4
|
+
export { MockStorageAdapter } from "./MockStorageAdapter.js";
|
|
5
|
+
export { MockTransportAdapter } from "./MockTransportAdapter.js";
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EACN,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var MockTransportAdapter_js_1 = require("./MockTransportAdapter.js");
|
|
5
|
-
Object.defineProperty(exports, "MockTransportAdapter", { enumerable: true, get: function () { return MockTransportAdapter_js_1.MockTransportAdapter; } });
|
|
6
|
-
var MockStorageAdapter_js_1 = require("./MockStorageAdapter.js");
|
|
7
|
-
Object.defineProperty(exports, "MockStorageAdapter", { enumerable: true, get: function () { return MockStorageAdapter_js_1.MockStorageAdapter; } });
|
|
3
|
+
exports.MockTransportAdapter = exports.MockStorageAdapter = exports.MockRTCPeerConnection = exports.MockRTCDataChannel = exports.MockAuthAdapter = void 0;
|
|
8
4
|
var MockAuthAdapter_js_1 = require("./MockAuthAdapter.js");
|
|
9
5
|
Object.defineProperty(exports, "MockAuthAdapter", { enumerable: true, get: function () { return MockAuthAdapter_js_1.MockAuthAdapter; } });
|
|
6
|
+
// WebRTC mocks for simulation testing
|
|
7
|
+
var MockRTCDataChannel_js_1 = require("./MockRTCDataChannel.js");
|
|
8
|
+
Object.defineProperty(exports, "MockRTCDataChannel", { enumerable: true, get: function () { return MockRTCDataChannel_js_1.MockRTCDataChannel; } });
|
|
9
|
+
var MockRTCPeerConnection_js_1 = require("./MockRTCPeerConnection.js");
|
|
10
|
+
Object.defineProperty(exports, "MockRTCPeerConnection", { enumerable: true, get: function () { return MockRTCPeerConnection_js_1.MockRTCPeerConnection; } });
|
|
11
|
+
var MockStorageAdapter_js_1 = require("./MockStorageAdapter.js");
|
|
12
|
+
Object.defineProperty(exports, "MockStorageAdapter", { enumerable: true, get: function () { return MockStorageAdapter_js_1.MockStorageAdapter; } });
|
|
13
|
+
var MockTransportAdapter_js_1 = require("./MockTransportAdapter.js");
|
|
14
|
+
Object.defineProperty(exports, "MockTransportAdapter", { enumerable: true, get: function () { return MockTransportAdapter_js_1.MockTransportAdapter; } });
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebRTC Signaling Adapter
|
|
3
|
+
*
|
|
4
|
+
* Manages WebRTC peer connections using Control Tower for signaling.
|
|
5
|
+
* Supports both mock connections (for testing) and real WebRTC.
|
|
6
|
+
*/
|
|
7
|
+
import type { BaseClient } from "../../client/BaseClient.js";
|
|
8
|
+
import type { MockRTCDataChannel } from "../mock/MockRTCDataChannel.js";
|
|
9
|
+
import { MockRTCPeerConnection, type MockRTCPeerConnectionConfig } from "../mock/MockRTCPeerConnection.js";
|
|
10
|
+
export interface WebRTCSignalingConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Use mock WebRTC (for testing) or real WebRTC (for production)
|
|
13
|
+
* @default true
|
|
14
|
+
*/
|
|
15
|
+
useMock?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* ICE servers configuration (for real WebRTC)
|
|
18
|
+
*/
|
|
19
|
+
iceServers?: Array<{
|
|
20
|
+
urls: string | string[];
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Mock configuration (for testing)
|
|
24
|
+
*/
|
|
25
|
+
mockConfig?: MockRTCPeerConnectionConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Data channel label for peer connections
|
|
28
|
+
* @default 'data'
|
|
29
|
+
*/
|
|
30
|
+
dataChannelLabel?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Enable ordered delivery for data channels
|
|
33
|
+
* @default true
|
|
34
|
+
*/
|
|
35
|
+
orderedDelivery?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export type PeerConnectionState = "new" | "connecting" | "connected" | "disconnected" | "failed";
|
|
38
|
+
export interface PeerConnection {
|
|
39
|
+
peerId: string;
|
|
40
|
+
connection: MockRTCPeerConnection;
|
|
41
|
+
dataChannel: MockRTCDataChannel | null;
|
|
42
|
+
state: PeerConnectionState;
|
|
43
|
+
createdAt: number;
|
|
44
|
+
connectedAt?: number;
|
|
45
|
+
}
|
|
46
|
+
export interface WebRTCSignalingEvents {
|
|
47
|
+
peerConnected: {
|
|
48
|
+
peerId: string;
|
|
49
|
+
dataChannel: MockRTCDataChannel;
|
|
50
|
+
};
|
|
51
|
+
peerDisconnected: {
|
|
52
|
+
peerId: string;
|
|
53
|
+
};
|
|
54
|
+
peerMessage: {
|
|
55
|
+
peerId: string;
|
|
56
|
+
data: string | ArrayBuffer;
|
|
57
|
+
};
|
|
58
|
+
peerError: {
|
|
59
|
+
peerId: string;
|
|
60
|
+
error: Error;
|
|
61
|
+
};
|
|
62
|
+
signalingStateChange: {
|
|
63
|
+
peerId: string;
|
|
64
|
+
state: PeerConnectionState;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* WebRTC Signaling Adapter
|
|
69
|
+
*
|
|
70
|
+
* Manages WebRTC peer connections using Control Tower for signaling.
|
|
71
|
+
*/
|
|
72
|
+
export declare class WebRTCSignalingAdapter {
|
|
73
|
+
private client;
|
|
74
|
+
private config;
|
|
75
|
+
private peers;
|
|
76
|
+
private eventUnsubscribers;
|
|
77
|
+
onPeerConnected: ((peerId: string, dataChannel: MockRTCDataChannel) => void) | null;
|
|
78
|
+
onPeerDisconnected: ((peerId: string) => void) | null;
|
|
79
|
+
onPeerMessage: ((peerId: string, data: string | ArrayBuffer) => void) | null;
|
|
80
|
+
onError: ((peerId: string, error: Error) => void) | null;
|
|
81
|
+
onStateChange: ((peerId: string, state: PeerConnectionState) => void) | null;
|
|
82
|
+
constructor(client: BaseClient, config?: WebRTCSignalingConfig);
|
|
83
|
+
/**
|
|
84
|
+
* Initiate a WebRTC connection to a peer
|
|
85
|
+
*/
|
|
86
|
+
connectToPeer(peerId: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Disconnect from a peer
|
|
89
|
+
*/
|
|
90
|
+
disconnectFromPeer(peerId: string): void;
|
|
91
|
+
/**
|
|
92
|
+
* Send data to a peer via DataChannel
|
|
93
|
+
*/
|
|
94
|
+
sendToPeer(peerId: string, data: string | ArrayBuffer): void;
|
|
95
|
+
/**
|
|
96
|
+
* Broadcast data to all connected peers
|
|
97
|
+
*/
|
|
98
|
+
broadcastToPeers(data: string | ArrayBuffer): void;
|
|
99
|
+
/**
|
|
100
|
+
* Get connected peer IDs
|
|
101
|
+
*/
|
|
102
|
+
getConnectedPeers(): string[];
|
|
103
|
+
/**
|
|
104
|
+
* Get all peer IDs (including connecting/disconnected)
|
|
105
|
+
*/
|
|
106
|
+
getAllPeers(): string[];
|
|
107
|
+
/**
|
|
108
|
+
* Get peer connection state
|
|
109
|
+
*/
|
|
110
|
+
getPeerState(peerId: string): PeerConnectionState | null;
|
|
111
|
+
/**
|
|
112
|
+
* Get peer connection info
|
|
113
|
+
*/
|
|
114
|
+
getPeerInfo(peerId: string): PeerConnection | null;
|
|
115
|
+
/**
|
|
116
|
+
* Check if connected to a peer
|
|
117
|
+
*/
|
|
118
|
+
isConnectedToPeer(peerId: string): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Disconnect from all peers and clean up
|
|
121
|
+
*/
|
|
122
|
+
dispose(): void;
|
|
123
|
+
private createPeerConnection;
|
|
124
|
+
private setupSignalingListeners;
|
|
125
|
+
private handleSignalingMessage;
|
|
126
|
+
private handleOffer;
|
|
127
|
+
private handleAnswer;
|
|
128
|
+
private handleIceCandidate;
|
|
129
|
+
private handlePeerDisconnect;
|
|
130
|
+
private setupConnectionHandlers;
|
|
131
|
+
private setupDataChannelHandlers;
|
|
132
|
+
private updatePeerState;
|
|
133
|
+
private sendSignal;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=WebRTCSignalingAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebRTCSignalingAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/webrtc/WebRTCSignalingAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAEN,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,UAAU,CAAC,EAAE,2BAA2B,CAAC;IAEzC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,mBAAmB,GAC5B,KAAK,GACL,YAAY,GACZ,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,qBAAqB,CAAC;IAClC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACrC,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACnE,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC;IAC5D,SAAS,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAC5C,oBAAoB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAE,CAAC;CACrE;AAED;;;;GAIG;AACH,qBAAa,sBAAsB;IAClC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAKZ;IACF,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,kBAAkB,CAAyB;IAG5C,eAAe,EACnB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAC3D,IAAI,CAAQ;IACR,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC7D,aAAa,EACjB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC,GACtD,IAAI,CAAQ;IACR,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChE,aAAa,EACjB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC,GACtD,IAAI,CAAQ;gBAEH,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,qBAAqB;IAa9D;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClD;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAiBxC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAe5D;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAWlD;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAM7B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIxD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,OAAO,IAAI,IAAI;IAef,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,uBAAuB;YAUjB,sBAAsB;YAsCtB,WAAW;YAgDX,YAAY;YAgBZ,kBAAkB;IAgBhC,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,uBAAuB;IA0C/B,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,eAAe;YAYT,UAAU;CAiCxB"}
|