amiudmodz 6.2.6 → 6.2.7

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 (164) hide show
  1. package/lib/Defaults/index.d.ts.map +1 -1
  2. package/lib/Signal/libsignal.d.ts.map +1 -1
  3. package/lib/Signal/libsignal.js.map +1 -1
  4. package/lib/Signal/lid-mapping.d.ts.map +1 -1
  5. package/lib/Signal/lid-mapping.js.map +1 -1
  6. package/lib/Socket/Client/types.d.ts.map +1 -1
  7. package/lib/Socket/Client/websocket.js.map +1 -1
  8. package/lib/Socket/business.d.ts +5 -28
  9. package/lib/Socket/business.d.ts.map +1 -1
  10. package/lib/Socket/business.js.map +1 -1
  11. package/lib/Socket/chats.d.ts +16 -13
  12. package/lib/Socket/chats.d.ts.map +1 -1
  13. package/lib/Socket/chats.js +1 -10
  14. package/lib/Socket/chats.js.map +1 -1
  15. package/lib/Socket/communities.d.ts +51 -74
  16. package/lib/Socket/communities.d.ts.map +1 -1
  17. package/lib/Socket/communities.js.map +1 -1
  18. package/lib/Socket/groups.d.ts +29 -25
  19. package/lib/Socket/groups.d.ts.map +1 -1
  20. package/lib/Socket/groups.js.map +1 -1
  21. package/lib/Socket/index.d.ts.map +1 -1
  22. package/lib/Socket/index.js +15 -13
  23. package/lib/Socket/index.js.map +1 -1
  24. package/lib/Socket/messages-recv.d.ts +42 -65
  25. package/lib/Socket/messages-recv.d.ts.map +1 -1
  26. package/lib/Socket/messages-recv.js.map +1 -1
  27. package/lib/Socket/messages-send.d.ts +43 -66
  28. package/lib/Socket/messages-send.d.ts.map +1 -1
  29. package/lib/Socket/messages-send.js +0 -259
  30. package/lib/Socket/messages-send.js.map +1 -1
  31. package/lib/Socket/mex.d.ts.map +1 -1
  32. package/lib/Socket/mex.js.map +1 -1
  33. package/lib/Socket/newsletter.d.ts +5 -1
  34. package/lib/Socket/newsletter.d.ts.map +1 -1
  35. package/lib/Socket/newsletter.js.map +1 -1
  36. package/lib/Socket/socket.d.ts +8 -8
  37. package/lib/Socket/socket.d.ts.map +1 -1
  38. package/lib/Socket/socket.js +1 -1
  39. package/lib/Socket/socket.js.map +1 -1
  40. package/lib/Types/Bussines.d.ts +1 -1
  41. package/lib/Types/Bussines.d.ts.map +1 -1
  42. package/lib/Types/Message.d.ts +1 -13
  43. package/lib/Types/Message.d.ts.map +1 -1
  44. package/lib/Types/Message.js.map +1 -1
  45. package/lib/Types/USync.d.ts.map +1 -1
  46. package/lib/Types/USync.js.map +1 -1
  47. package/lib/Types/index.d.ts.map +1 -1
  48. package/lib/Types/index.js.map +1 -1
  49. package/lib/Utils/MessageBuilder.d.ts +0 -1
  50. package/lib/Utils/MessageBuilder.d.ts.map +1 -1
  51. package/lib/Utils/MessageBuilder.js +0 -11
  52. package/lib/Utils/MessageBuilder.js.map +1 -1
  53. package/lib/Utils/auth-utils.d.ts.map +1 -1
  54. package/lib/Utils/auth-utils.js.map +1 -1
  55. package/lib/Utils/browser-utils.d.ts.map +1 -1
  56. package/lib/Utils/business.d.ts.map +1 -1
  57. package/lib/Utils/business.js.map +1 -1
  58. package/lib/Utils/chat-utils.d.ts.map +1 -1
  59. package/lib/Utils/chat-utils.js.map +1 -1
  60. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -1
  61. package/lib/Utils/crypto.d.ts.map +1 -1
  62. package/lib/Utils/crypto.js.map +1 -1
  63. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  64. package/lib/Utils/decode-wa-message.js.map +1 -1
  65. package/lib/Utils/event-buffer.d.ts.map +1 -1
  66. package/lib/Utils/event-buffer.js.map +1 -1
  67. package/lib/Utils/generics.d.ts.map +1 -1
  68. package/lib/Utils/generics.js.map +1 -1
  69. package/lib/Utils/history.d.ts.map +1 -1
  70. package/lib/Utils/history.js.map +1 -1
  71. package/lib/Utils/identity-change-handler.d.ts.map +1 -1
  72. package/lib/Utils/identity-change-handler.js.map +1 -1
  73. package/lib/Utils/index.d.ts +0 -1
  74. package/lib/Utils/index.d.ts.map +1 -1
  75. package/lib/Utils/index.js +0 -1
  76. package/lib/Utils/index.js.map +1 -1
  77. package/lib/Utils/link-preview.d.ts.map +1 -1
  78. package/lib/Utils/messages-media.d.ts.map +1 -1
  79. package/lib/Utils/messages-media.js.map +1 -1
  80. package/lib/Utils/messages.d.ts +1 -1
  81. package/lib/Utils/messages.d.ts.map +1 -1
  82. package/lib/Utils/messages.js +0 -97
  83. package/lib/Utils/messages.js.map +1 -1
  84. package/lib/Utils/noise-handler.d.ts.map +1 -1
  85. package/lib/Utils/noise-handler.js.map +1 -1
  86. package/lib/Utils/offline-node-processor.d.ts.map +1 -1
  87. package/lib/Utils/pre-key-manager.d.ts.map +1 -1
  88. package/lib/Utils/process-message.d.ts.map +1 -1
  89. package/lib/Utils/process-message.js.map +1 -1
  90. package/lib/Utils/reporting-utils.d.ts.map +1 -1
  91. package/lib/Utils/rich-message-utils.js.map +1 -1
  92. package/lib/Utils/shortcake-crypto.d.ts.map +1 -1
  93. package/lib/Utils/shortcake.d.ts.map +1 -1
  94. package/lib/Utils/shortcake.js.map +1 -1
  95. package/lib/Utils/signal.d.ts.map +1 -1
  96. package/lib/Utils/signal.js.map +1 -1
  97. package/lib/Utils/stanza-ack.d.ts.map +1 -1
  98. package/lib/Utils/sync-action-utils.d.ts.map +1 -1
  99. package/lib/Utils/sync-action-utils.js.map +1 -1
  100. package/lib/Utils/tc-token-utils.d.ts.map +1 -1
  101. package/lib/Utils/tc-token-utils.js.map +1 -1
  102. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -1
  103. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -1
  104. package/lib/Utils/use-single-file-auth-state.js.map +1 -1
  105. package/lib/Utils/use-sqlite-auth-state.d.ts.map +1 -1
  106. package/lib/Utils/validate-connection.d.ts.map +1 -1
  107. package/lib/Utils/validate-connection.js.map +1 -1
  108. package/lib/VoIP/audio-feeder.d.ts +16 -0
  109. package/lib/VoIP/audio-feeder.d.ts.map +1 -0
  110. package/lib/VoIP/audio-feeder.js +145 -0
  111. package/lib/VoIP/audio-feeder.js.map +1 -0
  112. package/lib/VoIP/index.d.ts +25 -0
  113. package/lib/VoIP/index.d.ts.map +1 -0
  114. package/lib/VoIP/index.js +291 -0
  115. package/lib/VoIP/index.js.map +1 -0
  116. package/lib/VoIP/relay-transport.d.ts +17 -0
  117. package/lib/VoIP/relay-transport.d.ts.map +1 -0
  118. package/lib/VoIP/relay-transport.js +576 -0
  119. package/lib/VoIP/relay-transport.js.map +1 -0
  120. package/lib/VoIP/signaling.d.ts +17 -0
  121. package/lib/VoIP/signaling.d.ts.map +1 -0
  122. package/lib/VoIP/signaling.js +583 -0
  123. package/lib/VoIP/signaling.js.map +1 -0
  124. package/lib/VoIP/types.d.ts +12 -0
  125. package/lib/VoIP/types.d.ts.map +1 -0
  126. package/lib/VoIP/types.js +18 -0
  127. package/lib/VoIP/types.js.map +1 -0
  128. package/lib/VoIP/wasm-engine.d.ts +28 -0
  129. package/lib/VoIP/wasm-engine.d.ts.map +1 -0
  130. package/lib/VoIP/wasm-engine.js +1256 -0
  131. package/lib/VoIP/wasm-engine.js.map +1 -0
  132. package/lib/VoIP/worker-bootstrap.d.ts +2 -0
  133. package/lib/VoIP/worker-bootstrap.d.ts.map +1 -0
  134. package/lib/VoIP/worker-bootstrap.js +1045 -0
  135. package/lib/VoIP/worker-bootstrap.js.map +1 -0
  136. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -1
  137. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -1
  138. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -1
  139. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -1
  140. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -1
  141. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -1
  142. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -1
  143. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -1
  144. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -1
  145. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -1
  146. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -1
  147. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -1
  148. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
  149. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  150. package/lib/WAUSync/USyncQuery.js.map +1 -1
  151. package/lib/assets/wasm/loader.d.ts +2 -0
  152. package/lib/assets/wasm/loader.d.ts.map +1 -0
  153. package/lib/assets/wasm/loader.js +1867 -0
  154. package/lib/assets/wasm/loader.js.map +1 -0
  155. package/lib/assets/wasm/whatsapp.wasm +0 -0
  156. package/lib/assets/wasm/worker-modules.d.ts +2 -0
  157. package/lib/assets/wasm/worker-modules.d.ts.map +1 -0
  158. package/lib/assets/wasm/worker-modules.js +11039 -0
  159. package/lib/assets/wasm/worker-modules.js.map +1 -0
  160. package/lib/index.d.ts +0 -1
  161. package/lib/index.d.ts.map +1 -1
  162. package/lib/index.js +0 -1
  163. package/lib/index.js.map +1 -1
  164. package/package.json +1 -1
