@livekit/rtc-node 0.10.4 → 0.11.1

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 (136) hide show
  1. package/README.md +54 -2
  2. package/build.rs +1 -1
  3. package/dist/audio_frame.d.ts +1 -1
  4. package/dist/audio_frame.d.ts.map +1 -1
  5. package/dist/audio_frame.js +4 -4
  6. package/dist/audio_frame.js.map +1 -1
  7. package/dist/audio_resampler.d.ts.map +1 -1
  8. package/dist/audio_resampler.js +8 -7
  9. package/dist/audio_resampler.js.map +1 -1
  10. package/dist/audio_source.d.ts.map +1 -1
  11. package/dist/audio_source.js +8 -4
  12. package/dist/audio_source.js.map +1 -1
  13. package/dist/audio_stream.d.ts +1 -1
  14. package/dist/audio_stream.d.ts.map +1 -1
  15. package/dist/audio_stream.js +4 -3
  16. package/dist/audio_stream.js.map +1 -1
  17. package/dist/e2ee.d.ts.map +1 -1
  18. package/dist/e2ee.js +25 -25
  19. package/dist/e2ee.js.map +1 -1
  20. package/dist/ffi_client.d.ts +3 -3
  21. package/dist/ffi_client.d.ts.map +1 -1
  22. package/dist/ffi_client.js +9 -7
  23. package/dist/ffi_client.js.map +1 -1
  24. package/dist/index.d.ts +29 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +34 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/napi/native.d.ts +1 -0
  29. package/dist/participant.d.ts +48 -2
  30. package/dist/participant.d.ts.map +1 -1
  31. package/dist/participant.js +143 -24
  32. package/dist/participant.js.map +1 -1
  33. package/dist/proto/audio_frame_pb.d.ts +451 -526
  34. package/dist/proto/audio_frame_pb.d.ts.map +1 -1
  35. package/dist/proto/audio_frame_pb.js +200 -1179
  36. package/dist/proto/audio_frame_pb.js.map +1 -1
  37. package/dist/proto/e2ee_pb.d.ts +264 -333
  38. package/dist/proto/e2ee_pb.d.ts.map +1 -1
  39. package/dist/proto/e2ee_pb.js +136 -810
  40. package/dist/proto/e2ee_pb.js.map +1 -1
  41. package/dist/proto/ffi_pb.d.ts +175 -129
  42. package/dist/proto/ffi_pb.d.ts.map +1 -1
  43. package/dist/proto/ffi_pb.js +58 -395
  44. package/dist/proto/ffi_pb.js.map +1 -1
  45. package/dist/proto/handle_pb.d.ts +14 -13
  46. package/dist/proto/handle_pb.d.ts.map +1 -1
  47. package/dist/proto/handle_pb.js +8 -39
  48. package/dist/proto/handle_pb.js.map +1 -1
  49. package/dist/proto/participant_pb.d.ts +54 -52
  50. package/dist/proto/participant_pb.d.ts.map +1 -1
  51. package/dist/proto/participant_pb.js +18 -90
  52. package/dist/proto/participant_pb.js.map +1 -1
  53. package/dist/proto/room_pb.d.ts +1042 -1187
  54. package/dist/proto/room_pb.d.ts.map +1 -1
  55. package/dist/proto/room_pb.js +470 -2938
  56. package/dist/proto/room_pb.js.map +1 -1
  57. package/dist/proto/rpc_pb.d.ts +235 -0
  58. package/dist/proto/rpc_pb.d.ts.map +1 -0
  59. package/dist/proto/rpc_pb.js +74 -0
  60. package/dist/proto/rpc_pb.js.map +1 -0
  61. package/dist/proto/stats_pb.d.ts +738 -800
  62. package/dist/proto/stats_pb.d.ts.map +1 -1
  63. package/dist/proto/stats_pb.js +218 -1960
  64. package/dist/proto/stats_pb.js.map +1 -1
  65. package/dist/proto/track_pb.d.ts +225 -258
  66. package/dist/proto/track_pb.d.ts.map +1 -1
  67. package/dist/proto/track_pb.js +98 -591
  68. package/dist/proto/track_pb.js.map +1 -1
  69. package/dist/proto/video_frame_pb.d.ts +357 -390
  70. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  71. package/dist/proto/video_frame_pb.js +137 -790
  72. package/dist/proto/video_frame_pb.js.map +1 -1
  73. package/dist/room.d.ts +21 -7
  74. package/dist/room.d.ts.map +1 -1
  75. package/dist/room.js +134 -54
  76. package/dist/room.js.map +1 -1
  77. package/dist/rpc.d.ts +78 -0
  78. package/dist/rpc.d.ts.map +1 -0
  79. package/dist/rpc.js +69 -0
  80. package/dist/rpc.js.map +1 -0
  81. package/dist/track.d.ts.map +1 -1
  82. package/dist/track.js +7 -3
  83. package/dist/track.js.map +1 -1
  84. package/dist/track_publication.d.ts.map +1 -1
  85. package/dist/track_publication.js +3 -2
  86. package/dist/track_publication.js.map +1 -1
  87. package/dist/version.d.ts +2 -0
  88. package/dist/version.d.ts.map +1 -0
  89. package/dist/version.js +2 -0
  90. package/dist/version.js.map +1 -0
  91. package/dist/video_frame.d.ts +2 -2
  92. package/dist/video_frame.d.ts.map +1 -1
  93. package/dist/video_frame.js +47 -25
  94. package/dist/video_frame.js.map +1 -1
  95. package/dist/video_source.d.ts.map +1 -1
  96. package/dist/video_source.js +4 -3
  97. package/dist/video_source.js.map +1 -1
  98. package/dist/video_stream.d.ts +1 -1
  99. package/dist/video_stream.d.ts.map +1 -1
  100. package/dist/video_stream.js +7 -3
  101. package/dist/video_stream.js.map +1 -1
  102. package/package.json +13 -10
  103. package/src/audio_frame.ts +6 -6
  104. package/src/audio_resampler.ts +10 -9
  105. package/src/audio_source.ts +9 -8
  106. package/src/audio_stream.ts +7 -6
  107. package/src/e2ee.ts +34 -34
  108. package/src/ffi_client.ts +23 -10
  109. package/src/index.ts +61 -2
  110. package/src/napi/native.d.ts +1 -0
  111. package/src/nodejs.rs +6 -3
  112. package/src/participant.ts +207 -47
  113. package/src/proto/audio_frame_pb.ts +562 -1279
  114. package/src/proto/e2ee_pb.ts +365 -886
  115. package/src/proto/ffi_pb.ts +206 -405
  116. package/src/proto/handle_pb.ts +21 -35
  117. package/src/proto/participant_pb.ts +71 -112
  118. package/src/proto/room_pb.ts +1284 -2995
  119. package/src/proto/rpc_pb.ts +310 -0
  120. package/src/proto/stats_pb.ts +1028 -1947
  121. package/src/proto/track_pb.ts +287 -621
  122. package/src/proto/video_frame_pb.ts +445 -905
  123. package/src/room.ts +181 -75
  124. package/src/rpc.ts +121 -0
  125. package/src/track.ts +8 -7
  126. package/src/track_publication.ts +5 -4
  127. package/src/version.ts +1 -0
  128. package/src/video_frame.ts +54 -27
  129. package/src/video_source.ts +7 -6
  130. package/src/video_stream.ts +7 -6
  131. package/dist/utils.d.ts +0 -7
  132. package/dist/utils.d.ts.map +0 -1
  133. package/dist/utils.js +0 -48
  134. package/dist/utils.js.map +0 -1
  135. package/src/utils.test.ts +0 -47
  136. package/src/utils.ts +0 -44
