@livekit/rtc-node 0.0.6 → 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.
Files changed (96) hide show
  1. package/build.rs +4 -0
  2. package/dist/audio_frame.d.ts +1 -1
  3. package/dist/audio_frame.d.ts.map +1 -1
  4. package/dist/audio_frame.js +10 -11
  5. package/dist/audio_frame.js.map +1 -1
  6. package/dist/audio_source.d.ts +3 -3
  7. package/dist/audio_source.d.ts.map +1 -1
  8. package/dist/audio_source.js +14 -15
  9. package/dist/audio_source.js.map +1 -1
  10. package/dist/audio_stream.d.ts +4 -4
  11. package/dist/audio_stream.d.ts.map +1 -1
  12. package/dist/audio_stream.js +17 -21
  13. package/dist/audio_stream.js.map +1 -1
  14. package/dist/e2ee.d.ts +1 -1
  15. package/dist/e2ee.d.ts.map +1 -1
  16. package/dist/e2ee.js +42 -45
  17. package/dist/e2ee.js.map +1 -1
  18. package/dist/ffi_client.d.ts +2 -2
  19. package/dist/ffi_client.d.ts.map +1 -1
  20. package/dist/ffi_client.js +17 -24
  21. package/dist/ffi_client.js.map +1 -1
  22. package/dist/index.d.ts +15 -15
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +18 -70
  25. package/dist/index.js.map +1 -1
  26. package/{src/native.js → dist/napi/native.cjs} +12 -0
  27. package/dist/napi/native.js +15 -0
  28. package/dist/participant.d.ts +24 -9
  29. package/dist/participant.d.ts.map +1 -1
  30. package/dist/participant.js +45 -45
  31. package/dist/participant.js.map +1 -1
  32. package/dist/proto/audio_frame_pb.js +148 -176
  33. package/dist/proto/audio_frame_pb.js.map +1 -1
  34. package/dist/proto/e2ee_pb.js +134 -162
  35. package/dist/proto/e2ee_pb.js.map +1 -1
  36. package/dist/proto/ffi_pb.js +115 -126
  37. package/dist/proto/ffi_pb.js.map +1 -1
  38. package/dist/proto/handle_pb.js +7 -11
  39. package/dist/proto/handle_pb.js.map +1 -1
  40. package/dist/proto/participant_pb.js +13 -18
  41. package/dist/proto/participant_pb.js.map +1 -1
  42. package/dist/proto/room_pb.js +388 -454
  43. package/dist/proto/room_pb.js.map +1 -1
  44. package/dist/proto/stats_pb.js +265 -303
  45. package/dist/proto/stats_pb.js.map +1 -1
  46. package/dist/proto/track_pb.js +87 -102
  47. package/dist/proto/track_pb.js.map +1 -1
  48. package/dist/proto/video_frame_pb.js +184 -215
  49. package/dist/proto/video_frame_pb.js.map +1 -1
  50. package/dist/room.d.ts +10 -9
  51. package/dist/room.d.ts.map +1 -1
  52. package/dist/room.js +74 -77
  53. package/dist/room.js.map +1 -1
  54. package/dist/track.d.ts +4 -4
  55. package/dist/track.d.ts.map +1 -1
  56. package/dist/track.js +15 -20
  57. package/dist/track.js.map +1 -1
  58. package/dist/track_publication.d.ts +4 -4
  59. package/dist/track_publication.d.ts.map +1 -1
  60. package/dist/track_publication.js +12 -15
  61. package/dist/track_publication.js.map +1 -1
  62. package/dist/video_frame.d.ts +1 -1
  63. package/dist/video_frame.d.ts.map +1 -1
  64. package/dist/video_frame.js +57 -71
  65. package/dist/video_frame.js.map +1 -1
  66. package/dist/video_source.d.ts +3 -3
  67. package/dist/video_source.d.ts.map +1 -1
  68. package/dist/video_source.js +12 -13
  69. package/dist/video_source.js.map +1 -1
  70. package/dist/video_stream.d.ts +4 -4
  71. package/dist/video_stream.d.ts.map +1 -1
  72. package/dist/video_stream.js +18 -22
  73. package/dist/video_stream.js.map +1 -1
  74. package/package.json +14 -14
  75. package/src/audio_frame.ts +6 -2
  76. package/src/audio_source.ts +8 -4
  77. package/src/audio_stream.ts +9 -5
  78. package/src/e2ee.ts +6 -2
  79. package/src/ffi_client.ts +6 -2
  80. package/src/index.ts +19 -15
  81. package/src/lib.rs +4 -0
  82. package/src/napi/native.cjs +281 -0
  83. package/src/napi/native.js +15 -0
  84. package/src/nodejs.rs +4 -0
  85. package/src/participant.ts +45 -22
  86. package/src/room.ts +56 -49
  87. package/src/track.ts +8 -4
  88. package/src/track_publication.ts +10 -6
  89. package/src/video_frame.ts +6 -2
  90. package/src/video_source.ts +7 -3
  91. package/src/video_stream.ts +9 -5
  92. package/dist/native.d.ts.map +0 -1
  93. package/dist/native.js +0 -297
  94. package/dist/native.js.map +0 -1
  95. /package/dist/{native.d.ts → napi/native.d.ts} +0 -0
  96. /package/src/{native.d.ts → napi/native.d.ts} +0 -0
