@agatx/serenada-core 0.6.10
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/ConsoleLogger.d.ts +6 -0
- package/dist/ConsoleLogger.d.ts.map +1 -0
- package/dist/ConsoleLogger.js +21 -0
- package/dist/ConsoleLogger.js.map +1 -0
- package/dist/RoomWatcher.d.ts +34 -0
- package/dist/RoomWatcher.d.ts.map +1 -0
- package/dist/RoomWatcher.js +103 -0
- package/dist/RoomWatcher.js.map +1 -0
- package/dist/SerenadaCore.d.ts +47 -0
- package/dist/SerenadaCore.d.ts.map +1 -0
- package/dist/SerenadaCore.js +141 -0
- package/dist/SerenadaCore.js.map +1 -0
- package/dist/SerenadaDiagnostics.d.ts +49 -0
- package/dist/SerenadaDiagnostics.d.ts.map +1 -0
- package/dist/SerenadaDiagnostics.js +421 -0
- package/dist/SerenadaDiagnostics.js.map +1 -0
- package/dist/SerenadaServerProvider.d.ts +48 -0
- package/dist/SerenadaServerProvider.d.ts.map +1 -0
- package/dist/SerenadaServerProvider.js +296 -0
- package/dist/SerenadaServerProvider.js.map +1 -0
- package/dist/SerenadaSession.d.ts +180 -0
- package/dist/SerenadaSession.d.ts.map +1 -0
- package/dist/SerenadaSession.js +1082 -0
- package/dist/SerenadaSession.js.map +1 -0
- package/dist/SignalingProvider.d.ts +132 -0
- package/dist/SignalingProvider.d.ts.map +1 -0
- package/dist/SignalingProvider.js +50 -0
- package/dist/SignalingProvider.js.map +1 -0
- package/dist/api/roomApi.d.ts +2 -0
- package/dist/api/roomApi.d.ts.map +1 -0
- package/dist/api/roomApi.js +14 -0
- package/dist/api/roomApi.js.map +1 -0
- package/dist/cameraModes.d.ts +13 -0
- package/dist/cameraModes.d.ts.map +1 -0
- package/dist/cameraModes.js +35 -0
- package/dist/cameraModes.js.map +1 -0
- package/dist/configValidation.d.ts +10 -0
- package/dist/configValidation.d.ts.map +1 -0
- package/dist/configValidation.js +24 -0
- package/dist/configValidation.js.map +1 -0
- package/dist/constants.d.ts +33 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +65 -0
- package/dist/constants.js.map +1 -0
- package/dist/formatError.d.ts +3 -0
- package/dist/formatError.d.ts.map +1 -0
- package/dist/formatError.js +7 -0
- package/dist/formatError.js.map +1 -0
- package/dist/iceServers.d.ts +2 -0
- package/dist/iceServers.d.ts.map +1 -0
- package/dist/iceServers.js +21 -0
- package/dist/iceServers.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/computeLayout.d.ts +81 -0
- package/dist/layout/computeLayout.d.ts.map +1 -0
- package/dist/layout/computeLayout.js +380 -0
- package/dist/layout/computeLayout.js.map +1 -0
- package/dist/media/AudioLevelMonitor.d.ts +51 -0
- package/dist/media/AudioLevelMonitor.d.ts.map +1 -0
- package/dist/media/AudioLevelMonitor.js +179 -0
- package/dist/media/AudioLevelMonitor.js.map +1 -0
- package/dist/media/MediaEngine.d.ts +137 -0
- package/dist/media/MediaEngine.d.ts.map +1 -0
- package/dist/media/MediaEngine.js +1224 -0
- package/dist/media/MediaEngine.js.map +1 -0
- package/dist/media/callStats.d.ts +16 -0
- package/dist/media/callStats.d.ts.map +1 -0
- package/dist/media/callStats.js +214 -0
- package/dist/media/callStats.js.map +1 -0
- package/dist/media/localVideoRecovery.d.ts +16 -0
- package/dist/media/localVideoRecovery.d.ts.map +1 -0
- package/dist/media/localVideoRecovery.js +14 -0
- package/dist/media/localVideoRecovery.js.map +1 -0
- package/dist/recoveryStorage.d.ts +33 -0
- package/dist/recoveryStorage.d.ts.map +1 -0
- package/dist/recoveryStorage.js +88 -0
- package/dist/recoveryStorage.js.map +1 -0
- package/dist/serverUrls.d.ts +8 -0
- package/dist/serverUrls.d.ts.map +1 -0
- package/dist/serverUrls.js +65 -0
- package/dist/serverUrls.js.map +1 -0
- package/dist/signaling/SignalingEngine.d.ts +126 -0
- package/dist/signaling/SignalingEngine.d.ts.map +1 -0
- package/dist/signaling/SignalingEngine.js +720 -0
- package/dist/signaling/SignalingEngine.js.map +1 -0
- package/dist/signaling/payloads.d.ts +76 -0
- package/dist/signaling/payloads.d.ts.map +1 -0
- package/dist/signaling/payloads.js +160 -0
- package/dist/signaling/payloads.js.map +1 -0
- package/dist/signaling/roomStatuses.d.ts +9 -0
- package/dist/signaling/roomStatuses.d.ts.map +1 -0
- package/dist/signaling/roomStatuses.js +71 -0
- package/dist/signaling/roomStatuses.js.map +1 -0
- package/dist/signaling/transportConfig.d.ts +3 -0
- package/dist/signaling/transportConfig.d.ts.map +1 -0
- package/dist/signaling/transportConfig.js +27 -0
- package/dist/signaling/transportConfig.js.map +1 -0
- package/dist/signaling/transports/index.d.ts +13 -0
- package/dist/signaling/transports/index.d.ts.map +1 -0
- package/dist/signaling/transports/index.js +11 -0
- package/dist/signaling/transports/index.js.map +1 -0
- package/dist/signaling/transports/sse.d.ts +26 -0
- package/dist/signaling/transports/sse.d.ts.map +1 -0
- package/dist/signaling/transports/sse.js +131 -0
- package/dist/signaling/transports/sse.js.map +1 -0
- package/dist/signaling/transports/types.d.ts +17 -0
- package/dist/signaling/transports/types.d.ts.map +1 -0
- package/dist/signaling/transports/types.js +2 -0
- package/dist/signaling/transports/types.js.map +1 -0
- package/dist/signaling/transports/ws.d.ts +21 -0
- package/dist/signaling/transports/ws.d.ts.map +1 -0
- package/dist/signaling/transports/ws.js +93 -0
- package/dist/signaling/transports/ws.js.map +1 -0
- package/dist/signaling/types.d.ts +53 -0
- package/dist/signaling/types.d.ts.map +1 -0
- package/dist/signaling/types.js +2 -0
- package/dist/signaling/types.js.map +1 -0
- package/dist/types.d.ts +279 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +43 -0
- package/src/ConsoleLogger.ts +14 -0
- package/src/RoomWatcher.ts +127 -0
- package/src/SerenadaCore.ts +163 -0
- package/src/SerenadaDiagnostics.ts +485 -0
- package/src/SerenadaServerProvider.ts +362 -0
- package/src/SerenadaSession.ts +1258 -0
- package/src/SignalingProvider.ts +207 -0
- package/src/api/roomApi.ts +16 -0
- package/src/cameraModes.ts +34 -0
- package/src/configValidation.ts +35 -0
- package/src/constants.ts +77 -0
- package/src/formatError.ts +5 -0
- package/src/iceServers.ts +20 -0
- package/src/index.ts +155 -0
- package/src/layout/computeLayout.ts +639 -0
- package/src/media/AudioLevelMonitor.ts +190 -0
- package/src/media/MediaEngine.ts +1183 -0
- package/src/media/callStats.ts +260 -0
- package/src/media/localVideoRecovery.ts +39 -0
- package/src/recoveryStorage.ts +101 -0
- package/src/serverUrls.ts +69 -0
- package/src/signaling/SignalingEngine.ts +762 -0
- package/src/signaling/payloads.ts +215 -0
- package/src/signaling/roomStatuses.ts +89 -0
- package/src/signaling/transportConfig.ts +30 -0
- package/src/signaling/transports/index.ts +26 -0
- package/src/signaling/transports/sse.ts +146 -0
- package/src/signaling/transports/types.ts +19 -0
- package/src/signaling/transports/ws.ts +108 -0
- package/src/signaling/types.ts +68 -0
- package/src/types.ts +299 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalingEngine.js","sourceRoot":"","sources":["../../src/signaling/SignalingEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { ReconnectOutcome, RoomParticipant, RoomState } from './types.js';
|
|
2
|
+
export interface JoinedPayload {
|
|
3
|
+
hostCid: string | null;
|
|
4
|
+
participants: RoomParticipant[];
|
|
5
|
+
turnToken?: string;
|
|
6
|
+
turnTokenTTLMs?: number;
|
|
7
|
+
reconnectToken?: string;
|
|
8
|
+
/**
|
|
9
|
+
* How long (ms) the server is willing to honor `reconnectToken`. SDKs
|
|
10
|
+
* that persist the token across launches should clear it once this
|
|
11
|
+
* window has elapsed.
|
|
12
|
+
*/
|
|
13
|
+
reconnectTokenTTLMs?: number;
|
|
14
|
+
maxParticipants?: number;
|
|
15
|
+
/** Server-reported room state epoch. Monotonic. */
|
|
16
|
+
epoch?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Disposition of this join. SDKs use this to decide whether to keep
|
|
19
|
+
* media-active peer connections (`reattached`/`recovered`) or treat the
|
|
20
|
+
* call as ground-up new (`fresh`).
|
|
21
|
+
*/
|
|
22
|
+
reconnect?: ReconnectOutcome;
|
|
23
|
+
}
|
|
24
|
+
export interface ErrorPayload {
|
|
25
|
+
code: string;
|
|
26
|
+
message: string;
|
|
27
|
+
/** Optional reason for terminal codes (e.g. ROOM_ENDED → "ended_by_host"). */
|
|
28
|
+
reason?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Server tells the sender that an offer/answer/ice could not be delivered
|
|
32
|
+
* because the target was suspended. The SDK should suppress further
|
|
33
|
+
* negotiation toward those CIDs and wait for a `negotiation_dirty` message
|
|
34
|
+
* after the peer reattaches.
|
|
35
|
+
*/
|
|
36
|
+
export interface RelayFailedPayload {
|
|
37
|
+
reason: 'target_suspended' | (string & {});
|
|
38
|
+
targets: string[];
|
|
39
|
+
of?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Server tells the sender that a previously-suspended peer has reattached
|
|
43
|
+
* AND that the sender had pending negotiation traffic to it during the
|
|
44
|
+
* suspension. The SDK should perform glare-safe fresh negotiation /
|
|
45
|
+
* ICE restart for the named CID, NOT replay the original SDP.
|
|
46
|
+
*/
|
|
47
|
+
export interface NegotiationDirtyPayload {
|
|
48
|
+
with: string;
|
|
49
|
+
}
|
|
50
|
+
export interface TurnRefreshedPayload {
|
|
51
|
+
turnToken: string;
|
|
52
|
+
turnTokenTTLMs?: number;
|
|
53
|
+
}
|
|
54
|
+
export interface OfferPayload {
|
|
55
|
+
from: string;
|
|
56
|
+
sdp: string;
|
|
57
|
+
timestamp?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface AnswerPayload {
|
|
60
|
+
from: string;
|
|
61
|
+
sdp: string;
|
|
62
|
+
}
|
|
63
|
+
export interface IceCandidatePayload {
|
|
64
|
+
from: string;
|
|
65
|
+
candidate: RTCIceCandidateInit;
|
|
66
|
+
}
|
|
67
|
+
export declare function parseJoinedPayload(raw: Record<string, unknown> | undefined): JoinedPayload | null;
|
|
68
|
+
export declare function parseRoomStatePayload(raw: Record<string, unknown> | undefined): RoomState | null;
|
|
69
|
+
export declare function parseErrorPayload(raw: Record<string, unknown> | undefined): ErrorPayload | null;
|
|
70
|
+
export declare function parseRelayFailedPayload(raw: Record<string, unknown> | undefined): RelayFailedPayload | null;
|
|
71
|
+
export declare function parseNegotiationDirtyPayload(raw: Record<string, unknown> | undefined): NegotiationDirtyPayload | null;
|
|
72
|
+
export declare function parseTurnRefreshedPayload(raw: Record<string, unknown> | undefined): TurnRefreshedPayload | null;
|
|
73
|
+
export declare function parseOfferPayload(raw: Record<string, unknown> | undefined): OfferPayload | null;
|
|
74
|
+
export declare function parseAnswerPayload(raw: Record<string, unknown> | undefined): AnswerPayload | null;
|
|
75
|
+
export declare function parseIceCandidatePayload(raw: Record<string, unknown> | undefined): IceCandidatePayload | null;
|
|
76
|
+
//# sourceMappingURL=payloads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../src/signaling/payloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
function parseContentState(raw) {
|
|
2
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
3
|
+
return undefined;
|
|
4
|
+
const rec = raw;
|
|
5
|
+
if (typeof rec.active !== 'boolean')
|
|
6
|
+
return undefined;
|
|
7
|
+
return {
|
|
8
|
+
active: rec.active,
|
|
9
|
+
contentType: typeof rec.contentType === 'string' && rec.contentType !== '' ? rec.contentType : undefined,
|
|
10
|
+
updatedAtMs: typeof rec.updatedAtMs === 'number' ? rec.updatedAtMs : undefined,
|
|
11
|
+
epoch: typeof rec.epoch === 'number' ? rec.epoch : undefined,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function parseParticipants(raw) {
|
|
15
|
+
if (!Array.isArray(raw))
|
|
16
|
+
return null;
|
|
17
|
+
const result = [];
|
|
18
|
+
for (const p of raw) {
|
|
19
|
+
if (!p || typeof p !== 'object' || Array.isArray(p))
|
|
20
|
+
continue;
|
|
21
|
+
const rec = p;
|
|
22
|
+
if (typeof rec.cid !== 'string' || rec.cid.trim() === '')
|
|
23
|
+
continue;
|
|
24
|
+
result.push({
|
|
25
|
+
cid: rec.cid,
|
|
26
|
+
joinedAt: typeof rec.joinedAt === 'number' ? rec.joinedAt : undefined,
|
|
27
|
+
displayName: typeof rec.displayName === 'string' && rec.displayName.trim() !== '' ? rec.displayName : undefined,
|
|
28
|
+
peerId: typeof rec.peerId === 'string' && rec.peerId.trim() !== '' ? rec.peerId : undefined,
|
|
29
|
+
audioEnabled: typeof rec.audioEnabled === 'boolean' ? rec.audioEnabled : undefined,
|
|
30
|
+
videoEnabled: typeof rec.videoEnabled === 'boolean' ? rec.videoEnabled : undefined,
|
|
31
|
+
// Only the recognized status value is forwarded; absent/unknown
|
|
32
|
+
// is left undefined and treated as active downstream.
|
|
33
|
+
connectionStatus: rec.connectionStatus === 'suspended' ? 'suspended' : undefined,
|
|
34
|
+
contentState: parseContentState(rec.contentState),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
function parseReconnectOutcome(raw) {
|
|
40
|
+
if (raw === 'fresh' || raw === 'reattached' || raw === 'recovered')
|
|
41
|
+
return raw;
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
export function parseJoinedPayload(raw) {
|
|
45
|
+
if (!raw)
|
|
46
|
+
return null;
|
|
47
|
+
const participants = parseParticipants(raw.participants);
|
|
48
|
+
if (!participants)
|
|
49
|
+
return null;
|
|
50
|
+
return {
|
|
51
|
+
hostCid: typeof raw.hostCid === 'string' ? raw.hostCid : null,
|
|
52
|
+
participants,
|
|
53
|
+
turnToken: typeof raw.turnToken === 'string' ? raw.turnToken : undefined,
|
|
54
|
+
turnTokenTTLMs: typeof raw.turnTokenTTLMs === 'number' ? raw.turnTokenTTLMs : undefined,
|
|
55
|
+
reconnectToken: typeof raw.reconnectToken === 'string' ? raw.reconnectToken : undefined,
|
|
56
|
+
reconnectTokenTTLMs: typeof raw.reconnectTokenTTLMs === 'number' ? raw.reconnectTokenTTLMs : undefined,
|
|
57
|
+
maxParticipants: typeof raw.maxParticipants === 'number' ? raw.maxParticipants : undefined,
|
|
58
|
+
epoch: typeof raw.epoch === 'number' ? raw.epoch : undefined,
|
|
59
|
+
reconnect: parseReconnectOutcome(raw.reconnect),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export function parseRoomStatePayload(raw) {
|
|
63
|
+
if (!raw)
|
|
64
|
+
return null;
|
|
65
|
+
const participants = parseParticipants(raw.participants);
|
|
66
|
+
if (!participants)
|
|
67
|
+
return null;
|
|
68
|
+
return {
|
|
69
|
+
hostCid: typeof raw.hostCid === 'string' ? raw.hostCid : null,
|
|
70
|
+
participants,
|
|
71
|
+
maxParticipants: typeof raw.maxParticipants === 'number' ? raw.maxParticipants : undefined,
|
|
72
|
+
epoch: typeof raw.epoch === 'number' ? raw.epoch : undefined,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function parseErrorPayload(raw) {
|
|
76
|
+
if (!raw)
|
|
77
|
+
return null;
|
|
78
|
+
if (typeof raw.message !== 'string')
|
|
79
|
+
return null;
|
|
80
|
+
return {
|
|
81
|
+
code: typeof raw.code === 'string' ? raw.code : 'UNKNOWN',
|
|
82
|
+
message: raw.message,
|
|
83
|
+
reason: typeof raw.reason === 'string' && raw.reason !== '' ? raw.reason : undefined,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export function parseRelayFailedPayload(raw) {
|
|
87
|
+
if (!raw)
|
|
88
|
+
return null;
|
|
89
|
+
if (typeof raw.reason !== 'string')
|
|
90
|
+
return null;
|
|
91
|
+
if (!Array.isArray(raw.targets))
|
|
92
|
+
return null;
|
|
93
|
+
const targets = raw.targets.filter((t) => typeof t === 'string' && t !== '');
|
|
94
|
+
if (targets.length === 0)
|
|
95
|
+
return null;
|
|
96
|
+
return {
|
|
97
|
+
reason: raw.reason,
|
|
98
|
+
targets,
|
|
99
|
+
of: typeof raw.of === 'string' && raw.of !== '' ? raw.of : undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function parseNegotiationDirtyPayload(raw) {
|
|
103
|
+
if (!raw)
|
|
104
|
+
return null;
|
|
105
|
+
if (typeof raw.with !== 'string' || raw.with === '')
|
|
106
|
+
return null;
|
|
107
|
+
return { with: raw.with };
|
|
108
|
+
}
|
|
109
|
+
export function parseTurnRefreshedPayload(raw) {
|
|
110
|
+
if (!raw)
|
|
111
|
+
return null;
|
|
112
|
+
if (typeof raw.turnToken !== 'string')
|
|
113
|
+
return null;
|
|
114
|
+
return {
|
|
115
|
+
turnToken: raw.turnToken,
|
|
116
|
+
turnTokenTTLMs: typeof raw.turnTokenTTLMs === 'number' ? raw.turnTokenTTLMs : undefined,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export function parseOfferPayload(raw) {
|
|
120
|
+
if (!raw)
|
|
121
|
+
return null;
|
|
122
|
+
if (typeof raw.from !== 'string' || raw.from === '')
|
|
123
|
+
return null;
|
|
124
|
+
if (typeof raw.sdp !== 'string' || raw.sdp === '')
|
|
125
|
+
return null;
|
|
126
|
+
return {
|
|
127
|
+
from: raw.from,
|
|
128
|
+
sdp: raw.sdp,
|
|
129
|
+
timestamp: typeof raw.timestamp === 'number' ? raw.timestamp : undefined,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export function parseAnswerPayload(raw) {
|
|
133
|
+
if (!raw)
|
|
134
|
+
return null;
|
|
135
|
+
if (typeof raw.from !== 'string' || raw.from === '')
|
|
136
|
+
return null;
|
|
137
|
+
if (typeof raw.sdp !== 'string' || raw.sdp === '')
|
|
138
|
+
return null;
|
|
139
|
+
return {
|
|
140
|
+
from: raw.from,
|
|
141
|
+
sdp: raw.sdp,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
export function parseIceCandidatePayload(raw) {
|
|
145
|
+
if (!raw)
|
|
146
|
+
return null;
|
|
147
|
+
if (typeof raw.from !== 'string' || raw.from === '')
|
|
148
|
+
return null;
|
|
149
|
+
const candidate = raw.candidate;
|
|
150
|
+
if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate))
|
|
151
|
+
return null;
|
|
152
|
+
const candObj = candidate;
|
|
153
|
+
if (typeof candObj.candidate !== 'string')
|
|
154
|
+
return null;
|
|
155
|
+
return {
|
|
156
|
+
from: raw.from,
|
|
157
|
+
candidate: candidate,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=payloads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloads.js","sourceRoot":"","sources":["../../src/signaling/payloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type RoomStatus = {
|
|
2
|
+
count: number;
|
|
3
|
+
maxParticipants?: number;
|
|
4
|
+
};
|
|
5
|
+
export type RoomStatuses = Record<string, RoomStatus>;
|
|
6
|
+
export declare function mergeRoomStatusesPayload(previous: RoomStatuses, payload: unknown): RoomStatuses;
|
|
7
|
+
export declare function mergeRoomStatusUpdatePayload(previous: RoomStatuses, payload: unknown): RoomStatuses;
|
|
8
|
+
export declare function getRoomStatusState(status?: RoomStatus | null): 'hidden' | 'waiting' | 'full';
|
|
9
|
+
//# sourceMappingURL=roomStatuses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomStatuses.d.ts","sourceRoot":"","sources":["../../src/signaling/roomStatuses.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAsCtD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAa/F;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAoBnG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAQ5F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
function isRecord(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3
|
+
}
|
|
4
|
+
function normalizeMaxParticipants(value, fallback) {
|
|
5
|
+
if (typeof value === 'number' && Number.isFinite(value) && value >= 2) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
if (typeof fallback === 'number' && Number.isFinite(fallback) && fallback >= 2) {
|
|
9
|
+
return fallback;
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
function parseRoomStatus(value, fallbackMaxParticipants) {
|
|
14
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
15
|
+
return {
|
|
16
|
+
count: value,
|
|
17
|
+
maxParticipants: normalizeMaxParticipants(fallbackMaxParticipants, 2)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (!isRecord(value)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const count = value.count;
|
|
24
|
+
if (typeof count !== 'number' || !Number.isFinite(count)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
count,
|
|
29
|
+
maxParticipants: normalizeMaxParticipants(value.maxParticipants, fallbackMaxParticipants)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function mergeRoomStatusesPayload(previous, payload) {
|
|
33
|
+
if (!isRecord(payload)) {
|
|
34
|
+
return previous;
|
|
35
|
+
}
|
|
36
|
+
const next = { ...previous };
|
|
37
|
+
for (const [rid, value] of Object.entries(payload)) {
|
|
38
|
+
const status = parseRoomStatus(value, previous[rid]?.maxParticipants);
|
|
39
|
+
if (typeof rid === 'string' && status) {
|
|
40
|
+
next[rid] = status;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return next;
|
|
44
|
+
}
|
|
45
|
+
export function mergeRoomStatusUpdatePayload(previous, payload) {
|
|
46
|
+
if (!isRecord(payload)) {
|
|
47
|
+
return previous;
|
|
48
|
+
}
|
|
49
|
+
const rid = payload.rid;
|
|
50
|
+
const count = payload.count;
|
|
51
|
+
if (typeof rid !== 'string' || typeof count !== 'number' || !Number.isFinite(count)) {
|
|
52
|
+
return previous;
|
|
53
|
+
}
|
|
54
|
+
const maxParticipants = normalizeMaxParticipants(payload.maxParticipants, previous[rid]?.maxParticipants);
|
|
55
|
+
return {
|
|
56
|
+
...previous,
|
|
57
|
+
[rid]: {
|
|
58
|
+
count,
|
|
59
|
+
maxParticipants
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export function getRoomStatusState(status) {
|
|
64
|
+
const count = status?.count ?? 0;
|
|
65
|
+
if (count <= 0) {
|
|
66
|
+
return 'hidden';
|
|
67
|
+
}
|
|
68
|
+
const maxParticipants = normalizeMaxParticipants(status?.maxParticipants, 2) ?? 2;
|
|
69
|
+
return count >= maxParticipants ? 'full' : 'waiting';
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=roomStatuses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roomStatuses.js","sourceRoot":"","sources":["../../src/signaling/roomStatuses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transportConfig.d.ts","sourceRoot":"","sources":["../../src/signaling/transportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAW3D,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,aAAa,EAkBtE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const DEFAULT_TRANSPORTS = ['ws', 'sse'];
|
|
2
|
+
const normalizeTransport = (value) => {
|
|
3
|
+
const normalized = value.trim().toLowerCase();
|
|
4
|
+
if (normalized === 'ws' || normalized === 'wss')
|
|
5
|
+
return 'ws';
|
|
6
|
+
if (normalized === 'sse')
|
|
7
|
+
return 'sse';
|
|
8
|
+
return null;
|
|
9
|
+
};
|
|
10
|
+
export const parseTransportOrder = (raw) => {
|
|
11
|
+
if (!raw)
|
|
12
|
+
return DEFAULT_TRANSPORTS;
|
|
13
|
+
const parsed = raw
|
|
14
|
+
.split(',')
|
|
15
|
+
.map(normalizeTransport)
|
|
16
|
+
.filter((kind) => !!kind);
|
|
17
|
+
if (parsed.length === 0)
|
|
18
|
+
return DEFAULT_TRANSPORTS;
|
|
19
|
+
const unique = [];
|
|
20
|
+
for (const kind of parsed) {
|
|
21
|
+
if (!unique.includes(kind)) {
|
|
22
|
+
unique.push(kind);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return unique;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=transportConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transportConfig.js","sourceRoot":"","sources":["../../src/signaling/transportConfig.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE1D,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAwB,EAAE;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAmB,EAAmB,EAAE;IACxE,IAAI,CAAC,GAAG;QAAE,OAAO,kBAAkB,CAAC;IAEpC,MAAM,MAAM,GAAG,GAAG;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,kBAAkB,CAAC;SACvB,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC;IAEnD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SerenadaLogger } from '../../types.js';
|
|
2
|
+
import type { SignalingTransport, TransportHandlers, TransportKind } from './types.js';
|
|
3
|
+
export type { SignalingTransport, TransportHandlers, TransportKind } from './types.js';
|
|
4
|
+
export { WebSocketTransport } from './ws.js';
|
|
5
|
+
export { SseTransport } from './sse.js';
|
|
6
|
+
export interface CreateTransportOptions {
|
|
7
|
+
wsUrl: string;
|
|
8
|
+
httpBaseUrl: string;
|
|
9
|
+
sseSid?: string;
|
|
10
|
+
logger?: SerenadaLogger;
|
|
11
|
+
}
|
|
12
|
+
export declare const createSignalingTransport: (kind: TransportKind, handlers: TransportHandlers, options: CreateTransportOptions) => SignalingTransport;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/signaling/transports/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIvF,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,GACjC,MAAM,aAAa,EACnB,UAAU,iBAAiB,EAC3B,SAAS,sBAAsB,KAChC,kBAKF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WebSocketTransport } from './ws.js';
|
|
2
|
+
import { SseTransport } from './sse.js';
|
|
3
|
+
export { WebSocketTransport } from './ws.js';
|
|
4
|
+
export { SseTransport } from './sse.js';
|
|
5
|
+
export const createSignalingTransport = (kind, handlers, options) => {
|
|
6
|
+
if (kind === 'sse') {
|
|
7
|
+
return new SseTransport(handlers, options.httpBaseUrl, { sid: options.sseSid, logger: options.logger });
|
|
8
|
+
}
|
|
9
|
+
return new WebSocketTransport(handlers, options.wsUrl, options.logger);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/signaling/transports/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AASxC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,IAAmB,EACnB,QAA2B,EAC3B,OAA+B,EACb,EAAE;IACpB,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3E,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SerenadaLogger } from '../../types.js';
|
|
2
|
+
import type { SignalingMessage } from '../types.js';
|
|
3
|
+
import type { SignalingTransport, TransportHandlers, TransportKind } from './types.js';
|
|
4
|
+
export declare class SseTransport implements SignalingTransport {
|
|
5
|
+
kind: TransportKind;
|
|
6
|
+
private es;
|
|
7
|
+
private handlers;
|
|
8
|
+
private open;
|
|
9
|
+
private sid;
|
|
10
|
+
private sseUrl;
|
|
11
|
+
private connectTimeout;
|
|
12
|
+
private logger?;
|
|
13
|
+
constructor(handlers: TransportHandlers, baseUrl: string, options?: {
|
|
14
|
+
sid?: string;
|
|
15
|
+
logger?: SerenadaLogger;
|
|
16
|
+
});
|
|
17
|
+
getSessionId(): string;
|
|
18
|
+
private clearConnectTimeout;
|
|
19
|
+
private detachEventSourceHandlers;
|
|
20
|
+
connect(): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
forceClose(reason: string): void;
|
|
23
|
+
isOpen(): boolean;
|
|
24
|
+
send(msg: SignalingMessage): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/signaling/transports/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAavF,qBAAa,YAAa,YAAW,kBAAkB;IACnD,IAAI,EAAE,aAAa,CAAS;IAC5B,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAC,CAAiB;gBAEpB,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE;IAO7G,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;IAMjC,OAAO;IA6CP,KAAK;IAWL,UAAU,CAAC,MAAM,EAAE,MAAM;IAYzB,MAAM;IAIN,IAAI,CAAC,GAAG,EAAE,gBAAgB;CAwB7B"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { CONNECT_TIMEOUT_MS } from '../../constants.js';
|
|
2
|
+
import { formatError } from '../../formatError.js';
|
|
3
|
+
const createSid = () => {
|
|
4
|
+
if (window.crypto && window.crypto.getRandomValues) {
|
|
5
|
+
const bytes = new Uint8Array(8);
|
|
6
|
+
window.crypto.getRandomValues(bytes);
|
|
7
|
+
return `S-${Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join('')}`;
|
|
8
|
+
}
|
|
9
|
+
return `S-${Math.random().toString(16).slice(2, 10)}${Math.random().toString(16).slice(2, 10)}`;
|
|
10
|
+
};
|
|
11
|
+
export class SseTransport {
|
|
12
|
+
kind = 'sse';
|
|
13
|
+
es = null;
|
|
14
|
+
handlers;
|
|
15
|
+
open = false;
|
|
16
|
+
sid;
|
|
17
|
+
sseUrl;
|
|
18
|
+
connectTimeout = null;
|
|
19
|
+
logger;
|
|
20
|
+
constructor(handlers, baseUrl, options) {
|
|
21
|
+
this.handlers = handlers;
|
|
22
|
+
this.sid = options?.sid || createSid();
|
|
23
|
+
this.sseUrl = `${baseUrl}/sse`;
|
|
24
|
+
this.logger = options?.logger;
|
|
25
|
+
}
|
|
26
|
+
getSessionId() {
|
|
27
|
+
return this.sid;
|
|
28
|
+
}
|
|
29
|
+
clearConnectTimeout() {
|
|
30
|
+
if (this.connectTimeout) {
|
|
31
|
+
window.clearTimeout(this.connectTimeout);
|
|
32
|
+
this.connectTimeout = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
detachEventSourceHandlers(es) {
|
|
36
|
+
es.onopen = null;
|
|
37
|
+
es.onerror = null;
|
|
38
|
+
es.onmessage = null;
|
|
39
|
+
}
|
|
40
|
+
connect() {
|
|
41
|
+
if (typeof EventSource === 'undefined') {
|
|
42
|
+
this.open = false;
|
|
43
|
+
this.handlers.onClose('unsupported');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const url = new URL(this.sseUrl);
|
|
47
|
+
url.searchParams.set('sid', this.sid);
|
|
48
|
+
this.es = new EventSource(url.toString());
|
|
49
|
+
this.connectTimeout = window.setTimeout(() => {
|
|
50
|
+
if (this.es && this.es.readyState !== EventSource.OPEN) {
|
|
51
|
+
this.logger?.log('warning', 'Transport', `SSE connection timeout after ${CONNECT_TIMEOUT_MS}ms`);
|
|
52
|
+
this.es.close();
|
|
53
|
+
this.es = null;
|
|
54
|
+
this.open = false;
|
|
55
|
+
this.handlers.onClose('timeout');
|
|
56
|
+
}
|
|
57
|
+
}, CONNECT_TIMEOUT_MS);
|
|
58
|
+
this.es.onopen = () => {
|
|
59
|
+
this.clearConnectTimeout();
|
|
60
|
+
this.open = true;
|
|
61
|
+
this.handlers.onOpen();
|
|
62
|
+
};
|
|
63
|
+
this.es.onerror = (err) => {
|
|
64
|
+
if (!this.es)
|
|
65
|
+
return;
|
|
66
|
+
if (this.es.readyState === EventSource.CLOSED) {
|
|
67
|
+
this.clearConnectTimeout();
|
|
68
|
+
this.open = false;
|
|
69
|
+
this.handlers.onClose('close', err);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
this.es.onmessage = (event) => {
|
|
73
|
+
try {
|
|
74
|
+
const msg = JSON.parse(event.data);
|
|
75
|
+
this.handlers.onMessage(msg);
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
this.logger?.log('error', 'Transport', `Failed to parse SSE message: ${formatError(e)}`);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
close() {
|
|
83
|
+
this.clearConnectTimeout();
|
|
84
|
+
const es = this.es;
|
|
85
|
+
this.es = null;
|
|
86
|
+
if (es) {
|
|
87
|
+
this.detachEventSourceHandlers(es);
|
|
88
|
+
es.close();
|
|
89
|
+
}
|
|
90
|
+
this.open = false;
|
|
91
|
+
}
|
|
92
|
+
forceClose(reason) {
|
|
93
|
+
this.clearConnectTimeout();
|
|
94
|
+
const es = this.es;
|
|
95
|
+
this.es = null;
|
|
96
|
+
if (es) {
|
|
97
|
+
this.detachEventSourceHandlers(es);
|
|
98
|
+
es.close();
|
|
99
|
+
}
|
|
100
|
+
this.open = false;
|
|
101
|
+
this.handlers.onClose(reason);
|
|
102
|
+
}
|
|
103
|
+
isOpen() {
|
|
104
|
+
return this.open;
|
|
105
|
+
}
|
|
106
|
+
send(msg) {
|
|
107
|
+
const url = new URL(this.sseUrl);
|
|
108
|
+
url.searchParams.set('sid', this.sid);
|
|
109
|
+
fetch(url.toString(), {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
headers: {
|
|
112
|
+
'Content-Type': 'application/json',
|
|
113
|
+
},
|
|
114
|
+
body: JSON.stringify(msg)
|
|
115
|
+
})
|
|
116
|
+
.then(res => {
|
|
117
|
+
if (res.status === 410) {
|
|
118
|
+
this.open = false;
|
|
119
|
+
if (this.es) {
|
|
120
|
+
this.es.close();
|
|
121
|
+
this.es = null;
|
|
122
|
+
}
|
|
123
|
+
this.handlers.onClose('gone');
|
|
124
|
+
}
|
|
125
|
+
})
|
|
126
|
+
.catch(err => {
|
|
127
|
+
this.logger?.log('error', 'Transport', `Failed to send SSE message: ${formatError(err)}`);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=sse.js.map
|