package/dist/index.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ import type { MessageInitShape } from '@bufbuild/protobuf';
2
+ import type { AudioEncoding, TrackPublishOptionsSchema, VideoEncoding } from './proto/room_pb.js';
3
+ import { IceServerSchema, type IceServer as IceServerType, type TrackPublishOptions as TrackPublishOptionsType } from './proto/room_pb.js';
4
+ import { TrackSource } from './proto/track_pb.js';
5
+ import { VideoCodec } from './proto/video_frame_pb.js';
1
6
  export { Room, RoomEvent, ConnectError, RoomOptions, RtcConfiguration } from './room.js';
2
7
  export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
3
8
  export { Track, LocalTrack, RemoteTrack, VideoTrack, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, AudioTrack, } from './track.js';
@@ -11,11 +16,34 @@ export { VideoSource } from './video_source.js';
11
16
  export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
12
17
  export { Transcription, TranscriptionSegment } from './transcription.js';
13
18
  export { E2EEManager, E2EEOptions, KeyProviderOptions, KeyProvider, FrameCryptor } from './e2ee.js';
14
- export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
19
+ export { ConnectionQuality, IceTransportType, DataPacketKind, ContinualGatheringPolicy, ConnectionState, } from './proto/room_pb.js';
20
+ export { RpcError, type RpcInvocationData, type PerformRpcParams } from './rpc.js';
15
21
  export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