@@ -0,0 +1,576 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _RelayRtcTransport_relayInfoById, _RelayRtcTransport_connections, _RelayRtcTransport_totals, _RelayRtcTransport_wrtcPromise, _RelayRtcTransport_getOrCreateConnection, _RelayRtcTransport_getOrCreateEarlyConnection, _RelayRtcTransport_ensureConnection, _RelayRtcTransport_connect, _RelayRtcTransport_restartIce, _RelayRtcTransport_handleIncomingPacket, _RelayRtcTransport_flushBufferedPackets, _RelayRtcTransport_sendBufferedPacket, _RelayRtcTransport_startIceRttPolling, _RelayRtcTransport_stopIceRttPolling, _RelayRtcTransport_readCurrentRoundTripTimeMs, _RelayRtcTransport_closeConnection, _RelayRtcTransport_closePeerObjects, _RelayRtcTransport_loadWrtc;
13
+ /**
14
+ * Relay transport.
15
+ *
16
+ * Tunnels UDP traffic to WhatsApp's edge relay servers via WebRTC data
17
+ * channels (using `@roamhq/wrtc`). Mirrors the browser client's behavior:
18
+ * pre-negotiated SCTP, custom DTLS fingerprint, ICE restart on idle.
19
+ *
20
+ * @author ShellTear
21
+ */
22
+ import { appendFileSync } from "node:fs";
23
+ const RELAY_PROTO_UDP = 0;
24
+ const FAUX_WEB_CLIENT_RELAY_PORT = 3478;
25
+ const TRUE_WEB_CLIENT_RELAY_PORT = 3480;
26
+ const CONNECTION_TIMEOUT_MS = 20000;
27
+ const ICE_RESTART_IDLE_THRESHOLD_MS = 10000;
28
+ const ICE_RTT_POLL_MS = 1000;
29
+ const MAX_BUFFER_SIZE = 256 * 1024;
30
+ const RELAY_PACKET_LOG_PATH = process.env.CALL_DUMP_RELAY_PACKETS_PATH ?? "";
31
+ const DISABLE_IPV6 = process.env.CALL_DISABLE_IPV6 !== "0";
32
+ const RELAY_PORT_MODE = process.env.CALL_RELAY_PORT_MODE === "original" ? "original" : "web";
33
+ const USE_ORIGINAL_RELAY_PORTS = RELAY_PORT_MODE === "original";
34
+ const RELAY_DTLS_FINGERPRINT = "F9:CA:0C:98:A3:CC:71:D6:42:CE:5A:E2:53:D2:15:20:D3:1B:BA:D8:57:A4:F0:AF:BE:0B:FB:F3:6B:0C:A0:68";
35
+ const getConnectionIdentifier = (ip, port) => ip.includes(":") ? `[${ip}]:${port}` : `${ip}:${port}`;
36
+ const createEmptyStats = () => ({
37
+ sentPackets: 0,
38
+ receivedPackets: 0,
39
+ sentBytes: 0,
40
+ receivedBytes: 0,
41
+ droppedPackets: 0,
42
+ openConnections: 0,
43
+ });
44
+ const getRelayLookupId = (ip, port) => getConnectionIdentifier(ip, port === TRUE_WEB_CLIENT_RELAY_PORT ? TRUE_WEB_CLIENT_RELAY_PORT : port);
45
+ const getRtcConnectPort = (info) => info.ip === "157.240.24.133" ? FAUX_WEB_CLIENT_RELAY_PORT : info.port;
46
+ const getVoipStackPort = (info) => {
47
+ if (USE_ORIGINAL_RELAY_PORTS)
48
+ return info.originalPort || info.port;
49
+ const sourcePort = info.originalPort || info.port;
50
+ return sourcePort === TRUE_WEB_CLIENT_RELAY_PORT
51
+ ? TRUE_WEB_CLIENT_RELAY_PORT
52
+ : FAUX_WEB_CLIENT_RELAY_PORT;
53
+ };
54
+ const bufferPacket = (connection, packet) => {
55
+ if (packet.byteLength > MAX_BUFFER_SIZE) {
56
+ connection.stats.droppedPackets += 1;
57
+ return false;
58
+ }
59
+ while (connection.packetBuffer.length > 0 &&
60
+ connection.bufferedBytes + packet.byteLength > MAX_BUFFER_SIZE) {
61
+ const dropped = connection.packetBuffer.shift();
62
+ if (dropped) {
63
+ connection.bufferedBytes -= dropped.byteLength;
64
+ connection.stats.droppedPackets += 1;
65
+ }
66
+ }
67
+ connection.packetBuffer.push(packet);
68
+ connection.bufferedBytes += packet.byteLength;
69
+ return true;
70
+ };
71
+ const shiftPacket = (connection) => {
72
+ const packet = connection.packetBuffer.shift() ?? null;
73
+ if (packet)
74
+ connection.bufferedBytes -= packet.byteLength;
75
+ return packet;
76
+ };
77
+ const replaceIceCredentials = (sdp, ufrag, pwd) => sdp
78
+ .replace(/a=ice-ufrag:[^\r\n]+/g, `a=ice-ufrag:${ufrag}`)
79
+ .replace(/a=ice-pwd:[^\r\n]+/g, `a=ice-pwd:${pwd}`);
80
+ const replaceDtlsFingerprint = (sdp, algorithm, fingerprint) => sdp.replace(/a=fingerprint:[^\r\n]+/g, `a=fingerprint:${algorithm} ${fingerprint}`);
81
+ const removeIceCandidates = (sdp) => sdp
82
+ .replace(/a=candidate:[^\r\n]+\r?\n/g, "")
83
+ .replace(/a=end-of-candidates\r?\n?/g, "");
84
+ const appendRelayCandidate = (sdp, ip, port) => {
85
+ const candidate = `a=candidate:2 1 udp 2122262783 ${ip} ${port} typ host generation 0 network-cost 5`;
86
+ return `${removeIceCandidates(sdp)}${candidate}\r\na=end-of-candidates\r\n`;
87
+ };
88
+ const buildRemoteRelayAnswer = (offerSdp, info) => {
89
+ const setupLine = info.enableEdgerayDtlsActiveMode ? "a=setup:active" : "a=setup:passive";
90
+ let answerSdp = offerSdp.replace(/a=setup:actpass/g, setupLine);
91
+ answerSdp = replaceIceCredentials(answerSdp, info.authToken ?? info.token, info.key);
92
+ answerSdp = replaceDtlsFingerprint(answerSdp, "sha-256", RELAY_DTLS_FINGERPRINT);
93
+ answerSdp = answerSdp.replace(/a=ice-options:[^\r\n]+\r\n/g, "");
94
+ answerSdp = answerSdp.replace(/a=max-message-size:[^\r\n]+/g, "a=max-message-size:1200");
95
+ return appendRelayCandidate(answerSdp, info.ip, info.port);
96
+ };
97
+ const toArrayBuffer = (data) => {
98
+ const copy = new Uint8Array(data.byteLength);
99
+ copy.set(data);
100
+ return copy.buffer;
101
+ };
102
+ const toUint8Array = (data) => {
103
+ if (data instanceof Uint8Array)
104
+ return new Uint8Array(data);
105
+ if (Buffer.isBuffer(data))
106
+ return new Uint8Array(data);
107
+ if (data instanceof ArrayBuffer)
108
+ return new Uint8Array(data);
109
+ if (data && typeof data === "object" && "byteLength" in data && "buffer" in data) {
110
+ const view = data;
111
+ return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
112
+ }
113
+ return null;
114
+ };
115
+ const classifyRelayPacket = (packet) => {
116
+ if (packet.byteLength < 2)
117
+ return "non_stun";
118
+ const bytes = new Uint8Array(packet);
119
+ const first = bytes[0];
120
+ const second = bytes[1];
121
+ if ((first & 0xc0) !== 0)
122
+ return "non_stun";
123
+ const stunType = ((first & 0x3f) << 8) | second;
124
+ if (stunType === 0x0001)
125
+ return "stun_bind";
126
+ if (stunType === 0x0003)
127
+ return "stun_alloc";
128
+ return "stun_unknown";
129
+ };
130
+ const appendRelayPacketLog = (direction, connection, packet) => {
131
+ if (!RELAY_PACKET_LOG_PATH)
132
+ return;
133
+ const buffer = packet instanceof ArrayBuffer
134
+ ? Buffer.from(new Uint8Array(packet))
135
+ : Buffer.from(packet.buffer, packet.byteOffset, packet.byteLength);
136
+ appendFileSync(RELAY_PACKET_LOG_PATH, JSON.stringify({
137
+ ts: new Date().toISOString(),
138
+ direction,
139
+ id: connection.info.id,
140
+ relayId: connection.info.relayId,
141
+ relayName: connection.info.name,
142
+ ip: connection.info.ip,
143
+ rtcPort: connection.info.port,
144
+ voipPort: getVoipStackPort(connection.info),
145
+ size: buffer.byteLength,
146
+ hex: buffer.toString("hex"),
147
+ }) + "\n");
148
+ };
149
+ export class RelayRtcTransport {
150
+ constructor(config) {
151
+ _RelayRtcTransport_relayInfoById.set(this, new Map());
152
+ _RelayRtcTransport_connections.set(this, new Map());
153
+ _RelayRtcTransport_totals.set(this, createEmptyStats());
154
+ _RelayRtcTransport_wrtcPromise.set(this, null);
155
+ this.updateRelayList = (update) => {
156
+ const nextInfoById = new Map();
157
+ for (const relay of update.relays ?? []) {
158
+ if (relay.token_id == null || relay.token_id < 0 ||
159
+ relay.token_id >= (update.relay_tokens ?? []).length) {
160
+ continue;
161
+ }
162
+ const authToken = update.auth_tokens && relay.auth_token_id != null && relay.auth_token_id >= 0
163
+ ? update.auth_tokens[relay.auth_token_id]
164
+ : undefined;
165
+ for (const address of relay.addresses ?? []) {
166
+ if (address.protocol !== RELAY_PROTO_UDP)
167
+ continue;
168
+ if (address.ipv4 && address.port != null) {
169
+ const clientPort = USE_ORIGINAL_RELAY_PORTS ? address.port : TRUE_WEB_CLIENT_RELAY_PORT;
170
+ const id = getConnectionIdentifier(address.ipv4, clientPort);
171
+ nextInfoById.set(id, {
172
+ id,
173
+ relayId: relay.relay_id,
174
+ ip: address.ipv4,
175
+ port: clientPort,
176
+ originalPort: address.port,
177
+ isIPv6: false,
178
+ token: update.relay_tokens[relay.token_id],
179
+ authToken,
180
+ key: update.relay_key,
181
+ name: relay.relay_name,
182
+ enableEdgerayDtlsActiveMode: update.enable_edgeray_dtls_active_mode === true,
183
+ });
184
+ }
185
+ if (!DISABLE_IPV6 && address.ipv6 && address.port_v6 != null) {
186
+ const clientPort = USE_ORIGINAL_RELAY_PORTS ? address.port_v6 : TRUE_WEB_CLIENT_RELAY_PORT;
187
+ const id = getConnectionIdentifier(address.ipv6, clientPort);
188
+ nextInfoById.set(id, {
189
+ id,
190
+ relayId: relay.relay_id,
191
+ ip: address.ipv6,
192
+ port: clientPort,
193
+ originalPort: address.port_v6,
194
+ isIPv6: true,
195
+ token: update.relay_tokens[relay.token_id],
196
+ authToken,
197
+ key: update.relay_key,
198
+ name: relay.relay_name,
199
+ enableEdgerayDtlsActiveMode: update.enable_edgeray_dtls_active_mode === true,
200
+ });
201
+ }
202
+ }
203
+ }
204
+ for (const id of __classPrivateFieldGet(this, _RelayRtcTransport_relayInfoById, "f").keys()) {
205
+ if (!nextInfoById.has(id))
206
+ __classPrivateFieldGet(this, _RelayRtcTransport_closeConnection, "f").call(this, id);
207
+ }
208
+ __classPrivateFieldGet(this, _RelayRtcTransport_relayInfoById, "f").clear();
209
+ for (const [id, info] of nextInfoById) {
210
+ __classPrivateFieldGet(this, _RelayRtcTransport_relayInfoById, "f").set(id, info);
211
+ void __classPrivateFieldGet(this, _RelayRtcTransport_ensureConnection, "f").call(this, info);
212
+ }
213
+ };
214
+ this.send = (packet, ip, port) => {
215
+ const requestedId = getConnectionIdentifier(ip, port);
216
+ const preferredPort = USE_ORIGINAL_RELAY_PORTS ? port : TRUE_WEB_CLIENT_RELAY_PORT;
217
+ const candidateIds = [
218
+ requestedId,
219
+ getConnectionIdentifier(ip, preferredPort),
220
+ getRelayLookupId(ip, TRUE_WEB_CLIENT_RELAY_PORT),
221
+ getRelayLookupId(ip, FAUX_WEB_CLIENT_RELAY_PORT),
222
+ ];
223
+ let info;
224
+ for (const candidateId of candidateIds) {
225
+ info = __classPrivateFieldGet(this, _RelayRtcTransport_relayInfoById, "f").get(candidateId);
226
+ if (info)
227
+ break;
228
+ }
229
+ if (!info) {
230
+ if (DISABLE_IPV6 && ip.includes(":"))
231
+ return 0;
232
+ const earlyConnection = __classPrivateFieldGet(this, _RelayRtcTransport_getOrCreateEarlyConnection, "f").call(this, ip, port);
233
+ bufferPacket(earlyConnection, toArrayBuffer(packet));
234
+ return packet.byteLength;
235
+ }
236
+ const connection = __classPrivateFieldGet(this, _RelayRtcTransport_getOrCreateConnection, "f").call(this, info);
237
+ const arrayBuffer = toArrayBuffer(packet);
238
+ if (classifyRelayPacket(arrayBuffer) === "stun_alloc" &&
239
+ connection.state === "open" &&
240
+ connection.sentMedia &&
241
+ Date.now() - connection.lastRxPacketTime > ICE_RESTART_IDLE_THRESHOLD_MS) {
242
+ connection.packetBuffer = [];
243
+ connection.bufferedBytes = 0;
244
+ bufferPacket(connection, arrayBuffer);
245
+ void __classPrivateFieldGet(this, _RelayRtcTransport_restartIce, "f").call(this, connection);
246
+ return packet.byteLength;
247
+ }
248
+ if (connection.state === "open" && connection.dataChannel?.readyState === "open") {
249
+ if (!__classPrivateFieldGet(this, _RelayRtcTransport_sendBufferedPacket, "f").call(this, connection, arrayBuffer)) {
250
+ connection.stats.droppedPackets += 1;
251
+ }
252
+ return packet.byteLength;
253
+ }
254
+ bufferPacket(connection, arrayBuffer);
255
+ void __classPrivateFieldGet(this, _RelayRtcTransport_ensureConnection, "f").call(this, info);
256
+ return packet.byteLength;
257
+ };
258
+ this.getStats = () => {
259
+ let openConnections = 0;
260
+ for (const connection of __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").values()) {
261
+ if (connection.state === "open")
262
+ openConnections += 1;
263
+ }
264
+ return { ...__classPrivateFieldGet(this, _RelayRtcTransport_totals, "f"), openConnections };
265
+ };
266
+ this.closeAll = async () => {
267
+ for (const id of [...__classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").keys()])
268
+ __classPrivateFieldGet(this, _RelayRtcTransport_closeConnection, "f").call(this, id);
269
+ };
270
+ // ─── private ──────────────────────────────────────────────────────────────
271
+ _RelayRtcTransport_getOrCreateConnection.set(this, (info) => {
272
+ const existing = __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").get(info.id);
273
+ if (existing) {
274
+ existing.info = info;
275
+ return existing;
276
+ }
277
+ const created = {
278
+ info, state: "none", peerConnection: null, dataChannel: null,
279
+ iceCandidate: null, packetBuffer: [], bufferedBytes: 0,
280
+ connectPromise: null, connectionTimeout: null, iceStatsInterval: null,
281
+ lastIceRttMs: null, hasReceivedFirstPacket: false,
282
+ hasNonStunPacketSent: false, sentMedia: false, lastRxPacketTime: 0,
283
+ isReconnecting: false, stats: createEmptyStats(),
284
+ };
285
+ __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").set(info.id, created);
286
+ return created;
287
+ });
288
+ _RelayRtcTransport_getOrCreateEarlyConnection.set(this, (ip, port) => {
289
+ const id = getConnectionIdentifier(ip, port);
290
+ const existing = __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").get(id);
291
+ if (existing)
292
+ return existing;
293
+ const placeholderInfo = {
294
+ id, relayId: 0, ip, port, originalPort: port,
295
+ isIPv6: ip.includes(":"), token: "", key: "",
296
+ name: "early-packet", enableEdgerayDtlsActiveMode: false,
297
+ };
298
+ const created = {
299
+ info: placeholderInfo, state: "none", peerConnection: null,
300
+ dataChannel: null, iceCandidate: null, packetBuffer: [],
301
+ bufferedBytes: 0, connectPromise: null, connectionTimeout: null,
302
+ iceStatsInterval: null, lastIceRttMs: null,
303
+ hasReceivedFirstPacket: false, hasNonStunPacketSent: false,
304
+ sentMedia: false, lastRxPacketTime: 0, isReconnecting: false,
305
+ stats: createEmptyStats(),
306
+ };
307
+ __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").set(id, created);
308
+ return created;
309
+ });
310
+ _RelayRtcTransport_ensureConnection.set(this, async (info) => {
311
+ const connection = __classPrivateFieldGet(this, _RelayRtcTransport_getOrCreateConnection, "f").call(this, info);
312
+ if (connection.state === "open" || connection.state === "connecting") {
313
+ return connection.connectPromise ?? Promise.resolve();
314
+ }
315
+ const promise = __classPrivateFieldGet(this, _RelayRtcTransport_connect, "f").call(this, connection);
316
+ connection.connectPromise = promise;
317
+ try {
318
+ await promise;
319
+ }
320
+ finally {
321
+ connection.connectPromise = null;
322
+ }
323
+ });
324
+ _RelayRtcTransport_connect.set(this, async (connection) => {
325
+ const wrtcModule = await __classPrivateFieldGet(this, _RelayRtcTransport_loadWrtc, "f").call(this);
326
+ const { RTCPeerConnection } = wrtcModule;
327
+ if (typeof RTCPeerConnection !== "function") {
328
+ throw new Error("RTCPeerConnection unavailable from @roamhq/wrtc");
329
+ }
330
+ __classPrivateFieldGet(this, _RelayRtcTransport_closePeerObjects, "f").call(this, connection);
331
+ connection.state = "connecting";
332
+ const pc = new RTCPeerConnection();
333
+ const dc = pc.createDataChannel("pre-negotiated", {
334
+ negotiated: true, id: 0, ordered: false, maxRetransmits: 0, priority: "high",
335
+ });
336
+ connection.peerConnection = pc;
337
+ connection.dataChannel = dc;
338
+ dc.binaryType = "arraybuffer";
339
+ dc.onopen = () => {
340
+ connection.state = "open";
341
+ connection.isReconnecting = false;
342
+ if (connection.connectionTimeout) {
343
+ clearTimeout(connection.connectionTimeout);
344
+ connection.connectionTimeout = null;
345
+ }
346
+ __classPrivateFieldGet(this, _RelayRtcTransport_flushBufferedPackets, "f").call(this, connection);
347
+ __classPrivateFieldGet(this, _RelayRtcTransport_startIceRttPolling, "f").call(this, connection);
348
+ };
349
+ dc.onclose = () => {
350
+ if (connection.state !== "failed")
351
+ connection.state = "closed";
352
+ };
353
+ dc.onerror = () => {
354
+ connection.state = "failed";
355
+ };
356
+ dc.onmessage = (event) => {
357
+ __classPrivateFieldGet(this, _RelayRtcTransport_handleIncomingPacket, "f").call(this, connection, event.data);
358
+ };
359
+ pc.onicecandidate = (event) => {
360
+ if (event.candidate?.candidate && !connection.iceCandidate) {
361
+ connection.iceCandidate = event.candidate.candidate;
362
+ }
363
+ };
364
+ pc.oniceconnectionstatechange = () => {
365
+ if (pc.iceConnectionState === "failed" || pc.iceConnectionState === "closed") {
366
+ connection.state = "failed";
367
+ }
368
+ };
369
+ connection.connectionTimeout = setTimeout(() => {
370
+ if (connection.state === "connecting") {
371
+ connection.state = "failed";
372
+ __classPrivateFieldGet(this, _RelayRtcTransport_closePeerObjects, "f").call(this, connection);
373
+ }
374
+ }, CONNECTION_TIMEOUT_MS);
375
+ const offer = await pc.createOffer();
376
+ await pc.setLocalDescription(offer);
377
+ const remoteSdp = buildRemoteRelayAnswer(offer.sdp ?? "", {
378
+ ...connection.info,
379
+ port: getRtcConnectPort(connection.info),
380
+ });
381
+ await pc.setRemoteDescription({ type: "answer", sdp: remoteSdp });
382
+ });
383
+ _RelayRtcTransport_restartIce.set(this, async (connection) => {
384
+ if (connection.isReconnecting || !connection.hasNonStunPacketSent)
385
+ return;
386
+ const { RTCPeerConnection } = await __classPrivateFieldGet(this, _RelayRtcTransport_loadWrtc, "f").call(this);
387
+ if (typeof RTCPeerConnection !== "function")
388
+ return;
389
+ connection.isReconnecting = true;
390
+ try {
391
+ __classPrivateFieldGet(this, _RelayRtcTransport_closePeerObjects, "f").call(this, connection);
392
+ connection.state = "connecting";
393
+ const pc = new RTCPeerConnection();
394
+ const dc = pc.createDataChannel("pre-negotiated", {
395
+ negotiated: true, id: 0, ordered: false, maxRetransmits: 0, priority: "high",
396
+ });
397
+ connection.peerConnection = pc;
398
+ connection.dataChannel = dc;
399
+ dc.binaryType = "arraybuffer";
400
+ dc.onopen = () => {
401
+ connection.state = "open";
402
+ connection.isReconnecting = false;
403
+ __classPrivateFieldGet(this, _RelayRtcTransport_flushBufferedPackets, "f").call(this, connection);
404
+ __classPrivateFieldGet(this, _RelayRtcTransport_startIceRttPolling, "f").call(this, connection);
405
+ };
406
+ dc.onclose = () => {
407
+ if (connection.state !== "failed")
408
+ connection.state = "closed";
409
+ };
410
+ dc.onerror = () => { connection.state = "failed"; };
411
+ dc.onmessage = (event) => {
412
+ __classPrivateFieldGet(this, _RelayRtcTransport_handleIncomingPacket, "f").call(this, connection, event.data);
413
+ };
414
+ pc.onicecandidate = (event) => {
415
+ if (event.candidate?.candidate && !connection.iceCandidate) {
416
+ connection.iceCandidate = event.candidate.candidate;
417
+ }
418
+ };
419
+ const offer = await pc.createOffer({ iceRestart: false });
420
+ let localSdp = offer.sdp ?? "";
421
+ if (connection.iceCandidate) {
422
+ localSdp = `${removeIceCandidates(localSdp)}a=${connection.iceCandidate}\r\na=end-of-candidates\r\n`;
423
+ }
424
+ await pc.setLocalDescription({ type: "offer", sdp: localSdp });
425
+ const remoteSdp = buildRemoteRelayAnswer(localSdp, {
426
+ ...connection.info,
427
+ port: getRtcConnectPort(connection.info),
428
+ });
429
+ await pc.setRemoteDescription({ type: "answer", sdp: remoteSdp });
430
+ }
431
+ catch {
432
+ connection.state = "failed";
433
+ }
434
+ finally {
435
+ connection.isReconnecting = false;
436
+ }
437
+ });
438
+ _RelayRtcTransport_handleIncomingPacket.set(this, (connection, raw) => {
439
+ const packet = toUint8Array(raw);
440
+ if (!packet)
441
+ return;
442
+ connection.stats.receivedPackets += 1;
443
+ connection.stats.receivedBytes += packet.byteLength;
444
+ connection.hasReceivedFirstPacket = true;
445
+ connection.lastRxPacketTime = Date.now();
446
+ __classPrivateFieldGet(this, _RelayRtcTransport_totals, "f").receivedPackets += 1;
447
+ __classPrivateFieldGet(this, _RelayRtcTransport_totals, "f").receivedBytes += packet.byteLength;
448
+ appendRelayPacketLog("recv", connection, packet);
449
+ this.config.onTransportMessage(packet, connection.info.ip, getVoipStackPort(connection.info));
450
+ });
451
+ _RelayRtcTransport_flushBufferedPackets.set(this, (connection) => {
452
+ while (connection.state === "open" &&
453
+ connection.dataChannel?.readyState === "open" &&
454
+ connection.packetBuffer.length > 0) {
455
+ const packet = shiftPacket(connection);
456
+ if (!packet)
457
+ break;
458
+ if (!__classPrivateFieldGet(this, _RelayRtcTransport_sendBufferedPacket, "f").call(this, connection, packet)) {
459
+ connection.stats.droppedPackets += 1;
460
+ break;
461
+ }
462
+ }
463
+ });
464
+ _RelayRtcTransport_sendBufferedPacket.set(this, (connection, packet) => {
465
+ try {
466
+ connection.dataChannel?.send(packet);
467
+ if (classifyRelayPacket(packet) === "non_stun") {
468
+ connection.hasNonStunPacketSent = true;
469
+ connection.sentMedia = true;
470
+ }
471
+ connection.stats.sentPackets += 1;
472
+ connection.stats.sentBytes += packet.byteLength;
473
+ __classPrivateFieldGet(this, _RelayRtcTransport_totals, "f").sentPackets += 1;
474
+ __classPrivateFieldGet(this, _RelayRtcTransport_totals, "f").sentBytes += packet.byteLength;
475
+ appendRelayPacketLog("send", connection, packet);
476
+ return true;
477
+ }
478
+ catch {
479
+ return false;
480
+ }
481
+ });
482
+ _RelayRtcTransport_startIceRttPolling.set(this, (connection) => {
483
+ __classPrivateFieldGet(this, _RelayRtcTransport_stopIceRttPolling, "f").call(this, connection);
484
+ const pc = connection.peerConnection;
485
+ if (!pc || typeof pc.getStats !== "function" || !this.config.onIceRtt)
486
+ return;
487
+ const poll = async () => {
488
+ const rttMs = await __classPrivateFieldGet(this, _RelayRtcTransport_readCurrentRoundTripTimeMs, "f").call(this, pc);
489
+ if (rttMs == null || connection.lastIceRttMs === rttMs)
490
+ return;
491
+ connection.lastIceRttMs = rttMs;
492
+ this.config.onIceRtt?.(rttMs, connection.info.ip, connection.info.port);
493
+ };
494
+ void poll();
495
+ connection.iceStatsInterval = setInterval(() => { void poll(); }, ICE_RTT_POLL_MS);
496
+ connection.iceStatsInterval.unref?.();
497
+ });
498
+ _RelayRtcTransport_stopIceRttPolling.set(this, (connection) => {
499
+ if (connection.iceStatsInterval) {
500
+ clearInterval(connection.iceStatsInterval);
501
+ connection.iceStatsInterval = null;
502
+ }
503
+ connection.lastIceRttMs = null;
504
+ });
505
+ _RelayRtcTransport_readCurrentRoundTripTimeMs.set(this, async (pc) => {
506
+ try {
507
+ const stats = await pc.getStats();
508
+ const reports = stats && typeof stats.values === "function"
509
+ ? Array.from(stats.values())
510
+ : Array.isArray(stats) ? stats : Object.values(stats ?? {});
511
+ if (!reports.length)
512
+ return null;
513
+ let selectedCandidatePairId = "";
514
+ for (const report of reports) {
515
+ if (report?.type === "transport" && typeof report.selectedCandidatePairId === "string") {
516
+ selectedCandidatePairId = report.selectedCandidatePairId;
517
+ break;
518
+ }
519
+ }
520
+ const candidatePairs = reports.filter((r) => r?.type === "candidate-pair");
521
+ const selectedPair = (selectedCandidatePairId && candidatePairs.find((r) => r?.id === selectedCandidatePairId)) ||
522
+ candidatePairs.find((r) => r?.selected || r?.nominated) ||
523
+ candidatePairs[0];
524
+ const rttSeconds = typeof selectedPair?.currentRoundTripTime === "number"
525
+ ? selectedPair.currentRoundTripTime
526
+ : typeof selectedPair?.totalRoundTripTime === "number" &&
527
+ typeof selectedPair?.responsesReceived === "number" &&
528
+ selectedPair.responsesReceived > 0
529
+ ? selectedPair.totalRoundTripTime / selectedPair.responsesReceived
530
+ : null;
531
+ if (rttSeconds == null || !Number.isFinite(rttSeconds) || rttSeconds <= 0)
532
+ return null;
533
+ return Math.max(1, Math.round(rttSeconds * 1000));
534
+ }
535
+ catch {
536
+ return null;
537
+ }
538
+ });
539
+ _RelayRtcTransport_closeConnection.set(this, (id) => {
540
+ const connection = __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").get(id);
541
+ if (!connection)
542
+ return;
543
+ if (connection.connectionTimeout) {
544
+ clearTimeout(connection.connectionTimeout);
545
+ connection.connectionTimeout = null;
546
+ }
547
+ __classPrivateFieldGet(this, _RelayRtcTransport_closePeerObjects, "f").call(this, connection);
548
+ connection.state = "closed";
549
+ connection.packetBuffer = [];
550
+ connection.bufferedBytes = 0;
551
+ __classPrivateFieldGet(this, _RelayRtcTransport_connections, "f").delete(id);
552
+ });
553
+ _RelayRtcTransport_closePeerObjects.set(this, (connection) => {
554
+ __classPrivateFieldGet(this, _RelayRtcTransport_stopIceRttPolling, "f").call(this, connection);
555
+ try {
556
+ connection.dataChannel?.close?.();
557
+ }
558
+ catch { }
559
+ try {
560
+ connection.peerConnection?.close?.();
561
+ }
562
+ catch { }
563
+ connection.dataChannel = null;
564
+ connection.peerConnection = null;
565
+ });
566
+ _RelayRtcTransport_loadWrtc.set(this, () => {
567
+ if (!__classPrivateFieldGet(this, _RelayRtcTransport_wrtcPromise, "f")) {
568
+ __classPrivateFieldSet(this, _RelayRtcTransport_wrtcPromise, import("@roamhq/wrtc").then((module) => (module.default ?? module)), "f");
569
+ }
570
+ return __classPrivateFieldGet(this, _RelayRtcTransport_wrtcPromise, "f");
571
+ });
572
+ this.config = config;
573
+ }
574
+ }
575
+ _RelayRtcTransport_relayInfoById = new WeakMap(), _RelayRtcTransport_connections = new WeakMap(), _RelayRtcTransport_totals = new WeakMap(), _RelayRtcTransport_wrtcPromise = new WeakMap(), _RelayRtcTransport_getOrCreateConnection = new WeakMap(), _RelayRtcTransport_getOrCreateEarlyConnection = new WeakMap(), _RelayRtcTransport_ensureConnection = new WeakMap(), _RelayRtcTransport_connect = new WeakMap(), _RelayRtcTransport_restartIce = new WeakMap(), _RelayRtcTransport_handleIncomingPacket = new WeakMap(), _RelayRtcTransport_flushBufferedPackets = new WeakMap(), _RelayRtcTransport_sendBufferedPacket = new WeakMap(), _RelayRtcTransport_startIceRttPolling = new WeakMap(), _RelayRtcTransport_stopIceRttPolling = new WeakMap(), _RelayRtcTransport_readCurrentRoundTripTimeMs = new WeakMap(), _RelayRtcTransport_closeConnection = new WeakMap(), _RelayRtcTransport_closePeerObjects = new WeakMap(), _RelayRtcTransport_loadWrtc = new WeakMap();
576
+ //# sourceMappingURL=relay-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-transport.js","sourceRoot":"","sources":["../../src/VoIP/relay-transport.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export class SignalingBridge {
2
+ constructor(config: any);
3
+ attachEngine: (voip: any) => void;
4
+ init: () => Promise<void>;
5
+ sendSignaling: (peerJid: any, callId: any, xmlPayload: any) => void;
6
+ processIncomingCall: (node: any, voip: any, activeCallId: any) => void;
7
+ processIncomingReceipt: (node: any, voip: any, activeCallId: any) => void;
8
+ requestTcToken: (jid: any) => Promise<any>;
9
+ ensureTcToken: (...jids: any[]) => Promise<any>;
10
+ discoverPeerDevices: (peerLidJid: any) => Promise<any[]>;
11
+ ensureSessionsForPeers: (jids: any) => Promise<void>;
12
+ resolveLid: (pnJid: any) => Promise<any>;
13
+ issueTcToken: (jid: any) => Promise<boolean>;
14
+ getRemoteDeviceJid: (callId: any) => any;
15
+ #private;
16
+ }
17
+ //# sourceMappingURL=signaling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signaling.d.ts","sourceRoot":"","sources":["../../src/VoIP/signaling.js"],"names":[],"mappings":"AAwCA;IAcE,yBAEC;IAED,eAAgB,SAAI,UAElB;IAEF,0BAWE;IAEF,gBAAiB,YAAO,EAAE,WAAM,EAAE,eAAU,UAI1C;IAEF,sBAAuB,SAAI,EAAE,SAAI,EAAE,iBAAY,UAI7C;IAEF,yBAA0B,SAAI,EAAE,SAAI,EAAE,iBAAY,UAIhD;IAEF,iBAAwB,QAAG,kBA6BzB;IAEF,gBAAuB,GAAG,WAAI,kBAgB5B;IAEF,sBAA6B,eAAU,oBAGrC;IAEF,yBAAgC,SAAI,mBAGlC;IAEF,aAAoB,UAAK,kBACoC;IAE7D,eAAsB,QAAG,sBAsBvB;IAEF,qBAAsB,WAAM,SACiB;;CAya9C"}