@livekit/rtc-node 0.13.28 → 0.13.30

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 (76) hide show
  1. package/dist/audio_stream-B4hGVcKz.d.cts +498 -0
  2. package/dist/audio_stream-DEG1JKge.d.ts +498 -0
  3. package/dist/audio_stream.cjs +21 -6
  4. package/dist/audio_stream.cjs.map +1 -1
  5. package/dist/audio_stream.d.cts +12 -22
  6. package/dist/audio_stream.d.ts +12 -22
  7. package/dist/audio_stream.d.ts.map +1 -1
  8. package/dist/audio_stream.js +19 -5
  9. package/dist/audio_stream.js.map +1 -1
  10. package/dist/data_streams/index.d.cts +1 -1
  11. package/dist/data_streams/index.d.ts +1 -1
  12. package/dist/data_streams/stream_reader.d.cts +1 -1
  13. package/dist/data_streams/stream_reader.d.ts +1 -1
  14. package/dist/data_streams/stream_writer.d.cts +1 -1
  15. package/dist/data_streams/stream_writer.d.ts +1 -1
  16. package/dist/data_streams/types.d.cts +1 -1
  17. package/dist/data_streams/types.d.ts +1 -1
  18. package/dist/ffi_client.cjs +11 -7
  19. package/dist/ffi_client.cjs.map +1 -1
  20. package/dist/ffi_client.d.cts +2 -0
  21. package/dist/ffi_client.d.ts +2 -0
  22. package/dist/ffi_client.d.ts.map +1 -1
  23. package/dist/ffi_client.js +11 -7
  24. package/dist/ffi_client.js.map +1 -1
  25. package/dist/frame_processor.cjs +6 -0
  26. package/dist/frame_processor.cjs.map +1 -1
  27. package/dist/frame_processor.d.cts +2 -0
  28. package/dist/frame_processor.d.ts +2 -0
  29. package/dist/frame_processor.d.ts.map +1 -1
  30. package/dist/frame_processor.js +6 -0
  31. package/dist/frame_processor.js.map +1 -1
  32. package/dist/index.d.cts +4 -7
  33. package/dist/index.d.ts +4 -7
  34. package/dist/participant.cjs +6 -0
  35. package/dist/participant.cjs.map +1 -1
  36. package/dist/participant.d.cts +14 -153
  37. package/dist/participant.d.ts +14 -153
  38. package/dist/participant.d.ts.map +1 -1
  39. package/dist/participant.js +6 -0
  40. package/dist/participant.js.map +1 -1
  41. package/dist/room.cjs +63 -0
  42. package/dist/room.cjs.map +1 -1
  43. package/dist/room.d.cts +12 -219
  44. package/dist/room.d.ts +12 -219
  45. package/dist/room.d.ts.map +1 -1
  46. package/dist/room.js +63 -0
  47. package/dist/room.js.map +1 -1
  48. package/dist/track.cjs +123 -0
  49. package/dist/track.cjs.map +1 -1
  50. package/dist/track.d.cts +15 -42
  51. package/dist/track.d.ts +15 -42
  52. package/dist/track.d.ts.map +1 -1
  53. package/dist/track.js +123 -0
  54. package/dist/track.js.map +1 -1
  55. package/dist/track_publication.d.cts +14 -47
  56. package/dist/track_publication.d.ts +14 -47
  57. package/dist/{stream_reader-CuG4b8Y-.d.cts → types-_PdPVish.d.cts} +40 -40
  58. package/dist/{stream_reader-CuG4b8Y-.d.ts → types-_PdPVish.d.ts} +40 -40
  59. package/dist/version.cjs +1 -1
  60. package/dist/version.cjs.map +1 -1
  61. package/dist/version.d.cts +1 -1
  62. package/dist/version.d.ts +1 -1
  63. package/dist/version.js +1 -1
  64. package/dist/version.js.map +1 -1
  65. package/dist/video_stream.d.cts +12 -2
  66. package/dist/video_stream.d.ts +12 -2
  67. package/package.json +4 -4
  68. package/src/audio_stream.ts +28 -4
  69. package/src/audio_stream_room_lifecycle.test.ts +753 -0
  70. package/src/bun_runtime.test.ts +27 -0
  71. package/src/ffi_client.ts +6 -0
  72. package/src/frame_processor.ts +4 -0
  73. package/src/participant.ts +17 -0
  74. package/src/room.ts +89 -1
  75. package/src/track.ts +141 -0
  76. package/src/version.ts +1 -1