16
22
  export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
17
23
  export { VideoBufferType, VideoRotation, VideoCodec } from './proto/video_frame_pb.js';
18
24
  export { ParticipantKind } from './proto/participant_pb.js';
19
25
  export { dispose } from './ffi_client.js';
20
26
  export type { ChatMessage } from './types.js';
27
+ type IceServerInit = MessageInitShape<typeof IceServerSchema> & {
28
+ urls: string[];
29
+ };
30
+ export declare class IceServer implements IceServerType {
31
+ $typeName: "livekit.proto.IceServer";
32
+ urls: string[];
33
+ username: string;
34
+ password: string;
35
+ constructor(init: IceServerInit);
36
+ }
37
+ export declare class TrackPublishOptions implements TrackPublishOptionsType {
38
+ $typeName: "livekit.proto.TrackPublishOptions";
39
+ videoCodec: VideoCodec;
40
+ videoEncoding?: VideoEncoding | undefined;
41
+ audioEncoding?: AudioEncoding | undefined;
42
+ dtx: boolean;
43
+ simulcast: boolean;
44
+ source: TrackSource;
45
+ stream: string;
46
+ red: boolean;
47
+ constructor(init?: MessageInitShape<typeof TrackPublishOptionsSchema>);
48
+ }
21
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,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,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,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,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
- //
3
- // SPDX-License-Identifier: Apache-2.0
1
+ import { create } from '@bufbuild/protobuf';
2
+ import { AudioEncodingSchema, IceServerSchema, VideoEncodingSchema, } from './proto/room_pb.js';
3
+ import { TrackSource } from './proto/track_pb.js';
4
+ import { VideoCodec } from './proto/video_frame_pb.js';
4
5
  export { Room, RoomEvent, ConnectError } from './room.js';
5
6
  export { Participant, RemoteParticipant, LocalParticipant } from './participant.js';
6
7
  export { Track, LocalAudioTrack, LocalVideoTrack, RemoteAudioTrack, RemoteVideoTrack, } from './track.js';
@@ -13,10 +14,39 @@ export { AudioSource } from './audio_source.js';
13
14
  export { VideoSource } from './video_source.js';
14
15
  export { TrackPublication, RemoteTrackPublication, LocalTrackPublication, } from './track_publication.js';
15
16
  export { E2EEManager, KeyProvider, FrameCryptor } from './e2ee.js';
16
- export { ConnectionQuality, IceServer, IceTransportType, DataPacketKind, ContinualGatheringPolicy, TrackPublishOptions, ConnectionState, } from './proto/room_pb.js';
17
+ export { ConnectionQuality, IceTransportType, DataPacketKind, ContinualGatheringPolicy, ConnectionState, } from './proto/room_pb.js';
18
+ export { RpcError } from './rpc.js';
17
19
  export { EncryptionType, EncryptionState } from './proto/e2ee_pb.js';
18
20
  export { StreamState, TrackKind, TrackSource } from './proto/track_pb.js';
19
21
  export { VideoBufferType, VideoRotation, VideoCodec } from './proto/video_frame_pb.js';
20
22
  export { ParticipantKind } from './proto/participant_pb.js';
21
23
  export { dispose } from './ffi_client.js';
