openai 7.13.0 → 7.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/client.d.mts +3 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +3 -0
- package/client.d.ts.map +1 -1
- package/client.js +3 -0
- package/client.js.map +1 -1
- package/client.mjs +3 -0
- package/client.mjs.map +1 -1
- package/helpers/live.d.mts +2 -0
- package/helpers/live.d.mts.map +1 -0
- package/helpers/live.d.ts +2 -0
- package/helpers/live.d.ts.map +1 -0
- package/helpers/live.js +6 -0
- package/helpers/live.js.map +1 -0
- package/helpers/live.mjs +2 -0
- package/helpers/live.mjs.map +1 -0
- package/lib/live/transcript-grouper.d.mts +96 -0
- package/lib/live/transcript-grouper.d.mts.map +1 -0
- package/lib/live/transcript-grouper.d.ts +96 -0
- package/lib/live/transcript-grouper.d.ts.map +1 -0
- package/lib/live/transcript-grouper.js +223 -0
- package/lib/live/transcript-grouper.js.map +1 -0
- package/lib/live/transcript-grouper.mjs +219 -0
- package/lib/live/transcript-grouper.mjs.map +1 -0
- package/lib/live/transcript-grouping.d.mts +49 -0
- package/lib/live/transcript-grouping.d.mts.map +1 -0
- package/lib/live/transcript-grouping.d.ts +49 -0
- package/lib/live/transcript-grouping.d.ts.map +1 -0
- package/lib/live/transcript-grouping.js +287 -0
- package/lib/live/transcript-grouping.js.map +1 -0
- package/lib/live/transcript-grouping.mjs +283 -0
- package/lib/live/transcript-grouping.mjs.map +1 -0
- package/lib/live/webrtc.d.mts +13 -0
- package/lib/live/webrtc.d.mts.map +1 -0
- package/lib/live/webrtc.d.ts +13 -0
- package/lib/live/webrtc.d.ts.map +1 -0
- package/lib/live/webrtc.js +16 -0
- package/lib/live/webrtc.js.map +1 -0
- package/lib/live/webrtc.mjs +10 -0
- package/lib/live/webrtc.mjs.map +1 -0
- package/lib/realtime/webrtc.d.mts +13 -0
- package/lib/realtime/webrtc.d.mts.map +1 -0
- package/lib/realtime/webrtc.d.ts +13 -0
- package/lib/realtime/webrtc.d.ts.map +1 -0
- package/lib/realtime/webrtc.js +16 -0
- package/lib/realtime/webrtc.js.map +1 -0
- package/lib/realtime/webrtc.mjs +10 -0
- package/lib/realtime/webrtc.mjs.map +1 -0
- package/lib/webrtc/connection.d.mts +40 -0
- package/lib/webrtc/connection.d.mts.map +1 -0
- package/lib/webrtc/connection.d.ts +40 -0
- package/lib/webrtc/connection.d.ts.map +1 -0
- package/lib/webrtc/connection.js +228 -0
- package/lib/webrtc/connection.js.map +1 -0
- package/lib/webrtc/connection.mjs +224 -0
- package/lib/webrtc/connection.mjs.map +1 -0
- package/lib/webrtc/data-channel.d.mts +32 -0
- package/lib/webrtc/data-channel.d.mts.map +1 -0
- package/lib/webrtc/data-channel.d.ts +32 -0
- package/lib/webrtc/data-channel.d.ts.map +1 -0
- package/lib/webrtc/data-channel.js +125 -0
- package/lib/webrtc/data-channel.js.map +1 -0
- package/lib/webrtc/data-channel.mjs +121 -0
- package/lib/webrtc/data-channel.mjs.map +1 -0
- package/lib/webrtc/errors.d.mts +19 -0
- package/lib/webrtc/errors.d.mts.map +1 -0
- package/lib/webrtc/errors.d.ts +19 -0
- package/lib/webrtc/errors.d.ts.map +1 -0
- package/lib/webrtc/errors.js +18 -0
- package/lib/webrtc/errors.js.map +1 -0
- package/lib/webrtc/errors.mjs +14 -0
- package/lib/webrtc/errors.mjs.map +1 -0
- package/lib/webrtc/subscriptions.d.mts +13 -0
- package/lib/webrtc/subscriptions.d.mts.map +1 -0
- package/lib/webrtc/subscriptions.d.ts +13 -0
- package/lib/webrtc/subscriptions.d.ts.map +1 -0
- package/lib/webrtc/subscriptions.js +62 -0
- package/lib/webrtc/subscriptions.js.map +1 -0
- package/lib/webrtc/subscriptions.mjs +58 -0
- package/lib/webrtc/subscriptions.mjs.map +1 -0
- package/lib/webrtc/types.d.mts +99 -0
- package/lib/webrtc/types.d.mts.map +1 -0
- package/lib/webrtc/types.d.ts +99 -0
- package/lib/webrtc/types.d.ts.map +1 -0
- package/lib/webrtc/types.js +3 -0
- package/lib/webrtc/types.js.map +1 -0
- package/lib/webrtc/types.mjs +2 -0
- package/lib/webrtc/types.mjs.map +1 -0
- package/live/webrtc.d.mts +3 -0
- package/live/webrtc.d.mts.map +1 -0
- package/live/webrtc.d.ts +3 -0
- package/live/webrtc.d.ts.map +1 -0
- package/live/webrtc.js +8 -0
- package/live/webrtc.js.map +1 -0
- package/live/webrtc.mjs +2 -0
- package/live/webrtc.mjs.map +1 -0
- package/package.json +11 -1
- package/realtime/webrtc.d.mts +3 -0
- package/realtime/webrtc.d.mts.map +1 -0
- package/realtime/webrtc.d.ts +3 -0
- package/realtime/webrtc.d.ts.map +1 -0
- package/realtime/webrtc.js +8 -0
- package/realtime/webrtc.js.map +1 -0
- package/realtime/webrtc.mjs +2 -0
- package/realtime/webrtc.mjs.map +1 -0
- package/resources/beta/responses/responses.d.mts +48 -0
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +48 -0
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/conversations/items.d.mts +16 -0
- package/resources/conversations/items.d.mts.map +1 -1
- package/resources/conversations/items.d.ts +16 -0
- package/resources/conversations/items.d.ts.map +1 -1
- package/resources/index.d.mts +1 -0
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/live/forks/forks.d.mts +110 -0
- package/resources/live/forks/forks.d.mts.map +1 -0
- package/resources/live/forks/forks.d.ts +110 -0
- package/resources/live/forks/forks.d.ts.map +1 -0
- package/resources/live/forks/forks.js +9 -0
- package/resources/live/forks/forks.js.map +1 -0
- package/resources/live/forks/forks.mjs +5 -0
- package/resources/live/forks/forks.mjs.map +1 -0
- package/resources/live/forks/index.d.mts +4 -0
- package/resources/live/forks/index.d.mts.map +1 -0
- package/resources/live/forks/index.d.ts +4 -0
- package/resources/live/forks/index.d.ts.map +1 -0
- package/resources/live/forks/index.js +7 -0
- package/resources/live/forks/index.js.map +1 -0
- package/resources/live/forks/index.mjs +3 -0
- package/resources/live/forks/index.mjs.map +1 -0
- package/resources/live/forks/internal-base.d.mts +73 -0
- package/resources/live/forks/internal-base.d.mts.map +1 -0
- package/resources/live/forks/internal-base.d.ts +73 -0
- package/resources/live/forks/internal-base.d.ts.map +1 -0
- package/resources/live/forks/internal-base.js +49 -0
- package/resources/live/forks/internal-base.js.map +1 -0
- package/resources/live/forks/internal-base.mjs +43 -0
- package/resources/live/forks/internal-base.mjs.map +1 -0
- package/resources/live/forks/ws-base.d.mts +109 -0
- package/resources/live/forks/ws-base.d.mts.map +1 -0
- package/resources/live/forks/ws-base.d.ts +109 -0
- package/resources/live/forks/ws-base.d.ts.map +1 -0
- package/resources/live/forks/ws-base.js +476 -0
- package/resources/live/forks/ws-base.js.map +1 -0
- package/resources/live/forks/ws-base.mjs +472 -0
- package/resources/live/forks/ws-base.mjs.map +1 -0
- package/resources/live/forks/ws.d.mts +13 -0
- package/resources/live/forks/ws.d.mts.map +1 -0
- package/resources/live/forks/ws.d.ts +13 -0
- package/resources/live/forks/ws.d.ts.map +1 -0
- package/resources/live/forks/ws.js +34 -0
- package/resources/live/forks/ws.js.map +1 -0
- package/resources/live/forks/ws.mjs +29 -0
- package/resources/live/forks/ws.mjs.map +1 -0
- package/resources/live/forks.d.mts +2 -0
- package/resources/live/forks.d.mts.map +1 -0
- package/resources/live/forks.d.ts +2 -0
- package/resources/live/forks.d.ts.map +1 -0
- package/resources/live/forks.js +6 -0
- package/resources/live/forks.js.map +1 -0
- package/resources/live/forks.mjs +3 -0
- package/resources/live/forks.mjs.map +1 -0
- package/resources/live/index.d.mts +7 -0
- package/resources/live/index.d.mts.map +1 -0
- package/resources/live/index.d.ts +7 -0
- package/resources/live/index.d.ts.map +1 -0
- package/resources/live/index.js +13 -0
- package/resources/live/index.js.map +1 -0
- package/resources/live/index.mjs +6 -0
- package/resources/live/index.mjs.map +1 -0
- package/resources/live/internal-base.d.mts +71 -0
- package/resources/live/internal-base.d.mts.map +1 -0
- package/resources/live/internal-base.d.ts +71 -0
- package/resources/live/internal-base.d.ts.map +1 -0
- package/resources/live/internal-base.js +48 -0
- package/resources/live/internal-base.js.map +1 -0
- package/resources/live/internal-base.mjs +42 -0
- package/resources/live/internal-base.mjs.map +1 -0
- package/resources/live/live.d.mts +1864 -0
- package/resources/live/live.d.mts.map +1 -0
- package/resources/live/live.d.ts +1864 -0
- package/resources/live/live.d.ts.map +1 -0
- package/resources/live/live.js +40 -0
- package/resources/live/live.js.map +1 -0
- package/resources/live/live.mjs +35 -0
- package/resources/live/live.mjs.map +1 -0
- package/resources/live/sessions.d.mts +254 -0
- package/resources/live/sessions.d.mts.map +1 -0
- package/resources/live/sessions.d.ts +254 -0
- package/resources/live/sessions.d.ts.map +1 -0
- package/resources/live/sessions.js +118 -0
- package/resources/live/sessions.js.map +1 -0
- package/resources/live/sessions.mjs +114 -0
- package/resources/live/sessions.mjs.map +1 -0
- package/resources/live/sideband/index.d.mts +4 -0
- package/resources/live/sideband/index.d.mts.map +1 -0
- package/resources/live/sideband/index.d.ts +4 -0
- package/resources/live/sideband/index.d.ts.map +1 -0
- package/resources/live/sideband/index.js +7 -0
- package/resources/live/sideband/index.js.map +1 -0
- package/resources/live/sideband/index.mjs +3 -0
- package/resources/live/sideband/index.mjs.map +1 -0
- package/resources/live/sideband/internal-base.d.mts +73 -0
- package/resources/live/sideband/internal-base.d.mts.map +1 -0
- package/resources/live/sideband/internal-base.d.ts +73 -0
- package/resources/live/sideband/internal-base.d.ts.map +1 -0
- package/resources/live/sideband/internal-base.js +49 -0
- package/resources/live/sideband/internal-base.js.map +1 -0
- package/resources/live/sideband/internal-base.mjs +43 -0
- package/resources/live/sideband/internal-base.mjs.map +1 -0
- package/resources/live/sideband/sideband.d.mts +25 -0
- package/resources/live/sideband/sideband.d.mts.map +1 -0
- package/resources/live/sideband/sideband.d.ts +25 -0
- package/resources/live/sideband/sideband.d.ts.map +1 -0
- package/resources/live/sideband/sideband.js +9 -0
- package/resources/live/sideband/sideband.js.map +1 -0
- package/resources/live/sideband/sideband.mjs +5 -0
- package/resources/live/sideband/sideband.mjs.map +1 -0
- package/resources/live/sideband/ws-base.d.mts +114 -0
- package/resources/live/sideband/ws-base.d.mts.map +1 -0
- package/resources/live/sideband/ws-base.d.ts +114 -0
- package/resources/live/sideband/ws-base.d.ts.map +1 -0
- package/resources/live/sideband/ws-base.js +476 -0
- package/resources/live/sideband/ws-base.js.map +1 -0
- package/resources/live/sideband/ws-base.mjs +472 -0
- package/resources/live/sideband/ws-base.mjs.map +1 -0
- package/resources/live/sideband/ws.d.mts +13 -0
- package/resources/live/sideband/ws.d.mts.map +1 -0
- package/resources/live/sideband/ws.d.ts +13 -0
- package/resources/live/sideband/ws.d.ts.map +1 -0
- package/resources/live/sideband/ws.js +34 -0
- package/resources/live/sideband/ws.js.map +1 -0
- package/resources/live/sideband/ws.mjs +29 -0
- package/resources/live/sideband/ws.mjs.map +1 -0
- package/resources/live/sideband.d.mts +2 -0
- package/resources/live/sideband.d.mts.map +1 -0
- package/resources/live/sideband.d.ts +2 -0
- package/resources/live/sideband.d.ts.map +1 -0
- package/resources/live/sideband.js +6 -0
- package/resources/live/sideband.js.map +1 -0
- package/resources/live/sideband.mjs +3 -0
- package/resources/live/sideband.mjs.map +1 -0
- package/resources/live/ws-base.d.mts +106 -0
- package/resources/live/ws-base.d.mts.map +1 -0
- package/resources/live/ws-base.d.ts +106 -0
- package/resources/live/ws-base.d.ts.map +1 -0
- package/resources/live/ws-base.js +476 -0
- package/resources/live/ws-base.js.map +1 -0
- package/resources/live/ws-base.mjs +472 -0
- package/resources/live/ws-base.mjs.map +1 -0
- package/resources/live/ws.d.mts +13 -0
- package/resources/live/ws.d.mts.map +1 -0
- package/resources/live/ws.d.ts +13 -0
- package/resources/live/ws.d.ts.map +1 -0
- package/resources/live/ws.js +34 -0
- package/resources/live/ws.js.map +1 -0
- package/resources/live/ws.mjs +29 -0
- package/resources/live/ws.mjs.map +1 -0
- package/resources/live.d.mts +2 -0
- package/resources/live.d.mts.map +1 -0
- package/resources/live.d.ts +2 -0
- package/resources/live.d.ts.map +1 -0
- package/resources/live.js +6 -0
- package/resources/live.js.map +1 -0
- package/resources/live.mjs +3 -0
- package/resources/live.mjs.map +1 -0
- package/resources/responses/responses.d.mts +48 -0
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +48 -0
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/webhooks/webhooks.d.mts +72 -5
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts +72 -5
- package/resources/webhooks/webhooks.d.ts.map +1 -1
- package/src/client.ts +5 -0
- package/src/helpers/live.ts +8 -0
- package/src/lib/live/transcript-grouper.ts +303 -0
- package/src/lib/live/transcript-grouping.ts +362 -0
- package/src/lib/live/webrtc.ts +23 -0
- package/src/lib/realtime/webrtc.ts +20 -0
- package/src/lib/webrtc/connection.ts +309 -0
- package/src/lib/webrtc/data-channel.ts +144 -0
- package/src/lib/webrtc/errors.ts +38 -0
- package/src/lib/webrtc/subscriptions.ts +62 -0
- package/src/lib/webrtc/types.ts +109 -0
- package/src/live/webrtc.ts +10 -0
- package/src/realtime/webrtc.ts +10 -0
- package/src/resources/beta/responses/responses.ts +60 -0
- package/src/resources/conversations/items.ts +20 -0
- package/src/resources/index.ts +1 -0
- package/src/resources/live/api.md +87 -0
- package/src/resources/live/forks/forks.ts +169 -0
- package/src/resources/live/forks/index.ts +5 -0
- package/src/resources/live/forks/internal-base.ts +107 -0
- package/src/resources/live/forks/ws-base.ts +611 -0
- package/src/resources/live/forks/ws.ts +46 -0
- package/src/resources/live/forks.ts +3 -0
- package/src/resources/live/index.ts +20 -0
- package/src/resources/live/internal-base.ts +104 -0
- package/src/resources/live/live.ts +2296 -0
- package/src/resources/live/sessions.ts +337 -0
- package/src/resources/live/sideband/index.ts +10 -0
- package/src/resources/live/sideband/internal-base.ts +107 -0
- package/src/resources/live/sideband/sideband.ts +58 -0
- package/src/resources/live/sideband/ws-base.ts +621 -0
- package/src/resources/live/sideband/ws.ts +46 -0
- package/src/resources/live/sideband.ts +3 -0
- package/src/resources/live/ws-base.ts +607 -0
- package/src/resources/live/ws.ts +42 -0
- package/src/resources/live.ts +3 -0
- package/src/resources/responses/responses.ts +60 -0
- package/src/resources/webhooks/api.md +1 -0
- package/src/resources/webhooks/webhooks.ts +82 -3
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.mjs","sourceRoot":"","sources":["../../src/lib/webrtc/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BrowserDataChannel, WebRTCConnectionEvent, WebRTCDataChannel } from "./types.mjs";
|
|
2
|
+
/** Typed protocol messages on an application-owned native RTCDataChannel. */
|
|
3
|
+
export declare class DataChannel<ClientEvent, ServerEvent extends {
|
|
4
|
+
type: string;
|
|
5
|
+
}> {
|
|
6
|
+
/** The borrowed native channel. dispose() never closes it. */
|
|
7
|
+
readonly dataChannel: BrowserDataChannel;
|
|
8
|
+
private readonly channel;
|
|
9
|
+
private readonly events;
|
|
10
|
+
private readonly connectionEvents;
|
|
11
|
+
private disposed;
|
|
12
|
+
/** Attaches listeners without negotiating, opening, or taking ownership of the channel. */
|
|
13
|
+
constructor(channel: WebRTCDataChannel);
|
|
14
|
+
/** Subscribes to one server event type with its generated payload; returns an independent unsubscribe function. */
|
|
15
|
+
on<Type extends ServerEvent['type']>(type: Type, handler: (event: Extract<ServerEvent, {
|
|
16
|
+
type: Type;
|
|
17
|
+
}>) => unknown): () => void;
|
|
18
|
+
/** Subscribes to future server events, including raw API errors; returns an unsubscribe function. */
|
|
19
|
+
onEvent(handler: (event: ServerEvent) => unknown): () => void;
|
|
20
|
+
/** Observes only this channel's local errors and lifecycle, not its owning peer connection. */
|
|
21
|
+
onConnectionEvent(handler: (event: WebRTCConnectionEvent) => unknown): () => void;
|
|
22
|
+
/** Sends immediately on an open channel. Throws on local failure; API acceptance is reported by server events. */
|
|
23
|
+
send(event: ClientEvent): void;
|
|
24
|
+
/** Detaches all SDK listeners and subscriptions, without closing the channel or stopping tracks. */
|
|
25
|
+
dispose(): void;
|
|
26
|
+
private assertActive;
|
|
27
|
+
private readonly onMessage;
|
|
28
|
+
private readonly onError;
|
|
29
|
+
private readonly onOpen;
|
|
30
|
+
private readonly onClose;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data-channel.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channel.d.mts","sourceRoot":"","sources":["../../src/lib/webrtc/data-channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAgB;AAE5F,6EAA6E;AAC7E,qBAAa,WAAW,CAAC,WAAW,EAAE,WAAW,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACxE,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8C;IAC/E,OAAO,CAAC,QAAQ,CAAS;IAEzB,2FAA2F;gBAC/E,OAAO,EAAE,iBAAiB;IAStC,mHAAmH;IACnH,EAAE,CAAC,IAAI,SAAS,WAAW,CAAC,MAAM,CAAC,EACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,KAAK,OAAO,GAChE,MAAM,IAAI;IAMb,qGAAqG;IACrG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,GAAG,MAAM,IAAI;IAK7D,+FAA+F;IAC/F,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,GAAG,MAAM,IAAI;IAKjF,kHAAkH;IAClH,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAgB9B,oGAAoG;IACpG,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CA8BxB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CActB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAIrB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;CACH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { BrowserDataChannel, WebRTCConnectionEvent, WebRTCDataChannel } from "./types.js";
|
|
2
|
+
/** Typed protocol messages on an application-owned native RTCDataChannel. */
|
|
3
|
+
export declare class DataChannel<ClientEvent, ServerEvent extends {
|
|
4
|
+
type: string;
|
|
5
|
+
}> {
|
|
6
|
+
/** The borrowed native channel. dispose() never closes it. */
|
|
7
|
+
readonly dataChannel: BrowserDataChannel;
|
|
8
|
+
private readonly channel;
|
|
9
|
+
private readonly events;
|
|
10
|
+
private readonly connectionEvents;
|
|
11
|
+
private disposed;
|
|
12
|
+
/** Attaches listeners without negotiating, opening, or taking ownership of the channel. */
|
|
13
|
+
constructor(channel: WebRTCDataChannel);
|
|
14
|
+
/** Subscribes to one server event type with its generated payload; returns an independent unsubscribe function. */
|
|
15
|
+
on<Type extends ServerEvent['type']>(type: Type, handler: (event: Extract<ServerEvent, {
|
|
16
|
+
type: Type;
|
|
17
|
+
}>) => unknown): () => void;
|
|
18
|
+
/** Subscribes to future server events, including raw API errors; returns an unsubscribe function. */
|
|
19
|
+
onEvent(handler: (event: ServerEvent) => unknown): () => void;
|
|
20
|
+
/** Observes only this channel's local errors and lifecycle, not its owning peer connection. */
|
|
21
|
+
onConnectionEvent(handler: (event: WebRTCConnectionEvent) => unknown): () => void;
|
|
22
|
+
/** Sends immediately on an open channel. Throws on local failure; API acceptance is reported by server events. */
|
|
23
|
+
send(event: ClientEvent): void;
|
|
24
|
+
/** Detaches all SDK listeners and subscriptions, without closing the channel or stopping tracks. */
|
|
25
|
+
dispose(): void;
|
|
26
|
+
private assertActive;
|
|
27
|
+
private readonly onMessage;
|
|
28
|
+
private readonly onError;
|
|
29
|
+
private readonly onOpen;
|
|
30
|
+
private readonly onClose;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channel.d.ts","sourceRoot":"","sources":["../../src/lib/webrtc/data-channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAgB;AAE5F,6EAA6E;AAC7E,qBAAa,WAAW,CAAC,WAAW,EAAE,WAAW,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACxE,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8C;IAC/E,OAAO,CAAC,QAAQ,CAAS;IAEzB,2FAA2F;gBAC/E,OAAO,EAAE,iBAAiB;IAStC,mHAAmH;IACnH,EAAE,CAAC,IAAI,SAAS,WAAW,CAAC,MAAM,CAAC,EACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,KAAK,OAAO,GAChE,MAAM,IAAI;IAMb,qGAAqG;IACrG,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,GAAG,MAAM,IAAI;IAK7D,+FAA+F;IAC/F,iBAAiB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,GAAG,MAAM,IAAI;IAKjF,kHAAkH;IAClH,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAgB9B,oGAAoG;IACpG,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CA8BxB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CActB;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAIrB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;CACH"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataChannel = void 0;
|
|
4
|
+
const errors_1 = require("./errors.js");
|
|
5
|
+
const subscriptions_1 = require("./subscriptions.js");
|
|
6
|
+
/** Typed protocol messages on an application-owned native RTCDataChannel. */
|
|
7
|
+
class DataChannel {
|
|
8
|
+
/** Attaches listeners without negotiating, opening, or taking ownership of the channel. */
|
|
9
|
+
constructor(channel) {
|
|
10
|
+
this.events = new subscriptions_1.Subscriptions();
|
|
11
|
+
this.connectionEvents = new subscriptions_1.Subscriptions();
|
|
12
|
+
this.disposed = false;
|
|
13
|
+
this.onMessage = (message) => {
|
|
14
|
+
if (this.disposed) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let event;
|
|
18
|
+
try {
|
|
19
|
+
const { data } = message;
|
|
20
|
+
if (typeof data !== 'string') {
|
|
21
|
+
throw new TypeError('Invalid protocol message.');
|
|
22
|
+
}
|
|
23
|
+
event = JSON.parse(data);
|
|
24
|
+
if (typeof event !== 'object' ||
|
|
25
|
+
event === null ||
|
|
26
|
+
Array.isArray(event) ||
|
|
27
|
+
typeof Object.getOwnPropertyDescriptor(event, 'type')?.value !== 'string') {
|
|
28
|
+
throw new TypeError('Invalid protocol message.');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// JSON SyntaxErrors can contain the payload. Do not retain their cause.
|
|
33
|
+
this.connectionEvents.emit({
|
|
34
|
+
type: 'error',
|
|
35
|
+
fatal: false,
|
|
36
|
+
error: new errors_1.WebRTCError('invalid_message', 'message', 'Received an invalid WebRTC protocol message.'),
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Like the generated SDK, accept future event types without a runtime schema registry.
|
|
41
|
+
this.events.emit(event);
|
|
42
|
+
};
|
|
43
|
+
this.onError = (cause) => {
|
|
44
|
+
if (this.disposed) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.connectionEvents.emit({
|
|
48
|
+
type: 'error',
|
|
49
|
+
fatal: false,
|
|
50
|
+
error: new errors_1.WebRTCError('transport_failed', 'transport', 'The WebRTC data channel reported an error.', cause),
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
this.onOpen = () => {
|
|
54
|
+
if (!this.disposed) {
|
|
55
|
+
this.connectionEvents.emit({ type: 'state.changed', state: 'connected' });
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
this.onClose = () => {
|
|
59
|
+
if (this.disposed) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.connectionEvents.emit({ type: 'closed', reason: 'remote' });
|
|
63
|
+
this.dispose();
|
|
64
|
+
};
|
|
65
|
+
this.channel = channel;
|
|
66
|
+
this.dataChannel = channel;
|
|
67
|
+
channel.addEventListener('message', this.onMessage);
|
|
68
|
+
channel.addEventListener('error', this.onError);
|
|
69
|
+
channel.addEventListener('open', this.onOpen);
|
|
70
|
+
channel.addEventListener('close', this.onClose);
|
|
71
|
+
}
|
|
72
|
+
/** Subscribes to one server event type with its generated payload; returns an independent unsubscribe function. */
|
|
73
|
+
on(type, handler) {
|
|
74
|
+
this.assertActive();
|
|
75
|
+
// The shared dispatcher matches the original discriminator before invoking this callback.
|
|
76
|
+
return this.events.add((event) => handler(event), type);
|
|
77
|
+
}
|
|
78
|
+
/** Subscribes to future server events, including raw API errors; returns an unsubscribe function. */
|
|
79
|
+
onEvent(handler) {
|
|
80
|
+
this.assertActive();
|
|
81
|
+
return this.events.add(handler);
|
|
82
|
+
}
|
|
83
|
+
/** Observes only this channel's local errors and lifecycle, not its owning peer connection. */
|
|
84
|
+
onConnectionEvent(handler) {
|
|
85
|
+
this.assertActive();
|
|
86
|
+
return this.connectionEvents.add(handler);
|
|
87
|
+
}
|
|
88
|
+
/** Sends immediately on an open channel. Throws on local failure; API acceptance is reported by server events. */
|
|
89
|
+
send(event) {
|
|
90
|
+
this.assertActive();
|
|
91
|
+
if (this.channel.readyState !== 'open') {
|
|
92
|
+
throw new errors_1.WebRTCError('not_open', 'send', 'The WebRTC data channel is not open.');
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
const data = JSON.stringify(event);
|
|
96
|
+
if (data === undefined) {
|
|
97
|
+
throw new TypeError('The event is not JSON serializable.');
|
|
98
|
+
}
|
|
99
|
+
this.channel.send(data);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
throw new errors_1.WebRTCError('send_failed', 'send', 'Could not send the WebRTC event.', error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/** Detaches all SDK listeners and subscriptions, without closing the channel or stopping tracks. */
|
|
106
|
+
dispose() {
|
|
107
|
+
if (this.disposed) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this.disposed = true;
|
|
111
|
+
this.channel.removeEventListener('message', this.onMessage);
|
|
112
|
+
this.channel.removeEventListener('error', this.onError);
|
|
113
|
+
this.channel.removeEventListener('open', this.onOpen);
|
|
114
|
+
this.channel.removeEventListener('close', this.onClose);
|
|
115
|
+
this.events.clear();
|
|
116
|
+
this.connectionEvents.clear();
|
|
117
|
+
}
|
|
118
|
+
assertActive() {
|
|
119
|
+
if (this.disposed) {
|
|
120
|
+
throw new errors_1.WebRTCError('invalid_state', 'transport', 'The WebRTC data-channel adapter is disposed.');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.DataChannel = DataChannel;
|
|
125
|
+
//# sourceMappingURL=data-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channel.js","sourceRoot":"","sources":["../../src/lib/webrtc/data-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { WebRTCError } from "./errors.mjs";
|
|
2
|
+
import { Subscriptions } from "./subscriptions.mjs";
|
|
3
|
+
/** Typed protocol messages on an application-owned native RTCDataChannel. */
|
|
4
|
+
export class DataChannel {
|
|
5
|
+
/** Attaches listeners without negotiating, opening, or taking ownership of the channel. */
|
|
6
|
+
constructor(channel) {
|
|
7
|
+
this.events = new Subscriptions();
|
|
8
|
+
this.connectionEvents = new Subscriptions();
|
|
9
|
+
this.disposed = false;
|
|
10
|
+
this.onMessage = (message) => {
|
|
11
|
+
if (this.disposed) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
let event;
|
|
15
|
+
try {
|
|
16
|
+
const { data } = message;
|
|
17
|
+
if (typeof data !== 'string') {
|
|
18
|
+
throw new TypeError('Invalid protocol message.');
|
|
19
|
+
}
|
|
20
|
+
event = JSON.parse(data);
|
|
21
|
+
if (typeof event !== 'object' ||
|
|
22
|
+
event === null ||
|
|
23
|
+
Array.isArray(event) ||
|
|
24
|
+
typeof Object.getOwnPropertyDescriptor(event, 'type')?.value !== 'string') {
|
|
25
|
+
throw new TypeError('Invalid protocol message.');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// JSON SyntaxErrors can contain the payload. Do not retain their cause.
|
|
30
|
+
this.connectionEvents.emit({
|
|
31
|
+
type: 'error',
|
|
32
|
+
fatal: false,
|
|
33
|
+
error: new WebRTCError('invalid_message', 'message', 'Received an invalid WebRTC protocol message.'),
|
|
34
|
+
});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// Like the generated SDK, accept future event types without a runtime schema registry.
|
|
38
|
+
this.events.emit(event);
|
|
39
|
+
};
|
|
40
|
+
this.onError = (cause) => {
|
|
41
|
+
if (this.disposed) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.connectionEvents.emit({
|
|
45
|
+
type: 'error',
|
|
46
|
+
fatal: false,
|
|
47
|
+
error: new WebRTCError('transport_failed', 'transport', 'The WebRTC data channel reported an error.', cause),
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
this.onOpen = () => {
|
|
51
|
+
if (!this.disposed) {
|
|
52
|
+
this.connectionEvents.emit({ type: 'state.changed', state: 'connected' });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
this.onClose = () => {
|
|
56
|
+
if (this.disposed) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.connectionEvents.emit({ type: 'closed', reason: 'remote' });
|
|
60
|
+
this.dispose();
|
|
61
|
+
};
|
|
62
|
+
this.channel = channel;
|
|
63
|
+
this.dataChannel = channel;
|
|
64
|
+
channel.addEventListener('message', this.onMessage);
|
|
65
|
+
channel.addEventListener('error', this.onError);
|
|
66
|
+
channel.addEventListener('open', this.onOpen);
|
|
67
|
+
channel.addEventListener('close', this.onClose);
|
|
68
|
+
}
|
|
69
|
+
/** Subscribes to one server event type with its generated payload; returns an independent unsubscribe function. */
|
|
70
|
+
on(type, handler) {
|
|
71
|
+
this.assertActive();
|
|
72
|
+
// The shared dispatcher matches the original discriminator before invoking this callback.
|
|
73
|
+
return this.events.add((event) => handler(event), type);
|
|
74
|
+
}
|
|
75
|
+
/** Subscribes to future server events, including raw API errors; returns an unsubscribe function. */
|
|
76
|
+
onEvent(handler) {
|
|
77
|
+
this.assertActive();
|
|
78
|
+
return this.events.add(handler);
|
|
79
|
+
}
|
|
80
|
+
/** Observes only this channel's local errors and lifecycle, not its owning peer connection. */
|
|
81
|
+
onConnectionEvent(handler) {
|
|
82
|
+
this.assertActive();
|
|
83
|
+
return this.connectionEvents.add(handler);
|
|
84
|
+
}
|
|
85
|
+
/** Sends immediately on an open channel. Throws on local failure; API acceptance is reported by server events. */
|
|
86
|
+
send(event) {
|
|
87
|
+
this.assertActive();
|
|
88
|
+
if (this.channel.readyState !== 'open') {
|
|
89
|
+
throw new WebRTCError('not_open', 'send', 'The WebRTC data channel is not open.');
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const data = JSON.stringify(event);
|
|
93
|
+
if (data === undefined) {
|
|
94
|
+
throw new TypeError('The event is not JSON serializable.');
|
|
95
|
+
}
|
|
96
|
+
this.channel.send(data);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
throw new WebRTCError('send_failed', 'send', 'Could not send the WebRTC event.', error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Detaches all SDK listeners and subscriptions, without closing the channel or stopping tracks. */
|
|
103
|
+
dispose() {
|
|
104
|
+
if (this.disposed) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.disposed = true;
|
|
108
|
+
this.channel.removeEventListener('message', this.onMessage);
|
|
109
|
+
this.channel.removeEventListener('error', this.onError);
|
|
110
|
+
this.channel.removeEventListener('open', this.onOpen);
|
|
111
|
+
this.channel.removeEventListener('close', this.onClose);
|
|
112
|
+
this.events.clear();
|
|
113
|
+
this.connectionEvents.clear();
|
|
114
|
+
}
|
|
115
|
+
assertActive() {
|
|
116
|
+
if (this.disposed) {
|
|
117
|
+
throw new WebRTCError('invalid_state', 'transport', 'The WebRTC data-channel adapter is disposed.');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=data-channel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-channel.mjs","sourceRoot":"","sources":["../../src/lib/webrtc/data-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OpenAIError } from "../../core/error.mjs";
|
|
2
|
+
/** Stable classifications of local WebRTC failures, independent of API error codes. */
|
|
3
|
+
export type WebRTCErrorCode = 'invalid_state' | 'not_open' | 'send_failed' | 'invalid_message' | 'signaling_failed' | 'negotiation_failed' | 'transport_failed' | 'connection_closed' | 'timeout' | 'aborted' | 'unsupported_environment';
|
|
4
|
+
/** The operation in which a local error originated. */
|
|
5
|
+
export type WebRTCErrorPhase = 'offer' | 'signaling' | 'answer' | 'transport' | 'message' | 'send';
|
|
6
|
+
/** A local SDK/transport failure. Server error events remain unchanged in onEvent(). */
|
|
7
|
+
export declare class WebRTCError extends OpenAIError {
|
|
8
|
+
/** Distinguishes this error from API errors and application callback exceptions. */
|
|
9
|
+
readonly name = "WebRTCError";
|
|
10
|
+
/** Stable failure classification, suitable for detecting expected cancellation. */
|
|
11
|
+
readonly code: WebRTCErrorCode;
|
|
12
|
+
/** The failing setup, transport, or message operation. */
|
|
13
|
+
readonly phase: WebRTCErrorPhase;
|
|
14
|
+
/** Original exception or abort reason. It may contain application-sensitive details; do not log blindly. */
|
|
15
|
+
readonly cause: unknown;
|
|
16
|
+
/** Creates a safe diagnostic while retaining the original cause separately. */
|
|
17
|
+
constructor(code: WebRTCErrorCode, phase: WebRTCErrorPhase, message: string, cause?: unknown);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.mts","sourceRoot":"","sources":["../../src/lib/webrtc/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAE/C,uFAAuF;AACvF,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,UAAU,GACV,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,yBAAyB,CAAC;AAE9B,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnG,wFAAwF;AACxF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,oFAAoF;IACpF,SAAkB,IAAI,iBAAiB;IACvC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,+EAA+E;gBACnE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7F"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OpenAIError } from "../../core/error.js";
|
|
2
|
+
/** Stable classifications of local WebRTC failures, independent of API error codes. */
|
|
3
|
+
export type WebRTCErrorCode = 'invalid_state' | 'not_open' | 'send_failed' | 'invalid_message' | 'signaling_failed' | 'negotiation_failed' | 'transport_failed' | 'connection_closed' | 'timeout' | 'aborted' | 'unsupported_environment';
|
|
4
|
+
/** The operation in which a local error originated. */
|
|
5
|
+
export type WebRTCErrorPhase = 'offer' | 'signaling' | 'answer' | 'transport' | 'message' | 'send';
|
|
6
|
+
/** A local SDK/transport failure. Server error events remain unchanged in onEvent(). */
|
|
7
|
+
export declare class WebRTCError extends OpenAIError {
|
|
8
|
+
/** Distinguishes this error from API errors and application callback exceptions. */
|
|
9
|
+
readonly name = "WebRTCError";
|
|
10
|
+
/** Stable failure classification, suitable for detecting expected cancellation. */
|
|
11
|
+
readonly code: WebRTCErrorCode;
|
|
12
|
+
/** The failing setup, transport, or message operation. */
|
|
13
|
+
readonly phase: WebRTCErrorPhase;
|
|
14
|
+
/** Original exception or abort reason. It may contain application-sensitive details; do not log blindly. */
|
|
15
|
+
readonly cause: unknown;
|
|
16
|
+
/** Creates a safe diagnostic while retaining the original cause separately. */
|
|
17
|
+
constructor(code: WebRTCErrorCode, phase: WebRTCErrorPhase, message: string, cause?: unknown);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/webrtc/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,4BAAyB;AAE/C,uFAAuF;AACvF,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,UAAU,GACV,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,yBAAyB,CAAC;AAE9B,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnG,wFAAwF;AACxF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,oFAAoF;IACpF,SAAkB,IAAI,iBAAiB;IACvC,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,+EAA+E;gBACnE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAM7F"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebRTCError = void 0;
|
|
4
|
+
const error_1 = require("../../core/error.js");
|
|
5
|
+
/** A local SDK/transport failure. Server error events remain unchanged in onEvent(). */
|
|
6
|
+
class WebRTCError extends error_1.OpenAIError {
|
|
7
|
+
/** Creates a safe diagnostic while retaining the original cause separately. */
|
|
8
|
+
constructor(code, phase, message, cause) {
|
|
9
|
+
super(message);
|
|
10
|
+
/** Distinguishes this error from API errors and application callback exceptions. */
|
|
11
|
+
this.name = 'WebRTCError';
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.phase = phase;
|
|
14
|
+
this.cause = cause;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.WebRTCError = WebRTCError;
|
|
18
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/webrtc/errors.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAmB/C,wFAAwF;AACxF,MAAa,WAAY,SAAQ,mBAAW;IAU1C,+EAA+E;IAC/E,YAAY,IAAqB,EAAE,KAAuB,EAAE,OAAe,EAAE,KAAe;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC;QAXjB,oFAAoF;QAClE,SAAI,GAAG,aAAa,CAAC;QAWrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAjBD,kCAiBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OpenAIError } from "../../core/error.mjs";
|
|
2
|
+
/** A local SDK/transport failure. Server error events remain unchanged in onEvent(). */
|
|
3
|
+
export class WebRTCError extends OpenAIError {
|
|
4
|
+
/** Creates a safe diagnostic while retaining the original cause separately. */
|
|
5
|
+
constructor(code, phase, message, cause) {
|
|
6
|
+
super(message);
|
|
7
|
+
/** Distinguishes this error from API errors and application callback exceptions. */
|
|
8
|
+
this.name = 'WebRTCError';
|
|
9
|
+
this.code = code;
|
|
10
|
+
this.phase = phase;
|
|
11
|
+
this.cause = cause;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=errors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../../src/lib/webrtc/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAmB/C,wFAAwF;AACxF,MAAM,OAAO,WAAY,SAAQ,WAAW;IAU1C,+EAA+E;IAC/E,YAAY,IAAqB,EAAE,KAAuB,EAAE,OAAe,EAAE,KAAe;QAC1F,KAAK,CAAC,OAAO,CAAC,CAAC;QAXjB,oFAAoF;QAClE,SAAI,GAAG,aAAa,CAAC;QAWrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Internal callback subscriptions with optional discriminator filters; no buffering or replay. */
|
|
2
|
+
export declare class Subscriptions<Event extends {
|
|
3
|
+
type: string;
|
|
4
|
+
}> {
|
|
5
|
+
private readonly listeners;
|
|
6
|
+
/** Registers independently, including when the same function is supplied twice. */
|
|
7
|
+
add(listener: (event: Event) => unknown, type?: Event['type']): () => void;
|
|
8
|
+
/** Delivers in registration order, isolating application exceptions from the transport. */
|
|
9
|
+
emit(event: Event): void;
|
|
10
|
+
/** Releases all subscriber references. Existing unsubscribe functions remain safe. */
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=subscriptions.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.d.mts","sourceRoot":"","sources":["../../src/lib/webrtc/subscriptions.ts"],"names":[],"mappings":"AAmBA,mGAAmG;AACnG,qBAAa,aAAa,CAAC,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGrB;IAEL,mFAAmF;IACnF,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;IAQ1E,2FAA2F;IAC3F,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAqBxB,sFAAsF;IACtF,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Internal callback subscriptions with optional discriminator filters; no buffering or replay. */
|
|
2
|
+
export declare class Subscriptions<Event extends {
|
|
3
|
+
type: string;
|
|
4
|
+
}> {
|
|
5
|
+
private readonly listeners;
|
|
6
|
+
/** Registers independently, including when the same function is supplied twice. */
|
|
7
|
+
add(listener: (event: Event) => unknown, type?: Event['type']): () => void;
|
|
8
|
+
/** Delivers in registration order, isolating application exceptions from the transport. */
|
|
9
|
+
emit(event: Event): void;
|
|
10
|
+
/** Releases all subscriber references. Existing unsubscribe functions remain safe. */
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=subscriptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/lib/webrtc/subscriptions.ts"],"names":[],"mappings":"AAmBA,mGAAmG;AACnG,qBAAa,aAAa,CAAC,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGrB;IAEL,mFAAmF;IACnF,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI;IAQ1E,2FAA2F;IAC3F,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAqBxB,sFAAsF;IACtF,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Subscriptions = void 0;
|
|
4
|
+
function reportApplicationError(error) {
|
|
5
|
+
const host = globalThis;
|
|
6
|
+
if (typeof host.reportError === 'function') {
|
|
7
|
+
host.reportError(error);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
setTimeout(() => {
|
|
11
|
+
throw error;
|
|
12
|
+
}, 0);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
async function observeResult(result) {
|
|
16
|
+
try {
|
|
17
|
+
await result;
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
reportApplicationError(error);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** Internal callback subscriptions with optional discriminator filters; no buffering or replay. */
|
|
24
|
+
class Subscriptions {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.listeners = new Set();
|
|
27
|
+
}
|
|
28
|
+
/** Registers independently, including when the same function is supplied twice. */
|
|
29
|
+
add(listener, type) {
|
|
30
|
+
const registration = { listener, type };
|
|
31
|
+
this.listeners.add(registration);
|
|
32
|
+
return () => {
|
|
33
|
+
this.listeners.delete(registration);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** Delivers in registration order, isolating application exceptions from the transport. */
|
|
37
|
+
emit(event) {
|
|
38
|
+
const { type } = event;
|
|
39
|
+
const snapshot = [...this.listeners];
|
|
40
|
+
for (const registration of snapshot) {
|
|
41
|
+
if (!this.listeners.has(registration) ||
|
|
42
|
+
(registration.type !== undefined && registration.type !== type)) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const result = registration.listener(event);
|
|
47
|
+
if (result !== null && (typeof result === 'object' || typeof result === 'function')) {
|
|
48
|
+
void observeResult(result);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
reportApplicationError(error);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Releases all subscriber references. Existing unsubscribe functions remain safe. */
|
|
57
|
+
clear() {
|
|
58
|
+
this.listeners.clear();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.Subscriptions = Subscriptions;
|
|
62
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/lib/webrtc/subscriptions.ts"],"names":[],"mappings":";;;AAAA,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,IAAI,GAAG,UAA4E,CAAC;IAC1F,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,KAAK,CAAC;QACd,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAe;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAa,aAAa;IAA1B;QACmB,cAAS,GAAG,IAAI,GAAG,EAGhC,CAAC;IAqCP,CAAC;IAnCC,mFAAmF;IACnF,GAAG,CAAC,QAAmC,EAAE,IAAoB;QAC3D,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,2FAA2F;IAC3F,IAAI,CAAC,KAAY;QACf,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,CAAC;YACpC,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;gBACjC,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,CAAC,EAC/D,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;oBACpF,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAzCD,sCAyCC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
function reportApplicationError(error) {
|
|
2
|
+
const host = globalThis;
|
|
3
|
+
if (typeof host.reportError === 'function') {
|
|
4
|
+
host.reportError(error);
|
|
5
|
+
}
|
|
6
|
+
else {
|
|
7
|
+
setTimeout(() => {
|
|
8
|
+
throw error;
|
|
9
|
+
}, 0);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async function observeResult(result) {
|
|
13
|
+
try {
|
|
14
|
+
await result;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
reportApplicationError(error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Internal callback subscriptions with optional discriminator filters; no buffering or replay. */
|
|
21
|
+
export class Subscriptions {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.listeners = new Set();
|
|
24
|
+
}
|
|
25
|
+
/** Registers independently, including when the same function is supplied twice. */
|
|
26
|
+
add(listener, type) {
|
|
27
|
+
const registration = { listener, type };
|
|
28
|
+
this.listeners.add(registration);
|
|
29
|
+
return () => {
|
|
30
|
+
this.listeners.delete(registration);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Delivers in registration order, isolating application exceptions from the transport. */
|
|
34
|
+
emit(event) {
|
|
35
|
+
const { type } = event;
|
|
36
|
+
const snapshot = [...this.listeners];
|
|
37
|
+
for (const registration of snapshot) {
|
|
38
|
+
if (!this.listeners.has(registration) ||
|
|
39
|
+
(registration.type !== undefined && registration.type !== type)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const result = registration.listener(event);
|
|
44
|
+
if (result !== null && (typeof result === 'object' || typeof result === 'function')) {
|
|
45
|
+
void observeResult(result);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
reportApplicationError(error);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Releases all subscriber references. Existing unsubscribe functions remain safe. */
|
|
54
|
+
clear() {
|
|
55
|
+
this.listeners.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=subscriptions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.mjs","sourceRoot":"","sources":["../../src/lib/webrtc/subscriptions.ts"],"names":[],"mappings":"AAAA,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,IAAI,GAAG,UAA4E,CAAC;IAC1F,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,KAAK,CAAC;QACd,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAe;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAM,OAAO,aAAa;IAA1B;QACmB,cAAS,GAAG,IAAI,GAAG,EAGhC,CAAC;IAqCP,CAAC;IAnCC,mFAAmF;IACnF,GAAG,CAAC,QAAmC,EAAE,IAAoB;QAC3D,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,2FAA2F;IAC3F,IAAI,CAAC,KAAY;QACf,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,CAAC;YACpC,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;gBACjC,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,CAAC,EAC/D,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;oBACpF,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
|