@polymorfa/browser 0.1.0-dev.20260922094209
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/LICENSE +21 -0
- package/README.md +248 -0
- package/dist/calls/api.d.ts +22 -0
- package/dist/calls/api.d.ts.map +1 -0
- package/dist/calls/api.js +104 -0
- package/dist/calls/api.js.map +1 -0
- package/dist/calls/backend.d.ts +85 -0
- package/dist/calls/backend.d.ts.map +1 -0
- package/dist/calls/backend.js +141 -0
- package/dist/calls/backend.js.map +1 -0
- package/dist/calls/client.d.ts +56 -0
- package/dist/calls/client.d.ts.map +1 -0
- package/dist/calls/client.js +260 -0
- package/dist/calls/client.js.map +1 -0
- package/dist/calls/controller.d.ts +329 -0
- package/dist/calls/controller.d.ts.map +1 -0
- package/dist/calls/controller.js +1328 -0
- package/dist/calls/controller.js.map +1 -0
- package/dist/calls/diagnostics.d.ts +52 -0
- package/dist/calls/diagnostics.d.ts.map +1 -0
- package/dist/calls/diagnostics.js +188 -0
- package/dist/calls/diagnostics.js.map +1 -0
- package/dist/calls/index.d.ts +3 -0
- package/dist/calls/index.d.ts.map +1 -0
- package/dist/calls/index.js +5 -0
- package/dist/calls/index.js.map +1 -0
- package/dist/calls/internal.d.ts +8 -0
- package/dist/calls/internal.d.ts.map +1 -0
- package/dist/calls/internal.js +8 -0
- package/dist/calls/internal.js.map +1 -0
- package/dist/calls/media.d.ts +144 -0
- package/dist/calls/media.d.ts.map +1 -0
- package/dist/calls/media.js +512 -0
- package/dist/calls/media.js.map +1 -0
- package/dist/calls/signaling.d.ts +74 -0
- package/dist/calls/signaling.d.ts.map +1 -0
- package/dist/calls/signaling.js +169 -0
- package/dist/calls/signaling.js.map +1 -0
- package/dist/calls/socket.d.ts +95 -0
- package/dist/calls/socket.d.ts.map +1 -0
- package/dist/calls/socket.js +267 -0
- package/dist/calls/socket.js.map +1 -0
- package/dist/chat/composer.d.ts +59 -0
- package/dist/chat/composer.d.ts.map +1 -0
- package/dist/chat/composer.js +217 -0
- package/dist/chat/composer.js.map +1 -0
- package/dist/chat/conversation.d.ts +71 -0
- package/dist/chat/conversation.d.ts.map +1 -0
- package/dist/chat/conversation.js +204 -0
- package/dist/chat/conversation.js.map +1 -0
- package/dist/chat/index.d.ts +4 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +4 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/voice-recorder.d.ts +75 -0
- package/dist/chat/voice-recorder.d.ts.map +1 -0
- package/dist/chat/voice-recorder.js +346 -0
- package/dist/chat/voice-recorder.js.map +1 -0
- package/dist/controller.d.ts +16 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +50 -0
- package/dist/controller.js.map +1 -0
- package/dist/diagnostics.d.ts +27 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +2 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/dropin/client.d.ts +82 -0
- package/dist/dropin/client.d.ts.map +1 -0
- package/dist/dropin/client.js +314 -0
- package/dist/dropin/client.js.map +1 -0
- package/dist/dropin/connect.d.ts +23 -0
- package/dist/dropin/connect.d.ts.map +1 -0
- package/dist/dropin/connect.js +54 -0
- package/dist/dropin/connect.js.map +1 -0
- package/dist/dropin/inbox.d.ts +131 -0
- package/dist/dropin/inbox.d.ts.map +1 -0
- package/dist/dropin/inbox.js +406 -0
- package/dist/dropin/inbox.js.map +1 -0
- package/dist/dropin/index.d.ts +5 -0
- package/dist/dropin/index.d.ts.map +1 -0
- package/dist/dropin/index.js +5 -0
- package/dist/dropin/index.js.map +1 -0
- package/dist/dropin/permissions.d.ts +29 -0
- package/dist/dropin/permissions.d.ts.map +1 -0
- package/dist/dropin/permissions.js +53 -0
- package/dist/dropin/permissions.js.map +1 -0
- package/dist/errors.d.ts +39 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +12 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +13 -0
- package/dist/internal.js.map +1 -0
- package/dist/messaging/client.d.ts +54 -0
- package/dist/messaging/client.d.ts.map +1 -0
- package/dist/messaging/client.js +153 -0
- package/dist/messaging/client.js.map +1 -0
- package/dist/messaging/composer.d.ts +12 -0
- package/dist/messaging/composer.d.ts.map +1 -0
- package/dist/messaging/composer.js +36 -0
- package/dist/messaging/composer.js.map +1 -0
- package/dist/messaging/index.d.ts +4 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +3 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/types.d.ts +209 -0
- package/dist/messaging/types.d.ts.map +1 -0
- package/dist/messaging/types.js +2 -0
- package/dist/messaging/types.js.map +1 -0
- package/dist/templates/controller.d.ts +45 -0
- package/dist/templates/controller.d.ts.map +1 -0
- package/dist/templates/controller.js +298 -0
- package/dist/templates/controller.js.map +1 -0
- package/dist/templates/index.d.ts +4 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +3 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/transport.d.ts +7 -0
- package/dist/templates/transport.d.ts.map +1 -0
- package/dist/templates/transport.js +124 -0
- package/dist/templates/transport.js.map +1 -0
- package/dist/templates/types.d.ts +141 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +2 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/token.d.ts +37 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +152 -0
- package/dist/token.js.map +1 -0
- package/dist/transport.d.ts +53 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +328 -0
- package/dist/transport.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/calls/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type CallErrorCode, type CallQualityFigures, type CallReport, type CallReportClient } from "@polymorfa/sdk/calls/internal";
|
|
2
|
+
/** Package version sent with reports from `@polymorfa/browser`. */
|
|
3
|
+
export declare const BROWSER_SDK_VERSION = "0.1.0-dev.0";
|
|
4
|
+
export declare const BROWSER_REPORT_CLIENT: CallReportClient;
|
|
5
|
+
/** How often a live connection sends its figures. */
|
|
6
|
+
export declare const QUALITY_REPORT_INTERVAL_MS = 15000;
|
|
7
|
+
/**
|
|
8
|
+
* The report code for a media failure, or `undefined` when the failure is not
|
|
9
|
+
* a media problem (a cancelled operation, a call claimed elsewhere, calling
|
|
10
|
+
* turned off).
|
|
11
|
+
*/
|
|
12
|
+
export declare function mediaErrorCode(cause: unknown): CallErrorCode | undefined;
|
|
13
|
+
interface Sample {
|
|
14
|
+
readonly figures: CallQualityFigures;
|
|
15
|
+
readonly packetsReceived: number | undefined;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Figures from `RTCPeerConnection.getStats()`: the selected candidate pair's
|
|
19
|
+
* round-trip time (or the remote inbound RTP's), audio receive jitter,
|
|
20
|
+
* packets lost and received over all inbound RTP streams, the codecs in use
|
|
21
|
+
* and the local candidate type.
|
|
22
|
+
*/
|
|
23
|
+
export declare function qualityFromStats(stats: RTCStatsReport): Sample;
|
|
24
|
+
export interface ConnectionDiagnosticsOptions {
|
|
25
|
+
readonly connectionId: string;
|
|
26
|
+
readonly send: (report: CallReport) => Promise<unknown>;
|
|
27
|
+
/** Stats of the connection; without it only errors and reconnects are sent. */
|
|
28
|
+
readonly getStats?: () => Promise<RTCStatsReport>;
|
|
29
|
+
/** Whether media is supposed to flow now (the call is connected). */
|
|
30
|
+
readonly live: () => boolean;
|
|
31
|
+
readonly setTimeout: typeof globalThis.setTimeout;
|
|
32
|
+
readonly clearTimeout: typeof globalThis.clearTimeout;
|
|
33
|
+
readonly now?: () => number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Reports for one browser media connection: its figures every 15 seconds
|
|
37
|
+
* and once when it closes, and errors as they happen. Nothing here throws or
|
|
38
|
+
* waits on the call; failed reports are dropped.
|
|
39
|
+
*/
|
|
40
|
+
export declare class ConnectionDiagnostics {
|
|
41
|
+
#private;
|
|
42
|
+
constructor(options: ConnectionDiagnosticsOptions);
|
|
43
|
+
start(): void;
|
|
44
|
+
/** The connection recovered after a drop. */
|
|
45
|
+
reconnected(): void;
|
|
46
|
+
/** Report an error; repeated codes are sent once until recovery. */
|
|
47
|
+
error(code: CallErrorCode): void;
|
|
48
|
+
/** Send the final figures and stop. Safe to call more than once. */
|
|
49
|
+
close(): void;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/calls/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,eAAO,MAAM,qBAAqB,EAAE,gBAIlC,CAAC;AAEH,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,SAAS,CA6BxE;AAED,UAAU,MAAM;IACd,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA8D9D;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,UAAU,CAAC,UAAU,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,qBAAqB;;gBASpB,OAAO,EAAE,4BAA4B;IAUjD,KAAK,IAAI,IAAI;IAIb,6CAA6C;IAC7C,WAAW,IAAI,IAAI;IAOnB,oEAAoE;IACpE,KAAK,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAMhC,oEAAoE;IACpE,KAAK,IAAI,IAAI;CAwCd"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { CallReporter, } from "@polymorfa/sdk/calls/internal";
|
|
2
|
+
/** Package version sent with reports from `@polymorfa/browser`. */
|
|
3
|
+
export const BROWSER_SDK_VERSION = "0.1.0-dev.0";
|
|
4
|
+
export const BROWSER_REPORT_CLIENT = Object.freeze({
|
|
5
|
+
sdk: "@polymorfa/browser",
|
|
6
|
+
version: BROWSER_SDK_VERSION,
|
|
7
|
+
platform: "browser",
|
|
8
|
+
});
|
|
9
|
+
/** How often a live connection sends its figures. */
|
|
10
|
+
export const QUALITY_REPORT_INTERVAL_MS = 15_000;
|
|
11
|
+
/**
|
|
12
|
+
* The report code for a media failure, or `undefined` when the failure is not
|
|
13
|
+
* a media problem (a cancelled operation, a call claimed elsewhere, calling
|
|
14
|
+
* turned off).
|
|
15
|
+
*/
|
|
16
|
+
export function mediaErrorCode(cause) {
|
|
17
|
+
const name = cause !== null && typeof cause === "object"
|
|
18
|
+
? cause.name
|
|
19
|
+
: undefined;
|
|
20
|
+
const code = cause !== null && typeof cause === "object"
|
|
21
|
+
? cause.code
|
|
22
|
+
: undefined;
|
|
23
|
+
switch (name) {
|
|
24
|
+
case "NotAllowedError":
|
|
25
|
+
case "SecurityError":
|
|
26
|
+
return "media_permission_denied";
|
|
27
|
+
case "NotFoundError":
|
|
28
|
+
case "OverconstrainedError":
|
|
29
|
+
return "device_not_found";
|
|
30
|
+
case "NotReadableError":
|
|
31
|
+
return "device_in_use";
|
|
32
|
+
case "NotSupportedError":
|
|
33
|
+
return "unsupported_browser";
|
|
34
|
+
case "AbortError":
|
|
35
|
+
case "BrowserCancelledError":
|
|
36
|
+
case "CallClaimedError":
|
|
37
|
+
case "CallsDisabledError":
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
if (code === "call_claimed" || code === "calls_disabled")
|
|
41
|
+
return undefined;
|
|
42
|
+
// The offer, a re-offer, or applying the answer failed.
|
|
43
|
+
return "negotiation_failed";
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Figures from `RTCPeerConnection.getStats()`: the selected candidate pair's
|
|
47
|
+
* round-trip time (or the remote inbound RTP's), audio receive jitter,
|
|
48
|
+
* packets lost and received over all inbound RTP streams, the codecs in use
|
|
49
|
+
* and the local candidate type.
|
|
50
|
+
*/
|
|
51
|
+
export function qualityFromStats(stats) {
|
|
52
|
+
const all = new Map();
|
|
53
|
+
stats.forEach((value, key) => {
|
|
54
|
+
if (value !== null && typeof value === "object")
|
|
55
|
+
all.set(key, value);
|
|
56
|
+
});
|
|
57
|
+
const entries = [...all.values()];
|
|
58
|
+
const number = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
59
|
+
const pair = entries.find((s) => s["type"] === "candidate-pair" &&
|
|
60
|
+
s["nominated"] === true &&
|
|
61
|
+
s["state"] === "succeeded") ??
|
|
62
|
+
entries.find((s) => s["type"] === "candidate-pair" && s["selected"] === true);
|
|
63
|
+
const pairRtt = number(pair?.["currentRoundTripTime"]);
|
|
64
|
+
const remoteRtt = number(entries.find((s) => s["type"] === "remote-inbound-rtp")?.["roundTripTime"]);
|
|
65
|
+
const rtt = pairRtt ?? remoteRtt;
|
|
66
|
+
const inbound = entries.filter((s) => s["type"] === "inbound-rtp");
|
|
67
|
+
const audio = inbound.find((s) => s["kind"] === "audio");
|
|
68
|
+
const jitter = number(audio?.["jitter"]);
|
|
69
|
+
const sum = (field) => {
|
|
70
|
+
const values = inbound
|
|
71
|
+
.map((s) => number(s[field]))
|
|
72
|
+
.filter((v) => v !== undefined);
|
|
73
|
+
return values.length === 0 ? undefined : values.reduce((a, b) => a + b, 0);
|
|
74
|
+
};
|
|
75
|
+
const lost = sum("packetsLost");
|
|
76
|
+
const received = sum("packetsReceived");
|
|
77
|
+
const codecOf = (stream) => {
|
|
78
|
+
const id = stream?.["codecId"];
|
|
79
|
+
const mime = typeof id === "string" ? all.get(id)?.["mimeType"] : undefined;
|
|
80
|
+
return typeof mime === "string" ? mime : undefined;
|
|
81
|
+
};
|
|
82
|
+
const local = typeof pair?.["localCandidateId"] === "string"
|
|
83
|
+
? all.get(pair["localCandidateId"])
|
|
84
|
+
: undefined;
|
|
85
|
+
const candidateType = local?.["candidateType"];
|
|
86
|
+
const figures = {};
|
|
87
|
+
if (rtt !== undefined)
|
|
88
|
+
figures["rttMs"] = Math.round(rtt * 1000);
|
|
89
|
+
if (jitter !== undefined)
|
|
90
|
+
figures["jitterMs"] = Math.round(jitter * 1000);
|
|
91
|
+
if (lost !== undefined)
|
|
92
|
+
figures["packetsLost"] = Math.max(0, lost);
|
|
93
|
+
if (received !== undefined)
|
|
94
|
+
figures["packetsReceived"] = received;
|
|
95
|
+
const audioCodec = codecOf(audio);
|
|
96
|
+
if (audioCodec !== undefined)
|
|
97
|
+
figures["audioCodec"] = audioCodec;
|
|
98
|
+
const videoCodec = codecOf(inbound.find((s) => s["kind"] === "video"));
|
|
99
|
+
if (videoCodec !== undefined)
|
|
100
|
+
figures["videoCodec"] = videoCodec;
|
|
101
|
+
if (candidateType === "host" ||
|
|
102
|
+
candidateType === "srflx" ||
|
|
103
|
+
candidateType === "prflx" ||
|
|
104
|
+
candidateType === "relay")
|
|
105
|
+
figures["candidateType"] = candidateType;
|
|
106
|
+
return { figures: figures, packetsReceived: received };
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Reports for one browser media connection: its figures every 15 seconds
|
|
110
|
+
* and once when it closes, and errors as they happen. Nothing here throws or
|
|
111
|
+
* waits on the call; failed reports are dropped.
|
|
112
|
+
*/
|
|
113
|
+
export class ConnectionDiagnostics {
|
|
114
|
+
#options;
|
|
115
|
+
#reporter;
|
|
116
|
+
#timer;
|
|
117
|
+
#closed = false;
|
|
118
|
+
#reconnects = 0;
|
|
119
|
+
#lastReceived;
|
|
120
|
+
#reported = new Set();
|
|
121
|
+
constructor(options) {
|
|
122
|
+
this.#options = options;
|
|
123
|
+
this.#reporter = new CallReporter({
|
|
124
|
+
connectionId: options.connectionId,
|
|
125
|
+
client: BROWSER_REPORT_CLIENT,
|
|
126
|
+
send: options.send,
|
|
127
|
+
...(options.now === undefined ? {} : { now: options.now }),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
start() {
|
|
131
|
+
this.#schedule();
|
|
132
|
+
}
|
|
133
|
+
/** The connection recovered after a drop. */
|
|
134
|
+
reconnected() {
|
|
135
|
+
this.#reconnects += 1;
|
|
136
|
+
// A new failure after recovery is a new event.
|
|
137
|
+
this.#reported.delete("ice_failed");
|
|
138
|
+
this.#reported.delete("media_timeout");
|
|
139
|
+
}
|
|
140
|
+
/** Report an error; repeated codes are sent once until recovery. */
|
|
141
|
+
error(code) {
|
|
142
|
+
if (this.#closed || this.#reported.has(code))
|
|
143
|
+
return;
|
|
144
|
+
this.#reported.add(code);
|
|
145
|
+
this.#reporter.error(code);
|
|
146
|
+
}
|
|
147
|
+
/** Send the final figures and stop. Safe to call more than once. */
|
|
148
|
+
close() {
|
|
149
|
+
if (this.#closed)
|
|
150
|
+
return;
|
|
151
|
+
this.#closed = true;
|
|
152
|
+
if (this.#timer !== undefined)
|
|
153
|
+
this.#options.clearTimeout(this.#timer);
|
|
154
|
+
this.#timer = undefined;
|
|
155
|
+
// Read the stats before the connection closes; send when they arrive.
|
|
156
|
+
void this.#sample(true).finally(() => this.#reporter.stop());
|
|
157
|
+
}
|
|
158
|
+
#schedule() {
|
|
159
|
+
if (this.#closed)
|
|
160
|
+
return;
|
|
161
|
+
this.#timer = this.#options.setTimeout(() => {
|
|
162
|
+
this.#timer = undefined;
|
|
163
|
+
void this.#sample(false).finally(() => this.#schedule());
|
|
164
|
+
}, QUALITY_REPORT_INTERVAL_MS);
|
|
165
|
+
}
|
|
166
|
+
async #sample(final) {
|
|
167
|
+
let sample = { figures: {}, packetsReceived: undefined };
|
|
168
|
+
try {
|
|
169
|
+
const stats = await this.#options.getStats?.();
|
|
170
|
+
if (stats !== undefined)
|
|
171
|
+
sample = qualityFromStats(stats);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
// Stats unavailable (for example after the connection closed).
|
|
175
|
+
}
|
|
176
|
+
if (!final && this.#closed)
|
|
177
|
+
return;
|
|
178
|
+
// Nothing arrived since the previous sample while media should flow.
|
|
179
|
+
if (!final &&
|
|
180
|
+
this.#options.live() &&
|
|
181
|
+
sample.packetsReceived !== undefined &&
|
|
182
|
+
sample.packetsReceived === this.#lastReceived)
|
|
183
|
+
this.error("media_timeout");
|
|
184
|
+
this.#lastReceived = sample.packetsReceived;
|
|
185
|
+
this.#reporter.quality({ ...sample.figures, reconnects: this.#reconnects }, final);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/calls/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { type CallCapabilities, type CallDevice, type CallDeviceKind, type CallEndReason, type CallInvitation, type CallParticipant, type CallStatus, type CallsController, type CallsControllerOptions, type CallsSnapshot, type ParticipantVideo, type RemoteVideoInfo, type SelectedCallDevices, } from "./controller.js";
|
|
2
|
+
export { createBrowserCalls, type BrowserCalls, type BrowserCallsOptions, } from "./client.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calls/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Public calls surface: the browser calling component, its controller and
|
|
2
|
+
// neutral call types. Signaling, WebRTC and socket transports are internal.
|
|
3
|
+
export {} from "./controller.js";
|
|
4
|
+
export { createBrowserCalls, } from "./client.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calls/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,4EAA4E;AAC5E,OAAO,EAcN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { CallsController, type AnswerCallInput, type CallLifecycleEvent, type CallsBackend, type IncomingCall, type PlaceCallInput, } from "./controller.js";
|
|
2
|
+
export { IncomingCallRelay, createSignalingCallsBackend, incomingCallFromWebhook, type CallReceivedWebhookPayload, type SignalingCallsBackendOptions, } from "./backend.js";
|
|
3
|
+
export { CallsSocket, lifecycleEventFrom, parseCallsSocketMessage, type CallsSocketClientMessage, type CallsSocketError, type CallsSocketOptions, type CallsSocketServerMessage, } from "./socket.js";
|
|
4
|
+
export { CALLS_DATA_CHANNEL, DEFAULT_VIDEO_SLOTS, MAX_VIDEO_SLOTS, WebRtcMediaFactory, parseDataChannelMessage, type CallsDataChannelMessage, type RemoteVideo, type CallMediaCallbacks, type CandidateTransport, type CallMediaFactory, type CallMediaPreferences, type CallMediaSession, type WebRtcMediaFactoryOptions, } from "./media.js";
|
|
5
|
+
export { CallsSignalingClient, claimedError, isCallClaimed, type CallsSignaling, type IceServer, type OfferRequest, type SdpAnswer, type TrickleCandidate, } from "./signaling.js";
|
|
6
|
+
export { BrowserCallsApi } from "./api.js";
|
|
7
|
+
export { createInternalBrowserCalls, type InternalBrowserCallsOptions, } from "./client.js";
|
|
8
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/calls/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,GAClC,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,KAAK,2BAA2B,GACjC,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { CallsController, } from "./controller.js";
|
|
2
|
+
export { IncomingCallRelay, createSignalingCallsBackend, incomingCallFromWebhook, } from "./backend.js";
|
|
3
|
+
export { CallsSocket, lifecycleEventFrom, parseCallsSocketMessage, } from "./socket.js";
|
|
4
|
+
export { CALLS_DATA_CHANNEL, DEFAULT_VIDEO_SLOTS, MAX_VIDEO_SLOTS, WebRtcMediaFactory, parseDataChannelMessage, } from "./media.js";
|
|
5
|
+
export { CallsSignalingClient, claimedError, isCallClaimed, } from "./signaling.js";
|
|
6
|
+
export { BrowserCallsApi } from "./api.js";
|
|
7
|
+
export { createInternalBrowserCalls, } from "./client.js";
|
|
8
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/calls/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAMhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,uBAAuB,GAKxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,GASxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GAMd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,0BAA0B,GAE3B,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { type Participant } from "@polymorfa/sdk/calls/internal";
|
|
2
|
+
import type { CallsSignaling, TrickleCandidate } from "./signaling.js";
|
|
3
|
+
import type { CallDevice, SelectedCallDevices } from "./controller.js";
|
|
4
|
+
/** Label and id of the control data channel, negotiated out of band. */
|
|
5
|
+
export declare const CALLS_DATA_CHANNEL: {
|
|
6
|
+
readonly label: "pmfa.calls";
|
|
7
|
+
readonly id: 0;
|
|
8
|
+
};
|
|
9
|
+
/** Receive-only video transceivers offered up front. */
|
|
10
|
+
export declare const DEFAULT_VIDEO_SLOTS = 3;
|
|
11
|
+
/** Upper bound on video transceivers per connection (camera included). */
|
|
12
|
+
export declare const MAX_VIDEO_SLOTS = 32;
|
|
13
|
+
/** One remote participant's video, delivered on its own transceiver. */
|
|
14
|
+
export interface RemoteVideo {
|
|
15
|
+
/**
|
|
16
|
+
* Stable key for rendering: `connection:<id>` for another media connection,
|
|
17
|
+
* `participant:<id>` for a WhatsApp participant.
|
|
18
|
+
*/
|
|
19
|
+
readonly key: string;
|
|
20
|
+
/** Platform source handle. */
|
|
21
|
+
readonly source: number;
|
|
22
|
+
readonly mid: string;
|
|
23
|
+
readonly connectionId?: string;
|
|
24
|
+
/** Participant reference of that connection (`client:<id>` or `server:<name>`), when known. */
|
|
25
|
+
readonly connectionParticipant?: string;
|
|
26
|
+
readonly participant?: Participant;
|
|
27
|
+
readonly stream: MediaStream;
|
|
28
|
+
}
|
|
29
|
+
/** Data-channel messages the platform sends. */
|
|
30
|
+
export type CallsDataChannelMessage = ({
|
|
31
|
+
readonly type: "video_source";
|
|
32
|
+
readonly source: number;
|
|
33
|
+
readonly mid: string;
|
|
34
|
+
} & ({
|
|
35
|
+
readonly connectionId: string;
|
|
36
|
+
readonly connectionParticipant?: string;
|
|
37
|
+
readonly participant?: undefined;
|
|
38
|
+
} | {
|
|
39
|
+
readonly participant: Participant;
|
|
40
|
+
readonly connectionId?: undefined;
|
|
41
|
+
readonly connectionParticipant?: undefined;
|
|
42
|
+
})) | {
|
|
43
|
+
readonly type: "video_source_removed";
|
|
44
|
+
readonly source: number;
|
|
45
|
+
readonly mid: string;
|
|
46
|
+
} | {
|
|
47
|
+
readonly type: "video_slots_exhausted";
|
|
48
|
+
readonly slots: number;
|
|
49
|
+
readonly needed: number;
|
|
50
|
+
} | {
|
|
51
|
+
readonly type: "pong";
|
|
52
|
+
};
|
|
53
|
+
/** Validate one data-channel message; malformed messages yield `undefined`. */
|
|
54
|
+
export declare function parseDataChannelMessage(data: unknown): CallsDataChannelMessage | undefined;
|
|
55
|
+
export interface CallMediaCallbacks {
|
|
56
|
+
readonly onConnectionState: (state: RTCPeerConnectionState) => void;
|
|
57
|
+
/** The merged call audio (and nothing else) arrived or changed. */
|
|
58
|
+
readonly onRemoteStream: (stream: MediaStream) => void;
|
|
59
|
+
/** ICE connection state (drives the resumption window). Optional. */
|
|
60
|
+
readonly onIceConnectionState?: (state: RTCIceConnectionState) => void;
|
|
61
|
+
/** Remote participant videos changed. Optional. */
|
|
62
|
+
readonly onRemoteVideos?: (videos: readonly RemoteVideo[]) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A push channel for ICE candidates (the calls WebSocket). When `send`
|
|
66
|
+
* returns true the candidate travelled over it and REST is skipped; remote
|
|
67
|
+
* candidates arrive through `onCandidate` and REST polling pauses while
|
|
68
|
+
* `connected` is true.
|
|
69
|
+
*/
|
|
70
|
+
export interface CandidateTransport {
|
|
71
|
+
readonly connected: boolean;
|
|
72
|
+
sendCandidate(callId: string, candidate: TrickleCandidate, connectionId: string): boolean;
|
|
73
|
+
onCandidate(listener: (callId: string, candidate: TrickleCandidate, connectionId?: string) => void): () => void;
|
|
74
|
+
}
|
|
75
|
+
export interface CallMediaSession {
|
|
76
|
+
/** This connection's id; reused for reconnects and sent with `leave`. */
|
|
77
|
+
readonly connectionId?: string;
|
|
78
|
+
readonly localStream: MediaStream;
|
|
79
|
+
/** Merged call audio. */
|
|
80
|
+
readonly remoteStream: MediaStream;
|
|
81
|
+
/** One entry per remote video source. Optional for fakes. */
|
|
82
|
+
readonly remoteVideos?: readonly RemoteVideo[];
|
|
83
|
+
setMuted(muted: {
|
|
84
|
+
readonly audio?: boolean;
|
|
85
|
+
readonly video?: boolean;
|
|
86
|
+
}): void;
|
|
87
|
+
audioEnabled(): boolean;
|
|
88
|
+
videoEnabled(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Start sending the camera on an audio call and renegotiate on the same
|
|
91
|
+
* connection. Optional for fakes and for signaling without `renegotiate`.
|
|
92
|
+
*/
|
|
93
|
+
enableVideo?(signal: AbortSignal, devices?: SelectedCallDevices): Promise<void>;
|
|
94
|
+
/** The connection's WebRTC statistics, for diagnostics. Optional for fakes. */
|
|
95
|
+
getStats?(): Promise<RTCStatsReport>;
|
|
96
|
+
/** Re-offer with fresh ICE credentials after a network change. Optional for fakes. */
|
|
97
|
+
restartIce?(signal: AbortSignal): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Swap the live capture device: acquires `deviceId` and replaces the
|
|
100
|
+
* outgoing track in place (mute state carries over). Optional for fakes.
|
|
101
|
+
*/
|
|
102
|
+
switchInput?(kind: "audio" | "video", deviceId: string, signal: AbortSignal): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Stop local media. With `leave` (the default) the connection is also left
|
|
105
|
+
* on the platform; the call continues for everyone else.
|
|
106
|
+
*/
|
|
107
|
+
close(options?: {
|
|
108
|
+
readonly leave?: boolean;
|
|
109
|
+
}): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
export interface CallMediaPreferences {
|
|
112
|
+
readonly devices?: SelectedCallDevices;
|
|
113
|
+
/** Connection id to use; generated when omitted. */
|
|
114
|
+
readonly connectionId?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface CallMediaFactory {
|
|
117
|
+
open(callId: string, video: boolean, callbacks: CallMediaCallbacks, signal: AbortSignal, preferences?: CallMediaPreferences): Promise<CallMediaSession>;
|
|
118
|
+
/** Enumerate capture/playback devices. Optional for fakes. */
|
|
119
|
+
listDevices?(): Promise<readonly CallDevice[]>;
|
|
120
|
+
}
|
|
121
|
+
export interface WebRtcMediaFactoryOptions {
|
|
122
|
+
readonly signaling: CallsSignaling;
|
|
123
|
+
/** Calls WebSocket for ICE; REST stays the fallback while it is down. */
|
|
124
|
+
readonly candidateTransport?: CandidateTransport;
|
|
125
|
+
readonly mediaDevices?: MediaDevices;
|
|
126
|
+
readonly createPeerConnection?: (configuration?: RTCConfiguration) => RTCPeerConnection;
|
|
127
|
+
readonly pollIntervalMs?: number;
|
|
128
|
+
/** Receive-only video transceivers offered up front. Default 3. */
|
|
129
|
+
readonly videoSlots?: number;
|
|
130
|
+
/**
|
|
131
|
+
* Most video transceivers one connection may hold, camera included,
|
|
132
|
+
* when the platform asks for more. Default 32.
|
|
133
|
+
*/
|
|
134
|
+
readonly maxVideoSlots?: number;
|
|
135
|
+
readonly setInterval?: typeof globalThis.setInterval;
|
|
136
|
+
readonly clearInterval?: typeof globalThis.clearInterval;
|
|
137
|
+
}
|
|
138
|
+
export declare class WebRtcMediaFactory implements CallMediaFactory {
|
|
139
|
+
#private;
|
|
140
|
+
constructor(options: WebRtcMediaFactoryOptions);
|
|
141
|
+
listDevices(): Promise<readonly CallDevice[]>;
|
|
142
|
+
open(callId: string, video: boolean, callbacks: CallMediaCallbacks, signal: AbortSignal, preferences?: CallMediaPreferences): Promise<CallMediaSession>;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/calls/media.ts"],"names":[],"mappings":"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"}
|