@livekit/rtc-node 0.13.31 → 0.13.33

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 (120) hide show
  1. package/dist/async_queue.d.ts +2 -3
  2. package/dist/audio_filter.d.ts +2 -3
  3. package/dist/audio_frame.d.ts +5 -6
  4. package/dist/audio_mixer.d.ts +3 -6
  5. package/dist/audio_resampler.d.ts +3 -6
  6. package/dist/audio_source.d.ts +5 -6
  7. package/dist/{audio_stream-B4hGVcKz.d.cts → audio_stream-CnODFAmo.d.cts} +26 -0
  8. package/dist/audio_stream.cjs +31 -18
  9. package/dist/audio_stream.cjs.map +1 -1
  10. package/dist/audio_stream.d.cts +1 -1
  11. package/dist/audio_stream.d.ts +61 -18
  12. package/dist/audio_stream.d.ts.map +1 -1
  13. package/dist/data_streams/index.d.ts +4 -3
  14. package/dist/data_streams/stream_reader.d.ts +48 -2
  15. package/dist/data_streams/stream_writer.d.ts +5 -7
  16. package/dist/data_streams/types.d.ts +41 -2
  17. package/dist/e2ee.d.ts +8 -10
  18. package/dist/ffi_client.d.ts +8 -10
  19. package/dist/frame_processor.d.ts +8 -11
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +2 -2
  22. package/dist/index.d.ts +22 -17
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -107
  25. package/dist/log.d.ts +5 -7
  26. package/dist/participant.cjs +7 -2
  27. package/dist/participant.cjs.map +1 -1
  28. package/dist/participant.d.cts +1 -1
  29. package/dist/participant.d.ts +152 -18
  30. package/dist/participant.d.ts.map +1 -1
  31. package/dist/room.cjs +7 -0
  32. package/dist/room.cjs.map +1 -1
  33. package/dist/room.d.cts +2 -2
  34. package/dist/room.d.ts +220 -18
  35. package/dist/room.d.ts.map +1 -1
  36. package/dist/rpc.d.ts +7 -9
  37. package/dist/track.cjs +16 -0
  38. package/dist/track.cjs.map +1 -1
  39. package/dist/track.d.cts +1 -1
  40. package/dist/track.d.ts +67 -18
  41. package/dist/track.d.ts.map +1 -1
  42. package/dist/track_publication.d.cts +1 -1
  43. package/dist/track_publication.d.ts +45 -18
  44. package/dist/transcription.d.ts +3 -4
  45. package/dist/types.d.ts +2 -3
  46. package/dist/utils.d.ts +4 -5
  47. package/dist/version.cjs +1 -1
  48. package/dist/version.cjs.map +1 -1
  49. package/dist/version.d.cts +1 -1
  50. package/dist/version.d.ts +2 -3
  51. package/dist/video_frame.d.ts +4 -5
  52. package/dist/video_source.d.ts +6 -8
  53. package/dist/video_stream.d.cts +1 -1
  54. package/dist/video_stream.d.ts +5 -22
  55. package/package.json +5 -6
  56. package/src/audio_stream.ts +37 -24
  57. package/src/audio_stream_room_lifecycle.test.ts +50 -3
  58. package/src/index.ts +8 -1
  59. package/src/participant.ts +7 -1
  60. package/src/room.ts +14 -0
  61. package/src/tests/e2e.test.ts +137 -16
  62. package/src/track.ts +17 -0
  63. package/src/version.ts +1 -1
  64. package/dist/async_queue.js +0 -56
  65. package/dist/async_queue.js.map +0 -1
  66. package/dist/audio_filter.js +0 -24
  67. package/dist/audio_filter.js.map +0 -1
  68. package/dist/audio_frame.js +0 -78
  69. package/dist/audio_frame.js.map +0 -1
  70. package/dist/audio_mixer.js +0 -269
  71. package/dist/audio_mixer.js.map +0 -1
  72. package/dist/audio_resampler.js +0 -154
  73. package/dist/audio_resampler.js.map +0 -1
  74. package/dist/audio_source.js +0 -134
  75. package/dist/audio_source.js.map +0 -1
  76. package/dist/audio_stream-DEG1JKge.d.ts +0 -498
  77. package/dist/audio_stream.js +0 -109
  78. package/dist/audio_stream.js.map +0 -1
  79. package/dist/data_streams/index.js +0 -3
  80. package/dist/data_streams/index.js.map +0 -1
  81. package/dist/data_streams/stream_reader.js +0 -124
  82. package/dist/data_streams/stream_reader.js.map +0 -1
  83. package/dist/data_streams/stream_writer.js +0 -26
  84. package/dist/data_streams/stream_writer.js.map +0 -1
  85. package/dist/data_streams/types.js +0 -1
  86. package/dist/data_streams/types.js.map +0 -1
  87. package/dist/e2ee.js +0 -251
  88. package/dist/e2ee.js.map +0 -1
  89. package/dist/ffi_client.js +0 -89
  90. package/dist/ffi_client.js.map +0 -1
  91. package/dist/frame_processor.js +0 -29
  92. package/dist/frame_processor.js.map +0 -1
  93. package/dist/index.js.map +0 -1
  94. package/dist/log.js +0 -9
  95. package/dist/log.js.map +0 -1
  96. package/dist/participant.js +0 -715
  97. package/dist/participant.js.map +0 -1
  98. package/dist/room.js +0 -899
  99. package/dist/room.js.map +0 -1
  100. package/dist/rpc.js +0 -65
  101. package/dist/rpc.js.map +0 -1
  102. package/dist/track.js +0 -218
  103. package/dist/track.js.map +0 -1
  104. package/dist/track_publication.js +0 -100
  105. package/dist/track_publication.js.map +0 -1
  106. package/dist/transcription.js +0 -1
  107. package/dist/transcription.js.map +0 -1
  108. package/dist/types-_PdPVish.d.ts +0 -87
  109. package/dist/types.js +0 -1
  110. package/dist/types.js.map +0 -1
  111. package/dist/utils.js +0 -35
  112. package/dist/utils.js.map +0 -1
  113. package/dist/version.js +0 -5
  114. package/dist/version.js.map +0 -1
  115. package/dist/video_frame.js +0 -207
  116. package/dist/video_frame.js.map +0 -1
  117. package/dist/video_source.js +0 -53
  118. package/dist/video_source.js.map +0 -1
  119. package/dist/video_stream.js +0 -70
  120. package/dist/video_stream.js.map +0 -1