@@ -1,21 +1,15 @@
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;
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 || (exports.FfiClientEvent = FfiClientEvent = {}));
18
- class FfiClient extends events_1.default {
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
- (0, native_1.livekitInitialize)((event_data) => {
28
- let event = ffi_pb_1.FfiEvent.fromBinary(event_data);
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 ffi_pb_1.FfiRequest(req);
27
+ let request = new FfiRequest(req);
34
28
  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;
29
+ let res_data = livekitFfiRequest(req_data);
30
+ return FfiResponse.fromBinary(res_data).message.value;
37
31
  }
38
32
  copyBuffer(ptr, len) {
39
- return (0, native_1.livekitCopyBuffer)(ptr, len);
33
+ return livekitCopyBuffer(ptr, len);
40
34
  }
41
35
  retrievePtr(data) {
42
- return (0, native_1.livekitRetrievePtr)(data);
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
@@ -1 +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"}
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
@@ -1 +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"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoFrameBufferType = exports.VideoFormatType = exports.TrackSource = exports.TrackKind = exports.StreamState = exports.EncryptionState = exports.EncryptionType = exports.ConnectionState = exports.TrackPublishOptions = exports.ContinualGatheringPolicy = exports.DataPacketKind = exports.IceTransportType = exports.IceServer = exports.ConnectionQuality = exports.FrameCryptor = exports.KeyProvider = exports.E2EEManager = exports.LocalTrackPublication = exports.RemoteTrackPublication = exports.TrackPublication = exports.VideoSource = exports.AudioSource = exports.VideoStream = exports.AudioStream = exports.AudioFrame = exports.BiplanarYuv8Buffer = exports.ArgbFrame = exports.PlanarYuv16Buffer = exports.PlanarYuv8Buffer = exports.PlanarYuvBuffer = exports.I010Buffer = exports.NativeBuffer = exports.NV12Buffer = exports.I420ABuffer = exports.I444Buffer = exports.I422Buffer = exports.I420Buffer = exports.VideoFrameBuffer = exports.VideoFrame = exports.RemoteVideoTrack = exports.RemoteAudioTrack = exports.LocalVideoTrack = exports.LocalAudioTrack = exports.Track = exports.LocalParticipant = exports.RemoteParticipant = exports.Participant = exports.ConnectError = exports.RoomEvent = exports.Room = void 0;
4
- exports.VideoRotation = void 0;
5
- var room_1 = require("./room");
6
- Object.defineProperty(exports, "Room", { enumerable: true, get: function () { return room_1.Room; } });
7
- Object.defineProperty(exports, "RoomEvent", { enumerable: true, get: function () { return room_1.RoomEvent; } });
8
- Object.defineProperty(exports, "ConnectError", { enumerable: true, get: function () { return room_1.ConnectError; } });
9
- var participant_1 = require("./participant");
10
- Object.defineProperty(exports, "Participant", { enumerable: true, get: function () { return participant_1.Participant; } });
11
- Object.defineProperty(exports, "RemoteParticipant", { enumerable: true, get: function () { return participant_1.RemoteParticipant; } });
12
- Object.defineProperty(exports, "LocalParticipant", { enumerable: true, get: function () { return participant_1.LocalParticipant; } });
13
- var track_1 = require("./track");
14
- Object.defineProperty(exports, "Track", { enumerable: true, get: function () { return track_1.Track; } });
15
- Object.defineProperty(exports, "LocalAudioTrack", { enumerable: true, get: function () { return track_1.LocalAudioTrack; } });
16
- Object.defineProperty(exports, "LocalVideoTrack", { enumerable: true, get: function () { return track_1.LocalVideoTrack; } });
17
- Object.defineProperty(exports, "RemoteAudioTrack", { enumerable: true, get: function () { return track_1.RemoteAudioTrack; } });
18
- Object.defineProperty(exports, "RemoteVideoTrack", { enumerable: true, get: function () { return track_1.RemoteVideoTrack; } });
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":";;;;AAAA,+BAAsF;AAA7E,4FAAA,IAAI,OAAA;AAAE,iGAAA,SAAS,OAAA;AAAE,oGAAA,YAAY,OAAA;AACtC,6CAAiF;AAAxE,0GAAA,WAAW,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AACzD,iCAUiB;AATf,8FAAA,KAAK,OAAA;AAIL,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,yGAAA,gBAAgB,OAAA;AAChB,yGAAA,gBAAgB,OAAA;AAGlB,6CAeuB;AAdrB,yGAAA,UAAU,OAAA;AACV,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AACV,yGAAA,UAAU,OAAA;AACV,yGAAA,UAAU,OAAA;AACV,0GAAA,WAAW,OAAA;AACX,yGAAA,UAAU,OAAA;AACV,2GAAA,YAAY,OAAA;AACZ,yGAAA,UAAU,OAAA;AACV,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,gHAAA,iBAAiB,OAAA;AACjB,wGAAA,SAAS,OAAA;AACT,iHAAA,kBAAkB,OAAA;AAEpB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yDAI6B;AAH3B,qHAAA,gBAAgB,OAAA;AAChB,2HAAA,sBAAsB,OAAA;AACtB,0HAAA,qBAAqB,OAAA;AAEvB,+BAAiG;AAAxF,mGAAA,WAAW,OAAA;AAAmC,mGAAA,WAAW,OAAA;AAAE,oGAAA,YAAY,OAAA;AAChF,2CAQyB;AAPvB,4GAAA,iBAAiB,OAAA;AACjB,oGAAA,SAAS,OAAA;AACT,2GAAA,gBAAgB,OAAA;AAChB,yGAAA,cAAc,OAAA;AACd,mHAAA,wBAAwB,OAAA;AACxB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AAEjB,2CAAkE;AAAzD,yGAAA,cAAc,OAAA;AAAE,0GAAA,eAAe,OAAA;AACxC,6CAAuE;AAA9D,uGAAA,WAAW,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC5C,yDAA8F;AAArF,iHAAA,eAAe,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAAE,+GAAA,aAAa,OAAA"}
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;
@@ -1,30 +1,45 @@
1
- import { FfiHandle } from './ffi_client';
2
- import { ParticipantInfo, OwnedParticipant } from './proto/participant_pb';
3
- import { DataPacketKind, TrackPublishOptions } from './proto/room_pb';
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
- tracks: Map<string, TrackPublication>;
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
- tracks: Map<string, LocalTrackPublication>;
20
- publishData(data: Uint8Array, kind: DataPacketKind, destination_sids?: Array<string | RemoteParticipant>): Promise<void>;
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
- tracks: Map<string, RemoteTrackPublication>;
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":"AAAA,OAAO,EAA6B,SAAS,EAAc,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACL,cAAc,EAOd,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,8BAAsB,WAAW;IAC/B,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IAEtB,gBAAgB;IAChB,UAAU,EAAE,SAAS,CAAC;IAEtB,MAAM,gCAAuC;gBAEjC,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,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAEjD,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,cAAc,EACpB,gBAAgB,GAAE,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAM;IA4BpD,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,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;gBAE5C,UAAU,EAAE,gBAAgB;CAGzC"}
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"}
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteParticipant = exports.LocalParticipant = exports.Participant = void 0;
4
- const ffi_client_1 = require("./ffi_client");
5
- const room_pb_1 = require("./proto/room_pb");
6
- const track_publication_1 = require("./track_publication");
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.tracks = new Map();
9
+ this.trackPublications = new Map();
10
10
  this.info = owned_info.info;
11
- this.ffi_handle = new ffi_client_1.FfiHandle(owned_info.handle.id);
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
- exports.Participant = Participant;
27
- class LocalParticipant extends Participant {
26
+ export class LocalParticipant extends Participant {
28
27
  constructor() {
29
28
  super(...arguments);
30
- this.tracks = new Map();
29
+ this.trackPublications = new Map();
31
30
  }
32
- async publishData(data, kind, destination_sids = []) {
33
- let req = new room_pb_1.PublishDataRequest({
31
+ async publishData(data, options) {
32
+ let req = new PublishDataRequest({
34
33
  localParticipantHandle: this.ffi_handle.handle,
35
- dataPtr: ffi_client_1.FfiClient.instance.retrievePtr(data),
34
+ dataPtr: FfiClient.instance.retrievePtr(data),
36
35
  dataLen: BigInt(data.byteLength),
37
- kind: kind,
38
- });
39
- let sids = destination_sids.map((sid) => {
40
- if (typeof sid == 'string')
41
- return sid;
42
- return sid.sid;
43
- });
44
- req.destinationSids = sids;
45
- let res = ffi_client_1.FfiClient.instance.request({
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 ffi_client_1.FfiClient.instance.waitFor((ev) => {
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 room_pb_1.UpdateLocalMetadataRequest({
58
+ let req = new UpdateLocalMetadataRequest({
57
59
  localParticipantHandle: this.ffi_handle.handle,
58
60
  metadata: metadata,
59
61
  });
60
- let res = ffi_client_1.FfiClient.instance.request({
62
+ let res = FfiClient.instance.request({
61
63
  message: { case: 'updateLocalMetadata', value: req },
62
64
  });
63
- await ffi_client_1.FfiClient.instance.waitFor((ev) => {
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 room_pb_1.UpdateLocalNameRequest({
70
+ let req = new UpdateLocalNameRequest({
69
71
  localParticipantHandle: this.ffi_handle.handle,
70
72
  name: name,
71
73
  });
72
- let res = ffi_client_1.FfiClient.instance.request({
74
+ let res = FfiClient.instance.request({
73
75
  message: { case: 'updateLocalName', value: req },
74
76
  });
75
- await ffi_client_1.FfiClient.instance.waitFor((ev) => {
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 room_pb_1.PublishTrackRequest({
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 = ffi_client_1.FfiClient.instance.request({
87
+ let res = FfiClient.instance.request({
86
88
  message: { case: 'publishTrack', value: req },
87
89
  });
88
- let cb = await ffi_client_1.FfiClient.instance.waitFor((ev) => {
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 track_publication_1.LocalTrackPublication(cb.publication);
93
+ let track_publication = new LocalTrackPublication(cb.publication);
92
94
  track_publication.track = track;
93
- this.tracks.set(track_publication.sid, track_publication);
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 room_pb_1.UnpublishTrackRequest({
99
+ let req = new UnpublishTrackRequest({
98
100
  localParticipantHandle: this.ffi_handle.handle,
99
101
  trackSid: trackSid,
100
102
  });
101
- let res = ffi_client_1.FfiClient.instance.request({
103
+ let res = FfiClient.instance.request({
102
104
  message: { case: 'unpublishTrack', value: req },
103
105
  });
104
- await ffi_client_1.FfiClient.instance.waitFor((ev) => {
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.tracks.get(trackSid);
109
+ let pub = this.trackPublications.get(trackSid);
108
110
  pub.track = undefined;
109
- this.tracks.delete(trackSid);
111
+ this.trackPublications.delete(trackSid);
110
112
  }
111
113
  }
112
- exports.LocalParticipant = LocalParticipant;
113
- class RemoteParticipant extends Participant {
114
+ export class RemoteParticipant extends Participant {
114
115
  constructor(owned_info) {
115
116
  super(owned_info);
116
- this.tracks = new Map();
117
+ this.trackPublications = new Map();
117
118
  }
118
119
  }
119
- exports.RemoteParticipant = RemoteParticipant;
120
120
  //# sourceMappingURL=participant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"participant.js","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"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"}