24
+ export class IceServer {
25
+ constructor(init) {
26
+ this.$typeName = 'livekit.proto.IceServer';
27
+ const { urls, username, password } = init;
28
+ this.urls = urls;
29
+ this.username = username ?? '';
30
+ this.password = password ?? '';
31
+ create(IceServerSchema, init);
32
+ }
33
+ }
34
+ export class TrackPublishOptions {
35
+ constructor(init = {}) {
36
+ this.$typeName = 'livekit.proto.TrackPublishOptions';
37
+ const { videoCodec, videoEncoding, audioEncoding, dtx, simulcast, source, stream, red } = init;
38
+ this.videoCodec = videoCodec ?? VideoCodec.VP8;
39
+ if (videoEncoding) {
40
+ this.videoEncoding = create(VideoEncodingSchema, videoEncoding);
41
+ }
42
+ if (audioEncoding) {
43
+ this.audioEncoding = create(AudioEncodingSchema, audioEncoding);
44
+ }
45
+ this.dtx = dtx ?? false;
46
+ this.simulcast = simulcast ?? false;
47
+ this.source = source ?? TrackSource.SOURCE_UNKNOWN;
48
+ this.stream = stream ?? '';
49
+ this.red = red ?? false;
50
+ }
51
+ }
22
52
  //# 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,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,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AACjE,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;AAEhC,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,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  export declare function livekitInitialize(
7
7
  callback: (data: Uint8Array) => void,
8
8
  captureLogs: boolean,
9
+ sdkVersion: string,
9
10
  ): void;
10
11
  export declare function livekitFfiRequest(data: Uint8Array): Uint8Array;
11
12
  export declare function livekitRetrievePtr(handle: Uint8Array): bigint;
@@ -1,11 +1,12 @@
1
1
  import { FfiHandle } from './ffi_client.js';
2
2
  import type { OwnedParticipant, ParticipantInfo, ParticipantKind } from './proto/participant_pb.js';
3
- import { TrackPublishOptions } from './proto/room_pb.js';
3
+ import type { TrackPublishOptions } from './proto/room_pb.js';
4
+ import { type PerformRpcParams, type RpcInvocationData } from './rpc.js';
4
5
  import type { LocalTrack } from './track.js';
5
6
  import type { RemoteTrackPublication, TrackPublication } from './track_publication.js';
6
7
  import { LocalTrackPublication } from './track_publication.js';
7
8
  import type { Transcription } from './transcription.js';