package/dist/room.d.ts CHANGED
@@ -1,18 +1,220 @@
1
- import '@livekit/rtc-ffi-bindings';
2
- import '@livekit/typed-emitter';
3
- import './types-_PdPVish.js';
4
- import './e2ee.js';
5
- export { C as ConnectError, j as Room, o as RoomCallbacks, k as RoomEvent, l as RoomOptions, m as RtcConfiguration, p as defaultRoomOptions, q as defaultRtcConfiguration } from './audio_stream-DEG1JKge.js';
6
- import './types.js';
7
- import 'node:stream/web';
8
- import './audio_frame.js';
9
- import './frame_processor.js';
10
- import './video_frame.js';
11
- import './audio_source.js';
12
- import './ffi_client.js';
13
- import '@livekit/mutex';
14
- import 'node:fs';
15
- import './data_streams/stream_writer.js';
16
- import './rpc.js';
17
- import './transcription.js';
18
- import './video_source.js';
1
+ import { type EncryptionType } from '@livekit/rtc-ffi-bindings';
2
+ import { DisconnectReason } from '@livekit/rtc-ffi-bindings';
3
+ import { type ConnectionQuality, ConnectionState, ContinualGatheringPolicy, type DataPacketKind, RoomOptions as FfiRoomOptions, type IceServer, IceTransportType, RoomDataStreamOptions, type RoomInfo, type SimulateScenarioKind } from '@livekit/rtc-ffi-bindings';
4
+ import type { TypedEventEmitter as TypedEmitter } from '@livekit/typed-emitter';
5
+ import type { ByteStreamHandler, TextStreamHandler } from './data_streams/types.js';
6
+ import type { E2EEOptions } from './e2ee.js';
7
+ import { E2EEManager } from './e2ee.js';
8
+ import type { Participant } from './participant.js';
9
+ import { LocalParticipant, RemoteParticipant } from './participant.js';
10
+ import type { LocalTrack, RemoteTrack } from './track.js';
11
+ import type { LocalTrackPublication, TrackPublication } from './track_publication.js';
12
+ import { RemoteTrackPublication } from './track_publication.js';
13
+ import type { ChatMessage } from './types.js';
14
+ export { RoomDataStreamOptions };
15
+ export interface RtcConfiguration {
16
+ iceTransportType: IceTransportType;
17
+ continualGatheringPolicy: ContinualGatheringPolicy;
18
+ iceServers: IceServer[];
19
+ }
20
+ export declare const defaultRtcConfiguration: RtcConfiguration;
21
+ export interface RoomOptions {
22
+ autoSubscribe: boolean;
23
+ dynacast: boolean;
24
+ /**
25
+ * @deprecated Use `encryption` instead. See x for details
26
+ */
27
+ e2ee?: E2EEOptions;
28
+ encryption?: E2EEOptions;
29
+ rtcConfig?: RtcConfiguration;
30
+ }
31
+ export declare const defaultRoomOptions: FfiRoomOptions;
32
+ declare const Room_base: new () => TypedEmitter<RoomCallbacks>;
33
+ export declare class Room extends Room_base {
34
+ private info?;
35
+ private ffiHandle?;
36
+ /**
37
+ * used to ensure events are processed sequentially and allow for
38
+ * the local participant to acquire the lock while doing state updates related to FFI events
39
+ * before processing the next events
40
+ */
41
+ private ffiEventLock;
42
+ private byteStreamControllers;
43
+ private textStreamControllers;
44
+ private byteStreamHandlers;
45
+ private textStreamHandlers;
46
+ private preConnectEvents;
47
+ private disconnectController;
48
+ private hasCleanedUp;
49
+ private _token?;
50
+ private _serverUrl?;
51
+ private _connectionState;
52
+ e2eeManager?: E2EEManager;
53
+ remoteParticipants: Map<string, RemoteParticipant>;
54
+ localParticipant?: LocalParticipant;
55
+ constructor();
56
+ get connectionState(): ConnectionState;
57
+ get name(): string | undefined;
58
+ get metadata(): string | undefined;
59
+ get isConnected(): boolean;
60
+ /** @internal */
61
+ get token(): string | undefined;
62
+ /** @internal */
63
+ get serverUrl(): string | undefined;
64
+ private sidPromise?;
65
+ /**
66
+ * Gets the room's server ID. This ID is assigned by the LiveKit server
67
+ * and is unique for each room session.
68
+ * SID is assigned asynchronously after connection.
69
+ * @returns Promise that resolves to the room's server ID, or empty string if not connected
70
+ */
71
+ getSid(): Promise<string>;
72
+ getRtcStats(): Promise<import("@livekit/rtc-ffi-bindings").GetSessionStatsCallback_Result>;
73
+ get numParticipants(): number;
74
+ get numPublishers(): number;
75
+ get creationTime(): Date;
76
+ get isRecording(): boolean;
77
+ /**
78
+ * The time in seconds after which a room will be closed after the last
79
+ * participant has disconnected.
80
+ */
81
+ get departureTimeout(): number;
82
+ /**
83
+ * The time in seconds after which an empty room will be automatically closed.
84
+ */
85
+ get emptyTimeout(): number;
86
+ /**
87
+ * Connects to a LiveKit room using the provided URL and access token.
88
+ * @param url - The WebSocket URL of the LiveKit server
89
+ * @param token - A valid LiveKit access token for authentication
90
+ * @param opts - Optional room configuration options
91
+ * @throws ConnectError - if connection fails
92
+ */
93
+ connect(url: string, token: string, opts?: RoomOptions): Promise<void>;
94
+ /**
95
+ * Disconnects from the room and cleans up all resources.
96
+ * This will stop all tracks and close the connection.
97
+ */
98
+ disconnect(): Promise<void>;
99
+ /**
100
+ * Trigger a reconnection / chaos scenario for testing. Most useful in
101
+ * tests to deterministically force a Resume (signal-only reconnect that
102
+ * preserves the PeerConnection and existing publications) or a full
103
+ * reconnect (the SDK rebuilds the RtcSession and re-publishes existing
104
+ * local tracks; `RoomEvent.Reconnected` fires).
105
+ */
106
+ simulateScenario(scenario: SimulateScenarioKind): Promise<void>;
107
+ private updateConnectionState;
108
+ private cleanupOnDisconnect;
109
+ /**
110
+ * Registers a handler for incoming text data streams on a specific topic.
111
+ * Text streams are used for receiving structured text data from other participants.
112
+ * @param topic - The topic to listen for text streams on
113
+ * @param callback - Function to handle incoming text stream data
114
+ * @throws Error - if a handler for this topic is already registered
115
+ */
116
+ registerTextStreamHandler(topic: string, callback: TextStreamHandler): void;
117
+ unregisterTextStreamHandler(topic: string): void;
118
+ /**
119
+ * Registers a handler for incoming byte data streams on a specific topic.
120
+ * Byte streams are used for receiving binary data like files from other participants.
121
+ * @param topic - The topic to listen for byte streams on
122
+ * @param callback - Function to handle incoming byte stream data
123
+ * @throws Error - if a handler for this topic is already registered
124
+ */
125
+ registerByteStreamHandler(topic: string, callback: ByteStreamHandler): void;
126
+ unregisterByteStreamHandler(topic: string): void;
127
+ private onFfiEvent;
128
+ private processFfiEvent;
129
+ private retrieveParticipantByIdentity;
130
+ private requireParticipantByIdentity;
131
+ private requireRemoteParticipant;
132
+ private requirePublicationOfParticipant;
133
+ private requirePublicationOfRemoteParticipant;
134
+ private createRemoteParticipant;
135
+ private handleStreamHeader;
136
+ private handleStreamChunk;
137
+ private handleStreamTrailer;
138
+ }
139
+ export declare class ConnectError extends Error {
140
+ constructor(message: string);
141
+ }
142
+ export type RoomCallbacks = {
143
+ participantConnected: (participant: RemoteParticipant) => void;
144
+ participantDisconnected: (participant: RemoteParticipant) => void;
145
+ localTrackPublished: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
146
+ localTrackUnpublished: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
147
+ /**
148
+ * Fired when the SDK auto-republished a local track during a full
149
+ * reconnect. The publication object's identity is preserved (the same
150
+ * instance is updated in place with the new server-assigned SIDs);
151
+ * `previousSid` is provided for callers that key external state on the
152
+ * old SID and need to reconcile.
153
+ */
154
+ localTrackRepublished: (publication: LocalTrackPublication, previousSid: string, participant: LocalParticipant) => void;
155
+ localTrackSubscribed: (track: LocalTrack) => void;
156
+ trackPublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
157
+ trackUnpublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
158
+ trackSubscribed: (track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
159
+ trackUnsubscribed: (track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
160
+ trackSubscriptionFailed: (trackSid: string, participant: RemoteParticipant, reason?: string) => void;
161
+ trackMuted: (publication: TrackPublication, participant: Participant) => void;
162
+ trackUnmuted: (publication: TrackPublication, participant: Participant) => void;
163
+ activeSpeakersChanged: (speakers: Participant[]) => void;
164
+ roomMetadataChanged: (metadata: string) => void;
165
+ roomInfoUpdated: (info: RoomInfo) => void;
166
+ participantMetadataChanged: (metadata: string | undefined, participant: Participant) => void;
167
+ participantNameChanged: (name: string, participant: Participant) => void;
168
+ participantAttributesChanged: (changedAttributes: Record<string, string>, participant: Participant) => void;
169
+ participantEncryptionStatusChanged: (isEncrypted: boolean, participant: Participant) => void;
170
+ connectionQualityChanged: (quality: ConnectionQuality, participant: Participant) => void;
171
+ dataReceived: (payload: Uint8Array, participant?: RemoteParticipant, kind?: DataPacketKind, topic?: string, encryptionType?: EncryptionType) => void;
172
+ chatMessage: (message: ChatMessage, participant?: Participant) => void;
173
+ dtmfReceived: (code: number, digit: string, participant: RemoteParticipant) => void;
174
+ encryptionError: (error: Error) => void;
175
+ connectionStateChanged: (state: ConnectionState) => void;
176
+ connected: () => void;
177
+ disconnected: (reason: DisconnectReason) => void;
178
+ reconnecting: () => void;
179
+ reconnected: () => void;
180
+ roomSidChanged: (sid: string) => void;
181
+ roomUpdated: () => void;
182
+ moved: () => void;
183
+ tokenRefreshed: () => void;
184
+ };
185
+ export declare enum RoomEvent {
186
+ ParticipantConnected = "participantConnected",
187
+ ParticipantDisconnected = "participantDisconnected",
188
+ LocalTrackPublished = "localTrackPublished",
189
+ LocalTrackUnpublished = "localTrackUnpublished",
190
+ LocalTrackRepublished = "localTrackRepublished",
191
+ LocalTrackSubscribed = "localTrackSubscribed",
192
+ TrackPublished = "trackPublished",
193
+ TrackUnpublished = "trackUnpublished",
194
+ TrackSubscribed = "trackSubscribed",
195
+ TrackUnsubscribed = "trackUnsubscribed",
196
+ TrackSubscriptionFailed = "trackSubscriptionFailed",
197
+ TrackMuted = "trackMuted",
198
+ TrackUnmuted = "trackUnmuted",
199
+ ActiveSpeakersChanged = "activeSpeakersChanged",
200
+ RoomMetadataChanged = "roomMetadataChanged",
201
+ RoomSidChanged = "roomSidChanged",
202
+ ParticipantMetadataChanged = "participantMetadataChanged",
203
+ ParticipantNameChanged = "participantNameChanged",
204
+ ParticipantAttributesChanged = "participantAttributesChanged",
205
+ ParticipantEncryptionStatusChanged = "participantEncryptionStatusChanged",
206
+ ConnectionQualityChanged = "connectionQualityChanged",
207
+ DataReceived = "dataReceived",
208
+ ChatMessage = "chatMessage",
209
+ DtmfReceived = "dtmfReceived",
210
+ EncryptionError = "encryptionError",
211
+ ConnectionStateChanged = "connectionStateChanged",
212
+ Connected = "connected",
213
+ Disconnected = "disconnected",
214
+ Reconnecting = "reconnecting",
215
+ Reconnected = "reconnected",
216
+ RoomUpdated = "roomUpdated",
217
+ Moved = "moved",
218
+ TokenRefreshed = "tokenRefreshed"
219
+ }
220
+ //# sourceMappingURL=room.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
package/dist/rpc.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import { RpcError as RpcError$1 } from '@livekit/rtc-ffi-bindings';
2
-
1
+ import type { RpcError as RpcError_Proto } from '@livekit/rtc-ffi-bindings';
3
2
  /** Parameters for initiating an RPC call */
4
- interface PerformRpcParams {
3
+ export interface PerformRpcParams {
5
4
  /** The `identity` of the destination participant */
6
5
  destinationIdentity: string;
7
6
  /** The method name to call */
@@ -14,7 +13,7 @@ interface PerformRpcParams {
14
13
  /**
15
14
  * Data passed to method handler for incoming RPC invocations
16
15
  */
17
- interface RpcInvocationData {
16
+ export interface RpcInvocationData {
18
17
  /**
19
18
  * The unique request ID. Will match at both sides of the call, useful for debugging or logging.
20
19
  */
@@ -40,7 +39,7 @@ interface RpcInvocationData {
40
39
  *
41
40
  * Built-in types are included but developers may use any string, with a max length of 256 bytes.
42
41
  */
43
- declare class RpcError extends Error {
42
+ export declare class RpcError extends Error {
44
43
  code: typeof RpcError.ErrorCode | number;
45
44
  data?: string;
46
45
  /**
@@ -51,8 +50,8 @@ declare class RpcError extends Error {
51
50
  * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).
52
51
  */
53
52
  constructor(code: number, message: string, data?: string);
54
- static fromProto(proto: RpcError$1): RpcError;
55
- toProto(): RpcError$1;
53
+ static fromProto(proto: RpcError_Proto): RpcError;
54
+ toProto(): RpcError_Proto;
56
55
  static ErrorCode: {
57
56
  readonly APPLICATION_ERROR: 1500;
58
57
  readonly CONNECTION_TIMEOUT: 1501;
@@ -76,5 +75,4 @@ declare class RpcError extends Error {
76
75
  */
77
76
  static builtIn(key: keyof typeof RpcError.ErrorCode, data?: string): RpcError;
78
77
  }
79
-
80
- export { type PerformRpcParams, RpcError, type RpcInvocationData };
78
+ //# sourceMappingURL=rpc.d.ts.map
package/dist/track.cjs CHANGED
@@ -94,6 +94,22 @@ class Track {
94
94
  }
95
95
  }
96
96
  }
97
+ /**
98
+ * End every {@link AudioStream} attached to this track.
99
+ *
100
+ * @remarks
101
+ * The FFI keeps feeding an audio stream until the stream's own handle is
102
+ * dropped, so streams on a track that is no longer subscribed would otherwise
103
+ * go on delivering audio for the lifetime of the process.
104
+ *
105
+ * @internal
106
+ */
107
+ closeAudioStreams() {
108
+ for (const stream of [...this.iterateStreams()]) {
109
+ stream.teardown();
110
+ }
111
+ this.audioStreams.clear();
112
+ }
97
113
  *iterateStreams() {
98
114
  const dead = [];
99
115
  for (const ref of this.audioStreams) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/track.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type {\n CreateAudioTrackResponse,\n CreateVideoTrackResponse,\n OwnedTrack,\n StreamState,\n TrackInfo,\n TrackKind,\n} from '@livekit/rtc-ffi-bindings';\nimport { CreateAudioTrackRequest, CreateVideoTrackRequest } from '@livekit/rtc-ffi-bindings';\nimport type { AudioSource } from './audio_source.js';\nimport type { AudioStreamSource } from './audio_stream.js';\nimport { FfiClient, FfiHandle } from './ffi_client.js';\nimport type { Room } from './room.js';\nimport type { VideoSource } from './video_source.js';\n\nexport abstract class Track {\n /** @internal */\n info?: TrackInfo;\n\n /** @internal */\n ffi_handle: FfiHandle;\n\n private roomRef: WeakRef<Room> | null = null;\n private audioStreams: Set<WeakRef<AudioStreamSource>> = new Set();\n private streamFinalizationRegistry: FinalizationRegistry<WeakRef<AudioStreamSource>>;\n private onRoomTokenRefreshed = () => {\n const room = this.resolveRoom();\n if (!room || !room.token || !room.serverUrl) {\n return;\n }\n for (const stream of this.iterateStreams()) {\n const processor = stream.processor;\n if (!processor) {\n continue;\n }\n processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });\n }\n };\n\n constructor(owned: OwnedTrack) {\n this.info = owned.info;\n this.ffi_handle = new FfiHandle(owned.handle!.id!);\n this.streamFinalizationRegistry = new FinalizationRegistry<WeakRef<AudioStreamSource>>(\n (ref) => {\n this.audioStreams.delete(ref);\n },\n );\n }\n\n /** @internal */\n resolveRoom(): Room | null {\n return this.roomRef?.deref() ?? null;\n }\n\n /** @internal */\n setRoom(room: Room | null): void {\n const oldRoom = this.resolveRoom();\n if (!oldRoom && !room) {\n // Already roomless — nothing to detach and nothing to re-clear. Without\n // this guard a second setRoom(null) (e.g. the unpublishTrack /\n // localTrackUnpublished race calling it from both paths) would re-fire\n // onStreamInfoCleared / onCredentialsCleared on every registered processor.\n return;\n }\n if (oldRoom && oldRoom !== room) {\n oldRoom.off('tokenRefreshed', this.onRoomTokenRefreshed);\n }\n if (room) {\n room.off('tokenRefreshed', this.onRoomTokenRefreshed);\n room.on('tokenRefreshed', this.onRoomTokenRefreshed);\n }\n this.roomRef = room ? new WeakRef(room) : null;\n for (const stream of this.iterateStreams()) {\n this.pushProcessorMetadataToStream(stream, room);\n }\n }\n\n /** @internal */\n registerAudioStream(stream: AudioStreamSource): void {\n const ref = new WeakRef(stream);\n this.audioStreams.add(ref);\n this.streamFinalizationRegistry.register(stream, ref);\n const room = this.resolveRoom();\n if (room) {\n this.pushProcessorMetadataToStream(stream, room);\n }\n }\n\n /** @internal */\n unregisterAudioStream(stream: AudioStreamSource): void {\n for (const ref of this.audioStreams) {\n if (ref.deref() === stream) {\n this.audioStreams.delete(ref);\n return;\n }\n }\n }\n\n private *iterateStreams(): Generator<AudioStreamSource> {\n const dead: Array<WeakRef<AudioStreamSource>> = [];\n for (const ref of this.audioStreams) {\n const stream = ref.deref();\n if (stream) {\n yield stream;\n } else {\n dead.push(ref);\n }\n }\n for (const ref of dead) {\n this.audioStreams.delete(ref);\n }\n }\n\n private pushProcessorMetadataToStream(stream: AudioStreamSource, room: Room | null): void {\n const processor = stream.processor;\n if (!processor) {\n return;\n }\n\n if (!room) {\n // Guard with optional-call: plugins built against an older @livekit/rtc-node\n // inherit a FrameProcessor base class that doesn't define these methods,\n // so they could be undefined on the prototype chain.\n processor.onStreamInfoCleared?.();\n processor.onCredentialsCleared?.();\n return;\n }\n\n let identity = '';\n let publicationSid = '';\n const trackSid = this.sid;\n if (trackSid) {\n let found = false;\n for (const participant of room.remoteParticipants.values()) {\n const publication = participant.trackPublications.get(trackSid);\n if (publication) {\n identity = participant.identity;\n publicationSid = publication.sid ?? '';\n found = true;\n break;\n }\n }\n if (!found) {\n const local = room.localParticipant;\n if (local) {\n for (const publication of local.trackPublications.values()) {\n if (publication.sid === trackSid) {\n identity = local.identity;\n publicationSid = publication.sid ?? '';\n break;\n }\n }\n }\n }\n }\n\n processor.onStreamInfoUpdated({\n roomName: room.name ?? '',\n participantIdentity: identity,\n publicationSid,\n });\n if (room.token && room.serverUrl) {\n processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });\n }\n }\n\n get sid(): string | undefined {\n return this.info?.sid;\n }\n\n get name(): string | undefined {\n return this.info?.name;\n }\n\n get kind(): TrackKind | undefined {\n return this.info?.kind;\n }\n\n get stream_state(): StreamState | undefined {\n return this.info?.streamState;\n }\n\n get muted(): boolean | undefined {\n return this.info?.muted;\n }\n\n async close() {\n this.ffi_handle.dispose();\n }\n}\n\nexport class LocalAudioTrack extends Track {\n private source?: AudioSource;\n\n constructor(owned: OwnedTrack, source?: AudioSource) {\n super(owned);\n this.source = source;\n }\n\n static createAudioTrack(name: string, source: AudioSource): LocalAudioTrack {\n const req = new CreateAudioTrackRequest({\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateAudioTrackResponse>({\n message: { case: 'createAudioTrack', value: req },\n });\n\n return new LocalAudioTrack(res.track!, source);\n }\n\n async close(closeSource = true) {\n await super.close();\n if (closeSource) {\n await this.source?.close();\n }\n }\n}\n\nexport class LocalVideoTrack extends Track {\n private source?: VideoSource;\n\n constructor(owned: OwnedTrack, source?: VideoSource) {\n super(owned);\n this.source = source;\n }\n\n static createVideoTrack(name: string, source: VideoSource): LocalVideoTrack {\n const req = new CreateVideoTrackRequest({\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateVideoTrackResponse>({\n message: { case: 'createVideoTrack', value: req },\n });\n\n return new LocalVideoTrack(res.track!, source);\n }\n\n async close(closeSource = true) {\n await super.close();\n if (closeSource) {\n await this.source?.close();\n }\n }\n}\n\nexport class RemoteVideoTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport class RemoteAudioTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport type LocalTrack = LocalVideoTrack | LocalAudioTrack;\nexport type RemoteTrack = RemoteVideoTrack | RemoteAudioTrack;\nexport type AudioTrack = LocalAudioTrack | RemoteAudioTrack;\nexport type VideoTrack = LocalVideoTrack | RemoteVideoTrack;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/track.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type {\n CreateAudioTrackResponse,\n CreateVideoTrackResponse,\n OwnedTrack,\n StreamState,\n TrackInfo,\n TrackKind,\n} from '@livekit/rtc-ffi-bindings';\nimport { CreateAudioTrackRequest, CreateVideoTrackRequest } from '@livekit/rtc-ffi-bindings';\nimport type { AudioSource } from './audio_source.js';\nimport type { AudioStreamSource } from './audio_stream.js';\nimport { FfiClient, FfiHandle } from './ffi_client.js';\nimport type { Room } from './room.js';\nimport type { VideoSource } from './video_source.js';\n\nexport abstract class Track {\n /** @internal */\n info?: TrackInfo;\n\n /** @internal */\n ffi_handle: FfiHandle;\n\n private roomRef: WeakRef<Room> | null = null;\n private audioStreams: Set<WeakRef<AudioStreamSource>> = new Set();\n private streamFinalizationRegistry: FinalizationRegistry<WeakRef<AudioStreamSource>>;\n private onRoomTokenRefreshed = () => {\n const room = this.resolveRoom();\n if (!room || !room.token || !room.serverUrl) {\n return;\n }\n for (const stream of this.iterateStreams()) {\n const processor = stream.processor;\n if (!processor) {\n continue;\n }\n processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });\n }\n };\n\n constructor(owned: OwnedTrack) {\n this.info = owned.info;\n this.ffi_handle = new FfiHandle(owned.handle!.id!);\n this.streamFinalizationRegistry = new FinalizationRegistry<WeakRef<AudioStreamSource>>(\n (ref) => {\n this.audioStreams.delete(ref);\n },\n );\n }\n\n /** @internal */\n resolveRoom(): Room | null {\n return this.roomRef?.deref() ?? null;\n }\n\n /** @internal */\n setRoom(room: Room | null): void {\n const oldRoom = this.resolveRoom();\n if (!oldRoom && !room) {\n // Already roomless — nothing to detach and nothing to re-clear. Without\n // this guard a second setRoom(null) (e.g. the unpublishTrack /\n // localTrackUnpublished race calling it from both paths) would re-fire\n // onStreamInfoCleared / onCredentialsCleared on every registered processor.\n return;\n }\n if (oldRoom && oldRoom !== room) {\n oldRoom.off('tokenRefreshed', this.onRoomTokenRefreshed);\n }\n if (room) {\n room.off('tokenRefreshed', this.onRoomTokenRefreshed);\n room.on('tokenRefreshed', this.onRoomTokenRefreshed);\n }\n this.roomRef = room ? new WeakRef(room) : null;\n for (const stream of this.iterateStreams()) {\n this.pushProcessorMetadataToStream(stream, room);\n }\n }\n\n /** @internal */\n registerAudioStream(stream: AudioStreamSource): void {\n const ref = new WeakRef(stream);\n this.audioStreams.add(ref);\n this.streamFinalizationRegistry.register(stream, ref);\n const room = this.resolveRoom();\n if (room) {\n this.pushProcessorMetadataToStream(stream, room);\n }\n }\n\n /** @internal */\n unregisterAudioStream(stream: AudioStreamSource): void {\n for (const ref of this.audioStreams) {\n if (ref.deref() === stream) {\n this.audioStreams.delete(ref);\n return;\n }\n }\n }\n\n /**\n * End every {@link AudioStream} attached to this track.\n *\n * @remarks\n * The FFI keeps feeding an audio stream until the stream's own handle is\n * dropped, so streams on a track that is no longer subscribed would otherwise\n * go on delivering audio for the lifetime of the process.\n *\n * @internal\n */\n closeAudioStreams(): void {\n for (const stream of [...this.iterateStreams()]) {\n stream.teardown();\n }\n this.audioStreams.clear();\n }\n\n private *iterateStreams(): Generator<AudioStreamSource> {\n const dead: Array<WeakRef<AudioStreamSource>> = [];\n for (const ref of this.audioStreams) {\n const stream = ref.deref();\n if (stream) {\n yield stream;\n } else {\n dead.push(ref);\n }\n }\n for (const ref of dead) {\n this.audioStreams.delete(ref);\n }\n }\n\n private pushProcessorMetadataToStream(stream: AudioStreamSource, room: Room | null): void {\n const processor = stream.processor;\n if (!processor) {\n return;\n }\n\n if (!room) {\n // Guard with optional-call: plugins built against an older @livekit/rtc-node\n // inherit a FrameProcessor base class that doesn't define these methods,\n // so they could be undefined on the prototype chain.\n processor.onStreamInfoCleared?.();\n processor.onCredentialsCleared?.();\n return;\n }\n\n let identity = '';\n let publicationSid = '';\n const trackSid = this.sid;\n if (trackSid) {\n let found = false;\n for (const participant of room.remoteParticipants.values()) {\n const publication = participant.trackPublications.get(trackSid);\n if (publication) {\n identity = participant.identity;\n publicationSid = publication.sid ?? '';\n found = true;\n break;\n }\n }\n if (!found) {\n const local = room.localParticipant;\n if (local) {\n for (const publication of local.trackPublications.values()) {\n if (publication.sid === trackSid) {\n identity = local.identity;\n publicationSid = publication.sid ?? '';\n break;\n }\n }\n }\n }\n }\n\n processor.onStreamInfoUpdated({\n roomName: room.name ?? '',\n participantIdentity: identity,\n publicationSid,\n });\n if (room.token && room.serverUrl) {\n processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });\n }\n }\n\n get sid(): string | undefined {\n return this.info?.sid;\n }\n\n get name(): string | undefined {\n return this.info?.name;\n }\n\n get kind(): TrackKind | undefined {\n return this.info?.kind;\n }\n\n get stream_state(): StreamState | undefined {\n return this.info?.streamState;\n }\n\n get muted(): boolean | undefined {\n return this.info?.muted;\n }\n\n async close() {\n this.ffi_handle.dispose();\n }\n}\n\nexport class LocalAudioTrack extends Track {\n private source?: AudioSource;\n\n constructor(owned: OwnedTrack, source?: AudioSource) {\n super(owned);\n this.source = source;\n }\n\n static createAudioTrack(name: string, source: AudioSource): LocalAudioTrack {\n const req = new CreateAudioTrackRequest({\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateAudioTrackResponse>({\n message: { case: 'createAudioTrack', value: req },\n });\n\n return new LocalAudioTrack(res.track!, source);\n }\n\n async close(closeSource = true) {\n await super.close();\n if (closeSource) {\n await this.source?.close();\n }\n }\n}\n\nexport class LocalVideoTrack extends Track {\n private source?: VideoSource;\n\n constructor(owned: OwnedTrack, source?: VideoSource) {\n super(owned);\n this.source = source;\n }\n\n static createVideoTrack(name: string, source: VideoSource): LocalVideoTrack {\n const req = new CreateVideoTrackRequest({\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateVideoTrackResponse>({\n message: { case: 'createVideoTrack', value: req },\n });\n\n return new LocalVideoTrack(res.track!, source);\n }\n\n async close(closeSource = true) {\n await super.close();\n if (closeSource) {\n await this.source?.close();\n }\n }\n}\n\nexport class RemoteVideoTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport class RemoteAudioTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport type LocalTrack = LocalVideoTrack | LocalAudioTrack;\nexport type RemoteTrack = RemoteVideoTrack | RemoteAudioTrack;\nexport type AudioTrack = LocalAudioTrack | RemoteAudioTrack;\nexport type VideoTrack = LocalVideoTrack | RemoteVideoTrack;\n"],"mappings":"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","names":[]}
package/dist/track.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import '@livekit/rtc-ffi-bindings';
2
2
  import './audio_source.cjs';
3
- export { a as AudioTrack, L as LocalAudioTrack, c as LocalTrack, e as LocalVideoTrack, R as RemoteAudioTrack, g as RemoteTrack, i as RemoteVideoTrack, T as Track, V as VideoTrack } from './audio_stream-B4hGVcKz.cjs';
3
+ export { a as AudioTrack, L as LocalAudioTrack, c as LocalTrack, e as LocalVideoTrack, R as RemoteAudioTrack, g as RemoteTrack, i as RemoteVideoTrack, T as Track, V as VideoTrack } from './audio_stream-CnODFAmo.cjs';
4
4
  import './ffi_client.cjs';
5
5
  import './video_source.cjs';
6
6
  import './audio_frame.cjs';
package/dist/track.d.ts CHANGED
@@ -1,18 +1,67 @@
1
- import '@livekit/rtc-ffi-bindings';
2
- import './audio_source.js';
3
- export { a as AudioTrack, L as LocalAudioTrack, c as LocalTrack, e as LocalVideoTrack, R as RemoteAudioTrack, g as RemoteTrack, i as RemoteVideoTrack, T as Track, V as VideoTrack } from './audio_stream-DEG1JKge.js';
4
- import './ffi_client.js';
5
- import './video_source.js';
6
- import './audio_frame.js';
7
- import 'node:stream/web';
8
- import './frame_processor.js';
9
- import './video_frame.js';
10
- import '@livekit/typed-emitter';
11
- import './types-_PdPVish.js';
12
- import './e2ee.js';
13
- import '@livekit/mutex';
14
- import 'node:fs';
15
- import './data_streams/stream_writer.js';
16
- import './rpc.js';
17
- import './transcription.js';
18
- import './types.js';
1
+ import type { OwnedTrack, StreamState, TrackInfo, TrackKind } from '@livekit/rtc-ffi-bindings';
2
+ import type { AudioSource } from './audio_source.js';
3
+ import type { AudioStreamSource } from './audio_stream.js';
4
+ import { FfiHandle } from './ffi_client.js';
5
+ import type { Room } from './room.js';
6
+ import type { VideoSource } from './video_source.js';
7
+ export declare abstract class Track {
8
+ /** @internal */
9
+ info?: TrackInfo;
10
+ /** @internal */
11
+ ffi_handle: FfiHandle;
12
+ private roomRef;
13
+ private audioStreams;
14
+ private streamFinalizationRegistry;
15
+ private onRoomTokenRefreshed;
16
+ constructor(owned: OwnedTrack);
17
+ /** @internal */
18
+ resolveRoom(): Room | null;
19
+ /** @internal */
20
+ setRoom(room: Room | null): void;
21
+ /** @internal */
22
+ registerAudioStream(stream: AudioStreamSource): void;
23
+ /** @internal */
24
+ unregisterAudioStream(stream: AudioStreamSource): void;
25
+ /**
26
+ * End every {@link AudioStream} attached to this track.
27
+ *
28
+ * @remarks
29
+ * The FFI keeps feeding an audio stream until the stream's own handle is
30
+ * dropped, so streams on a track that is no longer subscribed would otherwise
31
+ * go on delivering audio for the lifetime of the process.
32
+ *
33
+ * @internal
34
+ */
35
+ closeAudioStreams(): void;
36
+ private iterateStreams;
37
+ private pushProcessorMetadataToStream;
38
+ get sid(): string | undefined;
39
+ get name(): string | undefined;
40
+ get kind(): TrackKind | undefined;
41
+ get stream_state(): StreamState | undefined;
42
+ get muted(): boolean | undefined;
43
+ close(): Promise<void>;
44
+ }
45
+ export declare class LocalAudioTrack extends Track {
46
+ private source?;
47
+ constructor(owned: OwnedTrack, source?: AudioSource);
48
+ static createAudioTrack(name: string, source: AudioSource): LocalAudioTrack;
49
+ close(closeSource?: boolean): Promise<void>;
50
+ }
51
+ export declare class LocalVideoTrack extends Track {
52
+ private source?;
53
+ constructor(owned: OwnedTrack, source?: VideoSource);
54
+ static createVideoTrack(name: string, source: VideoSource): LocalVideoTrack;
55
+ close(closeSource?: boolean): Promise<void>;
56
+ }
57
+ export declare class RemoteVideoTrack extends Track {
58
+ constructor(owned: OwnedTrack);
59
+ }
60
+ export declare class RemoteAudioTrack extends Track {
61
+ constructor(owned: OwnedTrack);
62
+ }
63
+ export type LocalTrack = LocalVideoTrack | LocalAudioTrack;
64
+ export type RemoteTrack = RemoteVideoTrack | RemoteAudioTrack;
65
+ export type AudioTrack = LocalAudioTrack | RemoteAudioTrack;
66
+ export type VideoTrack = LocalVideoTrack | RemoteVideoTrack;
67
+ //# sourceMappingURL=track.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,KAAK;IACzB,gBAAgB;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,gBAAgB;IAChB,UAAU,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,0BAA0B,CAAmD;IACrF,OAAO,CAAC,oBAAoB,CAY1B;gBAEU,KAAK,EAAE,UAAU;IAU7B,gBAAgB;IAChB,WAAW,IAAI,IAAI,GAAG,IAAI;IAI1B,gBAAgB;IAChB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAsBhC,gBAAgB;IAChB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAUpD,gBAAgB;IAChB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAStD,OAAO,CAAE,cAAc;IAevB,OAAO,CAAC,6BAA6B;IAqDrC,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,IAAI,IAAI,SAAS,GAAG,SAAS,CAEhC;IAED,IAAI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE1C;IAED,IAAI,KAAK,IAAI,OAAO,GAAG,SAAS,CAE/B;IAEK,KAAK;CAGZ;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;IAKnD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAarE,KAAK,CAAC,WAAW,UAAO;CAM/B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;IAKnD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAarE,KAAK,CAAC,WAAW,UAAO;CAM/B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,KAAK,EAAE,UAAU;CAG9B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,KAAK,EAAE,UAAU;CAG9B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,8BAAsB,KAAK;IACzB,gBAAgB;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,gBAAgB;IAChB,UAAU,EAAE,SAAS,CAAC;IAEtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,0BAA0B,CAAmD;IACrF,OAAO,CAAC,oBAAoB,CAY1B;gBAEU,KAAK,EAAE,UAAU;IAU7B,gBAAgB;IAChB,WAAW,IAAI,IAAI,GAAG,IAAI;IAI1B,gBAAgB;IAChB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAsBhC,gBAAgB;IAChB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAUpD,gBAAgB;IAChB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAStD;;;;;;;;;OASG;IACH,iBAAiB,IAAI,IAAI;IAOzB,OAAO,CAAE,cAAc;IAevB,OAAO,CAAC,6BAA6B;IAqDrC,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,IAAI,IAAI,SAAS,GAAG,SAAS,CAEhC;IAED,IAAI,YAAY,IAAI,WAAW,GAAG,SAAS,CAE1C;IAED,IAAI,KAAK,IAAI,OAAO,GAAG,SAAS,CAE/B;IAEK,KAAK;CAGZ;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;IAKnD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAarE,KAAK,CAAC,WAAW,UAAO;CAM/B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,OAAO,CAAC,MAAM,CAAC,CAAc;gBAEjB,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW;IAKnD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAarE,KAAK,CAAC,WAAW,UAAO;CAM/B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,KAAK,EAAE,UAAU;CAG9B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,KAAK,EAAE,UAAU;CAG9B;AAED,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,eAAe,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,gBAAgB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import '@livekit/rtc-ffi-bindings';
2
- export { d as LocalTrackPublication, h as RemoteTrackPublication, n as TrackPublication } from './audio_stream-B4hGVcKz.cjs';
2
+ export { d as LocalTrackPublication, h as RemoteTrackPublication, n as TrackPublication } from './audio_stream-CnODFAmo.cjs';
3
3
  import 'node:stream/web';
4
4
  import './audio_frame.cjs';
5
5
  import './frame_processor.cjs';
@@ -1,18 +1,45 @@
1
- import '@livekit/rtc-ffi-bindings';
2
- export { d as LocalTrackPublication, h as RemoteTrackPublication, n as TrackPublication } from './audio_stream-DEG1JKge.js';
3
- import 'node:stream/web';
4
- import './audio_frame.js';
5
- import './frame_processor.js';
6
- import './video_frame.js';
7
- import './audio_source.js';
8
- import './ffi_client.js';
9
- import '@livekit/typed-emitter';
10
- import './types-_PdPVish.js';
11
- import './e2ee.js';
12
- import '@livekit/mutex';
13
- import 'node:fs';
14
- import './data_streams/stream_writer.js';
15
- import './rpc.js';
16
- import './transcription.js';
17
- import './types.js';
18
- import './video_source.js';
1
+ import type { EncryptionType } from '@livekit/rtc-ffi-bindings';
2
+ import type { OwnedTrackPublication, TrackKind, TrackPublicationInfo, TrackSource } from '@livekit/rtc-ffi-bindings';
3
+ import { FfiHandle } from '@livekit/rtc-ffi-bindings';
4
+ import type { Track } from './track.js';
5
+ export declare abstract class TrackPublication {
6
+ /** @internal */
7
+ ffiHandle: FfiHandle;
8
+ /** @internal */
9
+ info?: TrackPublicationInfo;
10
+ track?: Track;
11
+ constructor(ownedInfo: OwnedTrackPublication);
12
+ get sid(): string | undefined;
13
+ get name(): string | undefined;
14
+ get kind(): TrackKind | undefined;
15
+ get source(): TrackSource | undefined;
16
+ get simulcasted(): boolean | undefined;
17
+ get width(): number | undefined;
18
+ get height(): number | undefined;
19
+ get mimeType(): string | undefined;
20
+ get muted(): boolean | undefined;
21
+ get encryptionType(): EncryptionType | undefined;
22
+ /**
23
+ * Update the publication's info in place. Used by the SDK when the
24
+ * server re-issues IDs / metadata for an existing publication (e.g.
25
+ * after a full reconnect). Application code holding a cached
26
+ * publication reference continues to read fresh values via the
27
+ * unchanged object identity.
28
+ * @internal
29
+ */
30
+ updateInfo(info: TrackPublicationInfo): void;
31
+ }
32
+ export declare class LocalTrackPublication extends TrackPublication {
33
+ private firstSubscription;
34
+ private firstSubscriptionResolver;
35
+ constructor(ownedInfo: OwnedTrackPublication);
36
+ waitForSubscription(): Promise<void>;
37
+ /** @internal */
38
+ resolveFirstSubscription(): void;
39
+ }
40
+ export declare class RemoteTrackPublication extends TrackPublication {
41
+ subscribed: boolean;
42
+ constructor(ownedInfo: OwnedTrackPublication);
43
+ setSubscribed(subscribed: boolean): void;
44
+ }
45
+ //# sourceMappingURL=track_publication.d.ts.map
@@ -1,4 +1,4 @@
1
- interface TranscriptionSegment {
1
+ export interface TranscriptionSegment {
2
2
  id: string;
3
3
  text: string;
4
4
  startTime: bigint;
@@ -6,10 +6,9 @@ interface TranscriptionSegment {
6
6
  language: string;
7
7
  final: boolean;
8
8
  }
9
- interface Transcription {
9
+ export interface Transcription {
10
10
  participantIdentity: string;
11
11
  trackSid: string;
12
12
  segments: TranscriptionSegment[];
13
13
  }
14
-
15
- export type { Transcription, TranscriptionSegment };
14
+ //# sourceMappingURL=transcription.d.ts.map
package/dist/types.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- interface ChatMessage {
1
+ export interface ChatMessage {
2
2
  id: string;
3
3
  timestamp: number;
4
4
  message: string;
5
5
  editTimestamp?: number;
6
6
  generated?: boolean;
7
7
  }
8
-
9
- export type { ChatMessage };
8
+ //# sourceMappingURL=types.d.ts.map
package/dist/utils.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  /** convert bigints to numbers preserving undefined values */
2
- declare function bigIntToNumber<T extends bigint | undefined>(value: T): T extends bigint ? number : undefined;
2
+ export declare function bigIntToNumber<T extends bigint | undefined>(value: T): T extends bigint ? number : undefined;
3
3
  /** convert numbers to bigints preserving undefined values */
4
- declare function numberToBigInt<T extends number | undefined>(value: T): T extends number ? bigint : undefined;
5
- declare function splitUtf8(s: string, n: number): Uint8Array[];
6
-
7
- export { bigIntToNumber, numberToBigInt, splitUtf8 };
4
+ export declare function numberToBigInt<T extends number | undefined>(value: T): T extends number ? bigint : undefined;
5
+ export declare function splitUtf8(s: string, n: number): Uint8Array[];
6
+ //# sourceMappingURL=utils.d.ts.map
package/dist/version.cjs CHANGED
@@ -21,7 +21,7 @@ __export(version_exports, {
21
21
  SDK_VERSION: () => SDK_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(version_exports);
24
- const SDK_VERSION = "0.13.31";
24
+ const SDK_VERSION = "0.13.33";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  SDK_VERSION
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.31\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.33\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;","names":[]}