package/dist/track.js CHANGED
@@ -2,8 +2,131 @@ import { CreateAudioTrackRequest, CreateVideoTrackRequest } from "@livekit/rtc-f
2
2
  import { FfiClient, FfiHandle } from "./ffi_client.js";
3
3
  class Track {
4
4
  constructor(owned) {
5
+ this.roomRef = null;
6
+ this.audioStreams = /* @__PURE__ */ new Set();
7
+ this.onRoomTokenRefreshed = () => {
8
+ const room = this.resolveRoom();
9
+ if (!room || !room.token || !room.serverUrl) {
10
+ return;
11
+ }
12
+ for (const stream of this.iterateStreams()) {
13
+ const processor = stream.processor;
14
+ if (!processor) {
15
+ continue;
16
+ }
17
+ processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });
18
+ }
19
+ };
5
20
  this.info = owned.info;
6
21
  this.ffi_handle = new FfiHandle(owned.handle.id);
22
+ this.streamFinalizationRegistry = new FinalizationRegistry(
23
+ (ref) => {
24
+ this.audioStreams.delete(ref);
25
+ }
26
+ );
27
+ }
28
+ /** @internal */
29
+ resolveRoom() {
30
+ var _a;
31
+ return ((_a = this.roomRef) == null ? void 0 : _a.deref()) ?? null;
32
+ }
33
+ /** @internal */
34
+ setRoom(room) {
35
+ const oldRoom = this.resolveRoom();
36
+ if (!oldRoom && !room) {
37
+ return;
38
+ }
39
+ if (oldRoom && oldRoom !== room) {
40
+ oldRoom.off("tokenRefreshed", this.onRoomTokenRefreshed);
41
+ }
42
+ if (room) {
43
+ room.off("tokenRefreshed", this.onRoomTokenRefreshed);
44
+ room.on("tokenRefreshed", this.onRoomTokenRefreshed);
45
+ }
46
+ this.roomRef = room ? new WeakRef(room) : null;
47
+ for (const stream of this.iterateStreams()) {
48
+ this.pushProcessorMetadataToStream(stream, room);
49
+ }
50
+ }
51
+ /** @internal */
52
+ registerAudioStream(stream) {
53
+ const ref = new WeakRef(stream);
54
+ this.audioStreams.add(ref);
55
+ this.streamFinalizationRegistry.register(stream, ref);
56
+ const room = this.resolveRoom();
57
+ if (room) {
58
+ this.pushProcessorMetadataToStream(stream, room);
59
+ }
60
+ }
61
+ /** @internal */
62
+ unregisterAudioStream(stream) {
63
+ for (const ref of this.audioStreams) {
64
+ if (ref.deref() === stream) {
65
+ this.audioStreams.delete(ref);
66
+ return;
67
+ }
68
+ }
69
+ }
70
+ *iterateStreams() {
71
+ const dead = [];
72
+ for (const ref of this.audioStreams) {
73
+ const stream = ref.deref();
74
+ if (stream) {
75
+ yield stream;
76
+ } else {
77
+ dead.push(ref);
78
+ }
79
+ }
80
+ for (const ref of dead) {
81
+ this.audioStreams.delete(ref);
82
+ }
83
+ }
84
+ pushProcessorMetadataToStream(stream, room) {
85
+ var _a, _b;
86
+ const processor = stream.processor;
87
+ if (!processor) {
88
+ return;
89
+ }
90
+ if (!room) {
91
+ (_a = processor.onStreamInfoCleared) == null ? void 0 : _a.call(processor);
92
+ (_b = processor.onCredentialsCleared) == null ? void 0 : _b.call(processor);
93
+ return;
94
+ }
95
+ let identity = "";
96
+ let publicationSid = "";
97
+ const trackSid = this.sid;
98
+ if (trackSid) {
99
+ let found = false;
100
+ for (const participant of room.remoteParticipants.values()) {
101
+ const publication = participant.trackPublications.get(trackSid);
102
+ if (publication) {
103
+ identity = participant.identity;
104
+ publicationSid = publication.sid ?? "";
105
+ found = true;
106
+ break;
107
+ }
108
+ }
109
+ if (!found) {
110
+ const local = room.localParticipant;
111
+ if (local) {
112
+ for (const publication of local.trackPublications.values()) {
113
+ if (publication.sid === trackSid) {
114
+ identity = local.identity;
115
+ publicationSid = publication.sid ?? "";
116
+ break;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ processor.onStreamInfoUpdated({
123
+ roomName: room.name ?? "",
124
+ participantIdentity: identity,
125
+ publicationSid
126
+ });
127
+ if (room.token && room.serverUrl) {
128
+ processor.onCredentialsUpdated({ token: room.token, url: room.serverUrl });
129
+ }
7
130
  }
8
131
  get sid() {
9
132
  var _a;
package/dist/track.js.map CHANGED
@@ -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 { FfiClient, FfiHandle } from './ffi_client.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 constructor(owned: OwnedTrack) {\n this.info = owned.info;\n this.ffi_handle = new FfiHandle(owned.handle!.id!);\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":"AAWA,SAAS,yBAAyB,+BAA+B;AAEjE,SAAS,WAAW,iBAAiB;AAG9B,MAAe,MAAM;AAAA,EAO1B,YAAY,OAAmB;AAC7B,SAAK,OAAO,MAAM;AAClB,SAAK,aAAa,IAAI,UAAU,MAAM,OAAQ,EAAG;AAAA,EACnD;AAAA,EAEA,IAAI,MAA0B;AA5BhC;AA6BI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,OAA2B;AAhCjC;AAiCI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,OAA8B;AApCpC;AAqCI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,eAAwC;AAxC9C;AAyCI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,QAA6B;AA5CnC;AA6CI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,MAAM,QAAQ;AACZ,SAAK,WAAW,QAAQ;AAAA,EAC1B;AACF;AAEO,MAAM,wBAAwB,MAAM;AAAA,EAGzC,YAAY,OAAmB,QAAsB;AACnD,UAAM,KAAK;AACX,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAO,iBAAiB,MAAc,QAAsC;AAC1E,UAAM,MAAM,IAAI,wBAAwB;AAAA,MACtC;AAAA,MACA,cAAc,OAAO,UAAU;AAAA,IACjC,CAAC;AAED,UAAM,MAAM,UAAU,SAAS,QAAkC;AAAA,MAC/D,SAAS,EAAE,MAAM,oBAAoB,OAAO,IAAI;AAAA,IAClD,CAAC;AAED,WAAO,IAAI,gBAAgB,IAAI,OAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,MAAM,cAAc,MAAM;AA1ElC;AA2EI,UAAM,MAAM,MAAM;AAClB,QAAI,aAAa;AACf,cAAM,UAAK,WAAL,mBAAa;AAAA,IACrB;AAAA,EACF;AACF;AAEO,MAAM,wBAAwB,MAAM;AAAA,EAGzC,YAAY,OAAmB,QAAsB;AACnD,UAAM,KAAK;AACX,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,OAAO,iBAAiB,MAAc,QAAsC;AAC1E,UAAM,MAAM,IAAI,wBAAwB;AAAA,MACtC;AAAA,MACA,cAAc,OAAO,UAAU;AAAA,IACjC,CAAC;AAED,UAAM,MAAM,UAAU,SAAS,QAAkC;AAAA,MAC/D,SAAS,EAAE,MAAM,oBAAoB,OAAO,IAAI;AAAA,IAClD,CAAC;AAED,WAAO,IAAI,gBAAgB,IAAI,OAAQ,MAAM;AAAA,EAC/C;AAAA,EAEA,MAAM,MAAM,cAAc,MAAM;AAvGlC;AAwGI,UAAM,MAAM,MAAM;AAClB,QAAI,aAAa;AACf,cAAM,UAAK,WAAL,mBAAa;AAAA,IACrB;AAAA,EACF;AACF;AAEO,MAAM,yBAAyB,MAAM;AAAA,EAC1C,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AACF;AAEO,MAAM,yBAAyB,MAAM;AAAA,EAC1C,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AACF;","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 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,51 +1,18 @@
1
- import { FfiHandle, TrackPublicationInfo, OwnedTrackPublication, TrackKind, TrackSource, EncryptionType } from '@livekit/rtc-ffi-bindings';
2
- import { Track } from './track.cjs';
3
- import './audio_source.cjs';
1
+ import '@livekit/rtc-ffi-bindings';
2
+ export { d as LocalTrackPublication, h as RemoteTrackPublication, n as TrackPublication } from './audio_stream-B4hGVcKz.cjs';
3
+ import 'node:stream/web';
4
4
  import './audio_frame.cjs';
5
+ import './frame_processor.cjs';
6
+ import './video_frame.cjs';
7
+ import './audio_source.cjs';
5
8
  import './ffi_client.cjs';
6
9
  import '@livekit/typed-emitter';
10
+ import './types-_PdPVish.cjs';
11
+ import './e2ee.cjs';
12
+ import '@livekit/mutex';
13
+ import 'node:fs';
14
+ import './data_streams/stream_writer.cjs';
15
+ import './rpc.cjs';
16
+ import './transcription.cjs';
17
+ import './types.cjs';
7
18
  import './video_source.cjs';
8
- import './video_frame.cjs';
9
-
10
- declare abstract class TrackPublication {
11
- /** @internal */
12
- ffiHandle: FfiHandle;
13
- /** @internal */
14
- info?: TrackPublicationInfo;
15
- track?: Track;
16
- constructor(ownedInfo: OwnedTrackPublication);
17
- get sid(): string | undefined;
18
- get name(): string | undefined;
19
- get kind(): TrackKind | undefined;
20
- get source(): TrackSource | undefined;
21
- get simulcasted(): boolean | undefined;
22
- get width(): number | undefined;
23
- get height(): number | undefined;
24
- get mimeType(): string | undefined;
25
- get muted(): boolean | undefined;
26
- get encryptionType(): EncryptionType | undefined;
27
- /**
28
- * Update the publication's info in place. Used by the SDK when the
29
- * server re-issues IDs / metadata for an existing publication (e.g.
30
- * after a full reconnect). Application code holding a cached
31
- * publication reference continues to read fresh values via the
32
- * unchanged object identity.
33
- * @internal
34
- */
35
- updateInfo(info: TrackPublicationInfo): void;
36
- }
37
- declare class LocalTrackPublication extends TrackPublication {
38
- private firstSubscription;
39
- private firstSubscriptionResolver;
40
- constructor(ownedInfo: OwnedTrackPublication);
41
- waitForSubscription(): Promise<void>;
42
- /** @internal */
43
- resolveFirstSubscription(): void;
44
- }
45
- declare class RemoteTrackPublication extends TrackPublication {
46
- subscribed: boolean;
47
- constructor(ownedInfo: OwnedTrackPublication);
48
- setSubscribed(subscribed: boolean): void;
49
- }
50
-
51
- export { LocalTrackPublication, RemoteTrackPublication, TrackPublication };
@@ -1,51 +1,18 @@
1
- import { FfiHandle, TrackPublicationInfo, OwnedTrackPublication, TrackKind, TrackSource, EncryptionType } from '@livekit/rtc-ffi-bindings';
2
- import { Track } from './track.js';
3
- import './audio_source.js';
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
4
  import './audio_frame.js';
5
+ import './frame_processor.js';
6
+ import './video_frame.js';
7
+ import './audio_source.js';
5
8
  import './ffi_client.js';
6
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';
7
18
  import './video_source.js';
8
- import './video_frame.js';
9
-
10
- declare abstract class TrackPublication {
11
- /** @internal */
12
- ffiHandle: FfiHandle;
13
- /** @internal */
14
- info?: TrackPublicationInfo;
15
- track?: Track;
16
- constructor(ownedInfo: OwnedTrackPublication);
17
- get sid(): string | undefined;
18
- get name(): string | undefined;
19
- get kind(): TrackKind | undefined;
20
- get source(): TrackSource | undefined;
21
- get simulcasted(): boolean | undefined;
22
- get width(): number | undefined;
23
- get height(): number | undefined;
24
- get mimeType(): string | undefined;
25
- get muted(): boolean | undefined;
26
- get encryptionType(): EncryptionType | undefined;
27
- /**
28
- * Update the publication's info in place. Used by the SDK when the
29
- * server re-issues IDs / metadata for an existing publication (e.g.
30
- * after a full reconnect). Application code holding a cached
31
- * publication reference continues to read fresh values via the
32
- * unchanged object identity.
33
- * @internal
34
- */
35
- updateInfo(info: TrackPublicationInfo): void;
36
- }
37
- declare class LocalTrackPublication extends TrackPublication {
38
- private firstSubscription;
39
- private firstSubscriptionResolver;
40
- constructor(ownedInfo: OwnedTrackPublication);
41
- waitForSubscription(): Promise<void>;
42
- /** @internal */
43
- resolveFirstSubscription(): void;
44
- }
45
- declare class RemoteTrackPublication extends TrackPublication {
46
- subscribed: boolean;
47
- constructor(ownedInfo: OwnedTrackPublication);
48
- setSubscribed(subscribed: boolean): void;
49
- }
50
-
51
- export { LocalTrackPublication, RemoteTrackPublication, TrackPublication };
@@ -1,44 +1,5 @@
1
1
  import { DataStream_Chunk, DataStream_Header } from '@livekit/rtc-ffi-bindings';
2
2
 
3
- interface StreamController<T extends DataStream_Chunk> {
4
- header: DataStream_Header;
5
- controller: ReadableStreamDefaultController<T>;
6
- startTime: number;
7
- endTime?: number;
8
- }
9
- interface BaseStreamInfo {
10
- streamId: string;
11
- mimeType: string;
12
- topic: string;
13
- timestamp: number;
14
- /** total size in bytes for finite streams and undefined for streams of unknown size */
15
- totalSize?: number;
16
- attributes?: Record<string, string>;
17
- }
18
- type ByteStreamInfo = BaseStreamInfo & {
19
- name: string;
20
- };
21
- type TextStreamInfo = BaseStreamInfo;
22
- interface DataStreamOptions {
23
- topic?: string;
24
- destinationIdentities?: Array<string>;
25
- attributes?: Record<string, string>;
26
- mimeType?: string;
27
- }
28
- interface TextStreamOptions extends DataStreamOptions {
29
- attachments?: [];
30
- }
31
- interface ByteStreamOptions extends DataStreamOptions {
32
- name?: string;
33
- onProgress?: (progress: number) => void;
34
- }
35
- type ByteStreamHandler = (reader: ByteStreamReader, participantInfo: {
36
- identity: string;
37
- }) => void;
38
- type TextStreamHandler = (reader: TextStreamReader, participantInfo: {
39
- identity: string;
40
- }) => void;
41
-
42
3
  declare abstract class BaseStreamReader<T extends BaseStreamInfo> {
43
4
  protected reader: ReadableStream<DataStream_Chunk>;
44
5
  protected totalByteSize?: number;
@@ -84,4 +45,43 @@ declare class TextStreamReader extends BaseStreamReader<TextStreamInfo> {
84
45
  readAll(): Promise<string>;
85
46
  }
86
47
 
87
- export { ByteStreamReader as B, type DataStreamOptions as D, type StreamController as S, TextStreamReader as T, type BaseStreamInfo as a, type ByteStreamInfo as b, type TextStreamInfo as c, type TextStreamOptions as d, type ByteStreamOptions as e, type ByteStreamHandler as f, type TextStreamHandler as g };
48
+ interface StreamController<T extends DataStream_Chunk> {
49
+ header: DataStream_Header;
50
+ controller: ReadableStreamDefaultController<T>;
51
+ startTime: number;
52
+ endTime?: number;
53
+ }
54
+ interface BaseStreamInfo {
55
+ streamId: string;
56
+ mimeType: string;
57
+ topic: string;
58
+ timestamp: number;
59
+ /** total size in bytes for finite streams and undefined for streams of unknown size */
60
+ totalSize?: number;
61
+ attributes?: Record<string, string>;
62
+ }
63
+ type ByteStreamInfo = BaseStreamInfo & {
64
+ name: string;
65
+ };
66
+ type TextStreamInfo = BaseStreamInfo;
67
+ interface DataStreamOptions {
68
+ topic?: string;
69
+ destinationIdentities?: Array<string>;
70
+ attributes?: Record<string, string>;
71
+ mimeType?: string;
72
+ }
73
+ interface TextStreamOptions extends DataStreamOptions {
74
+ attachments?: [];
75
+ }
76
+ interface ByteStreamOptions extends DataStreamOptions {
77
+ name?: string;
78
+ onProgress?: (progress: number) => void;
79
+ }
80
+ type ByteStreamHandler = (reader: ByteStreamReader, participantInfo: {
81
+ identity: string;
82
+ }) => void;
83
+ type TextStreamHandler = (reader: TextStreamReader, participantInfo: {
84
+ identity: string;
85
+ }) => void;
86
+
87
+ export { type BaseStreamInfo as B, type DataStreamOptions as D, type StreamController as S, type TextStreamHandler as T, type ByteStreamHandler as a, type ByteStreamInfo as b, type ByteStreamOptions as c, ByteStreamReader as d, type TextStreamInfo as e, type TextStreamOptions as f, TextStreamReader as g };
@@ -1,44 +1,5 @@
1
1
  import { DataStream_Chunk, DataStream_Header } from '@livekit/rtc-ffi-bindings';
2
2
 
3
- interface StreamController<T extends DataStream_Chunk> {
4
- header: DataStream_Header;
5
- controller: ReadableStreamDefaultController<T>;
6
- startTime: number;
7
- endTime?: number;
8
- }
9
- interface BaseStreamInfo {
10
- streamId: string;
11
- mimeType: string;
12
- topic: string;
13
- timestamp: number;
14
- /** total size in bytes for finite streams and undefined for streams of unknown size */
15
- totalSize?: number;
16
- attributes?: Record<string, string>;
17
- }
18
- type ByteStreamInfo = BaseStreamInfo & {
19
- name: string;
20
- };
21
- type TextStreamInfo = BaseStreamInfo;
22
- interface DataStreamOptions {
23
- topic?: string;
24
- destinationIdentities?: Array<string>;
25
- attributes?: Record<string, string>;
26
- mimeType?: string;
27
- }
28
- interface TextStreamOptions extends DataStreamOptions {
29
- attachments?: [];
30
- }
31
- interface ByteStreamOptions extends DataStreamOptions {
32
- name?: string;
33
- onProgress?: (progress: number) => void;
34
- }
35
- type ByteStreamHandler = (reader: ByteStreamReader, participantInfo: {
36
- identity: string;
37
- }) => void;
38
- type TextStreamHandler = (reader: TextStreamReader, participantInfo: {
39
- identity: string;
40
- }) => void;
41
-
42
3
  declare abstract class BaseStreamReader<T extends BaseStreamInfo> {
43
4
  protected reader: ReadableStream<DataStream_Chunk>;
44
5
  protected totalByteSize?: number;
@@ -84,4 +45,43 @@ declare class TextStreamReader extends BaseStreamReader<TextStreamInfo> {
84
45
  readAll(): Promise<string>;
85
46
  }
86
47
 
87
- export { ByteStreamReader as B, type DataStreamOptions as D, type StreamController as S, TextStreamReader as T, type BaseStreamInfo as a, type ByteStreamInfo as b, type TextStreamInfo as c, type TextStreamOptions as d, type ByteStreamOptions as e, type ByteStreamHandler as f, type TextStreamHandler as g };
48
+ interface StreamController<T extends DataStream_Chunk> {
49
+ header: DataStream_Header;
50
+ controller: ReadableStreamDefaultController<T>;
51
+ startTime: number;
52
+ endTime?: number;
53
+ }
54
+ interface BaseStreamInfo {
55
+ streamId: string;
56
+ mimeType: string;
57
+ topic: string;
58
+ timestamp: number;
59
+ /** total size in bytes for finite streams and undefined for streams of unknown size */
60
+ totalSize?: number;
61
+ attributes?: Record<string, string>;
62
+ }
63
+ type ByteStreamInfo = BaseStreamInfo & {
64
+ name: string;
65
+ };
66
+ type TextStreamInfo = BaseStreamInfo;
67
+ interface DataStreamOptions {
68
+ topic?: string;
69
+ destinationIdentities?: Array<string>;
70
+ attributes?: Record<string, string>;
71
+ mimeType?: string;
72
+ }
73
+ interface TextStreamOptions extends DataStreamOptions {
74
+ attachments?: [];
75
+ }
76
+ interface ByteStreamOptions extends DataStreamOptions {
77
+ name?: string;
78
+ onProgress?: (progress: number) => void;
79
+ }
80
+ type ByteStreamHandler = (reader: ByteStreamReader, participantInfo: {
81
+ identity: string;
82
+ }) => void;
83
+ type TextStreamHandler = (reader: TextStreamReader, participantInfo: {
84
+ identity: string;
85
+ }) => void;
86
+
87
+ export { type BaseStreamInfo as B, type DataStreamOptions as D, type StreamController as S, type TextStreamHandler as T, type ByteStreamHandler as a, type ByteStreamInfo as b, type ByteStreamOptions as c, ByteStreamReader as d, type TextStreamInfo as e, type TextStreamOptions as f, TextStreamReader as g };
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.28";
24
+ const SDK_VERSION = "0.13.30";
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.28\";\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.30\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;","names":[]}
@@ -1,3 +1,3 @@
1
- declare const SDK_VERSION = "0.13.28";
1
+ declare const SDK_VERSION = "0.13.30";
2
2
 
3
3
  export { SDK_VERSION };
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- declare const SDK_VERSION = "0.13.28";
1
+ declare const SDK_VERSION = "0.13.30";
2
2
 
3
3
  export { SDK_VERSION };
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const SDK_VERSION = "0.13.28";
1
+ const SDK_VERSION = "0.13.30";
2
2
  export {
3
3
  SDK_VERSION
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.28\";\n"],"mappings":"AAAO,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.30\";\n"],"mappings":"AAAO,MAAM,cAAc;","names":[]}
@@ -1,10 +1,20 @@
1
1
  import { VideoRotation } from '@livekit/rtc-ffi-bindings';
2
- import { Track } from './track.cjs';
2
+ import { T as Track } from './audio_stream-B4hGVcKz.cjs';
3
3
  import { VideoFrame } from './video_frame.cjs';
4
- import './audio_source.cjs';
4
+ import 'node:stream/web';
5
5
  import './audio_frame.cjs';
6
+ import './frame_processor.cjs';
7
+ import './audio_source.cjs';
6
8
  import './ffi_client.cjs';
7
9
  import '@livekit/typed-emitter';
10
+ import './types-_PdPVish.cjs';
11
+ import './e2ee.cjs';
12
+ import '@livekit/mutex';
13
+ import 'node:fs';
14
+ import './data_streams/stream_writer.cjs';
15
+ import './rpc.cjs';
16
+ import './transcription.cjs';
17
+ import './types.cjs';
8
18
  import './video_source.cjs';
9
19
 
10
20
  type VideoFrameEvent = {
@@ -1,10 +1,20 @@
1
1
  import { VideoRotation } from '@livekit/rtc-ffi-bindings';
2
- import { Track } from './track.js';
2
+ import { T as Track } from './audio_stream-DEG1JKge.js';
3
3
  import { VideoFrame } from './video_frame.js';
4
- import './audio_source.js';
4
+ import 'node:stream/web';
5
5
  import './audio_frame.js';
6
+ import './frame_processor.js';
7
+ import './audio_source.js';
6
8
  import './ffi_client.js';
7
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';
8
18
  import './video_source.js';
9
19
 
10
20
  type VideoFrameEvent = {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "LiveKit RTC Node",
4
4
  "license": "Apache-2.0",
5
5
  "author": "LiveKit",
6
- "version": "0.13.28",
6
+ "version": "0.13.30",
7
7
  "main": "dist/index.js",
8
8
  "require": "dist/index.cjs",
9
9
  "types": "dist/index.d.ts",
@@ -32,19 +32,19 @@
32
32
  "dependencies": {
33
33
  "@datastructures-js/deque": "1.0.8",
34
34
  "@livekit/mutex": "^1.0.0",
35
+ "@livekit/rtc-ffi-bindings": "0.12.60",
35
36
  "@livekit/typed-emitter": "^3.0.0",
36
- "@livekit/rtc-ffi-bindings": "0.12.56",
37
37
  "pino": "^9.0.0",
38
38
  "pino-pretty": "^13.0.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@bufbuild/protobuf": "^1.10.1",
42
42
  "@types/node": "^22.13.10",
43
- "vitest": "^3.0.0",
44
43
  "prettier": "^3.0.3",
45
44
  "tsup": "^8.3.5",
46
45
  "typescript": "5.8.2",
47
- "livekit-server-sdk": "2.15.3"
46
+ "vitest": "^4.0.0",
47
+ "livekit-server-sdk": "2.16.0"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">= 18"