8
- import { ChatMessage } from './types.js';
9
+ import type { ChatMessage } from './types.js';
9
10
  export declare abstract class Participant {
10
11
  /** @internal */
11
12
  info: ParticipantInfo;
@@ -36,6 +37,7 @@ export type DataPublishOptions = {
36
37
  topic?: string;
37
38
  };
38
39
  export declare class LocalParticipant extends Participant {
40
+ private rpcHandlers;
39
41
  trackPublications: Map<string, LocalTrackPublication>;
40
42
  publishData(data: Uint8Array, options: DataPublishOptions): Promise<void>;
41
43
  publishDtmf(code: number, digit: string): Promise<void>;
@@ -58,6 +60,50 @@ export declare class LocalParticipant extends Participant {
58
60
  setAttributes(attributes: Record<string, string>): Promise<void>;
59
61
  publishTrack(track: LocalTrack, options: TrackPublishOptions): Promise<LocalTrackPublication>;
60
62
  unpublishTrack(trackSid: string): Promise<void>;
63
+ /**
64
+ * Initiate an RPC call to a remote participant.
65
+ * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
66
+ * @returns A promise that resolves with the response payload or rejects with an error.
67
+ * @throws Error on failure. Details in `message`.
68
+ */
69
+ performRpc({ destinationIdentity, method, payload, responseTimeout, }: PerformRpcParams): Promise<string>;
70
+ /**
71
+ * Establishes the participant as a receiver for calls of the specified RPC method.
72
+ * Will overwrite any existing callback for the same method.
73
+ *
74
+ * @param method - The name of the indicated RPC method
75
+ * @param handler - Will be invoked when an RPC request for this method is received
76
+ * @returns A promise that resolves when the method is successfully registered
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * room.localParticipant?.registerRpcMethod(
81
+ * 'greet',
82
+ * async (data: RpcInvocationData) => {
83
+ * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);
84
+ * return `Hello, ${data.callerIdentity}!`;
85
+ * }
86
+ * );
87
+ * ```
88
+ *
89
+ * See {@link RpcInvocationData} for more details on invocation params.
90
+ *
91
+ * The handler should return a Promise that resolves to a string.
92
+ * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.
93
+ *
94
+ * You may throw errors of type `RpcError` with a string `message` in the handler,
95
+ * and they will be received on the caller's side with the message intact.
96
+ * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` ("Application Error").
97
+ */
98
+ registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>): void;
99
+ /**
100
+ * Unregisters a previously registered RPC method.
101
+ *
102
+ * @param method - The name of the RPC method to unregister
103
+ */
104
+ unregisterRpcMethod(method: string): void;
105
+ /** @internal */
106
+ handleRpcMethodInvocation(invocationId: bigint, method: string, requestId: string, callerIdentity: string, payload: string, responseTimeout: number): Promise<void>;
61
107
  }
62
108
  export declare class RemoteParticipant extends Participant {
63
109
  trackPublications: Map<string, RemoteTrackPublication>;
@@ -1 +1 @@
1
- {"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAkBL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,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;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvC;IAED,IAAI,IAAI,IAAI,eAAe,CAE1B;CACF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,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;IAuBzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAoBvC,oBAAoB,CAAC,aAAa,EAAE,aAAa;IA+BjD,cAAc,CAAC,QAAQ,EAAE,MAAM;IAerC;;;;;;;OAOG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IAuBvB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,WAAW,EAC5B,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IA8BjB,UAAU,CAAC,IAAI,EAAE,MAAM;IAevB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAehD,YAAY,CAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IA0B3B,cAAc,CAAC,QAAQ,EAAE,MAAM;CAwBtC;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;gBAEvD,UAAU,EAAE,gBAAgB;CAGzC"}
1
+ {"version":3,"file":"participant.d.ts","sourceRoot":"","sources":["../src/participant.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,KAAK,EAiBV,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AA4B5B,OAAO,EAAE,KAAK,gBAAgB,EAAY,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,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;IAED,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEvC;IAED,IAAI,IAAI,IAAI,eAAe,CAE1B;CACF;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,OAAO,CAAC,WAAW,CAAwE;IAE3F,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAE5D,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB;IAuBzD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAoBvC,oBAAoB,CAAC,aAAa,EAAE,aAAa;IA8BjD,cAAc,CAAC,QAAQ,EAAE,MAAM;IAerC;;;;;;;OAOG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IAuBvB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,WAAW,EAC5B,qBAAqB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,WAAW,CAAC;IA8BjB,UAAU,CAAC,IAAI,EAAE,MAAM;IAevB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiBhD,YAAY,CAChB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,qBAAqB,CAAC;IA0B3B,cAAc,CAAC,QAAQ,EAAE,MAAM;IAyBrC;;;;;OAKG;IACG,UAAU,CAAC,EACf,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBrC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC;IAavF;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAalC,gBAAgB;IACV,yBAAyB,CAC7B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM;CAwC1B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAa;gBAEvD,UAAU,EAAE,gBAAgB;CAGzC"}
@@ -1,9 +1,12 @@
1
1
  // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
2
  //
3
3
  // SPDX-License-Identifier: Apache-2.0
4
+ import { create } from '@bufbuild/protobuf';
4
5
  import { FfiClient, FfiHandle } from './ffi_client.js';
5
- import { ChatMessage as ChatMessageModel, } from './proto/room_pb.js';
6
- import { EditChatMessageRequest, TranscriptionSegment as ProtoTranscriptionSegment, PublishDataRequest, PublishSipDtmfRequest, PublishTrackRequest, PublishTranscriptionRequest, SendChatMessageRequest, SetLocalAttributesRequest, SetLocalMetadataRequest, SetLocalNameRequest, UnpublishTrackRequest, } from './proto/room_pb.js';
6
+ import { ChatMessageSchema, EditChatMessageRequestSchema, PublishDataRequestSchema, PublishSipDtmfRequestSchema, PublishTrackRequestSchema, PublishTranscriptionRequestSchema, SendChatMessageRequestSchema, SetLocalAttributesRequestSchema, SetLocalMetadataRequestSchema, SetLocalNameRequestSchema, UnpublishTrackRequestSchema, } from './proto/room_pb.js';
7
+ import { TranscriptionSegmentSchema } from './proto/room_pb.js';
8
+ import { PerformRpcRequestSchema, RegisterRpcMethodRequestSchema, RpcMethodInvocationResponseRequestSchema, UnregisterRpcMethodRequestSchema, } from './proto/rpc_pb.js';
9
+ import { RpcError } from './rpc.js';
7
10
  import { LocalTrackPublication } from './track_publication.js';
8
11
  export class Participant {
9
12
  constructor(owned_info) {
@@ -33,10 +36,11 @@ export class Participant {
33
36
  export class LocalParticipant extends Participant {
34
37
  constructor() {
35
38
  super(...arguments);
39
+ this.rpcHandlers = new Map();
36
40
  this.trackPublications = new Map();
37
41
  }
38
42
  async publishData(data, options) {
39
- const req = new PublishDataRequest({
43
+ const req = create(PublishDataRequestSchema, {
40
44
  localParticipantHandle: this.ffi_handle.handle,
41
45
  dataPtr: FfiClient.instance.retrievePtr(data),
42
46
  dataLen: BigInt(data.byteLength),
@@ -55,7 +59,7 @@ export class LocalParticipant extends Participant {
55
59
  }
56
60
  }
57
61
  async publishDtmf(code, digit) {
58
- const req = new PublishSipDtmfRequest({
62
+ const req = create(PublishSipDtmfRequestSchema, {
59
63
  localParticipantHandle: this.ffi_handle.handle,
60
64
  code,
61
65
  digit,
@@ -71,10 +75,10 @@ export class LocalParticipant extends Participant {
71
75
  }
72
76
  }
73
77
  async publishTranscription(transcription) {
74
- const req = new PublishTranscriptionRequest({
78
+ const req = create(PublishTranscriptionRequestSchema, {
75
79
  localParticipantHandle: this.ffi_handle.handle,
76
80
  participantIdentity: transcription.participantIdentity,
77
- segments: transcription.segments.map((s) => new ProtoTranscriptionSegment({
81
+ segments: transcription.segments.map((s) => create(TranscriptionSegmentSchema, {
78
82
  id: s.id,
79
83
  text: s.text,
80
84
  startTime: s.startTime,
@@ -95,7 +99,7 @@ export class LocalParticipant extends Participant {
95
99
  }
96
100
  }
97
101
  async updateMetadata(metadata) {
98
- const req = new SetLocalMetadataRequest({
102
+ const req = create(SetLocalMetadataRequestSchema, {
99
103
  localParticipantHandle: this.ffi_handle.handle,
100
104
  metadata: metadata,
101
105
  });
@@ -115,7 +119,7 @@ export class LocalParticipant extends Participant {
115
119
  *
116
120
  */
117
121
  async sendChatMessage(text, destinationIdentities, senderIdentity) {
118
- const req = new SendChatMessageRequest({
122
+ const req = create(SendChatMessageRequestSchema, {
119
123
  localParticipantHandle: this.ffi_handle.handle,
120
124
  message: text,
121
125
  destinationIdentities,
@@ -127,20 +131,20 @@ export class LocalParticipant extends Participant {
127
131
  const cb = await FfiClient.instance.waitFor((ev) => {
128
132
  return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;
129
133
  });
130
- if (cb.error) {
131
- throw new Error(cb.error);
134
+ if (cb.message.case !== 'chatMessage') {
135
+ throw new Error(cb.message.value ?? 'Unknown Error');
132
136
  }
133
- const { id, timestamp, editTimestamp, message } = cb.chatMessage;
137
+ const { id, timestamp, editTimestamp, message } = cb.message.value;
134
138
  return { id, timestamp: Number(timestamp), editTimestamp: Number(editTimestamp), message };
135
139
  }
136
140
  /**
137
141
  * @experimental
138
142
  */
139
143
  async editChatMessage(editText, originalMessage, destinationIdentities, senderIdentity) {
140
- const req = new EditChatMessageRequest({
144
+ const req = create(EditChatMessageRequestSchema, {
141
145
  localParticipantHandle: this.ffi_handle.handle,
142
146
  editText,
143
- originalMessage: new ChatMessageModel({
147
+ originalMessage: create(ChatMessageSchema, {
144
148
  ...originalMessage,
145
149
  timestamp: BigInt(originalMessage.timestamp),
146
150
  editTimestamp: originalMessage.editTimestamp
@@ -156,14 +160,14 @@ export class LocalParticipant extends Participant {
156
160
  const cb = await FfiClient.instance.waitFor((ev) => {
157
161
  return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;
158
162
  });
159
- if (cb.error) {
160
- throw new Error(cb.error);
163
+ if (cb.message.case !== 'chatMessage') {
164
+ throw new Error(cb.message.value ?? 'Unknown Error');
161
165
  }
162
- const { id, timestamp, editTimestamp, message } = cb.chatMessage;
166
+ const { id, timestamp, editTimestamp, message } = cb.message.value;
163
167
  return { id, timestamp: Number(timestamp), editTimestamp: Number(editTimestamp), message };
164
168
  }
165
169
  async updateName(name) {
166
- const req = new SetLocalNameRequest({
170
+ const req = create(SetLocalNameRequestSchema, {
167
171
  localParticipantHandle: this.ffi_handle.handle,
168
172
  name: name,
169
173
  });
@@ -175,9 +179,11 @@ export class LocalParticipant extends Participant {
175
179
  });
176
180
  }
177
181
  async setAttributes(attributes) {
178
- const req = new SetLocalAttributesRequest({
182
+ const req = create(SetLocalAttributesRequestSchema, {
179
183
  localParticipantHandle: this.ffi_handle.handle,
180
- attributes: attributes,
184
+ attributes: Array.from(Object.entries(attributes)).map(([key, value]) => {
185
+ return { key, value };
186
+ }),
181
187
  });
182
188
  const res = FfiClient.instance.request({
183
189
  message: { case: 'setLocalAttributes', value: req },
@@ -187,7 +193,7 @@ export class LocalParticipant extends Participant {
187
193
  });
188
194
  }
189
195
  async publishTrack(track, options) {
190
- const req = new PublishTrackRequest({
196
+ const req = create(PublishTrackRequestSchema, {
191
197
  localParticipantHandle: this.ffi_handle.handle,
192
198
  trackHandle: track.ffi_handle.handle,
193
199
  options: options,
@@ -198,16 +204,16 @@ export class LocalParticipant extends Participant {
198
204
  const cb = await FfiClient.instance.waitFor((ev) => {
199
205
  return ev.message.case == 'publishTrack' && ev.message.value.asyncId == res.asyncId;
200
206
  });
201
- if (cb.error) {
202
- throw new Error(cb.error);
207
+ if (cb.message.case !== 'publication') {
208
+ throw new Error(cb.message.value ?? 'Unknown Error');
203
209
  }
204
- const track_publication = new LocalTrackPublication(cb.publication);
210
+ const track_publication = new LocalTrackPublication(cb.message.value);
205
211
  track_publication.track = track;
206
212
  this.trackPublications.set(track_publication.sid, track_publication);
207
213
  return track_publication;
208
214
  }
209
215
  async unpublishTrack(trackSid) {
210
- const req = new UnpublishTrackRequest({
216
+ const req = create(UnpublishTrackRequestSchema, {
211
217
  localParticipantHandle: this.ffi_handle.handle,
212
218
  trackSid: trackSid,
213
219
  });
@@ -226,6 +232,119 @@ export class LocalParticipant extends Participant {
226
232
  }
227
233
  this.trackPublications.delete(trackSid);
228
234
  }
235
+ /**
236
+ * Initiate an RPC call to a remote participant.
237
+ * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}
238
+ * @returns A promise that resolves with the response payload or rejects with an error.
239
+ * @throws Error on failure. Details in `message`.
240
+ */
241
+ async performRpc({ destinationIdentity, method, payload, responseTimeout, }) {
242
+ const req = create(PerformRpcRequestSchema, {
243
+ localParticipantHandle: this.ffi_handle.handle,
244
+ destinationIdentity,
245
+ method,
246
+ payload,
247
+ responseTimeoutMs: responseTimeout,
248
+ });
249
+ const res = FfiClient.instance.request({
250
+ message: { case: 'performRpc', value: req },
251
+ });
252
+ const cb = await FfiClient.instance.waitFor((ev) => {
253
+ return ev.message.case === 'performRpc' && ev.message.value.asyncId === res.asyncId;
254
+ });
255
+ if (cb.error) {
256
+ throw RpcError.fromProto(cb.error);
257
+ }
258
+ return cb.payload;
259
+ }
260
+ /**
261
+ * Establishes the participant as a receiver for calls of the specified RPC method.
262
+ * Will overwrite any existing callback for the same method.
263
+ *
264
+ * @param method - The name of the indicated RPC method
265
+ * @param handler - Will be invoked when an RPC request for this method is received
266
+ * @returns A promise that resolves when the method is successfully registered
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * room.localParticipant?.registerRpcMethod(
271
+ * 'greet',
272
+ * async (data: RpcInvocationData) => {
273
+ * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);
274
+ * return `Hello, ${data.callerIdentity}!`;
275
+ * }
276
+ * );
277
+ * ```
278
+ *
279
+ * See {@link RpcInvocationData} for more details on invocation params.
280
+ *
281
+ * The handler should return a Promise that resolves to a string.
282
+ * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.
283
+ *
284
+ * You may throw errors of type `RpcError` with a string `message` in the handler,
285
+ * and they will be received on the caller's side with the message intact.
286
+ * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` ("Application Error").
287
+ */
288
+ registerRpcMethod(method, handler) {
289
+ this.rpcHandlers.set(method, handler);
290
+ const req = create(RegisterRpcMethodRequestSchema, {
291
+ localParticipantHandle: this.ffi_handle.handle,
292
+ method,
293
+ });
294
+ FfiClient.instance.request({
295
+ message: { case: 'registerRpcMethod', value: req },
296
+ });
297
+ }
298
+ /**
299
+ * Unregisters a previously registered RPC method.
300
+ *
301
+ * @param method - The name of the RPC method to unregister
302
+ */
303
+ unregisterRpcMethod(method) {
304
+ this.rpcHandlers.delete(method);
305
+ const req = create(UnregisterRpcMethodRequestSchema, {
306
+ localParticipantHandle: this.ffi_handle.handle,
307
+ method,
308
+ });
309
+ FfiClient.instance.request({
310
+ message: { case: 'unregisterRpcMethod', value: req },
311
+ });
312
+ }
313
+ /** @internal */
314
+ async handleRpcMethodInvocation(invocationId, method, requestId, callerIdentity, payload, responseTimeout) {
315
+ let responseError = null;
316
+ let responsePayload = null;
317
+ const handler = this.rpcHandlers.get(method);
318
+ if (!handler) {
319
+ responseError = RpcError.builtIn('UNSUPPORTED_METHOD');
320
+ }
321
+ else {
322
+ try {
323
+ responsePayload = await handler({ requestId, callerIdentity, payload, responseTimeout });
324
+ }
325
+ catch (error) {
326
+ if (error instanceof RpcError) {
327
+ responseError = error;
328
+ }
329
+ else {
330
+ console.warn(`Uncaught error returned by RPC handler for ${method}. Returning APPLICATION_ERROR instead.`, error);
331
+ responseError = RpcError.builtIn('APPLICATION_ERROR');
332
+ }
333
+ }
334
+ }
335
+ const req = create(RpcMethodInvocationResponseRequestSchema, {
336
+ localParticipantHandle: this.ffi_handle.handle,
337
+ invocationId,
338
+ error: responseError ? responseError.toProto() : undefined,
339
+ payload: responsePayload ?? undefined,
340
+ });
341
+ const res = FfiClient.instance.request({
342
+ message: { case: 'rpcMethodInvocationResponse', value: req },
343
+ });
344
+ if (res.error) {
345
+ console.warn(`error sending rpc method invocation response: ${res.error}`);
346
+ }
347
+ }
229
348
  }
230
349
  export class RemoteParticipant extends Participant {
231
350
  constructor(owned_info) {
@@ -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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"}