@livekit/rtc-node 0.0.2 → 0.0.4
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/Cargo.toml +21 -0
- package/build.rs +5 -0
- package/dist/audio_frame.d.ts +14 -0
- package/dist/audio_frame.d.ts.map +1 -0
- package/dist/audio_frame.js +36 -0
- package/dist/audio_frame.js.map +1 -0
- package/dist/audio_source.d.ts +14 -0
- package/dist/audio_source.d.ts.map +1 -0
- package/dist/audio_source.js +42 -0
- package/dist/audio_source.js.map +1 -0
- package/dist/audio_stream.d.ts +24 -0
- package/dist/audio_stream.d.ts.map +1 -0
- package/dist/audio_stream.js +54 -0
- package/dist/audio_stream.js.map +1 -0
- package/dist/e2ee.d.ts +44 -0
- package/dist/e2ee.d.ts.map +1 -0
- package/dist/e2ee.js +232 -0
- package/dist/e2ee.js.map +1 -0
- package/dist/ffi_client.d.ts +23 -0
- package/dist/ffi_client.d.ts.map +1 -0
- package/dist/ffi_client.js +57 -0
- package/dist/ffi_client.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/native.d.ts +14 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +297 -0
- package/dist/native.js.map +1 -0
- package/dist/participant.d.ts +30 -0
- package/dist/participant.d.ts.map +1 -0
- package/dist/participant.js +120 -0
- package/dist/participant.js.map +1 -0
- package/dist/proto/audio_frame_pb.d.ts +556 -0
- package/dist/proto/audio_frame_pb.d.ts.map +1 -0
- package/dist/proto/audio_frame_pb.js +861 -0
- package/dist/proto/audio_frame_pb.js.map +1 -0
- package/dist/proto/e2ee_pb.d.ts +652 -0
- package/dist/proto/e2ee_pb.d.ts.map +1 -0
- package/dist/proto/e2ee_pb.js +906 -0
- package/dist/proto/e2ee_pb.js.map +1 -0
- package/dist/proto/ffi_pb.d.ts +672 -0
- package/dist/proto/ffi_pb.d.ts.map +1 -0
- package/dist/proto/ffi_pb.js +459 -0
- package/dist/proto/ffi_pb.js.map +1 -0
- package/dist/proto/handle_pb.d.ts +30 -0
- package/dist/proto/handle_pb.d.ts.map +1 -0
- package/dist/proto/handle_pb.js +59 -0
- package/dist/proto/handle_pb.js.map +1 -0
- package/dist/proto/participant_pb.d.ts +54 -0
- package/dist/proto/participant_pb.d.ts.map +1 -0
- package/dist/proto/participant_pb.js +93 -0
- package/dist/proto/participant_pb.js.map +1 -0
- package/dist/proto/room_pb.d.ts +1480 -0
- package/dist/proto/room_pb.d.ts.map +1 -0
- package/dist/proto/room_pb.js +2172 -0
- package/dist/proto/room_pb.js.map +1 -0
- package/dist/proto/stats_pb.d.ts +1713 -0
- package/dist/proto/stats_pb.d.ts.map +1 -0
- package/dist/proto/stats_pb.js +2238 -0
- package/dist/proto/stats_pb.js.map +1 -0
- package/dist/proto/track_pb.d.ts +353 -0
- package/dist/proto/track_pb.d.ts.map +1 -0
- package/dist/proto/track_pb.js +550 -0
- package/dist/proto/track_pb.js.map +1 -0
- package/dist/proto/video_frame_pb.d.ts +855 -0
- package/dist/proto/video_frame_pb.d.ts.map +1 -0
- package/dist/proto/video_frame_pb.js +1214 -0
- package/dist/proto/video_frame_pb.js.map +1 -0
- package/dist/room.d.ts +95 -0
- package/dist/room.d.ts.map +1 -0
- package/dist/room.js +285 -0
- package/dist/room.js.map +1 -0
- package/dist/track.d.ts +35 -0
- package/dist/track.d.ts.map +1 -0
- package/dist/track.js +72 -0
- package/dist/track.js.map +1 -0
- package/dist/track_publication.d.ts +31 -0
- package/dist/track_publication.d.ts.map +1 -0
- package/dist/track_publication.js +66 -0
- package/dist/track_publication.js.map +1 -0
- package/dist/video_frame.d.ts +111 -0
- package/dist/video_frame.d.ts.map +1 -0
- package/dist/video_frame.js +364 -0
- package/dist/video_frame.js.map +1 -0
- package/dist/video_source.d.ts +14 -0
- package/dist/video_source.d.ts.map +1 -0
- package/dist/video_source.js +44 -0
- package/dist/video_source.js.map +1 -0
- package/dist/video_stream.d.ts +24 -0
- package/dist/video_stream.d.ts.map +1 -0
- package/dist/video_stream.js +56 -0
- package/dist/video_stream.js.map +1 -0
- package/package.json +19 -14
- package/src/audio_frame.ts +45 -0
- package/src/audio_source.ts +64 -0
- package/src/audio_stream.ts +74 -0
- package/src/e2ee.ts +311 -0
- package/src/ffi_client.ts +68 -0
- package/src/index.ts +52 -0
- package/src/lib.rs +5 -0
- package/src/native.d.ts +14 -0
- package/src/native.js +269 -0
- package/src/nodejs.rs +115 -0
- package/src/participant.ts +171 -0
- package/src/proto/audio_frame_pb.ts +1121 -0
- package/src/proto/e2ee_pb.ts +1231 -0
- package/src/proto/ffi_pb.ts +969 -0
- package/src/proto/handle_pb.ts +69 -0
- package/src/proto/participant_pb.ts +121 -0
- package/src/proto/room_pb.ts +2843 -0
- package/src/proto/stats_pb.ts +2955 -0
- package/src/proto/track_pb.ts +683 -0
- package/src/proto/video_frame_pb.ts +1568 -0
- package/src/room.ts +370 -0
- package/src/track.ts +101 -0
- package/src/track_publication.ts +90 -0
- package/src/video_frame.ts +620 -0
- package/src/video_source.ts +61 -0
- package/src/video_stream.ts +76 -0
package/Cargo.toml
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
edition = "2021"
|
|
3
|
+
name = "rtc-node"
|
|
4
|
+
version = "0.0.1"
|
|
5
|
+
|
|
6
|
+
[lib]
|
|
7
|
+
crate-type = ["cdylib"]
|
|
8
|
+
|
|
9
|
+
[dependencies]
|
|
10
|
+
napi = { version = "2.12.2", default-features = false, features = ["napi6"] }
|
|
11
|
+
napi-derive = "2.12.2"
|
|
12
|
+
livekit-ffi = { path = "./rust-sdks/livekit-ffi" }
|
|
13
|
+
prost = "0.12"
|
|
14
|
+
prost-types = "0.12"
|
|
15
|
+
log = "0.4.20"
|
|
16
|
+
|
|
17
|
+
[build-dependencies]
|
|
18
|
+
napi-build = "2.0.1"
|
|
19
|
+
|
|
20
|
+
[profile.release]
|
|
21
|
+
lto = true
|
package/build.rs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AudioFrameBufferInfo, OwnedAudioFrameBuffer } from './proto/audio_frame_pb';
|
|
2
|
+
export declare class AudioFrame {
|
|
3
|
+
data: Uint16Array;
|
|
4
|
+
sampleRate: number;
|
|
5
|
+
channels: number;
|
|
6
|
+
samplesPerChannel: number;
|
|
7
|
+
constructor(data: Uint16Array, sampleRate: number, channels: number, samplesPerChannel: number);
|
|
8
|
+
static create(sampleRate: number, channels: number, samplesPerChannel: number): AudioFrame;
|
|
9
|
+
/** @internal */
|
|
10
|
+
static fromOwnedInfo(owned: OwnedAudioFrameBuffer): AudioFrame;
|
|
11
|
+
/** @internal */
|
|
12
|
+
protoInfo(): AudioFrameBufferInfo;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=audio_frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_frame.d.ts","sourceRoot":"","sources":["../src/audio_frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAErF,qBAAa,UAAU;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAO9F,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU;IAK1F,gBAAgB;IAChB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,UAAU;IAa9D,gBAAgB;IAChB,SAAS,IAAI,oBAAoB;CAQlC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AudioFrame = void 0;
|
|
4
|
+
const ffi_client_1 = require("./ffi_client");
|
|
5
|
+
const audio_frame_pb_1 = require("./proto/audio_frame_pb");
|
|
6
|
+
class AudioFrame {
|
|
7
|
+
constructor(data, sampleRate, channels, samplesPerChannel) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
this.sampleRate = sampleRate;
|
|
10
|
+
this.channels = channels;
|
|
11
|
+
this.samplesPerChannel = samplesPerChannel;
|
|
12
|
+
}
|
|
13
|
+
static create(sampleRate, channels, samplesPerChannel) {
|
|
14
|
+
const data = new Uint16Array(channels * samplesPerChannel);
|
|
15
|
+
return new AudioFrame(data, sampleRate, channels, samplesPerChannel);
|
|
16
|
+
}
|
|
17
|
+
/** @internal */
|
|
18
|
+
static fromOwnedInfo(owned) {
|
|
19
|
+
let info = owned.info;
|
|
20
|
+
let len = info.numChannels * info.samplesPerChannel * 2; // c_int16
|
|
21
|
+
let data = ffi_client_1.FfiClient.instance.copyBuffer(info.dataPtr, len);
|
|
22
|
+
new ffi_client_1.FfiHandle(owned.handle.id).dispose();
|
|
23
|
+
return new AudioFrame(new Uint16Array(data.buffer), info.sampleRate, info.numChannels, info.samplesPerChannel);
|
|
24
|
+
}
|
|
25
|
+
/** @internal */
|
|
26
|
+
protoInfo() {
|
|
27
|
+
return new audio_frame_pb_1.AudioFrameBufferInfo({
|
|
28
|
+
dataPtr: ffi_client_1.FfiClient.instance.retrievePtr(new Uint8Array(this.data.buffer)),
|
|
29
|
+
sampleRate: this.sampleRate,
|
|
30
|
+
numChannels: this.channels,
|
|
31
|
+
samplesPerChannel: this.samplesPerChannel,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.AudioFrame = AudioFrame;
|
|
36
|
+
//# sourceMappingURL=audio_frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_frame.js","sourceRoot":"","sources":["../src/audio_frame.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AACpD,2DAAqF;AAErF,MAAa,UAAU;IAMrB,YAAY,IAAiB,EAAE,UAAkB,EAAE,QAAgB,EAAE,iBAAyB;QAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAkB,EAAE,QAAgB,EAAE,iBAAyB;QAC3E,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,GAAG,iBAAiB,CAAC,CAAC;QAC3D,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,aAAa,CAAC,KAA4B;QAC/C,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACtB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,UAAU;QACnE,IAAI,IAAI,GAAG,sBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,sBAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO,IAAI,UAAU,CACnB,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,iBAAiB,CACvB,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,SAAS;QACP,OAAO,IAAI,qCAAoB,CAAC;YAC9B,OAAO,EAAE,sBAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,CAAC;IACL,CAAC;CACF;AAzCD,gCAyCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FfiHandle } from './native';
|
|
2
|
+
import { AudioFrame } from './audio_frame';
|
|
3
|
+
import { AudioSourceInfo } from './proto/audio_frame_pb';
|
|
4
|
+
export declare class AudioSource {
|
|
5
|
+
/** @internal */
|
|
6
|
+
info: AudioSourceInfo;
|
|
7
|
+
/** @internal */
|
|
8
|
+
ffiHandle: FfiHandle;
|
|
9
|
+
sampleRate: number;
|
|
10
|
+
numChannels: number;
|
|
11
|
+
constructor(sampleRate: number, numChannels: number);
|
|
12
|
+
captureFrame(frame: AudioFrame): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=audio_source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_source.d.ts","sourceRoot":"","sources":["../src/audio_source.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,eAAe,EAOhB,MAAM,wBAAwB,CAAC;AAGhC,qBAAa,WAAW;IACtB,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;gBAER,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAqB7C,YAAY,CAAC,KAAK,EAAE,UAAU;CAkBrC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AudioSource = void 0;
|
|
4
|
+
const native_1 = require("./native");
|
|
5
|
+
const audio_frame_pb_1 = require("./proto/audio_frame_pb");
|
|
6
|
+
const ffi_client_1 = require("./ffi_client");
|
|
7
|
+
class AudioSource {
|
|
8
|
+
constructor(sampleRate, numChannels) {
|
|
9
|
+
this.sampleRate = sampleRate;
|
|
10
|
+
this.numChannels = numChannels;
|
|
11
|
+
let req = new audio_frame_pb_1.NewAudioSourceRequest({
|
|
12
|
+
type: audio_frame_pb_1.AudioSourceType.AUDIO_SOURCE_NATIVE,
|
|
13
|
+
sampleRate: sampleRate,
|
|
14
|
+
numChannels: numChannels,
|
|
15
|
+
});
|
|
16
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
17
|
+
message: {
|
|
18
|
+
case: 'newAudioSource',
|
|
19
|
+
value: req,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
this.info = res.source.info;
|
|
23
|
+
this.ffiHandle = new native_1.FfiHandle(res.source.handle.id);
|
|
24
|
+
}
|
|
25
|
+
async captureFrame(frame) {
|
|
26
|
+
let req = new audio_frame_pb_1.CaptureAudioFrameRequest({
|
|
27
|
+
sourceHandle: this.ffiHandle.handle,
|
|
28
|
+
buffer: frame.protoInfo(),
|
|
29
|
+
});
|
|
30
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
31
|
+
message: { case: 'captureAudioFrame', value: req },
|
|
32
|
+
});
|
|
33
|
+
let cb = await ffi_client_1.FfiClient.instance.waitFor((ev) => {
|
|
34
|
+
return ev.message.case == 'captureAudioFrame' && ev.message.value.asyncId == res.asyncId;
|
|
35
|
+
});
|
|
36
|
+
if (cb.error) {
|
|
37
|
+
throw new Error(cb.error);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.AudioSource = AudioSource;
|
|
42
|
+
//# sourceMappingURL=audio_source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_source.js","sourceRoot":"","sources":["../src/audio_source.ts"],"names":[],"mappings":";;;AAEA,qCAAqC;AAErC,2DAQgC;AAChC,6CAAqD;AAErD,MAAa,WAAW;IAStB,YAAY,UAAkB,EAAE,WAAmB;QACjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,GAAG,GAAG,IAAI,sCAAqB,CAAC;YAClC,IAAI,EAAE,gCAAe,CAAC,mBAAmB;YACzC,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,IAAI,GAAG,GAAG,sBAAS,CAAC,QAAQ,CAAC,OAAO,CAAyB;YAC3D,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAiB;QAClC,IAAI,GAAG,GAAG,IAAI,yCAAwB,CAAC;YACrC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;YACnC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,GAAG,GAAG,sBAAS,CAAC,QAAQ,CAAC,OAAO,CAA4B;YAC9D,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE;SACnD,CAAC,CAAC;QAEH,IAAI,EAAE,GAAG,MAAM,sBAAS,CAAC,QAAQ,CAAC,OAAO,CAA4B,CAAC,EAAE,EAAE,EAAE;YAC1E,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,mBAAmB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF;AAhDD,kCAgDC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AudioFrame } from './audio_frame';
|
|
2
|
+
import { FfiHandle } from './ffi_client';
|
|
3
|
+
import { AudioStreamInfo } from './proto/audio_frame_pb';
|
|
4
|
+
import { Track } from './track';
|
|
5
|
+
import TypedEmitter from 'typed-emitter';
|
|
6
|
+
export type AudioStreamCallbacks = {
|
|
7
|
+
frameReceived: (frame: AudioFrame) => void;
|
|
8
|
+
};
|
|
9
|
+
export declare enum AudioStreamEvent {
|
|
10
|
+
FrameReceived = "frameReceived"
|
|
11
|
+
}
|
|
12
|
+
declare const AudioStream_base: new () => TypedEmitter<AudioStreamCallbacks>;
|
|
13
|
+
export declare class AudioStream extends AudioStream_base {
|
|
14
|
+
/** @internal */
|
|
15
|
+
info: AudioStreamInfo;
|
|
16
|
+
/** @internal */
|
|
17
|
+
ffiHandle: FfiHandle;
|
|
18
|
+
track: Track;
|
|
19
|
+
constructor(track: Track);
|
|
20
|
+
private onEvent;
|
|
21
|
+
close(): void;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=audio_stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_stream.d.ts","sourceRoot":"","sources":["../src/audio_stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAuC,SAAS,EAAc,MAAM,cAAc,CAAC;AAC1F,OAAO,EACL,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,aAAa,kBAAkB;CAChC;0CAE2D,aAAa,oBAAoB,CAAC;AAA9F,qBAAa,WAAY,SAAQ,gBAA8D;IAC7F,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,KAAK,EAAE,KAAK,CAAC;gBAED,KAAK,EAAE,KAAK;IAsBxB,OAAO,CAAC,OAAO;IAoBf,KAAK;CAGN"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AudioStream = exports.AudioStreamEvent = void 0;
|
|
7
|
+
const audio_frame_1 = require("./audio_frame");
|
|
8
|
+
const ffi_client_1 = require("./ffi_client");
|
|
9
|
+
const audio_frame_pb_1 = require("./proto/audio_frame_pb");
|
|
10
|
+
const events_1 = __importDefault(require("events"));
|
|
11
|
+
var AudioStreamEvent;
|
|
12
|
+
(function (AudioStreamEvent) {
|
|
13
|
+
AudioStreamEvent["FrameReceived"] = "frameReceived";
|
|
14
|
+
})(AudioStreamEvent || (exports.AudioStreamEvent = AudioStreamEvent = {}));
|
|
15
|
+
class AudioStream extends events_1.default {
|
|
16
|
+
constructor(track) {
|
|
17
|
+
super();
|
|
18
|
+
this.track = track;
|
|
19
|
+
let req = new audio_frame_pb_1.NewAudioStreamRequest({
|
|
20
|
+
type: audio_frame_pb_1.AudioStreamType.AUDIO_STREAM_NATIVE,
|
|
21
|
+
trackHandle: track.ffi_handle.handle,
|
|
22
|
+
});
|
|
23
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
24
|
+
message: {
|
|
25
|
+
case: 'newAudioStream',
|
|
26
|
+
value: req,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
this.info = res.stream.info;
|
|
30
|
+
this.ffiHandle = new ffi_client_1.FfiHandle(res.stream.handle.id);
|
|
31
|
+
ffi_client_1.FfiClient.instance.on(ffi_client_1.FfiClientEvent.FfiEvent, this.onEvent);
|
|
32
|
+
}
|
|
33
|
+
onEvent(ev) {
|
|
34
|
+
if (ev.message.case != 'audioStreamEvent' ||
|
|
35
|
+
ev.message.value.streamHandle != this.ffiHandle.handle) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
let streamEvent = ev.message.value.message;
|
|
39
|
+
switch (streamEvent.case) {
|
|
40
|
+
case 'frameReceived':
|
|
41
|
+
let frame = audio_frame_1.AudioFrame.fromOwnedInfo(streamEvent.value.frame);
|
|
42
|
+
this.emit(AudioStreamEvent.FrameReceived, frame);
|
|
43
|
+
break;
|
|
44
|
+
case 'eos':
|
|
45
|
+
ffi_client_1.FfiClient.instance.off(ffi_client_1.FfiClientEvent.FfiEvent, this.onEvent);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
close() {
|
|
50
|
+
this.ffiHandle.dispose();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AudioStream = AudioStream;
|
|
54
|
+
//# sourceMappingURL=audio_stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio_stream.js","sourceRoot":"","sources":["../src/audio_stream.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA2C;AAC3C,6CAA0F;AAC1F,2DAKgC;AAEhC,oDAAkC;AAOlC,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,mDAA+B,CAAA;AACjC,CAAC,EAFW,gBAAgB,gCAAhB,gBAAgB,QAE3B;AAED,MAAa,WAAY,SAAS,gBAA6D;IAQ7F,YAAY,KAAY;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,GAAG,GAAG,IAAI,sCAAqB,CAAC;YAClC,IAAI,EAAE,gCAAe,CAAC,mBAAmB;YACzC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;SACrC,CAAC,CAAC;QAEH,IAAI,GAAG,GAAG,sBAAS,CAAC,QAAQ,CAAC,OAAO,CAAyB;YAC3D,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAErD,sBAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,2BAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEO,OAAO,CAAC,EAAY;QAC1B,IACE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAkB;YACrC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EACtD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,KAAK,eAAe;gBAClB,IAAI,KAAK,GAAG,wBAAU,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC9D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,KAAK;gBACR,sBAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,2BAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9D,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AArDD,kCAqDC"}
|
package/dist/e2ee.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { EncryptionType } from './proto/e2ee_pb';
|
|
2
|
+
export interface KeyProviderOptions {
|
|
3
|
+
sharedKey?: Uint8Array;
|
|
4
|
+
ratchetSalt: Uint8Array;
|
|
5
|
+
ratchetWindowSize: number;
|
|
6
|
+
failureTolerance: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const defaultKeyProviderOptions: KeyProviderOptions;
|
|
9
|
+
export interface E2EEOptions {
|
|
10
|
+
keyProviderOptions: KeyProviderOptions;
|
|
11
|
+
encryptionType: EncryptionType;
|
|
12
|
+
}
|
|
13
|
+
export declare const defaultE2EEOptions: E2EEOptions;
|
|
14
|
+
export declare class KeyProvider {
|
|
15
|
+
private roomHandle;
|
|
16
|
+
options: KeyProviderOptions;
|
|
17
|
+
/** internal */
|
|
18
|
+
constructor(roomHandle: bigint, opts: KeyProviderOptions);
|
|
19
|
+
setSharedKey(sharedKey: Uint8Array, keyIndex: number): void;
|
|
20
|
+
exportSharedKey(keyIndex: number): Uint8Array;
|
|
21
|
+
ratchetSharedKey(keyIndex: number): Uint8Array;
|
|
22
|
+
setKey(participantIdentity: string, keyIndex: number): void;
|
|
23
|
+
exportKey(participantIdentity: string, keyIndex: number): Uint8Array;
|
|
24
|
+
ratchetKey(participantIdentity: string, keyIndex: number): Uint8Array;
|
|
25
|
+
}
|
|
26
|
+
export declare class FrameCryptor {
|
|
27
|
+
private roomHandle;
|
|
28
|
+
participantIdentity: string;
|
|
29
|
+
keyIndex: number;
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
constructor(roomHandle: bigint, participantIdentity: string, keyIndex: number, enabled: boolean);
|
|
32
|
+
setEnabled(enabled: boolean): void;
|
|
33
|
+
setKeyIndex(keyIndex: number): void;
|
|
34
|
+
}
|
|
35
|
+
export declare class E2EEManager {
|
|
36
|
+
private roomHandle;
|
|
37
|
+
private options;
|
|
38
|
+
private keyProvider?;
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
constructor(roomHandle: bigint, opts?: E2EEOptions);
|
|
41
|
+
setEnabled(enabled: boolean): void;
|
|
42
|
+
frameCryptors(): FrameCryptor[];
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=e2ee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2ee.d.ts","sourceRoot":"","sources":["../src/e2ee.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,cAAc,EAaf,MAAM,iBAAiB,CAAC;AAMzB,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,yBAAyB,EAAE,kBAIvC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB,EAAE,WAGhC,CAAC;AAEF,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,EAAE,kBAAkB,CAAC;IAE5B,eAAe;gBACH,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB;IAKxD,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM;IAoBpD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAqB7C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAqB9C,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAoBpD,SAAS,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAsBpE,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;CAqBtE;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAM;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;gBAEL,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAO/F,UAAU,CAAC,OAAO,EAAE,OAAO;IAqB3B,WAAW,CAAC,QAAQ,EAAE,MAAM;CAoB7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,OAAO,EAAE,OAAO,CAAC;gBAEL,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAYlD,UAAU,CAAC,OAAO,EAAE,OAAO;IAoB3B,aAAa,IAAI,YAAY,EAAE;CA8BhC"}
|
package/dist/e2ee.js
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.E2EEManager = exports.FrameCryptor = exports.KeyProvider = exports.defaultE2EEOptions = exports.defaultKeyProviderOptions = void 0;
|
|
4
|
+
const ffi_client_1 = require("./ffi_client");
|
|
5
|
+
const e2ee_pb_1 = require("./proto/e2ee_pb");
|
|
6
|
+
const DEFAULT_RATCHET_SALT = new TextEncoder().encode('LKFrameEncryptionKey');
|
|
7
|
+
const DEFAULT_RATCHET_WINDOW_SIZE = 16;
|
|
8
|
+
const DEFAULT_FAILURE_TOLERANCE = -1;
|
|
9
|
+
exports.defaultKeyProviderOptions = {
|
|
10
|
+
ratchetSalt: DEFAULT_RATCHET_SALT,
|
|
11
|
+
ratchetWindowSize: DEFAULT_RATCHET_WINDOW_SIZE,
|
|
12
|
+
failureTolerance: DEFAULT_FAILURE_TOLERANCE,
|
|
13
|
+
};
|
|
14
|
+
exports.defaultE2EEOptions = {
|
|
15
|
+
keyProviderOptions: exports.defaultKeyProviderOptions,
|
|
16
|
+
encryptionType: e2ee_pb_1.EncryptionType.GCM,
|
|
17
|
+
};
|
|
18
|
+
class KeyProvider {
|
|
19
|
+
/** internal */
|
|
20
|
+
constructor(roomHandle, opts) {
|
|
21
|
+
this.roomHandle = roomHandle;
|
|
22
|
+
this.options = opts;
|
|
23
|
+
}
|
|
24
|
+
setSharedKey(sharedKey, keyIndex) {
|
|
25
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
26
|
+
roomHandle: this.roomHandle,
|
|
27
|
+
message: {
|
|
28
|
+
case: 'setSharedKey',
|
|
29
|
+
value: new e2ee_pb_1.SetSharedKeyRequest({
|
|
30
|
+
keyIndex: keyIndex,
|
|
31
|
+
sharedKey: sharedKey,
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
ffi_client_1.FfiClient.instance.request({
|
|
36
|
+
message: {
|
|
37
|
+
case: 'e2ee',
|
|
38
|
+
value: req,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exportSharedKey(keyIndex) {
|
|
43
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
44
|
+
roomHandle: this.roomHandle,
|
|
45
|
+
message: {
|
|
46
|
+
case: 'getSharedKey',
|
|
47
|
+
value: new e2ee_pb_1.GetSharedKeyRequest({
|
|
48
|
+
keyIndex: keyIndex,
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
53
|
+
message: {
|
|
54
|
+
case: 'e2ee',
|
|
55
|
+
value: req,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
return res.message.value.key;
|
|
59
|
+
}
|
|
60
|
+
ratchetSharedKey(keyIndex) {
|
|
61
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
62
|
+
roomHandle: this.roomHandle,
|
|
63
|
+
message: {
|
|
64
|
+
case: 'ratchetSharedKey',
|
|
65
|
+
value: new e2ee_pb_1.RatchetSharedKeyRequest({
|
|
66
|
+
keyIndex: keyIndex,
|
|
67
|
+
}),
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
71
|
+
message: {
|
|
72
|
+
case: 'e2ee',
|
|
73
|
+
value: req,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
return res.message.value.newKey;
|
|
77
|
+
}
|
|
78
|
+
setKey(participantIdentity, keyIndex) {
|
|
79
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
80
|
+
roomHandle: this.roomHandle,
|
|
81
|
+
message: {
|
|
82
|
+
case: 'setKey',
|
|
83
|
+
value: new e2ee_pb_1.SetKeyRequest({
|
|
84
|
+
keyIndex: keyIndex,
|
|
85
|
+
participantIdentity: participantIdentity,
|
|
86
|
+
}),
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
ffi_client_1.FfiClient.instance.request({
|
|
90
|
+
message: {
|
|
91
|
+
case: 'e2ee',
|
|
92
|
+
value: req,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exportKey(participantIdentity, keyIndex) {
|
|
97
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
98
|
+
roomHandle: this.roomHandle,
|
|
99
|
+
message: {
|
|
100
|
+
case: 'getKey',
|
|
101
|
+
value: new e2ee_pb_1.GetKeyRequest({
|
|
102
|
+
keyIndex: keyIndex,
|
|
103
|
+
participantIdentity: participantIdentity,
|
|
104
|
+
}),
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
108
|
+
message: {
|
|
109
|
+
case: 'e2ee',
|
|
110
|
+
value: req,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
return res.message.value.key;
|
|
114
|
+
}
|
|
115
|
+
ratchetKey(participantIdentity, keyIndex) {
|
|
116
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
117
|
+
roomHandle: this.roomHandle,
|
|
118
|
+
message: {
|
|
119
|
+
case: 'ratchetKey',
|
|
120
|
+
value: new e2ee_pb_1.RatchetKeyRequest({
|
|
121
|
+
keyIndex: keyIndex,
|
|
122
|
+
participantIdentity: participantIdentity,
|
|
123
|
+
}),
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
127
|
+
message: {
|
|
128
|
+
case: 'e2ee',
|
|
129
|
+
value: req,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
return res.message.value.newKey;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.KeyProvider = KeyProvider;
|
|
136
|
+
class FrameCryptor {
|
|
137
|
+
constructor(roomHandle, participantIdentity, keyIndex, enabled) {
|
|
138
|
+
this.roomHandle = 0n;
|
|
139
|
+
this.roomHandle = roomHandle;
|
|
140
|
+
this.participantIdentity = participantIdentity;
|
|
141
|
+
this.keyIndex = keyIndex;
|
|
142
|
+
this.enabled = enabled;
|
|
143
|
+
}
|
|
144
|
+
setEnabled(enabled) {
|
|
145
|
+
this.enabled = enabled;
|
|
146
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
147
|
+
roomHandle: this.roomHandle,
|
|
148
|
+
message: {
|
|
149
|
+
case: 'cryptorSetEnabled',
|
|
150
|
+
value: new e2ee_pb_1.FrameCryptorSetEnabledRequest({
|
|
151
|
+
participantIdentity: this.participantIdentity,
|
|
152
|
+
enabled: this.enabled,
|
|
153
|
+
}),
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
ffi_client_1.FfiClient.instance.request({
|
|
157
|
+
message: {
|
|
158
|
+
case: 'e2ee',
|
|
159
|
+
value: req,
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
setKeyIndex(keyIndex) {
|
|
164
|
+
this.keyIndex = keyIndex;
|
|
165
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
166
|
+
roomHandle: this.roomHandle,
|
|
167
|
+
message: {
|
|
168
|
+
case: 'cryptorSetKeyIndex',
|
|
169
|
+
value: new e2ee_pb_1.FrameCryptorSetKeyIndexRequest({
|
|
170
|
+
participantIdentity: this.participantIdentity,
|
|
171
|
+
keyIndex: this.keyIndex,
|
|
172
|
+
}),
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
ffi_client_1.FfiClient.instance.request({
|
|
176
|
+
message: {
|
|
177
|
+
case: 'e2ee',
|
|
178
|
+
value: req,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.FrameCryptor = FrameCryptor;
|
|
184
|
+
class E2EEManager {
|
|
185
|
+
constructor(roomHandle, opts) {
|
|
186
|
+
this.roomHandle = 0n;
|
|
187
|
+
this.roomHandle = roomHandle;
|
|
188
|
+
this.enabled = opts !== undefined;
|
|
189
|
+
if (opts !== undefined) {
|
|
190
|
+
const options = { ...exports.defaultE2EEOptions, ...opts };
|
|
191
|
+
this.options = options;
|
|
192
|
+
this.keyProvider = new KeyProvider(roomHandle, options.keyProviderOptions);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
setEnabled(enabled) {
|
|
196
|
+
this.enabled = enabled;
|
|
197
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
198
|
+
roomHandle: this.roomHandle,
|
|
199
|
+
message: {
|
|
200
|
+
case: 'managerSetEnabled',
|
|
201
|
+
value: new e2ee_pb_1.E2eeManagerSetEnabledRequest({
|
|
202
|
+
enabled: this.enabled,
|
|
203
|
+
}),
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
ffi_client_1.FfiClient.instance.request({
|
|
207
|
+
message: {
|
|
208
|
+
case: 'e2ee',
|
|
209
|
+
value: req,
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
frameCryptors() {
|
|
214
|
+
let req = new e2ee_pb_1.E2eeRequest({
|
|
215
|
+
roomHandle: this.roomHandle,
|
|
216
|
+
message: {
|
|
217
|
+
case: 'managerGetFrameCryptors',
|
|
218
|
+
value: {},
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
let res = ffi_client_1.FfiClient.instance.request({
|
|
222
|
+
message: {
|
|
223
|
+
case: 'e2ee',
|
|
224
|
+
value: req,
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
let frameCryptors = res.message.value.frameCryptors.map((cryptor) => new FrameCryptor(this.roomHandle, cryptor.participantIdentity, cryptor.keyIndex, cryptor.enabled));
|
|
228
|
+
return frameCryptors;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
exports.E2EEManager = E2EEManager;
|
|
232
|
+
//# sourceMappingURL=e2ee.js.map
|
package/dist/e2ee.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2ee.js","sourceRoot":"","sources":["../src/e2ee.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FfiRequest, FfiResponse, FfiEvent } from './proto/ffi_pb';
|
|
2
|
+
import TypedEmitter from 'typed-emitter';
|
|
3
|
+
import { FfiHandle } from './native';
|
|
4
|
+
import { PartialMessage } from '@bufbuild/protobuf';
|
|
5
|
+
export { FfiHandle, FfiEvent, FfiResponse, FfiRequest };
|
|
6
|
+
export type FfiClientCallbacks = {
|
|
7
|
+
ffi_event: (event: FfiEvent) => void;
|
|
8
|
+
};
|
|
9
|
+
export declare enum FfiClientEvent {
|
|
10
|
+
FfiEvent = "ffi_event"
|
|
11
|
+
}
|
|
12
|
+
declare const FfiClient_base: new () => TypedEmitter<FfiClientCallbacks>;
|
|
13
|
+
export declare class FfiClient extends FfiClient_base {
|
|
14
|
+
static _client?: FfiClient;
|
|
15
|
+
/** @internal */
|
|
16
|
+
static get instance(): FfiClient;
|
|
17
|
+
constructor();
|
|
18
|
+
request<T>(req: PartialMessage<FfiRequest>): T;
|
|
19
|
+
copyBuffer(ptr: bigint, len: number): Uint8Array;
|
|
20
|
+
retrievePtr(data: Uint8Array): bigint;
|
|
21
|
+
waitFor<T>(predicate: (ev: FfiEvent) => boolean): Promise<T>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ffi_client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffi_client.d.ts","sourceRoot":"","sources":["../src/ffi_client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,SAAS,EAKV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,oBAAY,cAAc;IACxB,QAAQ,cAAc;CACvB;wCAEyD,aAAa,kBAAkB,CAAC;AAA1F,qBAAa,SAAU,SAAQ,cAA4D;IACzF,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAE3B,gBAAgB;IAChB,MAAM,KAAK,QAAQ,IAAI,SAAS,CAI/B;;IAWD,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;IAO9C,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU;IAIhD,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAI/B,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAWnE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FfiClient = exports.FfiClientEvent = exports.FfiRequest = exports.FfiResponse = exports.FfiEvent = exports.FfiHandle = void 0;
|
|
7
|
+
const ffi_pb_1 = require("./proto/ffi_pb");
|
|
8
|
+
Object.defineProperty(exports, "FfiRequest", { enumerable: true, get: function () { return ffi_pb_1.FfiRequest; } });
|
|
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;
|
|
15
|
+
(function (FfiClientEvent) {
|
|
16
|
+
FfiClientEvent["FfiEvent"] = "ffi_event";
|
|
17
|
+
})(FfiClientEvent || (exports.FfiClientEvent = FfiClientEvent = {}));
|
|
18
|
+
class FfiClient extends events_1.default {
|
|
19
|
+
/** @internal */
|
|
20
|
+
static get instance() {
|
|
21
|
+
if (!FfiClient._client)
|
|
22
|
+
FfiClient._client = new FfiClient();
|
|
23
|
+
return FfiClient._client;
|
|
24
|
+
}
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
(0, native_1.livekitInitialize)((event_data) => {
|
|
28
|
+
let event = ffi_pb_1.FfiEvent.fromBinary(event_data);
|
|
29
|
+
this.emit(FfiClientEvent.FfiEvent, event);
|
|
30
|
+
}, true);
|
|
31
|
+
}
|
|
32
|
+
request(req) {
|
|
33
|
+
let request = new ffi_pb_1.FfiRequest(req);
|
|
34
|
+
let req_data = request.toBinary();
|
|
35
|
+
let res_data = (0, native_1.livekitFfiRequest)(req_data);
|
|
36
|
+
return ffi_pb_1.FfiResponse.fromBinary(res_data).message.value;
|
|
37
|
+
}
|
|
38
|
+
copyBuffer(ptr, len) {
|
|
39
|
+
return (0, native_1.livekitCopyBuffer)(ptr, len);
|
|
40
|
+
}
|
|
41
|
+
retrievePtr(data) {
|
|
42
|
+
return (0, native_1.livekitRetrievePtr)(data);
|
|
43
|
+
}
|
|
44
|
+
async waitFor(predicate) {
|
|
45
|
+
return new Promise((resolve, _) => {
|
|
46
|
+
let listener = (ev) => {
|
|
47
|
+
if (predicate(ev)) {
|
|
48
|
+
this.off(FfiClientEvent.FfiEvent, listener);
|
|
49
|
+
resolve(ev.message.value);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
this.on(FfiClientEvent.FfiEvent, listener);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.FfiClient = FfiClient;
|
|
57
|
+
//# sourceMappingURL=ffi_client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffi_client.js","sourceRoot":"","sources":["../src/ffi_client.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAmE;AAYxB,2FAZlC,mBAAU,OAYkC;AAAvB,4FAZT,oBAAW,OAYS;AAArB,yFAZc,iBAAQ,OAYd;AAX5B,oDAAkC;AAElC,qCAMkB;AAGT,0FARP,kBAAS,OAQO;AAMlB,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,wCAAsB,CAAA;AACxB,CAAC,EAFW,cAAc,8BAAd,cAAc,QAEzB;AAED,MAAa,SAAU,SAAS,gBAA2D;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,IAAA,0BAAiB,EAAC,CAAC,UAAsB,EAAE,EAAE;YAC3C,IAAI,KAAK,GAAG,iBAAQ,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,mBAAU,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,IAAA,0BAAiB,EAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,oBAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAU,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,GAAW;QACjC,OAAO,IAAA,0BAAiB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,IAAgB;QAC1B,OAAO,IAAA,2BAAkB,EAAC,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;AA7CD,8BA6CC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +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';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EACL,KAAK,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,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,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|