@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.
Files changed (156) hide show
  1. package/dist/ConsoleLogger.d.ts +6 -0
  2. package/dist/ConsoleLogger.d.ts.map +1 -0
  3. package/dist/ConsoleLogger.js +21 -0
  4. package/dist/ConsoleLogger.js.map +1 -0
  5. package/dist/RoomWatcher.d.ts +34 -0
  6. package/dist/RoomWatcher.d.ts.map +1 -0
  7. package/dist/RoomWatcher.js +103 -0
  8. package/dist/RoomWatcher.js.map +1 -0
  9. package/dist/SerenadaCore.d.ts +47 -0
  10. package/dist/SerenadaCore.d.ts.map +1 -0
  11. package/dist/SerenadaCore.js +141 -0
  12. package/dist/SerenadaCore.js.map +1 -0
  13. package/dist/SerenadaDiagnostics.d.ts +49 -0
  14. package/dist/SerenadaDiagnostics.d.ts.map +1 -0
  15. package/dist/SerenadaDiagnostics.js +421 -0
  16. package/dist/SerenadaDiagnostics.js.map +1 -0
  17. package/dist/SerenadaServerProvider.d.ts +48 -0
  18. package/dist/SerenadaServerProvider.d.ts.map +1 -0
  19. package/dist/SerenadaServerProvider.js +296 -0
  20. package/dist/SerenadaServerProvider.js.map +1 -0
  21. package/dist/SerenadaSession.d.ts +180 -0
  22. package/dist/SerenadaSession.d.ts.map +1 -0
  23. package/dist/SerenadaSession.js +1082 -0
  24. package/dist/SerenadaSession.js.map +1 -0
  25. package/dist/SignalingProvider.d.ts +132 -0
  26. package/dist/SignalingProvider.d.ts.map +1 -0
  27. package/dist/SignalingProvider.js +50 -0
  28. package/dist/SignalingProvider.js.map +1 -0
  29. package/dist/api/roomApi.d.ts +2 -0
  30. package/dist/api/roomApi.d.ts.map +1 -0
  31. package/dist/api/roomApi.js +14 -0
  32. package/dist/api/roomApi.js.map +1 -0
  33. package/dist/cameraModes.d.ts +13 -0
  34. package/dist/cameraModes.d.ts.map +1 -0
  35. package/dist/cameraModes.js +35 -0
  36. package/dist/cameraModes.js.map +1 -0
  37. package/dist/configValidation.d.ts +10 -0
  38. package/dist/configValidation.d.ts.map +1 -0
  39. package/dist/configValidation.js +24 -0
  40. package/dist/configValidation.js.map +1 -0
  41. package/dist/constants.d.ts +33 -0
  42. package/dist/constants.d.ts.map +1 -0
  43. package/dist/constants.js +65 -0
  44. package/dist/constants.js.map +1 -0
  45. package/dist/formatError.d.ts +3 -0
  46. package/dist/formatError.d.ts.map +1 -0
  47. package/dist/formatError.js +7 -0
  48. package/dist/formatError.js.map +1 -0
  49. package/dist/iceServers.d.ts +2 -0
  50. package/dist/iceServers.d.ts.map +1 -0
  51. package/dist/iceServers.js +21 -0
  52. package/dist/iceServers.js.map +1 -0
  53. package/dist/index.d.ts +55 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +44 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/layout/computeLayout.d.ts +81 -0
  58. package/dist/layout/computeLayout.d.ts.map +1 -0
  59. package/dist/layout/computeLayout.js +380 -0
  60. package/dist/layout/computeLayout.js.map +1 -0
  61. package/dist/media/AudioLevelMonitor.d.ts +51 -0
  62. package/dist/media/AudioLevelMonitor.d.ts.map +1 -0
  63. package/dist/media/AudioLevelMonitor.js +179 -0
  64. package/dist/media/AudioLevelMonitor.js.map +1 -0
  65. package/dist/media/MediaEngine.d.ts +137 -0
  66. package/dist/media/MediaEngine.d.ts.map +1 -0
  67. package/dist/media/MediaEngine.js +1224 -0
  68. package/dist/media/MediaEngine.js.map +1 -0
  69. package/dist/media/callStats.d.ts +16 -0
  70. package/dist/media/callStats.d.ts.map +1 -0
  71. package/dist/media/callStats.js +214 -0
  72. package/dist/media/callStats.js.map +1 -0
  73. package/dist/media/localVideoRecovery.d.ts +16 -0
  74. package/dist/media/localVideoRecovery.d.ts.map +1 -0
  75. package/dist/media/localVideoRecovery.js +14 -0
  76. package/dist/media/localVideoRecovery.js.map +1 -0
  77. package/dist/recoveryStorage.d.ts +33 -0
  78. package/dist/recoveryStorage.d.ts.map +1 -0
  79. package/dist/recoveryStorage.js +88 -0
  80. package/dist/recoveryStorage.js.map +1 -0
  81. package/dist/serverUrls.d.ts +8 -0
  82. package/dist/serverUrls.d.ts.map +1 -0
  83. package/dist/serverUrls.js +65 -0
  84. package/dist/serverUrls.js.map +1 -0
  85. package/dist/signaling/SignalingEngine.d.ts +126 -0
  86. package/dist/signaling/SignalingEngine.d.ts.map +1 -0
  87. package/dist/signaling/SignalingEngine.js +720 -0
  88. package/dist/signaling/SignalingEngine.js.map +1 -0
  89. package/dist/signaling/payloads.d.ts +76 -0
  90. package/dist/signaling/payloads.d.ts.map +1 -0
  91. package/dist/signaling/payloads.js +160 -0
  92. package/dist/signaling/payloads.js.map +1 -0
  93. package/dist/signaling/roomStatuses.d.ts +9 -0
  94. package/dist/signaling/roomStatuses.d.ts.map +1 -0
  95. package/dist/signaling/roomStatuses.js +71 -0
  96. package/dist/signaling/roomStatuses.js.map +1 -0
  97. package/dist/signaling/transportConfig.d.ts +3 -0
  98. package/dist/signaling/transportConfig.d.ts.map +1 -0
  99. package/dist/signaling/transportConfig.js +27 -0
  100. package/dist/signaling/transportConfig.js.map +1 -0
  101. package/dist/signaling/transports/index.d.ts +13 -0
  102. package/dist/signaling/transports/index.d.ts.map +1 -0
  103. package/dist/signaling/transports/index.js +11 -0
  104. package/dist/signaling/transports/index.js.map +1 -0
  105. package/dist/signaling/transports/sse.d.ts +26 -0
  106. package/dist/signaling/transports/sse.d.ts.map +1 -0
  107. package/dist/signaling/transports/sse.js +131 -0
  108. package/dist/signaling/transports/sse.js.map +1 -0
  109. package/dist/signaling/transports/types.d.ts +17 -0
  110. package/dist/signaling/transports/types.d.ts.map +1 -0
  111. package/dist/signaling/transports/types.js +2 -0
  112. package/dist/signaling/transports/types.js.map +1 -0
  113. package/dist/signaling/transports/ws.d.ts +21 -0
  114. package/dist/signaling/transports/ws.d.ts.map +1 -0
  115. package/dist/signaling/transports/ws.js +93 -0
  116. package/dist/signaling/transports/ws.js.map +1 -0
  117. package/dist/signaling/types.d.ts +53 -0
  118. package/dist/signaling/types.d.ts.map +1 -0
  119. package/dist/signaling/types.js +2 -0
  120. package/dist/signaling/types.js.map +1 -0
  121. package/dist/types.d.ts +279 -0
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +3 -0
  124. package/dist/types.js.map +1 -0
  125. package/package.json +43 -0
  126. package/src/ConsoleLogger.ts +14 -0
  127. package/src/RoomWatcher.ts +127 -0
  128. package/src/SerenadaCore.ts +163 -0
  129. package/src/SerenadaDiagnostics.ts +485 -0
  130. package/src/SerenadaServerProvider.ts +362 -0
  131. package/src/SerenadaSession.ts +1258 -0
  132. package/src/SignalingProvider.ts +207 -0
  133. package/src/api/roomApi.ts +16 -0
  134. package/src/cameraModes.ts +34 -0
  135. package/src/configValidation.ts +35 -0
  136. package/src/constants.ts +77 -0
  137. package/src/formatError.ts +5 -0
  138. package/src/iceServers.ts +20 -0
  139. package/src/index.ts +155 -0
  140. package/src/layout/computeLayout.ts +639 -0
  141. package/src/media/AudioLevelMonitor.ts +190 -0
  142. package/src/media/MediaEngine.ts +1183 -0
  143. package/src/media/callStats.ts +260 -0
  144. package/src/media/localVideoRecovery.ts +39 -0
  145. package/src/recoveryStorage.ts +101 -0
  146. package/src/serverUrls.ts +69 -0
  147. package/src/signaling/SignalingEngine.ts +762 -0
  148. package/src/signaling/payloads.ts +215 -0
  149. package/src/signaling/roomStatuses.ts +89 -0
  150. package/src/signaling/transportConfig.ts +30 -0
  151. package/src/signaling/transports/index.ts +26 -0
  152. package/src/signaling/transports/sse.ts +146 -0
  153. package/src/signaling/transports/types.ts +19 -0
  154. package/src/signaling/transports/ws.ts +108 -0
  155. package/src/signaling/types.ts +68 -0
  156. 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,3 @@
1
+ import type { TransportKind } from './transports/types.js';
2
+ export declare const parseTransportOrder: (raw?: string | null) => TransportKind[];
3
+ //# sourceMappingURL=transportConfig.d.ts.map
@@ -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