@livekit/rtc-node 0.0.7 → 0.1.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/build.rs +4 -0
- package/dist/audio_frame.d.ts +1 -1
- package/dist/audio_frame.d.ts.map +1 -1
- package/dist/audio_frame.js +10 -11
- package/dist/audio_frame.js.map +1 -1
- package/dist/audio_source.d.ts +3 -3
- package/dist/audio_source.d.ts.map +1 -1
- package/dist/audio_source.js +14 -15
- package/dist/audio_source.js.map +1 -1
- package/dist/audio_stream.d.ts +4 -4
- package/dist/audio_stream.d.ts.map +1 -1
- package/dist/audio_stream.js +17 -21
- package/dist/audio_stream.js.map +1 -1
- package/dist/e2ee.d.ts +1 -1
- package/dist/e2ee.d.ts.map +1 -1
- package/dist/e2ee.js +42 -45
- package/dist/e2ee.js.map +1 -1
- package/dist/ffi_client.d.ts +2 -2
- package/dist/ffi_client.d.ts.map +1 -1
- package/dist/ffi_client.js +17 -24
- package/dist/ffi_client.js.map +1 -1
- package/dist/index.d.ts +15 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -70
- package/dist/index.js.map +1 -1
- package/{src/native.js → dist/napi/native.cjs} +12 -0
- package/dist/napi/native.js +15 -0
- package/dist/participant.d.ts +24 -9
- package/dist/participant.d.ts.map +1 -1
- package/dist/participant.js +45 -45
- package/dist/participant.js.map +1 -1
- package/dist/proto/audio_frame_pb.js +148 -176
- package/dist/proto/audio_frame_pb.js.map +1 -1
- package/dist/proto/e2ee_pb.js +134 -162
- package/dist/proto/e2ee_pb.js.map +1 -1
- package/dist/proto/ffi_pb.js +115 -126
- package/dist/proto/ffi_pb.js.map +1 -1
- package/dist/proto/handle_pb.js +7 -11
- package/dist/proto/handle_pb.js.map +1 -1
- package/dist/proto/participant_pb.js +13 -18
- package/dist/proto/participant_pb.js.map +1 -1
- package/dist/proto/room_pb.js +388 -454
- package/dist/proto/room_pb.js.map +1 -1
- package/dist/proto/stats_pb.js +265 -303
- package/dist/proto/stats_pb.js.map +1 -1
- package/dist/proto/track_pb.js +87 -102
- package/dist/proto/track_pb.js.map +1 -1
- package/dist/proto/video_frame_pb.js +184 -215
- package/dist/proto/video_frame_pb.js.map +1 -1
- package/dist/room.d.ts +10 -9
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +74 -76
- package/dist/room.js.map +1 -1
- package/dist/track.d.ts +4 -4
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +15 -20
- package/dist/track.js.map +1 -1
- package/dist/track_publication.d.ts +4 -4
- package/dist/track_publication.d.ts.map +1 -1
- package/dist/track_publication.js +12 -15
- package/dist/track_publication.js.map +1 -1
- package/dist/video_frame.d.ts +1 -1
- package/dist/video_frame.d.ts.map +1 -1
- package/dist/video_frame.js +57 -71
- package/dist/video_frame.js.map +1 -1
- package/dist/video_source.d.ts +3 -3
- package/dist/video_source.d.ts.map +1 -1
- package/dist/video_source.js +12 -13
- package/dist/video_source.js.map +1 -1
- package/dist/video_stream.d.ts +4 -4
- package/dist/video_stream.d.ts.map +1 -1
- package/dist/video_stream.js +18 -22
- package/dist/video_stream.js.map +1 -1
- package/package.json +14 -14
- package/src/audio_frame.ts +6 -2
- package/src/audio_source.ts +8 -4
- package/src/audio_stream.ts +9 -5
- package/src/e2ee.ts +6 -2
- package/src/ffi_client.ts +6 -2
- package/src/index.ts +19 -15
- package/src/lib.rs +4 -0
- package/src/napi/native.cjs +281 -0
- package/src/napi/native.js +15 -0
- package/src/nodejs.rs +4 -0
- package/src/participant.ts +45 -22
- package/src/room.ts +56 -48
- package/src/track.ts +8 -4
- package/src/track_publication.ts +10 -6
- package/src/video_frame.ts +6 -2
- package/src/video_source.ts +7 -3
- package/src/video_stream.ts +9 -5
- package/dist/native.d.ts.map +0 -1
- package/dist/native.js +0 -297
- package/dist/native.js.map +0 -1
- /package/dist/{native.d.ts → napi/native.d.ts} +0 -0
- /package/src/{native.d.ts → napi/native.d.ts} +0 -0
package/dist/ffi_client.js
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "FfiResponse", { enumerable: true, get: function () { return ffi_pb_1.FfiResponse; } });
|
|
10
|
-
Object.defineProperty(exports, "FfiEvent", { enumerable: true, get: function () { return ffi_pb_1.FfiEvent; } });
|
|
11
|
-
const events_1 = __importDefault(require("events"));
|
|
12
|
-
const native_1 = require("./native");
|
|
13
|
-
Object.defineProperty(exports, "FfiHandle", { enumerable: true, get: function () { return native_1.FfiHandle; } });
|
|
14
|
-
var FfiClientEvent;
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { FfiRequest, FfiResponse, FfiEvent } from './proto/ffi_pb.js';
|
|
5
|
+
import EventEmitter from 'events';
|
|
6
|
+
import { FfiHandle, livekitFfiRequest, livekitInitialize, livekitCopyBuffer, livekitRetrievePtr, } from './napi/native.js';
|
|
7
|
+
export { FfiHandle, FfiEvent, FfiResponse, FfiRequest };
|
|
8
|
+
export var FfiClientEvent;
|
|
15
9
|
(function (FfiClientEvent) {
|
|
16
10
|
FfiClientEvent["FfiEvent"] = "ffi_event";
|
|
17
|
-
})(FfiClientEvent || (
|
|
18
|
-
class FfiClient extends
|
|
11
|
+
})(FfiClientEvent || (FfiClientEvent = {}));
|
|
12
|
+
export class FfiClient extends EventEmitter {
|
|
19
13
|
/** @internal */
|
|
20
14
|
static get instance() {
|
|
21
15
|
if (!FfiClient._client)
|
|
@@ -24,22 +18,22 @@ class FfiClient extends events_1.default {
|
|
|
24
18
|
}
|
|
25
19
|
constructor() {
|
|
26
20
|
super();
|
|
27
|
-
|
|
28
|
-
let event =
|
|
21
|
+
livekitInitialize((event_data) => {
|
|
22
|
+
let event = FfiEvent.fromBinary(event_data);
|
|
29
23
|
this.emit(FfiClientEvent.FfiEvent, event);
|
|
30
24
|
}, true);
|
|
31
25
|
}
|
|
32
26
|
request(req) {
|
|
33
|
-
let request = new
|
|
27
|
+
let request = new FfiRequest(req);
|
|
34
28
|
let req_data = request.toBinary();
|
|
35
|
-
let res_data =
|
|
36
|
-
return
|
|
29
|
+
let res_data = livekitFfiRequest(req_data);
|
|
30
|
+
return FfiResponse.fromBinary(res_data).message.value;
|
|
37
31
|
}
|
|
38
32
|
copyBuffer(ptr, len) {
|
|
39
|
-
return
|
|
33
|
+
return livekitCopyBuffer(ptr, len);
|
|
40
34
|
}
|
|
41
35
|
retrievePtr(data) {
|
|
42
|
-
return
|
|
36
|
+
return livekitRetrievePtr(data);
|
|
43
37
|
}
|
|
44
38
|
async waitFor(predicate) {
|
|
45
39
|
return new Promise((resolve, _) => {
|
|
@@ -53,5 +47,4 @@ class FfiClient extends events_1.default {
|
|
|
53
47
|
});
|
|
54
48
|
}
|
|
55
49
|
}
|
|
56
|
-
exports.FfiClient = FfiClient;
|
|
57
50
|
//# sourceMappingURL=ffi_client.js.map
|
package/dist/ffi_client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffi_client.js","sourceRoot":"","sources":["../src/ffi_client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ffi_client.js","sourceRoot":"","sources":["../src/ffi_client.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAMxD,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,wCAAsB,CAAA;AACxB,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB;AAED,MAAM,OAAO,SAAU,SAAS,YAA2D;IAGzF,gBAAgB;IAChB,MAAM,KAAK,QAAQ;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,SAAS,CAAC,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;QAE5D,OAAO,SAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAER,iBAAiB,CAAC,CAAC,UAAsB,EAAE,EAAE;YAC3C,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAI,GAA+B;QACxC,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAU,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,GAAW;QACjC,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,IAAgB;QAC1B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,SAAoC;QACnD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,QAAQ,GAAG,CAAC,EAAY,EAAE,EAAE;gBAC9B,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAU,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export { Room, RoomEvent, ConnectError, RoomOptions, RtcConfiguration } from './room';
|
|
2
|
-
export { Participant, RemoteParticipant, LocalParticipant } from './participant';
|
|
3
|
-
export { Track, LocalTrack, RemoteTrack, VideoTrack, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, AudioTrack, } from './track';
|
|
4
|
-
export { VideoFrame, VideoFrameBuffer, I420Buffer, I422Buffer, I444Buffer, I420ABuffer, NV12Buffer, NativeBuffer, I010Buffer, PlanarYuvBuffer, PlanarYuv8Buffer, PlanarYuv16Buffer, ArgbFrame, BiplanarYuv8Buffer, } from './video_frame';
|
|
5
|
-
export { AudioFrame } from './audio_frame';
|
|
6
|
-
export { AudioStream } from './audio_stream';
|
|
7
|
-
export { VideoStream } from './video_stream';
|
|
8
|
-
export { AudioSource } from './audio_source';
|
|
9
|
-
export { VideoSource } from './video_source';
|
|
10
|
-
export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication';
|
|
11
|
-
export { E2EEManager, E2EEOptions, KeyProviderOptions, KeyProvider, FrameCryptor } from './e2ee';
|
|
12
|
-
export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb';
|
|
13
|
-
export { EncryptionType, EncryptionState } from './proto/e2ee_pb';
|
|
14
|
-
export { StreamState, TrackKind, TrackSource } from './proto/track_pb';
|
|
15
|
-
export { VideoFormatType, VideoFrameBufferType, VideoRotation } from './proto/video_frame_pb';
|
|
1
|
+
export { Room, RoomEvent, ConnectError, RoomOptions, RtcConfiguration } from './room.js';
|
|
2
|
+
export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
|
|
3
|
+
export { Track, LocalTrack, RemoteTrack, VideoTrack, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, AudioTrack, } from './track.js';
|
|
4
|
+
export { VideoFrame, VideoFrameBuffer, I420Buffer, I422Buffer, I444Buffer, I420ABuffer, NV12Buffer, NativeBuffer, I010Buffer, PlanarYuvBuffer, PlanarYuv8Buffer, PlanarYuv16Buffer, ArgbFrame, BiplanarYuv8Buffer, } from './video_frame.js';
|
|
5
|
+
export { AudioFrame } from './audio_frame.js';
|
|
6
|
+
export { AudioStream } from './audio_stream.js';
|
|
7
|
+
export { VideoStream } from './video_stream.js';
|
|
8
|
+
export { AudioSource } from './audio_source.js';
|
|
9
|
+
export { VideoSource } from './video_source.js';
|
|
10
|
+
export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
|
|
11
|
+
export { E2EEManager, E2EEOptions, KeyProviderOptions, KeyProvider, FrameCryptor } from './e2ee.js';
|
|
12
|
+
export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
|
|
13
|
+
export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
|
|
14
|
+
export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
|
|
15
|
+
export { VideoFormatType, VideoFrameBufferType, VideoRotation } from './proto/video_frame_pb.js';
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,KAAK,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,71 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var video_frame_1 = require("./video_frame");
|
|
20
|
-
Object.defineProperty(exports, "VideoFrame", { enumerable: true, get: function () { return video_frame_1.VideoFrame; } });
|
|
21
|
-
Object.defineProperty(exports, "VideoFrameBuffer", { enumerable: true, get: function () { return video_frame_1.VideoFrameBuffer; } });
|
|
22
|
-
Object.defineProperty(exports, "I420Buffer", { enumerable: true, get: function () { return video_frame_1.I420Buffer; } });
|
|
23
|
-
Object.defineProperty(exports, "I422Buffer", { enumerable: true, get: function () { return video_frame_1.I422Buffer; } });
|
|
24
|
-
Object.defineProperty(exports, "I444Buffer", { enumerable: true, get: function () { return video_frame_1.I444Buffer; } });
|
|
25
|
-
Object.defineProperty(exports, "I420ABuffer", { enumerable: true, get: function () { return video_frame_1.I420ABuffer; } });
|
|
26
|
-
Object.defineProperty(exports, "NV12Buffer", { enumerable: true, get: function () { return video_frame_1.NV12Buffer; } });
|
|
27
|
-
Object.defineProperty(exports, "NativeBuffer", { enumerable: true, get: function () { return video_frame_1.NativeBuffer; } });
|
|
28
|
-
Object.defineProperty(exports, "I010Buffer", { enumerable: true, get: function () { return video_frame_1.I010Buffer; } });
|
|
29
|
-
Object.defineProperty(exports, "PlanarYuvBuffer", { enumerable: true, get: function () { return video_frame_1.PlanarYuvBuffer; } });
|
|
30
|
-
Object.defineProperty(exports, "PlanarYuv8Buffer", { enumerable: true, get: function () { return video_frame_1.PlanarYuv8Buffer; } });
|
|
31
|
-
Object.defineProperty(exports, "PlanarYuv16Buffer", { enumerable: true, get: function () { return video_frame_1.PlanarYuv16Buffer; } });
|
|
32
|
-
Object.defineProperty(exports, "ArgbFrame", { enumerable: true, get: function () { return video_frame_1.ArgbFrame; } });
|
|
33
|
-
Object.defineProperty(exports, "BiplanarYuv8Buffer", { enumerable: true, get: function () { return video_frame_1.BiplanarYuv8Buffer; } });
|
|
34
|
-
var audio_frame_1 = require("./audio_frame");
|
|
35
|
-
Object.defineProperty(exports, "AudioFrame", { enumerable: true, get: function () { return audio_frame_1.AudioFrame; } });
|
|
36
|
-
var audio_stream_1 = require("./audio_stream");
|
|
37
|
-
Object.defineProperty(exports, "AudioStream", { enumerable: true, get: function () { return audio_stream_1.AudioStream; } });
|
|
38
|
-
var video_stream_1 = require("./video_stream");
|
|
39
|
-
Object.defineProperty(exports, "VideoStream", { enumerable: true, get: function () { return video_stream_1.VideoStream; } });
|
|
40
|
-
var audio_source_1 = require("./audio_source");
|
|
41
|
-
Object.defineProperty(exports, "AudioSource", { enumerable: true, get: function () { return audio_source_1.AudioSource; } });
|
|
42
|
-
var video_source_1 = require("./video_source");
|
|
43
|
-
Object.defineProperty(exports, "VideoSource", { enumerable: true, get: function () { return video_source_1.VideoSource; } });
|
|
44
|
-
var track_publication_1 = require("./track_publication");
|
|
45
|
-
Object.defineProperty(exports, "TrackPublication", { enumerable: true, get: function () { return track_publication_1.TrackPublication; } });
|
|
46
|
-
Object.defineProperty(exports, "RemoteTrackPublication", { enumerable: true, get: function () { return track_publication_1.RemoteTrackPublication; } });
|
|
47
|
-
Object.defineProperty(exports, "LocalTrackPublication", { enumerable: true, get: function () { return track_publication_1.LocalTrackPublication; } });
|
|
48
|
-
var e2ee_1 = require("./e2ee");
|
|
49
|
-
Object.defineProperty(exports, "E2EEManager", { enumerable: true, get: function () { return e2ee_1.E2EEManager; } });
|
|
50
|
-
Object.defineProperty(exports, "KeyProvider", { enumerable: true, get: function () { return e2ee_1.KeyProvider; } });
|
|
51
|
-
Object.defineProperty(exports, "FrameCryptor", { enumerable: true, get: function () { return e2ee_1.FrameCryptor; } });
|
|
52
|
-
var room_pb_1 = require("./proto/room_pb");
|
|
53
|
-
Object.defineProperty(exports, "ConnectionQuality", { enumerable: true, get: function () { return room_pb_1.ConnectionQuality; } });
|
|
54
|
-
Object.defineProperty(exports, "IceServer", { enumerable: true, get: function () { return room_pb_1.IceServer; } });
|
|
55
|
-
Object.defineProperty(exports, "IceTransportType", { enumerable: true, get: function () { return room_pb_1.IceTransportType; } });
|
|
56
|
-
Object.defineProperty(exports, "DataPacketKind", { enumerable: true, get: function () { return room_pb_1.DataPacketKind; } });
|
|
57
|
-
Object.defineProperty(exports, "ContinualGatheringPolicy", { enumerable: true, get: function () { return room_pb_1.ContinualGatheringPolicy; } });
|
|
58
|
-
Object.defineProperty(exports, "TrackPublishOptions", { enumerable: true, get: function () { return room_pb_1.TrackPublishOptions; } });
|
|
59
|
-
Object.defineProperty(exports, "ConnectionState", { enumerable: true, get: function () { return room_pb_1.ConnectionState; } });
|
|
60
|
-
var e2ee_pb_1 = require("./proto/e2ee_pb");
|
|
61
|
-
Object.defineProperty(exports, "EncryptionType", { enumerable: true, get: function () { return e2ee_pb_1.EncryptionType; } });
|
|
62
|
-
Object.defineProperty(exports, "EncryptionState", { enumerable: true, get: function () { return e2ee_pb_1.EncryptionState; } });
|
|
63
|
-
var track_pb_1 = require("./proto/track_pb");
|
|
64
|
-
Object.defineProperty(exports, "StreamState", { enumerable: true, get: function () { return track_pb_1.StreamState; } });
|
|
65
|
-
Object.defineProperty(exports, "TrackKind", { enumerable: true, get: function () { return track_pb_1.TrackKind; } });
|
|
66
|
-
Object.defineProperty(exports, "TrackSource", { enumerable: true, get: function () { return track_pb_1.TrackSource; } });
|
|
67
|
-
var video_frame_pb_1 = require("./proto/video_frame_pb");
|
|
68
|
-
Object.defineProperty(exports, "VideoFormatType", { enumerable: true, get: function () { return video_frame_pb_1.VideoFormatType; } });
|
|
69
|
-
Object.defineProperty(exports, "VideoFrameBufferType", { enumerable: true, get: function () { return video_frame_pb_1.VideoFrameBufferType; } });
|
|
70
|
-
Object.defineProperty(exports, "VideoRotation", { enumerable: true, get: function () { return video_frame_pb_1.VideoRotation; } });
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
export { Room, RoomEvent, ConnectError } from './room.js';
|
|
5
|
+
export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
|
|
6
|
+
export { Track, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, } from './track.js';
|
|
7
|
+
export { VideoFrame, VideoFrameBuffer, I420Buffer, I422Buffer, I444Buffer, I420ABuffer, NV12Buffer, NativeBuffer, I010Buffer, PlanarYuvBuffer, PlanarYuv8Buffer, PlanarYuv16Buffer, ArgbFrame, BiplanarYuv8Buffer, } from './video_frame.js';
|
|
8
|
+
export { AudioFrame } from './audio_frame.js';
|
|
9
|
+
export { AudioStream } from './audio_stream.js';
|
|
10
|
+
export { VideoStream } from './video_stream.js';
|
|
11
|
+
export { AudioSource } from './audio_source.js';
|
|
12
|
+
export { VideoSource } from './video_source.js';
|
|
13
|
+
export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
|
|
14
|
+
export { E2EEManager, KeyProvider, FrameCryptor } from './e2ee.js';
|
|
15
|
+
export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
|
|
16
|
+
export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
|
|
17
|
+
export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
|
|
18
|
+
export { VideoFormatType, VideoFrameBufferType, VideoRotation } from './proto/video_frame_pb.js';
|
|
71
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAiC,MAAM,WAAW,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EACL,KAAK,EAIL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAmC,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -244,6 +244,18 @@ switch (platform) {
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
break;
|
|
247
|
+
case 's390x':
|
|
248
|
+
localFileExisted = existsSync(join(__dirname, 'rtc-node.linux-s390x-gnu.node'));
|
|
249
|
+
try {
|
|
250
|
+
if (localFileExisted) {
|
|
251
|
+
nativeBinding = require('./rtc-node.linux-s390x-gnu.node');
|
|
252
|
+
} else {
|
|
253
|
+
nativeBinding = require('@livekit/rtc-node-linux-s390x-gnu');
|
|
254
|
+
}
|
|
255
|
+
} catch (e) {
|
|
256
|
+
loadError = e;
|
|
257
|
+
}
|
|
258
|
+
break;
|
|
247
259
|
default:
|
|
248
260
|
throw new Error(`Unsupported architecture on Linux: ${arch}`);
|
|
249
261
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
// this file exists to smoothly translate the autogenerated CommonJS code
|
|
6
|
+
// to an ES module that plays better with TypeScript.
|
|
7
|
+
|
|
8
|
+
import native from './native.cjs';
|
|
9
|
+
export const {
|
|
10
|
+
livekitInitialize,
|
|
11
|
+
livekitCopyBuffer,
|
|
12
|
+
livekitRetrievePtr,
|
|
13
|
+
livekitFfiRequest,
|
|
14
|
+
FfiHandle,
|
|
15
|
+
} = native;
|
package/dist/participant.d.ts
CHANGED
|
@@ -1,30 +1,45 @@
|
|
|
1
|
-
import { FfiHandle } from './ffi_client';
|
|
2
|
-
import { ParticipantInfo, OwnedParticipant } from './proto/participant_pb';
|
|
3
|
-
import {
|
|
4
|
-
import { LocalTrackPublication, RemoteTrackPublication, TrackPublication } from './track_publication';
|
|
5
|
-
import { LocalTrack } from './track';
|
|
1
|
+
import { FfiHandle } from './ffi_client.js';
|
|
2
|
+
import { ParticipantInfo, OwnedParticipant } from './proto/participant_pb.js';
|
|
3
|
+
import { TrackPublishOptions } from './proto/room_pb.js';
|
|
4
|
+
import { LocalTrackPublication, RemoteTrackPublication, TrackPublication } from './track_publication.js';
|
|
5
|
+
import { LocalTrack } from './track.js';
|
|
6
6
|
export declare abstract class Participant {
|
|
7
7
|
/** @internal */
|
|
8
8
|
info: ParticipantInfo;
|
|
9
9
|
/** @internal */
|
|
10
10
|
ffi_handle: FfiHandle;
|
|
11
|
-
|
|
11
|
+
trackPublications: Map<string, TrackPublication>;
|
|
12
12
|
constructor(owned_info: OwnedParticipant);
|
|
13
13
|
get sid(): string;
|
|
14
14
|
get name(): string;
|
|
15
15
|
get identity(): string;
|
|
16
16
|
get metadata(): string;
|
|
17
17
|
}
|
|
18
|
+
export type DataPublishOptions = {
|
|
19
|
+
/**
|
|
20
|
+
* whether to send this as reliable or lossy.
|
|
21
|
+
* For data that you need delivery guarantee (such as chat messages), use Reliable.
|
|
22
|
+
* For data that should arrive as quickly as possible, but you are ok with dropped
|
|
23
|
+
* packets, use Lossy.
|
|
24
|
+
*/
|
|
25
|
+
reliable?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* the sids of participants who will receive the message, will be sent to every one if empty
|
|
28
|
+
*/
|
|
29
|
+
destination?: string[] | RemoteParticipant[];
|
|
30
|
+
/** the topic under which the message gets published */
|
|
31
|
+
topic?: string;
|
|
32
|
+
};
|
|
18
33
|
export declare class LocalParticipant extends Participant {
|
|
19
|
-
|
|
20
|
-
publishData(data: Uint8Array,
|
|
34
|
+
trackPublications: Map<string, LocalTrackPublication>;
|
|
35
|
+
publishData(data: Uint8Array, options: DataPublishOptions): Promise<void>;
|
|
21
36
|
updateMetadata(metadata: string): Promise<void>;
|
|
22
37
|
updateName(name: string): Promise<void>;
|
|
23
38
|
publishTrack(track: LocalTrack, options: TrackPublishOptions): Promise<LocalTrackPublication>;
|
|
24
39
|
unpublishTrack(trackSid: string): Promise<void>;
|
|
25
40
|
}
|
|
26
41
|
export declare class RemoteParticipant extends Participant {
|
|
27
|
-
|
|
42
|
+
trackPublications: Map<string, RemoteTrackPublication>;
|
|
28
43
|
constructor(owned_info: OwnedParticipant);
|
|
29
44
|
}
|
|
30
45
|
//# sourceMappingURL=participant.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,SAAS,EAAc,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAQL,mBAAmB,EAUpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,8BAAsB,WAAW;IAC/B,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IAEtB,gBAAgB;IAChB,UAAU,EAAE,SAAS,CAAC;IAEtB,iBAAiB,gCAAuC;gBAE5C,UAAU,EAAE,gBAAgB;IAKxC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC7C,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAE5D,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IA8BzD,cAAc,CAAC,QAAQ,EAAE,MAAM;IAe/B,UAAU,CAAC,IAAI,EAAE,MAAM;IAevB,YAAY,CAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IAsB3B,cAAc,CAAC,QAAQ,EAAE,MAAM;CAkBtC;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;gBAEvD,UAAU,EAAE,gBAAgB;CAGzC"}
|
package/dist/participant.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Participant {
|
|
1
|
+
// SPDX-FileCopyrightText: 2024 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { FfiClient, FfiHandle } from './ffi_client.js';
|
|
5
|
+
import { DataPacketKind, PublishDataRequest, PublishTrackRequest, UnpublishTrackRequest, UpdateLocalMetadataRequest, UpdateLocalNameRequest, } from './proto/room_pb.js';
|
|
6
|
+
import { LocalTrackPublication, } from './track_publication.js';
|
|
7
|
+
export class Participant {
|
|
8
8
|
constructor(owned_info) {
|
|
9
|
-
this.
|
|
9
|
+
this.trackPublications = new Map();
|
|
10
10
|
this.info = owned_info.info;
|
|
11
|
-
this.ffi_handle = new
|
|
11
|
+
this.ffi_handle = new FfiHandle(owned_info.handle.id);
|
|
12
12
|
}
|
|
13
13
|
get sid() {
|
|
14
14
|
return this.info.sid;
|
|
@@ -23,29 +23,31 @@ class Participant {
|
|
|
23
23
|
return this.info.metadata;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
class LocalParticipant extends Participant {
|
|
26
|
+
export class LocalParticipant extends Participant {
|
|
28
27
|
constructor() {
|
|
29
28
|
super(...arguments);
|
|
30
|
-
this.
|
|
29
|
+
this.trackPublications = new Map();
|
|
31
30
|
}
|
|
32
|
-
async publishData(data,
|
|
33
|
-
let req = new
|
|
31
|
+
async publishData(data, options) {
|
|
32
|
+
let req = new PublishDataRequest({
|
|
34
33
|
localParticipantHandle: this.ffi_handle.handle,
|
|
35
|
-
dataPtr:
|
|
34
|
+
dataPtr: FfiClient.instance.retrievePtr(data),
|
|
36
35
|
dataLen: BigInt(data.byteLength),
|
|
37
|
-
kind:
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
kind: options.reliable ? DataPacketKind.KIND_RELIABLE : DataPacketKind.KIND_LOSSY,
|
|
37
|
+
topic: options.topic,
|
|
38
|
+
});
|
|
39
|
+
if (options.destination) {
|
|
40
|
+
const sids = options.destination.map((sid) => {
|
|
41
|
+
if (typeof sid == 'string')
|
|
42
|
+
return sid;
|
|
43
|
+
return sid.sid;
|
|
44
|
+
});
|
|
45
|
+
req.destinationSids = sids;
|
|
46
|
+
}
|
|
47
|
+
let res = FfiClient.instance.request({
|
|
46
48
|
message: { case: 'publishData', value: req },
|
|
47
49
|
});
|
|
48
|
-
let cb = await
|
|
50
|
+
let cb = await FfiClient.instance.waitFor((ev) => {
|
|
49
51
|
return ev.message.case == 'publishData' && ev.message.value.asyncId == res.asyncId;
|
|
50
52
|
});
|
|
51
53
|
if (cb.error) {
|
|
@@ -53,68 +55,66 @@ class LocalParticipant extends Participant {
|
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
async updateMetadata(metadata) {
|
|
56
|
-
let req = new
|
|
58
|
+
let req = new UpdateLocalMetadataRequest({
|
|
57
59
|
localParticipantHandle: this.ffi_handle.handle,
|
|
58
60
|
metadata: metadata,
|
|
59
61
|
});
|
|
60
|
-
let res =
|
|
62
|
+
let res = FfiClient.instance.request({
|
|
61
63
|
message: { case: 'updateLocalMetadata', value: req },
|
|
62
64
|
});
|
|
63
|
-
await
|
|
65
|
+
await FfiClient.instance.waitFor((ev) => {
|
|
64
66
|
return ev.message.case == 'updateLocalMetadata' && ev.message.value.asyncId == res.asyncId;
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
69
|
async updateName(name) {
|
|
68
|
-
let req = new
|
|
70
|
+
let req = new UpdateLocalNameRequest({
|
|
69
71
|
localParticipantHandle: this.ffi_handle.handle,
|
|
70
72
|
name: name,
|
|
71
73
|
});
|
|
72
|
-
let res =
|
|
74
|
+
let res = FfiClient.instance.request({
|
|
73
75
|
message: { case: 'updateLocalName', value: req },
|
|
74
76
|
});
|
|
75
|
-
await
|
|
77
|
+
await FfiClient.instance.waitFor((ev) => {
|
|
76
78
|
return ev.message.case == 'updateLocalName' && ev.message.value.asyncId == res.asyncId;
|
|
77
79
|
});
|
|
78
80
|
}
|
|
79
81
|
async publishTrack(track, options) {
|
|
80
|
-
let req = new
|
|
82
|
+
let req = new PublishTrackRequest({
|
|
81
83
|
localParticipantHandle: this.ffi_handle.handle,
|
|
82
84
|
trackHandle: track.ffi_handle.handle,
|
|
83
85
|
options: options,
|
|
84
86
|
});
|
|
85
|
-
let res =
|
|
87
|
+
let res = FfiClient.instance.request({
|
|
86
88
|
message: { case: 'publishTrack', value: req },
|
|
87
89
|
});
|
|
88
|
-
let cb = await
|
|
90
|
+
let cb = await FfiClient.instance.waitFor((ev) => {
|
|
89
91
|
return ev.message.case == 'publishTrack' && ev.message.value.asyncId == res.asyncId;
|
|
90
92
|
});
|
|
91
|
-
let track_publication = new
|
|
93
|
+
let track_publication = new LocalTrackPublication(cb.publication);
|
|
92
94
|
track_publication.track = track;
|
|
93
|
-
this.
|
|
95
|
+
this.trackPublications.set(track_publication.sid, track_publication);
|
|
94
96
|
return track_publication;
|
|
95
97
|
}
|
|
96
98
|
async unpublishTrack(trackSid) {
|
|
97
|
-
let req = new
|
|
99
|
+
let req = new UnpublishTrackRequest({
|
|
98
100
|
localParticipantHandle: this.ffi_handle.handle,
|
|
99
101
|
trackSid: trackSid,
|
|
100
102
|
});
|
|
101
|
-
let res =
|
|
103
|
+
let res = FfiClient.instance.request({
|
|
102
104
|
message: { case: 'unpublishTrack', value: req },
|
|
103
105
|
});
|
|
104
|
-
await
|
|
106
|
+
await FfiClient.instance.waitFor((ev) => {
|
|
105
107
|
return ev.message.case == 'unpublishTrack' && ev.message.value.asyncId == res.asyncId;
|
|
106
108
|
});
|
|
107
|
-
let pub = this.
|
|
109
|
+
let pub = this.trackPublications.get(trackSid);
|
|
108
110
|
pub.track = undefined;
|
|
109
|
-
this.
|
|
111
|
+
this.trackPublications.delete(trackSid);
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
|
-
|
|
113
|
-
class RemoteParticipant extends Participant {
|
|
114
|
+
export class RemoteParticipant extends Participant {
|
|
114
115
|
constructor(owned_info) {
|
|
115
116
|
super(owned_info);
|
|
116
|
-
this.
|
|
117
|
+
this.trackPublications = new Map();
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
|
-
exports.RemoteParticipant = RemoteParticipant;
|
|
120
120
|
//# sourceMappingURL=participant.js.map
|
package/dist/participant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}
|